{"version":3,"file":"vw-oneform-feature-app.umd.js","mappings":"CAAA,SAA2CA,EAAMC,GAChD,GAAsB,iBAAZC,SAA0C,iBAAXC,OACxCA,OAAOD,QAAUD,EAAQG,QAAQ,SAAUA,QAAQ,aAAcA,QAAQ,2BACrE,GAAqB,mBAAXC,QAAyBA,OAAOC,IAC9CD,OAAO,CAAC,QAAS,YAAa,qBAAsBJ,OAChD,CACJ,IAAIM,EAAuB,iBAAZL,QAAuBD,EAAQG,QAAQ,SAAUA,QAAQ,aAAcA,QAAQ,sBAAwBH,EAAQD,EAAY,MAAGA,EAAK,aAAcA,EAAK,sBACrK,IAAI,IAAIQ,KAAKD,GAAuB,iBAAZL,QAAuBA,QAAUF,GAAMQ,GAAKD,EAAEC,EACvE,CACA,CATD,CASoB,oBAATC,KAAuBA,KAAOC,MAAO,CAACC,EAAmCC,EAAmCC,I,iFCLhH,MAAMC,EAAgBC,U,MAC3B,IACE,MAAMC,GAAUC,EAAAA,EAAAA,MAEVC,QAAuBC,EAAAA,EAAMC,IAAI,GAADC,OAAIL,EAAO,eAAAK,OAAcC,IAE/D,OAAwB,QAAxBC,EAAIL,aAAc,EAAdA,EAAgBM,YAAI,IAAAD,OAAA,EAAAA,EAAEE,QACjBP,EAAeM,KAAKC,SAG7BC,EAAAA,EAAAA,IAAkB,wBAClBC,QAAQC,MAAM,wBACP,K,CACP,MAAOA,GAEP,OADAF,EAAAA,EAAAA,IAAkBE,GACX,I,2FCMX,IAAIC,EAA+C,GAE5C,MAAMC,EAAmBf,UAO9B,MAAMgB,EAAiBF,EAAqBG,MAAMC,GAAUA,EAAMC,gBAAkBA,IAEpF,GAAIH,EACF,MAAO,CACLI,oBAAqBJ,EAAeI,oBACpCC,SAAUL,EAAeK,UAEtB,CACL,MAAM,oBAAED,EAAmB,SAAEC,SAAmBC,EAAqBH,GAC/DI,EAAgC,CAAEJ,gBAAeC,sBAAqBC,YAE5E,OADAP,EAAqBU,KAAKD,GACnB,CAAEH,sBAAqBC,W,GASrBI,EAAmBC,IAC9B,IAAKA,EAAU,MAAO,CAAEC,eAAgB,GAAIC,gBAAiB,IAC7D,MAAMC,EAAQH,EAAST,MAAMa,GAAYA,EAAQC,KAAKC,WAAW,UAIjE,MAAO,CAAEL,gBAFcE,aAAK,EAALA,EAAOE,MAAOF,EAAME,UAAOE,EAEzBL,iBADDC,aAAK,EAALA,EAAOK,MAAOL,EAAMK,UAAOD,EACT,EAS/BE,EAAYA,CAACC,EAAkBC,KAEnC,CAAEC,OADMD,EAAQpB,MAAMqB,GAAWA,EAAOF,UAAUA,MAI9CG,EAAiBA,CAACC,EAAcC,KAEpC,CAAEC,YADWD,EAAaxB,MAAMyB,GAAgBA,EAAYF,MAAMA,MAI3E,MAAMG,UAAgCC,MACpCC,WAAAA,CAAYC,GACVC,MAAMD,GACNnD,KAAKuC,KAAO,yBACd,EAGK,MAAMZ,EAAuBtB,UAIlC,IACE,MAAMqB,QAAiB2B,EAAAA,EAAAA,IAAmB7B,GAEpC8B,EAAad,EAAU,aAAad,EAAS6B,QAAQC,iBAAiBd,SACtEe,EAAYjB,EAAU,YAAYd,EAAS6B,QAAQC,iBAAiBd,SACpEG,EAAOL,EAAU,OAAOd,EAAS6B,QAAQC,iBAAiBd,SAC1DgB,EAAWlB,EAAU,WAAWd,EAAS6B,QAAQC,iBAAiBd,SAElEiB,EAAgBf,EAAe,gBAAgBlB,EAAS6B,QAAQC,iBAAiBI,KAAKb,aAa5F,MAAO,CAAEtB,oBAX0C,CACjDoC,UAAWnC,EAAS6B,QAAQC,iBAAiBM,WAAWC,MAAM,KAAK,GACnEC,YAAatC,EAAS6B,QAAQC,iBAAiBS,kBAC/CC,aAAcZ,EAAWX,OAAOP,KAAK+B,QAAQ,cAAc,IAC3DC,eAAgBd,EAAWX,OAAO0B,YAClCC,kBAAmBX,EAAcZ,YAAYwB,KAC7CC,QAASd,EAASf,OAAOP,KAAK+B,QAAQ,YAAY,IAClDM,UAAW5B,EAAKF,OAAO0B,YACvBK,UAAWjB,EAAUd,OAAOP,KAAK+B,QAAQ,aAAa,KAG1BzC,W,CAC9B,MAAOR,GACP,MAAMyD,EAAW,IAAI3B,EAAwB9B,IAC7CF,EAAAA,EAAAA,IAAkB2D,GAElB,MAAO,CAAElD,oBAD0C,K,2ZC9GhD,MAAMmD,EAAqBvE,MAAOwE,EAAoBC,KAC3D,GAAIC,EAAOF,EAAUC,GAAc,MAAO,CAAChE,KAAK,CAACkE,OAAO,CAAC5C,KAAK,SAE9D,IACE,MAAM6C,EAAgBC,IAChBC,EAAmBC,IAOzB,aANuB3E,EAAAA,EAAM4E,KAAK,GAAD1E,OAAIsE,EAAa,mBAAmBJ,EAAU,CAC7ES,QAAS,CACP,YAAaH,I,CAKjB,MAAOjE,GAEP,OADAF,EAAkBE,GACX,I,GAGEqE,EAAUlF,MAAOwE,EAAoBC,KAChD,GAAIC,EAAOF,EAAUC,GAAc,MAAO,CAAChE,KAAK,CAACyC,QAAQ,CAACnB,KAAK,SAE/D,IACE,MAAMoD,EAAgBC,IAEtB,aADuBhF,EAAAA,EAAM4E,KAAK,GAAD1E,OAAI6E,EAAa,yBAAyBX,E,CAE3E,MAAO3D,GAEP,OADAF,EAAkBE,GACX,I,GAIEwE,EAAarF,MAAOwE,EAAoBC,KACnD,GAAIC,EAAOF,EAAUC,GAAc,MAAO,CAAChE,KAAK,CAACyC,QAAQ,CAACnB,KAAK,SAE/D,IACE,MAAMoD,EAAgBC,IAEtB,aADuBhF,EAAAA,EAAM4E,KAAK,GAAD1E,OAAI6E,EAAa,gCAAgCX,E,CAElF,MAAO3D,GAEP,OADAF,EAAkBE,GACX,I,GAIEyE,EAAWtF,MAAOwE,EAAoBC,KACjD,GAAIC,EAAOF,EAAUC,GAAc,MAAO,CAAChE,KAAK,CAACyC,QAAQ,CAACnB,KAAK,SAE/D,IACE,MAAMoD,EAAgBC,IAEtB,aADuBhF,EAAAA,EAAM4E,KAAK,GAAD1E,OAAI6E,EAAa,4BAA4BX,E,CAE9E,MAAO3D,GAEP,OADAF,EAAkBE,GACX,I,GAIL6D,EAASA,CAACF,EAAoBC,KAClC,MAAMc,EAAY,IAAIC,gBAAgBC,OAAOC,SAASC,QAOtD,GANaJ,EAAUlF,IAAI,UAEvBoE,GAAec,EAAUlF,IAAI,QAAQuF,SAAS,eAE7CnB,GAAec,EAAUlF,IAAI,QAAQuF,SAAS,SAEzC,CACR,IAAIC,EAAS,GACb,IAAK,MAAMC,KAAStB,EAASuB,UAC3BF,EAAOC,EAAM,IAAMA,EAAM,GAG3B,OADAlF,QAAQoF,IAAI,uBAAwB,mBAAoBH,IACjD,C,CAET,OAAO,CAAK,EC1EDI,EAA2BjG,UACtC,IACE,MAAMmF,EAAgBC,IAEtB,aADuBhF,EAAAA,EAAM4E,KAAK,GAAD1E,OAAI6E,EAAa,wCAAwCX,E,CAE1F,MAAO3D,GAEP,OADAF,EAAkBE,GACX,I,GCPEqF,EAAgBlG,UAC3B,MAAMmG,EAAeC,GAAgB,yBAC/BC,EAAaC,IACbxB,EAAmByB,IAEzB,IAUE,aATuBC,EAAAA,EAAMnG,IAAI,GAADC,OAAI+F,EAAU,uBAAA/F,OAAsB6F,EAAY,yBAC9E,CACEM,QAAS,IACTxB,QAAS,CACP,YAAaH,MAKHrE,I,CAChB,MAAOiG,GAEP,OADA/F,EAAkB+F,GACX,I,GA0BEC,EAAiB3G,UAC5B,MAAMmG,EAAeC,GAAgB,yBAC/BC,EAAaC,IACbxB,EAAmByB,IAEzB,IAQE,aAPuBC,EAAAA,EAAMnG,IAAI,GAADC,OAAI+F,EAAU,uBAAA/F,OAAsB6F,EAAY,qBAC9E,CACEM,QAAS,IACTxB,QAAS,CACP,YAAaH,MAGHrE,I,CAChB,MAAOiG,GAEP,OADA/F,EAAkB+F,GACX,I,GAIEE,EAAsB5G,UACjC,MAAMmG,EAAeC,GAAgB,yBAC/BS,EAAeC,IAErB,IAKE,aAJuBN,EAAAA,EAAMnG,IAAI,GAADC,OAAIuG,EAAY,kCAAAvG,OAAiC6F,EAAY,oBAC3F,CACEM,QAAS,OAEGhG,I,CAChB,MAAOiG,GAEP,OADA/F,EAAkB+F,GACX,I,GAsBEK,EAAuB/G,UAClC,MAAMmG,EAAeC,GAAgB,yBAC/BS,EAAeC,IAErB,IAKE,aAJuBN,EAAAA,EAAMnG,IAAI,GAADC,OAAIuG,EAAY,kCAAAvG,OAAiC6F,EAAY,qBAC7F,CACEM,QAAS,OAEKhG,I,CAChB,MAAOiG,GAEP,OADA/F,EAAkB+F,GACX,I,0BC9GJ,MAAM1D,EAAqBhD,UAChC,MAAMgH,EAAmBV,IACnBW,EAAsBV,IAE5B,OAAOW,IAAMF,EAAmB,uCAAyC7F,EAAe,CACtF8D,QAAS,CACP,YAAagC,KAGdE,MAAM9F,GAAaA,EAAS+F,SAC5BC,OAAOX,IACN/F,EAAkB+F,EAAI,GACtB,ECeOY,EAAwBtH,UACnC,MAAM6G,EAAeC,IACfS,EAAaC,EAAgB,IAAM,IACzC,IACE,MAAMnG,QAAsDjB,EAAAA,EAAMC,IAAI,GAADC,OAChEuG,EAAY,2CAAAvG,OAA0CiH,IAI3D,MAAqC,iBAA1BlG,EAASZ,KAAKyC,QAChB,KAEF7B,EAASZ,KAAKyC,O,CACrB,MAAOrC,GAEP,OADAF,EAAkBE,GACX,I,GC1CE4G,EAAczH,UACzB,IACE,MAAMC,EAAUC,IAGhB,aADmEE,EAAAA,EAAMC,IAAI,GAADC,OAAIL,EAAO,kBACvEQ,KAAKiH,Q,CAErB,MAAO7G,GAEP,OADAF,EAAkBE,GACX,I,GCLE8G,EAAY3H,UACvB,MAAMC,EAAU2H,IAEhB,IAEE,aADsDxH,EAAAA,EAAMC,IAAI,GAADC,OAAIL,EAAO,iBAC1DQ,I,CAChB,MAAOiG,GAEP,OADA/F,EAAkB+F,GACX,I,gBCZJ,MAAMmB,EAAa7H,UACxB,IACE,MAAMC,EAAUC,IAEhB,IAAKD,EAEH,OADAW,QAAQC,MAAM,uBACP,KAGT,aADiET,EAAAA,EAAMC,IAAI,GAADC,OAAIL,EAAO,iBACtEQ,KAAKqH,O,CACpB,MAAOjH,GAEP,OADAF,EAAkBE,GACX,I,GCZEkH,EAAmB/H,UAE9B,MACMmG,GAAgBC,GAAS4B,IAAc,yBAA2B5B,EAClEC,EAAaC,IACbxB,EAAmByB,IAEzB,IAUE,aATiEnG,EAAAA,EAAMC,IAAI,GAADC,OACrE+F,EAAU,uBAAA/F,OAAsB6F,EAAY,YAAA7F,OAPpC,mCAQX,CACEmG,QAAS,IACTxB,QAAS,CACP,YAAaH,MAIErE,KAAKyC,O,CAC1B,MAAOrC,GAEP,OADAF,EAAkBE,GACX,I,GAIEoH,EAAyBjI,MAAOoG,EAAgB8B,KAE3D,MAAM/B,GAAgBC,GAAS4B,IAAc,yBAA2B5B,EAClE+B,EAASD,EAAc,uBAAyB,eAChDE,EAAkBtB,IAExB,IAIE,aAHiE1G,EAAAA,EAAMC,IAAI,GAADC,OACrE8H,EAAe,kCAAA9H,OAAiC6F,EAAY,YAAA7F,OAAW6H,KAEvD1H,KAAKyC,O,CAC1B,MAAOrC,GAEP,OADAF,EAAkBE,GACX,I,GAKLmH,EAAYA,KAChB,MAAMzC,EAAY,IAAIC,gBAAgBC,OAAOC,SAASC,QACtD,OAAOJ,EAAUlF,IAAI,SAAWkF,EAAUlF,IAAI,QAAQuF,SAAS,QAAQ,ECzB5DyC,EAAarI,MACxBsI,EACDC,EACCnC,KAEA,IACE,IAAKA,KACHA,EAAQoC,EAAgBF,IAGtB,MAAO,CAAEG,YAAa,KAAMC,aAAa,EAAOC,cAAc,GAIpE,IAAIC,EAEJ,GAAIL,EAAQ,CACX,MAAM3D,EAAgBC,IAChBC,EAAmBC,IACzB6D,QAAqBxI,EAAAA,EAAMC,IAAI,GAADC,OAAIsE,EAAa,0BAAAtE,OAAyBgI,EAAO,WAAAhI,OAAU8F,GAAS,CACjGnB,QAAS,CACR,YAAaH,I,KAIX,CACJ,MAAMK,EAAgBC,IACtBwD,QAAqBxI,EAAAA,EAAMC,IAAI,GAADC,OAC1B6E,EAAa,qCAAA7E,OAAoCgI,EAAO,WAAAhI,OAAU8F,G,CAIvE,MAAMqC,EAAcG,EAElB,OAAIH,GAAeA,EAAYhI,OACE,IAAjCgI,EAAYhI,KAAKkE,OAAO5C,MAA+C,MAAjC0G,EAAYhI,KAAKkE,OAAO5C,MACrD,CAAE0G,YAAaA,EAAYhI,KAAMiI,aAAa,EAAOC,cAAc,GAGxEF,GACAA,EAAYhI,MACZgI,EAAYhI,KAAKyC,SAChBuF,EAAYhI,KAAKyC,QAA8BJ,QAAQ8C,SAAS,wBAE1D,CAAE6C,YAAa,KAAMC,aAAa,EAAMC,cAAc,GAGxD,CAAEF,YAAa,KAAMC,aAAa,EAAOC,cAAc,E,CAEhE,MAAO9H,GAGP,OAFAD,QAAQC,MAAMA,GACdF,EAAkBE,GACX,CAAE4H,YAAa,KAAMC,aAAa,EAAOC,cAAc,E,GAQrDH,EAAmBF,IAC9B,IACE,MAAMO,EAAiBC,KAAKR,GAAS5E,MAAM,WAC3C,OAAOmF,EAAeA,EAAeE,OAAS,E,CAC9C,MAAOlI,GAEP,OADAF,EAAkBE,GACX,I,GCrFEmI,EAAiBhJ,UAC5B,IACE,MAAMC,EAAUC,IAMhB,aAJ+EE,EAAAA,EAAMC,IAAI,GAADC,OACnFL,EAAO,qBAGIQ,KAAKiH,Q,CACrB,MAAO7G,GAEP,OADAF,EAAkBE,GACX,I,GCXEoI,EAAqBjJ,UAChC,IACE,MAAMC,EAAUC,IAEhB,aADsCE,EAAAA,EAAMC,IAAI,GAADC,OAAIL,EAAO,0BAC1CQ,KAAKyI,S,CACrB,MAAOrI,GAEP,OADAF,EAAkBE,GACX,I,GAIEsI,EAAcnJ,UACzB,MAAMmG,EAAeC,GAAgB,yBAC/BC,EAAaC,IACbxB,EAAmByB,IAEzB,IAUE,aATuBnG,EAAAA,EAAMC,IAAI,GAADC,OAAI+F,EAAU,uBAAA/F,OAAsB6F,EAAY,wBAC9E,CACEM,QAAS,IACTxB,QAAS,CACP,YAAaH,MAKHrE,I,CAChB,MAAOiG,GAEP,OADA/F,EAAkB+F,GACX,I,GAIE0C,EAAepJ,MAAO+B,EAAcqE,KAC/C,MAAMD,EAAeC,GAAgB,yBAC/BC,EAAaC,IACbxB,EAAmByB,IAEzB,IAUE,aATuBnG,EAAAA,EAAMC,IAAI,GAADC,OAAI+F,EAAU,uBAAA/F,OAAsB6F,EAAY,6DAAA7F,OAA4DyB,GAC1I,CACE0E,QAAS,IACTxB,QAAS,CACP,YAAaH,MAKHrE,I,CAChB,MAAOiG,GAEP,OADA/F,EAAkB+F,GACX,I,GCzBE2C,EAAuBrJ,UAElC,MAAMsJ,EAAexC,IACrB,IAAIyC,EAOJ,aALMnJ,EAAAA,EAAMC,IAAI,GAADC,OAAIgJ,EAAY,mCAAAhJ,OAAkCkJ,IAASrC,MAAK1G,GAAQ8I,EAAU9I,IAC9F4G,OAAOxG,IACNF,EAAkBE,GACX,QAEJ0I,CAAO,ECpCHE,EAAgBzJ,UAC3B,MAAMC,EAAUC,IAChB,IAAIqJ,EACAG,EAaJ,aAZMtJ,EAAAA,EAAMC,IAAI,GAADC,OAAIL,EAAO,gBACvBkH,MAAKwC,GAAOJ,EAAUI,EAAIlJ,OAC1B0G,MAAK,KACJuC,EAAqBH,EAAQ7B,SAASkC,QAAQC,GACvB,CAAC,UAAW,QAAS,SACtBjE,SAASiE,EAAQ3H,KAAK4H,gBAC1C,IAEHzC,OAAOxG,IACNF,EAAkBE,GACX,QAEJ6I,CAAkB,E,cCjB3B,MAAMK,EAAwCA,KAC5CnJ,QAAQC,MAAM,6DACP,MAWImJ,EAAgBC,IAAuC,IAAAzJ,EAAC,MAAoC,OAAZ,QAAxBA,EAAAyJ,EAAYC,oBAAY,IAAA1J,OAAA,EAAAA,EAAE2J,MAAa,EAC/FC,EAAaH,IAAuC,IAAAzJ,EAAC,MAAoC,OAAZ,QAAxBA,EAAAyJ,EAAYC,oBAAY,IAAA1J,OAAA,EAAAA,EAAE2J,MAAa,EAE5FE,EAAeJ,IAC1B,MAAMK,EAZkBL,IACjBG,EAAUH,GACbA,EAAYM,cACZP,EAAaC,GACXA,EAAYO,iBACZ,KAOSC,CAAUR,GAEzB,OAAOK,EAAS,IAAHhK,OAAOgK,GAAW,EAAE,EAGtBpK,EAAaA,KACxB,MAAMO,GAAOiK,EAAAA,EAAAA,wBAEb,OAAKjK,EAIE,GAAPH,OAAUG,EAAKkK,WAASrK,OAAGG,EAAKmK,SAAOtK,OAAG+J,EAAY5J,IAH7CsJ,GAGkD,EAGhDnC,EAA0BA,KACrC,MAAMnH,GAAOiK,EAAAA,EAAAA,wBAEb,OAAKjK,EAIE,GAAPH,OAAUG,EAAKkK,WAASrK,OAAGG,EAAKmK,SAHvBb,GAG8B,ECnC5Bc,EAAkBA,K,MAC7B,MAAMC,GAAsBC,EAAAA,EAAAA,gCAE5B,OAAKD,EAIkC,QAAvCtK,EAAOsK,EAAoBZ,oBAAY,IAAA1J,OAAA,EAAAA,EAAEwK,QAXzCpK,QAAQC,MAAM,4DACP,KAUwC,E,cCZjD,MAKaiG,EAAqBA,KAChC,MAAMD,GAAeoE,EAAAA,EAAAA,gCAErB,OAAKpE,GAIGqE,IAAmBrE,EAAa8D,UAAU7G,QAAQ,OAAQ,IAAM+C,EAAa8D,WAAa9D,EAAa+D,SAX/GhK,QAAQC,MAAM,2DACP,KAU+G,EAGlHqK,EAAiBA,KACrB,MAAM3F,EAAY,IAAIC,gBAAgBC,OAAOC,SAASC,QACtD,OAAOJ,EAAUlF,IAAI,SAAWkF,EAAUlF,IAAI,QAAQuF,SAAS,OAAO,ECZ3DR,EAAkBA,KAC7B,MAAM+F,GAAYC,EAAAA,EAAAA,6BAElB,OAAKD,EAIEA,EAAUR,UAAYQ,EAAUP,SAXvChK,QAAQC,MAAM,uDACP,KAUuC,ECPnCgE,EAAmBA,KAC9B,MAAMwG,GAAaC,EAAAA,EAAAA,8BAGnB,OAAKD,EAIEA,EAAWV,UAAYU,EAAWT,SAZzChK,QAAQC,MAAM,yDACP,KAWyC,ECJrCkE,EAAsBA,KACjC,MAAMsG,GAAaE,EAAAA,EAAAA,iCACbrB,EAAsCmB,EAAWnB,aAEvD,OAAKmB,EAIEnB,EAAa,cAZpBtJ,QAAQC,MAAM,yDACP,KAWyB,ECZrByF,EAAsBA,KACjC,MAAMkF,GAAgBD,EAAAA,EAAAA,iCAEtB,OAAKC,GAIGN,IAAmBM,EAAcb,UAAU7G,QAAQ,OAAQ,IAAM0H,EAAcb,WAAaa,EAAcZ,SAXlHhK,QAAQC,MAAM,6DACP,KAUkH,EAGrHqK,EAAiBA,KACrB,MAAM3F,EAAY,IAAIC,gBAAgBC,OAAOC,SAASC,QACtD,OAAOJ,EAAUlF,IAAI,SAAWkF,EAAUlF,IAAI,QAAQuF,SAAS,OAAO,ECR3DW,EAAyBA,KACpC,MAAM8E,GAAaE,EAAAA,EAAAA,iCACbrB,EAAyCmB,EAAWnB,aAE1D,OAAKmB,EAIEnB,EAAa,cAZpBtJ,QAAQC,MAAM,6DACP,KAWyB,E,cCjB3B,MAAMF,EAAqBE,KACpB4K,EAAAA,EAAAA,MACRC,KAAKC,IACPA,EAAWC,WAAWC,IAClBF,EAAWG,iBAAiBjL,EAAM,GACpC,GACF,C,iwBCDG,MAAMkL,EAAcA,KAEzB,MAAM,mBAAEC,IAAwBC,EAAAA,EAAAA,qBAC1BC,GAAkBC,EAAAA,EAAAA,KAExB,OAEEC,IAAAA,cAACC,EAAAA,EAAG,CACFC,QAAUC,IACRL,EAAgBM,yBAAyB,CACvCC,UAAW,aAEbT,EAAmBO,EAAE,EAEvBG,IAAI,SACJC,SAAS,YACTC,KAAK,QACLC,KAAMT,IAAAA,cAACU,EAAAA,EAAO,CAACC,QAAQ,WAAU,WAG7B,E,8DCXH,MAAMC,EAAqBC,IAAkD,IAAjD,MAAEC,GAA2CD,EAC9E,MAAOE,EAAMC,IAAWC,EAAAA,EAAAA,UAAS,OAC1BC,EAAMC,IAAWF,EAAAA,EAAAA,UAAS,MAE3BG,GAAQC,EAAAA,EAAAA,OAER,SAAEjJ,GAAagJ,EAAME,WAY3B,OAVAC,EAAAA,EAAAA,YAAU,KAC2B,kBAA7BnJ,EAASqB,OAAO+H,UAChBR,EAAQ,kDACRG,EAAQ,2HAERH,EAAQ,gCACRG,EAAQ,uH,GAEb,IAGDnB,IAAAA,cAACyB,EAAAA,EAAS,CACRC,gBAAc,EACdC,QAAS,CAAEC,IAAK,CAAE,EAAGC,EAAAA,EAAiBC,QAAS,IAAKD,EAAAA,EAAiBE,SAAWC,OAAQ,CAAE,EAAGH,EAAAA,EAAiBC,QAAS,IAAKD,EAAAA,EAAiBE,SAAWE,KAAM,CAAE,EAAGJ,EAAAA,EAAiBC,QAAS,IAAKD,EAAAA,EAAiBE,SAAWG,MAAO,CAAE,EAAGL,EAAAA,EAAiBC,QAAS,IAAKD,EAAAA,EAAiBE,WAE1R/B,IAAAA,cAACyB,EAAAA,EAAS,CACRU,KAAM,SACNT,gBAAc,EACdU,OAAQC,EAAAA,EAAgBC,UACxBX,QAAS,CAAEK,OAAQH,EAAAA,EAAiBU,YAEpCvC,IAAAA,cAACwC,EAAAA,GAAI,CAACC,MAAI,EAACC,WAAYC,EAAAA,eAAoBC,aAAW,iCAGtD5C,IAAAA,cAACwC,EAAAA,GAAI,CAACE,WAAYC,EAAAA,eAAoBE,SACnC3B,IAGLlB,IAAAA,cAACyB,EAAAA,EAAS,CACRU,KAAM,CAAE,EAAG,SAAU,IAAK,SAC1BC,OAAQ,CAAE,EAAGC,EAAAA,EAAgBS,YAE7B9C,IAAAA,cAACC,EAAAA,EAAG,CAACK,IAAI,IAAIS,KAAMA,EAAMR,SAAS,WAAS,4BAG3CP,IAAAA,cAACC,EAAAA,EAAG,CACFK,IAAI,SACJC,SAAS,YACTL,QAAUC,IACNA,EAAE4C,iBACFjC,EAAM,CAAC,EAAG,CAAC,EAAG,CAAC,EAAE,GACpB,0BAKK,EAIHkC,EAAgCA,CAC3C5B,EACA6B,EACAC,KAWAA,EAAaC,gBAREC,CAACC,EAAYvC,IAExBd,IAAAA,cAACsD,EAAAA,oBAAmB,CAAClC,MAAOA,EAAO6B,IAAKA,GACpCjD,IAAAA,cAACY,EAAkB,CAACE,MAAOA,MAOjC,CAAC,EACD,CAAEN,KAAM+C,EAAAA,GAAiBC,EAAGC,eAAe,GAC5C,E,0CCnFG,SAAUC,IACd,MAAM,SAAEC,EAAQ,OAAEC,IAAWC,EAAAA,EAAAA,OACtBC,EAAeC,IAAoB9C,EAAAA,EAAAA,WAAS,IAC5C+C,EAAUC,IAAehD,EAAAA,EAAAA,UAAS,WACnC,OAAExH,IAAWyK,EAAAA,EAAAA,KAAab,GAAwBA,EAAMjL,YACxD,MAAE3D,EAAK,SAAE0P,IAAatE,EAAAA,EAAAA,MACtBzE,GAAgBgJ,EAAAA,EAAAA,MA4BtB,OA1BA7C,EAAAA,EAAAA,YAAU,KACJ9H,EAAOuK,UACTC,EAAYxK,EAAOuK,S,GAEpB,KAEHzC,EAAAA,EAAAA,YAAU,KACJ9M,GACmCsP,GAApCC,E,GAEF,CAACvP,KAEJ8M,EAAAA,EAAAA,YAAU,KACJqC,EAAOI,SACTD,GAAiB,GAEjBA,GAAiB,E,GAElB,CAACH,IAQG5D,IAAAA,cAACqE,GAAAA,GAAoB,CAACC,UAAWlJ,EAAgBmJ,EAAAA,GAA6BC,EAAAA,GAAyB1O,KAAK,WAAW2O,aAAW,GAC3I,C,oCCvC2BC,EAAAA,GAAOC,IAAGC,IAAAA,GAAAC,EAAAA,EAAAA,GAAA,+JAWhBH,EAAAA,GAAOC,IAAGG,IAAAA,GAAAD,EAAAA,EAAAA,GAAA,2YAqBdH,EAAAA,GAAOK,OAAMC,IAAAA,GAAAH,EAAAA,EAAAA,GAAA,qoBAYgBI,GAAUA,EAAMC,aAUXD,GAAUA,EAAMC,aAYpDR,EAAAA,GAAOC,IAAGQ,IAAAA,GAAAN,EAAAA,EAAAA,GAAA,oZAsBVH,EAAAA,GAAOC,IAAGS,IAAAA,GAAAP,EAAAA,EAAAA,GAAA,wHAePH,EAAAA,GAAOC,IAAGU,IAAAA,GAAAR,EAAAA,EAAAA,GAAA,uOAQqBI,GAAUA,EAAMC,a,gBChHlDR,EAAAA,GAAOC,IAAGC,IAAAA,GAAAC,EAAAA,EAAAA,GAAA,oqHA2MJH,EAAAA,GAAOC,IAAGG,IAAAA,GAAAD,EAAAA,EAAAA,GAAA,8B,cCvMxB,MAAMS,EAAcA,KACzB,MAAM,sBAAEC,IAA0B1F,EAAAA,EAAAA,sBAC5B,YAAE2F,IAAgBtB,EAAAA,EAAAA,KACrBb,GAAwBA,EAAMoC,WAG3B3F,GAAkBC,EAAAA,EAAAA,KAExB,OACEC,IAAAA,cAAA,OACEE,QAAUC,IACRA,EAAE4C,iBACFjD,EAAgB4F,oBACd,CACErF,UAAW,UAEb,CAAEsF,UAA2B,IAAhBH,IAEfD,GAAuB,GAGzBvF,IAAAA,cAAC4F,EAAAA,EAAK,MACF,E,MCvBV,MAAMC,EAAUnB,EAAAA,GAAOC,IAAGC,IAAAA,GAAAC,EAAAA,EAAAA,GAAA,yJAebiB,EAAejF,IAAiD,IAAhD,cAAEkF,GAAgB,GAA0BlF,EACvE,MAAM,SAAE8C,IAAaE,EAAAA,EAAAA,OAGdmC,EAAsBC,IAA2BhF,EAAAA,EAAAA,UAAS,KAC1DiF,EAAoBC,IAAyBlF,EAAAA,EAAAA,WAAS,IACtDmF,EAAiBC,IAAsBpF,EAAAA,EAAAA,WAAS,GACjDqF,EAAmB,UACnBC,GAAWC,EAAAA,EAAAA,MAkBjB,OARAjF,EAAAA,EAAAA,YAAU,KACH2E,GAAuE,OAAjDF,EAAqBS,MAAMH,GAGpDD,GAAmB,GAFnBA,GAAmB,E,GAIpB,CAACL,EAAsBE,IAGxBlG,IAAAA,cAAC6F,EAAO,KACN7F,IAAAA,cAAC0G,GAAAA,GAAiB,CAChB5Q,KAAK,aACL6Q,MAAM,gBACNC,YAAU,EACVC,SAAUlD,EAAS,CACjBmD,SAAU,CACRC,OAAO,EACPrQ,QAAS,aAEXsQ,QAAS,CACPD,MAAOT,EACP5P,QAAS,6BAGbuQ,SAAW9G,GAhCeA,KAC1B4F,GACFQ,EAAS,CAAEnQ,KAAM,gBAAiB8Q,QAAS,CAAE,WAAgB/G,EAAEgH,OAAOJ,SAExEd,EAAwB9F,EAAEgH,OAAOJ,OACjCZ,GAAsB,EAAM,EA2BPiB,CAAuBjH,GACxC2G,UAAQ,EACRO,UAAW,IAEZjB,GAAmBpG,IAAAA,cAACsH,GAAAA,GAAU,CAACC,UAAU,eAAa,2BAC/C,E,+CCzCd,MAAMC,EAAU9C,EAAAA,GAAOC,IAAGC,IAAAA,GAAAC,EAAAA,EAAAA,GAAA,6QAcpB4C,EAAa/C,EAAAA,GAAOC,IAAGG,IAAAA,GAAAD,EAAAA,EAAAA,GAAA,sMAmBhB6C,EAAezC,IAC1B,MAAM,cAAE0C,EAAa,mBAAEC,GAAuB3C,EAC9C,OACEjF,IAAAA,cAACwH,EAAO,KACNxH,IAAAA,cAACwC,EAAAA,GAAI,CAACE,WAAYC,EAAAA,eAAoBC,YAAaH,MAAI,EAACoF,UAAWC,EAAAA,EAAc7F,MAAI,6CAGrFjC,IAAAA,cAACyB,EAAAA,EAAS,CACRW,OAAQC,EAAAA,EAAgB0F,UACxB5F,KAAM,SACN6F,gBAAiB,aACjBrG,QAAS,CAAEC,IAAKC,EAAAA,EAAiBoG,cAEjCjI,IAAAA,cAACwC,EAAAA,GAAI,CAACqF,UAAWC,EAAAA,EAAc7F,MAAI,gEAC6B0F,EAAa,gCAE7E3H,IAAAA,cAACyH,EAAU,KACTzH,IAAAA,cAACC,EAAAA,EAAG,CACFK,IAAI,SACJC,SAAS,UACTL,QAAUC,IACRA,EAAE4C,iBACF6E,EAAmB,CAAC,EAAG,CAAC,EAAG,CAAC,EAAE,EAEhClG,gBAAc,kBAMZ,EASDwG,EAAiBjD,GAE1BjF,IAAAA,cAACwH,EAAO,KACNxH,IAAAA,cAACmI,EAAAA,EAAO,CAACxH,QAAQ,UAChBsE,EAAM/D,KAAOlB,IAAAA,cAACwC,EAAAA,GAAI,KAAEyC,EAAM/D,MAAelB,IAAAA,cAACwC,EAAAA,GAAI,8BAcxC4F,EAAYnD,IACvB,MAAM,YAAEoD,EAAW,mBAAET,EAAkB,MAAEU,EAAK,SAAEC,EAAQ,MAAEC,EAAK,cAAEC,GAAkBxD,EAEnF,OACEjF,IAAAA,cAACwH,EAAO,KACNxH,IAAAA,cAACyB,EAAAA,EAAS,CACRW,OAAQC,EAAAA,EAAgB4F,YACxB9F,KAAM,SACN6F,gBAAiB,cAEjBhI,IAAAA,cAAA,OAAK0I,MAAO,CAAEb,UAAW,SACvB7H,IAAAA,cAAC2I,EAAAA,EAAK,CAAChI,QAAQ,WAEjBX,IAAAA,cAACwC,EAAAA,GAAI,CAACE,WAAYC,EAAAA,eAAoBC,YAAaH,MAAI,EAACoF,UAAWC,EAAAA,EAAc7F,MAC9EqG,GAAe,sBAElBtI,IAAAA,cAACyB,EAAAA,EAAS,CACRW,OAAQC,EAAAA,EAAgB0F,UACxB5F,KAAM,SACN6F,gBAAiB,cAEjBhI,IAAAA,cAACwC,EAAAA,GAAI,CAACqF,UAAWC,EAAAA,EAAc7F,MAC5BsG,GAAqB,gFAGxBvI,IAAAA,cAAC4I,EAAAA,EAAiB,CAACC,IAAKC,EAAAA,GAAYC,MAClC/I,IAAAA,cAACyB,EAAAA,EAAS,CAACW,OAAQC,EAAAA,EAAgBE,UAAWJ,KAAM,UAClDnC,IAAAA,cAACC,EAAAA,EAAG,CACFK,IAAI,SACJC,SAAS,UACTL,QAAUC,IACRA,EAAE4C,iBACFsF,EAAYlI,GACZyH,EAAmB,CAAC,EAAG,CAAC,EAAG,CAAC,EAAE,EAEhClG,gBAAc,iBAId+G,EAAgB,KAChBD,EACExI,IAAAA,cAACC,EAAAA,EAAG,CACFK,IAAI,IACJC,SAAS,YACTQ,KAAK,oCACLW,gBAAc,kBAKhB1B,IAAAA,cAACC,EAAAA,EAAG,CACFK,IAAI,SACJC,SAAS,YACTL,QAAUC,IACRA,EAAE4C,iBACF6E,EAAmB,CAAC,EAAG,CAAC,EAAG,CAAC,EAAE,EAEhClG,gBAAc,yBAQxB1B,IAAAA,cAAC4I,EAAAA,EAAiB,CAACI,IAAKF,EAAAA,GAAYC,MAClC/I,IAAAA,cAACyB,EAAAA,EAAS,CAACW,OAAQC,EAAAA,EAAgBE,UAAWyF,gBAAiB,cAC7DhI,IAAAA,cAACC,EAAAA,EAAG,CACFK,IAAI,SACJC,SAAS,UACTL,QAAUC,IACRA,EAAE4C,iBACFsF,EAAYlI,GACZyH,EAAmB,CAAC,EAAG,CAAC,EAAG,CAAC,EAAE,GAC/B,cAIDa,EAAgB,KAChBD,EACExI,IAAAA,cAAA,OAAK0I,MAAO,CAACO,WAAW,SACtBjJ,IAAAA,cAACC,EAAAA,EAAG,CACFK,IAAI,IACJC,SAAS,YACTQ,KAAK,oCACLW,gBAAc,mBAMlB1B,IAAAA,cAAA,OAAK0I,MAAO,CAACO,WAAW,SACtBjJ,IAAAA,cAACC,EAAAA,EAAG,CACFK,IAAI,SACJC,SAAS,YACTL,QAAUC,IACRA,EAAE4C,iBACF6E,EAAmB,CAAC,EAAG,CAAC,EAAG,CAAC,EAAE,GAC/B,yBAYT,EASDsB,EAAsBjE,IACjC,MAAM,YAAEoD,EAAW,mBAAET,GAAuB3C,GACrCkE,EAAWC,IAAgBnI,EAAAA,EAAAA,WAAS,GACrCG,GAAkCC,EAAAA,EAAAA,MAClCkF,GAAWC,EAAAA,EAAAA,MACX6C,GAASC,EAAAA,EAAAA,wBAERC,EAAKC,IAAUvI,EAAAA,EAAAA,UAAS,OACxBwI,EAAeC,IAAoBzI,EAAAA,EAAAA,UAAS,OAC5CnL,EAAM6T,IAAW1I,EAAAA,EAAAA,UAAS,OAC1B2I,EAAeC,IAAoB5I,EAAAA,EAAAA,UAAS,OAC7C,QAAE6I,GAAkC1I,EAAME,WAAWlJ,SAASqB,QAEpE8H,EAAAA,EAAAA,YAAU,KACR,MAAM,cAAEwI,GAAkB3I,EAAME,WAAWmE,SAC3C,IAAI,KAAEuE,EAAI,OAAE1V,GAAgD8M,EAAME,WAAWlJ,SAASqB,OAEtF2P,EAAaW,GACb,MAAM,cAAEN,IAAkBQ,EAAAA,EAAAA,qBAAoBD,EAAKE,MAEnDV,GAAOW,EAAAA,EAAAA,4BAA2BH,EAAKE,OACvCR,EAAiBD,EAAc/L,eAC/BiM,EAAQrV,EAAOwB,MACf+T,EAAiBG,EAAK,GACrB,IAEH,MAAMI,GAAkBC,EAAAA,EAAAA,cAAY,KAClC,IAAI,KAAEL,GAAyB5I,EAAME,WAAWlJ,SAASqB,OAEzD,MAAM6Q,EAAYC,EAAaP,EAAKE,MAEpC,OAAOI,GAAwB,IAAI,GAClC,IAEGC,EAAgBL,IACpB,MAAMM,GAAaC,EAAAA,EAAAA,kBAAiBP,GAEpC,OADwBM,EAAWE,OAAO,GAAGC,cAAgBH,EAAWI,MAAM,IACvDlT,QAAQ,IAAK,WAAWxD,OAAO,IAAI,EAkB5D,OACE8L,IAAAA,cAACwH,EAAO,KACNxH,IAAAA,cAACyB,EAAAA,EAAS,CACRW,OAAQC,EAAAA,EAAgBE,UACxBJ,KAAM,SACN6F,gBAAiB,cAEjBhI,IAAAA,cAACwC,EAAAA,GAAI,CAACE,WAAYC,EAAAA,eAAoBC,YAAaiF,UAAWC,EAAAA,EAAc7F,MAC1EjC,IAAAA,cAACwC,EAAAA,GAAI,CAACC,MAAI,yCAA0C,UAAQ,IAC5DzC,IAAAA,cAAA,QAAM0I,MAAO,CAAEmC,cAAe,cAAgBT,MAEhDpK,IAAAA,cAACyB,EAAAA,EAAS,CACRW,OAAQC,EAAAA,EAAgB0F,UACxB5F,KAAM,SACN6F,gBAAiB,cAEjBhI,IAAAA,cAACwC,EAAAA,GAAI,CAACqF,UAAWC,EAAAA,EAAc7F,MAAI,gBACpBjC,IAAAA,cAAA,QAAM0I,MAAO,CAAEmC,cAAe,eAAiB/U,GAAY,wDACrDyT,EAAG,WAAUE,EAAa,KAE/CzJ,IAAAA,cAACyH,EAAU,CAACF,UAAU,aACpBvH,IAAAA,cAACC,EAAAA,EAAG,CACFK,IAAI,SACJC,SAAS,UACTL,QAAStM,UACPuM,EAAE4C,sBAxCQnP,WACtB,IAAI,KAAEoW,EAAI,OAAE1V,GAAgD8M,EAAME,WAAWlJ,SAASqB,OACtFnF,EAAS,IACJA,EACHwW,QAAS,IACJxW,EAAOwW,QACVC,cAAc,IAGlB,MAAM,cAAEtB,EAAa,IAAEF,IAAQU,EAAAA,EAAAA,qBAAoBD,EAAKE,OAChDF,KAAMgB,EAAO,SAAEC,IAAaC,EAAAA,EAAAA,4BAA2BzB,EAAeF,GAC9EhD,EAAS,CAAEnQ,KAAM,gBAAiB8Q,QAAS,CAAE8C,KAAMgB,EAASC,WAAU3W,YAEtE+T,EAAYlI,EAAE,EA4BIgL,CAAgBhL,GACtByH,EAAmB,CAAC,EAAG,CAAC,EAAG,CAAC,EAAE,EAEhClG,gBAAc,8BAKK,yBAAnB2H,EAAO+B,QAAqC,KAC1CpL,IAAAA,cAAA,OAAK0I,MAAO,CAACO,WAAW,SACtBjJ,IAAAA,cAACC,EAAAA,EAAG,CACFK,IAAI,SACJC,SAAS,YACTL,QAAUC,IACRA,EAAE4C,iBACF6E,EAAmB,CAAC,EAAG,CAAC,EAAG,CAAC,EAAE,EAEhClG,gBAAc,gCAUpB,E,QC7Ud,MAAM2J,EAAiB3G,EAAAA,GAAOC,IAAGC,IAAAA,GAAAC,EAAAA,EAAAA,GAAA,gCAI3ByG,EAAY5G,EAAAA,GAAO6G,KAAIzG,IAAAA,GAAAD,EAAAA,EAAAA,GAAA,6BAQhB2G,GAAoCvG,IAC/C,MAAM,UAAEwG,EAAS,YAAEC,IAAgBxH,EAAAA,EAAAA,KAAab,GAAwBA,EAAMoC,WAC9E,OACEzF,IAAAA,cAACqL,EAAc,KACbrL,IAAAA,cAACyB,EAAAA,EAAS,CAACW,OAAQC,EAAAA,EAAgBC,UAAWH,KAAM,SAClDnC,IAAAA,cAACwC,EAAAA,GAAI,CAACC,MAAI,EAACC,WAAYC,EAAAA,eAAoBE,SACzC7C,IAAAA,cAACsL,EAAS,mCAEZtL,IAAAA,cAACwC,EAAAA,GAAI,CAACE,WAAYC,EAAAA,eAAoBgJ,SACpC3L,IAAAA,cAACsL,EAAS,0hBASZtL,IAAAA,cAACwC,EAAAA,GAAI,CAACE,WAAYC,EAAAA,eAAoBgJ,SACpC3L,IAAAA,cAACsL,EAAS,yUAIoC,IAC5CtL,IAAAA,cAACC,EAAAA,EAAG,CAACK,IAAI,IAAIS,KAAK,uCAAuCoG,OAAO,SAAS5G,SAAS,YAChFP,IAAAA,cAAA,2CACI,MAIVA,IAAAA,cAACwC,EAAAA,GAAI,CAACE,WAAYC,EAAAA,eAAoBgJ,SACpC3L,IAAAA,cAACsL,EAAS,uDACwC,IAChDtL,IAAAA,cAACC,EAAAA,EAAG,CACFK,IAAI,IACJS,KAAK,0EACLoG,OAAO,SACP5G,SAAS,YAETP,IAAAA,cAAA,oCACI,MAITiF,EAAM2G,iBACL5L,IAAAA,cAACwC,EAAAA,GAAI,CAACqJ,YAAU,EAACnJ,WAAYC,EAAAA,eAAoBgJ,SAC/C3L,IAAAA,cAACsL,EAAS,oBACK,IACbtL,IAAAA,cAACC,EAAAA,EAAG,CAACK,IAAI,IAAIS,KApDC,sEAoD0BoG,OAAO,SAAS5G,SAAS,YAC/DP,IAAAA,cAAA,2BACK,IAAG,qBAIZ,MAES,E,yCC/DrB,MAAM8L,GAAcpH,EAAAA,GAAOC,IAAGC,KAAAA,IAAAC,EAAAA,EAAAA,GAAA,8LAexBwG,GAAiB3G,EAAAA,GAAOC,IAAGG,KAAAA,IAAAD,EAAAA,EAAAA,GAAA,mDAK3BkH,GAAkBrH,EAAAA,GAAOC,IAAGK,KAAAA,IAAAH,EAAAA,EAAAA,GAAA,qGAO5BmH,GAActH,EAAAA,GAAOC,IAAGQ,KAAAA,IAAAN,EAAAA,EAAAA,GAAA,mCAQxBoH,GAAcvH,EAAAA,GAAOC,IAAGS,KAAAA,IAAAP,EAAAA,EAAAA,GAAA,kFAIjBI,GAAgC,SAArBA,EAAMiH,WAAwB,UAAY,YAKrDC,GAAYtL,IAA8C,IAA7C,MAAEyH,EAAK,QAAEpI,EAAO,WAAEgM,EAAU,KAAEpW,GAAW+K,EACjE,MAAOuL,EAAcC,IAAmBpL,EAAAA,EAAAA,UAAiB,OACnD,SAAE0C,EAAQ,SAAE2I,EAAQ,OAAE1I,IAAWC,EAAAA,EAAAA,OAChC0I,EAAYC,IAAiBvL,EAAAA,EAAAA,UAAS,MACvCwL,EAAYF,GAAwBA,EAAa,UAAY,eAC7DnR,GAAgBgJ,EAAAA,EAAAA,MAChBmC,GAAWC,EAAAA,EAAAA,MAiBjB,OAfAjF,EAAAA,EAAAA,YAAU,KACRgF,EAAS,CAAEnQ,KAAM,gBAAiB8Q,QAAS,CAAE,CAACpR,GAAO2W,EAASF,KAAgB,GAC7E,CAACA,KAEJhL,EAAAA,EAAAA,YAAU,MACPnG,GAAiBoR,GAAc,EAAM,GACrC,IAUDxM,IAAAA,cAACgM,GAAW,KACVhM,IAAAA,cAACqL,GAAc,KACbrL,IAAAA,cAAC+L,GAAe,KACd/L,IAAAA,cAACwC,EAAAA,GAAI,CAACE,WAAYC,EAAAA,eAAoBE,SAAUyF,GAChDtI,IAAAA,cAACiM,GAAW,CAAC/L,QAASA,EAASgM,WAAYA,GACzClM,IAAAA,cAAC0M,GAAAA,EAAI,SAIVtR,EACC4E,IAAAA,cAAC8L,GAAW,KAERa,EAAAA,SAASC,KAAI,CAACC,EAAwBC,IACpC9M,IAAAA,cAACC,EAAAA,EAAG,CACFnK,KAAMA,EACNwK,IAAI,SACJC,SAAU6L,IAAiBS,EAAIlG,MAAQ,UAAY,YACnDoG,IAAMA,IACJpJ,EAASoJ,EAAK,CAAEjG,UAAU,GAAO,EAEnC5G,QACGC,IACCA,EAAE4C,iBA9BpB,SAA2B4D,EAAe7Q,GACxC,MAAMiR,EAAkB,OAAVJ,EAAiB,UAAY,aAC3C0F,EAAgB1F,GAChBJ,EAAS,CAAEnQ,KAAM,gBAAiB8Q,QAAS,CAAE,CAACpR,GAAOiR,KACrDuF,EAASxW,EAAMiR,EACjB,CA0BkBiG,CAAkBH,EAAIlG,MAAO7Q,EAAK,EAGtC0K,KAAM,SAELqM,EAAIlG,SAIV/C,EAAO9N,GAAQkK,IAAAA,cAACsH,GAAAA,GAAU,CAACC,UAAU,eAAa,6BAA0C,MAG/FvH,IAAAA,cAAC8L,GAAW,KACV9L,IAAAA,cAACiN,GAAAA,GAAY,CAACC,YAAaV,EAAeD,WAAYA,IACtDvM,IAAAA,cAACwC,EAAAA,GAAI,CAAC2K,MAAOC,EAAAA,GAAeC,SAAUd,EAAa,WAAa,YAGxD,E,UChHlB,MAAMlB,GAAiB3G,EAAAA,GAAOC,IAAGC,KAAAA,IAAAC,EAAAA,EAAAA,GAAA,gCAI3ByG,GAAY5G,EAAAA,GAAO6G,KAAIzG,KAAAA,IAAAD,EAAAA,EAAAA,GAAA,6BAWhByI,GAAWrI,IACAb,EAAAA,EAAAA,MACCpE,IAAAA,cAACuN,GAAkB,MAAMvN,IAAAA,cAACwN,GAAeC,OAAAC,OAAA,GAAKzI,IAGjEuI,GAAmBvI,IACvB,MAAM,UAAEwG,EAAS,YAAEC,IAAgBxH,EAAAA,EAAAA,KAAab,GAAwBA,EAAMoC,WAC9E,OACEzF,IAAAA,cAACqL,GAAc,KACZK,GAA4B,KAC5BD,EAAY,KACXzL,IAAAA,cAACyB,EAAAA,EAAS,CAACW,OAAQC,EAAAA,EAAgBC,UAAWH,KAAM,UAClDnC,IAAAA,cAACwC,EAAAA,GAAI,CAACC,MAAI,EAACC,WAAYC,EAAAA,eAAoBE,SACzC7C,IAAAA,cAACsL,GAAS,mCAEZtL,IAAAA,cAACwC,EAAAA,GAAI,CAACE,WAAYC,EAAAA,eAAoBgJ,SACpC3L,IAAAA,cAACsL,GAAS,wmBAKoH,IAC5HtL,IAAAA,cAACC,EAAAA,EAAG,CAACK,IAAI,IAAIS,KAAK,uCAAuCoG,OAAO,SAAS5G,SAAS,YAChFP,IAAAA,cAAA,2CACI,MAIVA,IAAAA,cAACwC,EAAAA,GAAI,CAACE,WAAYC,EAAAA,eAAoBgJ,SACpC3L,IAAAA,cAACsL,GAAS,8FAC6E,IACrFtL,IAAAA,cAACC,EAAAA,EAAG,CACFK,IAAI,IACJS,KAAK,0EACLoG,OAAO,SACP5G,SAAS,YAETP,IAAAA,cAAA,oCACI,OAMC,EAGfuN,GAAsBtI,IAC1B,MAAM,UAAEwG,IAAcvH,EAAAA,EAAAA,KAAab,GAAwBA,EAAMoC,WACjE,OACEzF,IAAAA,cAACqL,GAAc,KACZI,EAAY,KACXzL,IAAAA,cAACyB,EAAAA,EAAS,CAACW,OAAQC,EAAAA,EAAgBC,UAAWH,KAAM,UAClDnC,IAAAA,cAACwC,EAAAA,GAAI,CAACC,MAAI,EAACC,WAAYC,EAAAA,eAAoBE,SACzC7C,IAAAA,cAACsL,GAAS,mCAEZtL,IAAAA,cAACwC,EAAAA,GAAI,CAACE,WAAYC,EAAAA,eAAoBgJ,SACpC3L,IAAAA,cAACsL,GAAS,ocAImG,IAC3GtL,IAAAA,cAACC,EAAAA,EAAG,CAACK,IAAI,IAAIS,KAAK,mDAAmDoG,OAAO,SAAS5G,SAAS,YAC5FP,IAAAA,cAAA,uDACI,MAIVA,IAAAA,cAACwC,EAAAA,GAAI,CAACE,WAAYC,EAAAA,eAAoBgJ,SACpC3L,IAAAA,cAACsL,GAAS,8FAC6E,IACrFtL,IAAAA,cAACC,EAAAA,EAAG,CACFK,IAAI,IACJS,KAAK,mFACLoG,OAAO,SACP5G,SAAS,YAETP,IAAAA,cAAA,oCACI,OAMC,E,UCrGrB,MAAM2N,GAAgBjJ,EAAAA,GAAO6G,KAAI3G,KAAAA,IAAAC,EAAAA,EAAAA,GAAA,2CAa3BgB,GAAUnB,EAAAA,GAAOC,IAAGG,KAAAA,IAAAD,EAAAA,EAAAA,GAAA,uDACRI,GAAWA,EAAM2I,UAAY,KAAO,SACjC3I,GAAWA,EAAM2I,UAAY,KAAO,SAG5CC,GAAuB5I,IACZb,EAAAA,EAAAA,MAECpE,IAAAA,cAAC8N,GAA8BL,OAAAC,OAAA,GAAKzI,IAAYjF,IAAAA,cAAC+N,GAA2BN,OAAAC,OAAA,GAAKzI,IAEpG8I,GAA+B9I,GAEjCjF,IAAAA,cAAC6F,GAAO,CAAC+H,UAAW3I,EAAM2I,WACxB5N,IAAAA,cAACyB,EAAAA,EAAS,CAACW,OAAQC,EAAAA,EAAgBS,UAAWX,KAAM,UACjD8C,EAAMqD,MACLtI,IAAAA,cAACwC,EAAAA,GAAI,CAACC,MAAI,EAACoJ,YAAU,EAACnJ,WAAYC,EAAAA,eAAoBE,SAAO,6BAG3D,KAEJ7C,IAAAA,cAACwC,EAAAA,GAAI,CAACqJ,YAAU,EAACnJ,WAAYC,EAAAA,eAAoBgJ,SAC7C1G,EAAM+I,UASNhO,IAAAA,cAAAA,IAAAA,SAAA,gdAG8H,KAX9HA,IAAAA,cAAAA,IAAAA,SAAA,wmBAK8H,KAShIA,IAAAA,cAAC2N,GAAa,KACZ3N,IAAAA,cAACC,EAAAA,EAAG,CAACK,IAAI,IAAIS,KAAK,uCAAuCoG,OAAO,SAAS5G,SAAS,YAChFP,IAAAA,cAAA,4CAEY,KAGlBA,IAAAA,cAACwC,EAAAA,GAAI,CAACqJ,YAAU,EAACnJ,WAAYC,EAAAA,eAAoBgJ,SAAO,yFACiC,IACvF3L,IAAAA,cAAC2N,GAAa,KACZ3N,IAAAA,cAACC,EAAAA,EAAG,CACFK,IAAI,IACJS,KAAK,0EACLoG,OAAO,SACP5G,SAAS,YAETP,IAAAA,cAAA,qCAEY,KAGjBiF,EAAM2G,iBACL5L,IAAAA,cAACwC,EAAAA,GAAI,CAACqJ,YAAU,EAACnJ,WAAYC,EAAAA,eAAoBgJ,SAAO,eACzC,IACb3L,IAAAA,cAAC2N,GAAa,KACZ3N,IAAAA,cAACC,EAAAA,EAAG,CACFK,IAAI,IACJS,KACEkE,EAAMgJ,iBACFhJ,EAAMgJ,iBACN,8EAEN9G,OAAO,SACP5G,SAAS,YAETP,IAAAA,cAAA,4BAEa,IAAG,oBAGpB,OAKN8N,GAAkC7I,GAEpCjF,IAAAA,cAAC6F,GAAO,CAAC+H,UAAW3I,EAAM2I,WACxB5N,IAAAA,cAACyB,EAAAA,EAAS,CAACW,OAAQC,EAAAA,EAAgBS,UAAWX,KAAM,UACjD8C,EAAMqD,MACLtI,IAAAA,cAACwC,EAAAA,GAAI,CAACC,MAAI,EAACoJ,YAAU,EAACnJ,WAAYC,EAAAA,eAAoBE,SAAO,6BAG3D,KAEJ7C,IAAAA,cAACwC,EAAAA,GAAI,CAACqJ,YAAU,EAACnJ,WAAYC,EAAAA,eAAoBgJ,SAAO,+bAIuD,IAC7G3L,IAAAA,cAAC2N,GAAa,KACZ3N,IAAAA,cAACC,EAAAA,EAAG,CAACK,IAAI,IAAIS,KAAK,mDAAmDoG,OAAO,SAAS5G,SAAS,YAC5FP,IAAAA,cAAA,wDAEY,KAGlBA,IAAAA,cAACwC,EAAAA,GAAI,CAACqJ,YAAU,EAACnJ,WAAYC,EAAAA,eAAoBgJ,SAAO,yFACiC,IACvF3L,IAAAA,cAAC2N,GAAa,KACZ3N,IAAAA,cAACC,EAAAA,EAAG,CACFK,IAAI,IACJS,KAAK,mFACLoG,OAAO,SACP5G,SAAS,YAETP,IAAAA,cAAA,qCAEY,OAwCbkO,GAAiBjJ,GAE1BjF,IAAAA,cAAC6F,GAAO,CAAC+H,UAAW3I,EAAM2I,WACxB5N,IAAAA,cAACyB,EAAAA,EAAS,CAACW,OAAQC,EAAAA,EAAgBS,UAAWX,KAAM,UACjD8C,EAAMqD,MACLtI,IAAAA,cAACwC,EAAAA,GAAI,CAACC,MAAI,EAACoJ,YAAU,EAACnJ,WAAYC,EAAAA,eAAoBE,SAAO,6BAG3D,KACJ7C,IAAAA,cAACwC,EAAAA,GAAI,CAACqJ,YAAU,EAACnJ,WAAYC,EAAAA,eAAoBgJ,SAAO,4cAKxD3L,IAAAA,cAACwC,EAAAA,GAAI,CAACqJ,YAAU,EAACnJ,WAAYC,EAAAA,eAAoBgJ,SAAO,+DACO,IAC7D3L,IAAAA,cAAC2N,GAAa,KACZ3N,IAAAA,cAACC,EAAAA,EAAG,CACFK,IAAI,IACJS,KAAK,qJACLoG,OAAO,SACP5G,SAAS,YAETP,IAAAA,cAAA,mBAEY,OCjMpB,SAAUmO,GAAiBlJ,GAG/B,OAFsBb,EAAAA,EAAAA,MAECpE,IAAAA,cAACoO,GAA2BX,OAAAC,OAAA,GAAKzI,IAAYjF,IAAAA,cAACqO,GAAwBZ,OAAAC,OAAA,GAAKzI,GACpG,CCGA,MAkBMqJ,GAAeC,GACZA,EACH,sJACA,yHAGAC,GAAeD,GACZA,EACLvO,IAAAA,cAACwC,EAAAA,GAAI,CAACE,WAAYC,EAAAA,eAAoBE,SAAO,gNAEwD,IACnG7C,IAAAA,cAAA,QAAM0I,MAAO,CAAE+F,WAAY,WAAU,gBACtBzO,IAAAA,cAAA,OAAK0I,MAAO,CAAE9G,IAAK,OAAQ8M,SAAU,SAAQ,OAI9D1O,IAAAA,cAACwC,EAAAA,GAAI,CAACE,WAAYC,EAAAA,eAAoBE,SAAO,mLAEuB,IAClE7C,IAAAA,cAAA,QAAM0I,MAAO,CAAE+F,WAAY,WAAU,gBACtBzO,IAAAA,cAAA,OAAK0I,MAAO,CAAE9G,IAAK,OAAQ8M,SAAU,SAAQ,OAYrDN,GAA8BvN,IAAiD,IAAhD,MAAEyH,EAAK,WAAE4D,GAAmCrL,EACtF,MAAMO,GAAQC,EAAAA,EAAAA,MACRsN,GAAWC,EAAAA,EAAAA,kBACXC,EAA6C,aAAtBF,aAAQ,EAARA,EAAUG,UAEjC,SAAEtN,EAAQ,eAAEuN,GAAmB3N,EAAME,WAAWlJ,SAASqB,OACzDyJ,GAAe8L,EAAAA,EAAAA,sBAAqB,iBACpC/L,GAAMgM,EAAAA,EAAAA,4BAENC,EAAiB1N,GACD,kBAAbA,GAA6C,gBAAbA,EAGnC2N,EAAkBA,CACtBC,EACAC,KArBgBd,MA6BhB,OANcrL,EAAaC,eACzBkM,EACA,CAAEC,KAAc,QAARF,GAzBMb,GAyBqB,EAxBhCA,EACH,uzBACA,+GAsB2CD,IAAY,IACvD,CAAE9N,KAAM+C,EAAAA,GAAiBgM,EAAG9L,eAAe,GAGjC,EAGR+L,EAAaA,CAACnM,EAAwCvC,IAExDd,IAAAA,cAACsD,EAAAA,oBAAmB,CAAClC,MAAOA,EAAO6B,IAAKA,GACtCjD,IAAAA,cAACyB,EAAAA,EAAS,CAACU,KAAM,SAAUR,QAASE,EAAAA,EAAiB4N,WACnDzP,IAAAA,cAACyB,EAAAA,EAAS,CACRW,OAAQC,EAAAA,EAAgBC,UACxBX,QAAS,CAAEK,OAAQH,EAAAA,EAAiBiB,WACpCX,KAAM,UAENnC,IAAAA,cAACwC,EAAAA,GAAI,KACHxC,IAAAA,cAAA,QAAM0P,wBAAyB,CAAEC,OAAQtM,EAAMiM,UAGnDtP,IAAAA,cAACC,EAAAA,EAAG,CACFK,IAAI,SACJC,SAAS,UACTL,QAAUC,IACRA,EAAE4C,iBACFjC,EAAM,CAAC,EAAG,CAAC,EAAG,CAAC,EAAE,EAEnBN,KAAM,SAAO,eASvB,OACER,IAAAA,cAAA,OAAK0I,MAAO,CAAEkH,WAAY,SACtBf,EAkCA7O,IAAAA,cAAAA,IAAAA,SAAA,KACGsI,GACCtI,IAAAA,cAAA,OAAK0I,MAAO,CAAEmH,cAAe,SAC3B7P,IAAAA,cAACwC,EAAAA,GAAI,CAACE,WAAYC,EAAAA,eAAoBC,aACpC5C,IAAAA,cAACwC,EAAAA,GAAI,CAACC,MAAI,aAAc,mBArChCzC,IAAAA,cAAAA,IAAAA,SAAA,KACGsI,GACCtI,IAAAA,cAAAA,IAAAA,SAAA,KACEA,IAAAA,cAAC4I,EAAAA,EAAiB,CAACC,IAAKC,EAAAA,GAAYgH,OAClC9P,IAAAA,cAAA,OAAK0I,MAAO,CAAEmH,cAAe,SAC3B7P,IAAAA,cAACwC,EAAAA,GAAI,CAACE,WAAYC,EAAAA,eAAoBC,aAAW,UACxC5C,IAAAA,cAACwC,EAAAA,GAAI,CAACC,MAAI,2BAIvBzC,IAAAA,cAAC4I,EAAAA,EAAiB,CAACI,IAAKF,EAAAA,GAAYgH,OAClC9P,IAAAA,cAAA,OAAK0I,MAAO,CAAEmH,cAAe,SAC3B7P,IAAAA,cAACwC,EAAAA,GAAI,CAACE,WAAYC,EAAAA,eAAoBC,aAAW,UACxC5C,IAAAA,cAACwC,EAAAA,GAAI,CAACC,MAAI,4BAM3BzC,IAAAA,cAACmM,GAAS,CACR7D,OAhIUiG,EAgIUW,EAAc1N,GA/HrC+M,EACLvO,IAAAA,cAACwC,EAAAA,GAAI,CAACE,WAAYC,EAAAA,eAAoBE,SAAO,yFAC4C,IACvF7C,IAAAA,cAAA,QAAM0I,MAAO,CAAE+F,WAAY,WAAU,SAC7BzO,IAAAA,cAAA,OAAK0I,MAAO,CAAE9G,IAAK,OAAQ8M,SAAU,SAAQ,OAIvD1O,IAAAA,cAACwC,EAAAA,GAAI,CAACE,WAAYC,EAAAA,eAAoBE,SAAO,iDACI,IAC/C7C,IAAAA,cAAA,QAAM0I,MAAO,CAAE+F,WAAY,WAAU,cACxBzO,IAAAA,cAAA,OAAK0I,MAAO,CAAE9G,IAAK,OAAQ8M,SAAU,SAAQ,QAqHpDxO,QAASA,IAAMiP,EAAgB,OAAQK,GACvCtD,WAAYA,EACZpW,KAAK,SAEPkK,IAAAA,cAACmM,GAAS,CACR7D,MAAOkG,GAAYU,EAAc1N,IACjCtB,QAASA,IAAMiP,EAAgB,MAAOK,GACtCtD,WAAYA,EACZpW,KAAK,UAzIKyY,KAuJZ,ECvJJwB,GAAkB,CACtBC,KAAM,CACJ1H,MAAO,2BACPgH,KAAM,wcAERW,IAAK,CACH3H,MAAO,6BACPgH,KAAM,mPAIJY,GAAkB,CACtBF,KAAM,6DACNC,IAAK,kMAGM5B,GAA2BxN,IAAiD,IAAhD,MAAEyH,EAAK,WAAE4D,GAAmCrL,EACnF,MAAMO,GAAQC,EAAAA,EAAAA,MACRsN,GAAWC,EAAAA,EAAAA,MACXC,EAA6C,aAAtBF,aAAQ,EAARA,EAAUG,UAEjC,SAAEtN,EAAQ,eAAEuN,GAAmB3N,EAAME,WAAWlJ,SAASqB,OACzD0W,EAAqC,SAAnBpB,GAA6BvN,EAAShI,SAAS,SACjEyJ,GAAMgM,EAAAA,EAAAA,4BACN/L,GAAe8L,EAAAA,EAAAA,sBAAqB,iBAEpCoB,EAAqBhB,GAAgBc,GAAgBd,GAErDD,EAAkBA,CACtBC,EACAC,IAEcnM,EAAaC,eACzBkM,EACA,IAAKU,GAAgBX,IACrB,CAAE5O,KAAM+C,EAAAA,GAAiBgM,EAAG9L,eAAe,IAMzC+L,EAAaA,CAACnM,EAAwCvC,IAExDd,IAAAA,cAACsD,EAAAA,oBAAmB,CAAClC,MAAOA,EAAO6B,IAAKA,GACtCjD,IAAAA,cAACyB,EAAAA,EAAS,CAACU,KAAM,SAAUR,QAASE,EAAAA,EAAiB4N,WACnDzP,IAAAA,cAACyB,EAAAA,EAAS,CACRW,OAAQC,EAAAA,EAAgBC,UACxBX,QAAS,CAAEK,OAAQH,EAAAA,EAAiBiB,WACpCX,KAAM,UAENnC,IAAAA,cAACwC,EAAAA,GAAI,CAACC,MAAI,GAAEY,EAAMiF,OAClBtI,IAAAA,cAACwC,EAAAA,GAAI,KAAEa,EAAMiM,OAEftP,IAAAA,cAACC,EAAAA,EAAG,CACFK,IAAI,SACJC,SAAS,UACTL,QAAUC,IACRA,EAAE4C,iBACFjC,EAAM,CAAC,EAAG,CAAC,EAAG,CAAC,EAAE,EAEnBN,KAAM,SAAO,eASvB,OACER,IAAAA,cAAA,OAAK0I,MAAO,CAAEkH,WAAY,SACtBf,EAkCA7O,IAAAA,cAAAA,IAAAA,SAAA,KACGsI,IAAU6H,GACTnQ,IAAAA,cAAA,OAAK0I,MAAO,CAAEmH,cAAe,SAC3B7P,IAAAA,cAACwC,EAAAA,GAAI,CAACE,WAAYC,EAAAA,eAAoBC,aACpC5C,IAAAA,cAACwC,EAAAA,GAAI,CAACC,MAAI,aAAc,kBAI7B6F,GAAS6H,GACRnQ,IAAAA,cAAA,OAAK0I,MAAO,CAAEmH,cAAe,SAC3B7P,IAAAA,cAAC4I,EAAAA,EAAiB,CAACC,IAAKC,EAAAA,GAAYgH,OAClC9P,IAAAA,cAACwC,EAAAA,GAAI,CAACE,WAAYC,EAAAA,eAAoBC,aAAW,SACzC5C,IAAAA,cAACwC,EAAAA,GAAI,CAACC,MAAI,wBAGpBzC,IAAAA,cAAC4I,EAAAA,EAAiB,CAACI,IAAKF,EAAAA,GAAYgH,OAClC9P,IAAAA,cAACwC,EAAAA,GAAI,CAACE,WAAYC,EAAAA,eAAoBC,aAAW,SACzC5C,IAAAA,cAACwC,EAAAA,GAAI,CAACC,MAAI,0BAlD1BzC,IAAAA,cAAAA,IAAAA,SAAA,KACGsI,GACCtI,IAAAA,cAAAA,IAAAA,SAAA,KACEA,IAAAA,cAAC4I,EAAAA,EAAiB,CAACC,IAAKC,EAAAA,GAAYgH,OAClC9P,IAAAA,cAAA,OAAK0I,MAAO,CAAEmH,cAAe,SAC3B7P,IAAAA,cAACwC,EAAAA,GAAI,CAACE,WAAYC,EAAAA,eAAoBC,YAAaH,MAAI,wBAK3DzC,IAAAA,cAAC4I,EAAAA,EAAiB,CAACI,IAAKF,EAAAA,GAAYgH,OAClC9P,IAAAA,cAAA,OAAK0I,MAAO,CAAEmH,cAAe,SAC3B7P,IAAAA,cAACwC,EAAAA,GAAI,CAACE,WAAYC,EAAAA,eAAoBC,YAAaH,MAAI,yBAO/DzC,IAAAA,cAACmM,GAAS,CACR7D,MAAO8H,EAAkB,QACzBlQ,QAASA,IAAMiP,EAAgB,OAAQK,GACvCtD,WAAYA,EACZpW,KAAK,SAEPkK,IAAAA,cAACmM,GAAS,CACR7D,MAAO8H,EAAkB,OACzBlQ,QAASA,IAAMiP,EAAgB,MAAOK,GACtCtD,WAAYA,EACZpW,KAAK,SA4BP,E,4ECtIV,MAAMgW,GAAcpH,EAAAA,GAAOC,IAAGC,KAAAA,IAAAC,EAAAA,EAAAA,GAAA,mOAkBxBwL,GAAoB3L,EAAAA,GAAOC,IAAGG,KAAAA,IAAAD,EAAAA,EAAAA,GAAA,kOACnBI,GAAgC,UAAtBA,EAAMqL,YAA0B,iBAAmB,WAI7DrL,GAAUA,EAAMqL,cAIlBrL,GAAgC,UAAtBA,EAAMqL,YAA0B,OAAS,UAC/CrL,GAjBE,UAiB6BA,EAAMsL,SAhBzC,oEAEA,2EAqBTC,GAAY,CACdR,KAAM,CACF1H,MAAOtI,IAAAA,cAAAA,IAAAA,SAAA,6BAAuBA,IAAAA,cAACwC,EAAAA,GAAI,CAACC,MAAI,8CACxCgO,SAAU,2BACVvP,KAAM,ucACNT,KAAMiQ,MAEVT,IAAK,CACD3H,MAAOtI,IAAAA,cAAAA,IAAAA,SAAA,wDAAkDA,IAAAA,cAACwC,EAAAA,GAAI,CAACC,MAAI,sFAAuF,oEAC1JgO,SAAU,6BACVvP,KAAM,iPACNT,KAAMkQ,OAKDC,GAAmBC,IAC5B,MAAM,aAAEC,GAAiBD,GAClBzE,EAAcC,GAAmBrM,IAAAA,SAAe,KACjD,SAAE2D,EAAQ,SAAE2I,EAAQ,OAAE1I,IAAWC,EAAAA,EAAAA,MACjC0C,GAAWC,EAAAA,EAAAA,OACX,eAAEuK,IAAmBlR,EAAAA,EAAAA,sBACpByQ,EAAaU,GAAkBhR,IAAAA,SAAe,SAC/CiR,GAAiBC,EAAAA,GAAAA,OACjB,SAAEzL,IAAavB,EAAAA,EAAAA,KAAab,GAAwBA,KACpD,oBAAE8N,IAAwBtR,EAAAA,EAAAA,qBAEhCsR,GAAoB,GAEpB,MAAQnP,OAAQoP,EAAeC,kBAAmBC,IAA6BC,EAAAA,EAAAA,IAC3E,mCAGI3P,IAAK4P,EAAeH,kBAAmBI,IAC3CF,EAAAA,EAAAA,IAAyB,wBAE7BhQ,EAAAA,EAAAA,YAAU,KAEFyP,EADkB,OAAlBI,EACe,QACRA,GAAiBH,EAAiB,IAC1B,WAEA,Q,GAEpB,CAACO,EAAeJ,IAEnB,MAAMM,EAAiBA,KACnBD,IACAH,GAA0B,GAG9B/P,EAAAA,EAAAA,YAAU,KACNoQ,SAASC,iBAAiB,SAAUF,GAC7B,KACHC,SAASE,oBAAoB,SAAUH,EAAe,IAG3D,IAEH,MAAMI,EAAaA,IAEX9R,IAAAA,cAAAA,IAAAA,SAAA,KACIA,IAAAA,cAACC,EAAAA,EAAG,CACAK,IAAI,SACJC,SAAS,UACTL,QAAUC,IACNA,EAAE4C,iBACFiK,EAAkB,UAAW8D,EAAa,EAE9CiB,UAAU,WAAS,WAIvB/R,IAAAA,cAACC,EAAAA,EAAG,CACAK,IAAI,SACJC,SAAS,YACTL,QAAUC,IACNA,EAAE4C,iBACFiK,EAAkB,SAAU8D,EAAa,EAE7CiB,UAAU,UAAQ,UAItB/R,IAAAA,cAAA,SACI5J,KAAK,SACLN,KAAMgb,EACN/J,MAAOqF,EACPW,IAAKpJ,EAAS,CACVmD,SAAU,CACNC,OAAO,EACPrQ,QAAS,kBAQjC,SAASsW,EAAkBrG,EAAe7Q,GACtC,MAAMiR,EAAkB,YAAVJ,EAAsB,UAAY,eAChD0F,EAAgB1F,GAChBJ,EAAS,CAAEnQ,KAAM,gBAAiB8Q,QAAS,CAAE,CAAC4J,GAAe/J,KAE7DuF,EAASxW,EAAMiR,GACfgK,GACJ,CAEA,OACI/Q,IAAAA,cAAAA,IAAAA,SAAA,KACIA,IAAAA,cAACgS,GAAAA,GAAM,CACHC,yBAAuB,EACvBvP,WAAY,CACR,CAACoG,EAAAA,GAAYoJ,SAAU,CACnB,CAAEpc,KAAM,IAAKqc,QAAS,GACtB,CAAErc,KAAM,IAAKqc,QAAS,IACtB,CAAErc,KAAM,IAAKqc,QAAS,IAE1B,CAACrJ,EAAAA,GAAYgH,OAAQ,CACjB,CAAEha,KAAM,IAAKqc,QAAS,GACtB,CAAErc,KAAM,IAAKqc,QAAS,IACtB,CAAErc,KAAM,IAAKqc,QAAS,IAE1B,CAACrJ,EAAAA,GAAYsJ,OAAQ,CACjB,CAAEtc,KAAM,IAAKqc,QAAS,GACtB,CAAErc,KAAM,IAAKqc,QAAS,IACtB,CAAErc,KAAM,IAAKqc,QAAS,MAI9BnS,IAAAA,cAACyB,EAAAA,EAAS,CACNU,KAAM,SACN6F,gBAAiB,SACjB5F,OAAQC,EAAAA,EAAgBS,UACxBnB,QAAS,CAAEK,OAAQH,EAAAA,EAAiBwQ,YAIpCrS,IAAAA,cAAA,OAAK0I,MAAO,CAAEb,UAAW,SAAUyK,MAAO,SACtCtS,IAAAA,cAAA,OAAKuS,IAAK/B,GAAUM,GAAcrQ,KAAM+R,IAAI,UAEhDxS,IAAAA,cAACwC,EAAAA,GAAI,CAACqF,UAAWC,EAAAA,EAAc2K,OAAQ/P,WAAYC,EAAAA,eAAoBC,aAClE4N,GAAUM,GAAcxI,OAE7BtI,IAAAA,cAACwC,EAAAA,GAAI,CAACqF,UAAWC,EAAAA,EAAc2K,OAAQ/P,WAAYC,EAAAA,eAAoB+P,aACnE1S,IAAAA,cAACwC,EAAAA,GAAI,CAACC,MAAI,GAAE+N,GAAUM,GAAcL,WAExCzQ,IAAAA,cAACwC,EAAAA,GAAI,CAACqF,UAAWC,EAAAA,EAAc2K,OAAQ/P,WAAYC,EAAAA,eAAoBgJ,SAClE6E,GAAUM,GAAc5P,OAGjClB,IAAAA,cAAC4I,EAAAA,EAAiB,CAACI,IAAKF,EAAAA,GAAY6J,MAChC3S,IAAAA,cAAC8L,GAAW,KACPgG,MAGT9R,IAAAA,cAAC4I,EAAAA,EAAiB,CAACC,IAAKC,EAAAA,GAAY6J,MAChC3S,IAAAA,cAACqQ,GAAiB,CAACE,SAAU9K,EAAS8K,SAAUD,YAAaA,GACxDwB,OAId,E,OC7LQpN,EAAAA,GAAOC,IAAGC,KAAAA,IAAAC,EAAAA,EAAAA,GAAA,6G,eCKvB,SAAU+N,GAAc3N,GAC5B,MAAM,QAAE4N,EAAO,SAAEC,EAAQ,KAAEhd,EAAI,MAAE6Q,EAAK,kBAAEoM,EAAiB,kBAAEC,EAAiB,kBAAEC,EAAiB,SAAEnM,GAAa7B,GACxG,SAAEtB,EAAQ,SAAE2I,IAAazI,EAAAA,EAAAA,OACzB,eAAEkN,IAAmBlR,EAAAA,EAAAA,sBACpBqT,EAAYC,IAAiBlS,EAAAA,EAAAA,WAAS,IACtCmL,EAAcC,IAAmBpL,EAAAA,EAAAA,UAAS,KAOjDM,EAAAA,EAAAA,YAAU,KALWsH,MAMfkK,IANelK,EAMgBmK,EALvBrB,SAASyB,qBAAqB,YACtC,GAAGC,aAAa,YAAa,GAAFnf,OAAK2U,IAIiB,GACpD,KAEHtH,EAAAA,EAAAA,YAAU,KACJsR,GACFM,GAAc,E,GAEf,IAaH,OACEnT,IAAAA,cAACqL,GAAc,KACbrL,IAAAA,cAACyB,EAAAA,EAAS,CACRW,OAAQC,EAAAA,EAAgBiR,UACxBnR,KAAM,SACN6F,gBAAiB,cAEjBhI,IAAAA,cAAA,WACEA,IAAAA,cAACuT,GAAAA,GAAgB,CACf5M,MAAOA,GAAgB,iBACvB7Q,KAAMA,GAAc,iBACpBmR,SAAW9G,GAtBCA,KACpB,MAAMqT,EAAMrT,EAAEsT,cAAc1M,MAC5B5G,EAAE4C,iBACFsJ,EAAgBmH,IACXX,IAAYW,EAAI7W,QAAU,GAAa,KAAR6W,GAClCL,GAAc,GAEdA,GAAc,E,EAecO,CAAavT,GACnCuC,WAAYiR,GAAAA,GAAgBC,QAC5BhN,YAAU,EACVC,SAAUlD,EAAS,CACjBmD,SAAU,CACRC,MAAOD,IAAsB,EAC7BpQ,QAAS,MAGb2Q,UAAW2L,EACXa,iBAAkBf,GAAsB,oBAGxCG,EACEjT,IAAAA,cAACyB,EAAAA,EAAS,CAACE,QAAS,CAACC,IAAKC,EAAAA,EAAiBS,YACzCtC,IAAAA,cAACwC,EAAAA,GAAI,CAACE,WAAYC,EAAAA,eAAoBgJ,QAASE,YAAU,GACtDoH,IAGH,MAINJ,EAAU,KACR7S,IAAAA,cAAAA,IAAAA,SAAA,KACGkT,EACClT,IAAAA,cAAC8T,GAAAA,GAAW,CACVxT,IAAI,SACJxK,KAAMA,GAAc,iBACpB6Q,MAAOmM,GAAsB,kBAC7B1D,IAAK,GACLlP,QAAUC,IACRmM,EAAS,iBAAkB,IAC3ByE,EAAe5Q,EAAE,EAEnB0G,SAAUlD,EAAS,CACjBmD,SAAU,CACRC,MAAOD,IAAsB,EAC7BpQ,QAAS,QAKfsJ,IAAAA,cAAA,OAAK0I,MAAO,CAAEqL,OAAQ,YAQtC,C,kCC5G2BrP,EAAAA,GAAOC,IAAGC,KAAAA,IAAAC,EAAAA,EAAAA,GAAA,gqCA8CnBH,EAAAA,GAAOC,IAAGG,KAAAA,IAAAD,EAAAA,EAAAA,GAAA,0H,OC1C5B,MAAMmP,GAAoBtP,EAAAA,GAAOC,IAAGC,KAAAA,IAAAC,EAAAA,EAAAA,GAAA,6RAgB9B,SAAUoP,KACd,MAAMC,GAAiB9P,EAAAA,EAAAA,MACjB+P,EAAYD,EAAiB,IAAQ,IACrCE,EAAWF,EAAiB,IAAS,KACrCG,EAAgBH,EAAiB,EAAI,GACpCnN,EAAOuF,IAAYrL,EAAAA,EAAAA,UAAS,IAC5BqT,EAAcC,IAAmBtT,EAAAA,EAAAA,UAA4B,CAAC,EAAGkT,KACjEK,EAAiBC,IAAsBxT,EAAAA,EAAAA,UAAQ,SAAA/M,OAAkBwgB,EAAaP,GAAU,OACzF5N,GAAWC,EAAAA,EAAAA,OACX,eAAEuK,IAAmBlR,EAAAA,EAAAA,qBACrBC,GAAkBC,EAAAA,EAAAA,KAGxB,SAAS2U,EAAaC,GACpB,OAAOA,EAAIC,WAAWld,QAAQ,0BAA2B,MAC3D,CAuCA,OAlCA6J,EAAAA,EAAAA,YAAU,KACR,MACMsT,EADMV,EACWpN,EAAQoN,EACzBW,EAFMX,EAEYpN,EACxB,IAAIgO,EAEAD,EAAYV,GACdW,EAAcb,EAAiB,mBAAqB,mBACpDK,EAAgB,CAACM,EAAUC,MAE3BC,EAAc,GAAH7gB,OAAMwgB,EAAaG,GAAS,SAAA3gB,OAAQwgB,EAAaI,GAAU,MACtEP,EAAgB,CAACM,EAAUC,KAE7BL,EAAmBM,GAEnBjV,EAAgBkV,sBACd,CACE3U,UAAW,cAEb,CACEjK,KAAM,QACNN,KAAM,aACNmf,WAAYC,OAAOL,GACnBM,WAAYD,OAAOJ,GACnBM,YAAQvf,GAEV,CAAEwf,cAAe,cAClB,GACA,CAACtO,KAEJxF,EAAAA,EAAAA,YAAU,KACRgF,EAAS,CAAEnQ,KAAM,gBAAiB8Q,QAAS,CAAEoO,WAAYhB,IAAiB,GACzE,CAACA,IAGFtU,IAAAA,cAACgU,GAAiB,KAChBhU,IAAAA,cAACqL,GAAc,KACbrL,IAAAA,cAACyB,EAAAA,EAAS,CACRuG,gBAAiB,SACjB7F,KAAM,SACNT,gBAAc,EACdU,OAAQC,EAAAA,EAAgB0F,WAExB/H,IAAAA,cAACwC,EAAAA,GAAI,CAACE,WAAYC,EAAAA,eAAoB+P,YAAa7K,UAAWC,EAAAA,EAAc2K,QACzE+B,GAEHxU,IAAAA,cAACuV,GAAAA,GAAY,CACXxO,MAAOA,EACPyO,kBApDiBC,IACzBnJ,EAASmJ,EAAMtO,OAAOJ,MAAM,EAoDpB2N,aAAcA,EACdN,SAAUA,EACVC,cAAeA,MAIrBrU,IAAAA,cAACqL,GAAc,KACbrL,IAAAA,cAACyB,EAAAA,EAAS,CAACuG,gBAAiB,cAC1BhI,IAAAA,cAACC,EAAAA,EAAG,CACFK,IAAI,SACJC,SAAS,YACTL,QAAUC,IACRA,EAAE4C,iBACFjD,EAAgB4V,qBAAqB,CACnCrV,UAAW,oBAEbkU,EAAgB,GAChBxD,EAAe5Q,EAAE,EAEnB4R,UAAU,cAAY,qBAQlC,C,OCjHA,MAAM4D,GAAkBjR,EAAAA,GAAOC,IAAGC,KAAAA,IAAAC,EAAAA,EAAAA,GAAA,wEAoBrB+Q,GAAkB3Q,IAC7B,MAAM,MACJ0B,EAAK,QACLkP,EAAO,OACPC,EAAM,YACNC,EAAW,kBACXC,EAAiB,UACjBC,EAAS,oBACTC,EAAmB,2BACnBC,GACElR,GAEE,sBAAEmR,EAAqB,aAAEC,IAAiBxW,EAAAA,EAAAA,sBAC1C,kBAAEyW,EAAiB,OAAE1S,IAAWC,EAAAA,EAAAA,OAC/B0S,EAAcC,IAAmBvV,EAAAA,EAAAA,WAAkB,IACnD0G,EAAe8O,IAAoBxV,EAAAA,EAAAA,UAAiB,OACpDyV,EAASC,IAAc1V,EAAAA,EAAAA,UAA6B,OACpD2V,EAAUC,IAAe5V,EAAAA,EAAAA,WAAkB,IAC3C6V,EAAyBC,IAA8B9V,EAAAA,EAAAA,UAA6B,MACrFiC,GAAe8L,EAAAA,EAAAA,sBAAqB,iBACpC5N,GAAQC,EAAAA,EAAAA,MACR4B,GAAMgM,EAAAA,EAAAA,4BACN1I,GAAWC,EAAAA,EAAAA,MACX1G,GAAkBC,EAAAA,EAAAA,uBAClB,SAAE3H,IAAa8L,EAAAA,EAAAA,KAAab,GAAwBA,IAIpD2T,EAAgBA,KACpB,MAAMC,EAAQ/T,EAAaC,eAAe+T,EAAe,CAAC,EAAG,CAAE1W,KAAM+C,EAAAA,GAAiBgM,IACtFoH,EAAWM,EAAM,EAGbC,EAAgBA,CAAC7T,EAAYvC,IAE/Bd,IAAAA,cAACsD,EAAAA,oBAAmB,CAAClC,MAAOA,EAAO6B,IAAKA,GACtCjD,IAAAA,cAACoI,EAAQ,CAACC,YAAaA,EAAaT,mBAAoB9G,EAAOwH,MAAOuN,EAAStN,SAAUuN,KAKzFqB,EAA2BA,IACjBjU,EAAaC,eAAeiU,EAAqB,CAAC,EAAG,CAAE5W,KAAM+C,EAAAA,GAAiBgM,IAKxF6H,EAAsBA,CAAC/T,EAAYvC,IAErCd,IAAAA,cAACsD,EAAAA,oBAAmB,CAAClC,MAAOA,EAAO6B,IAAKA,GACtCjD,IAAAA,cAACkI,EAAa,CAACmP,SAAO,EAACnW,KAAM6U,KAW7BuB,EAAgCA,CAACjU,EAAYvC,IAE/Cd,IAAAA,cAACsD,EAAAA,oBAAmB,CAAClC,MAAOA,EAAO6B,IAAKA,GACtCjD,IAAAA,cAACkJ,EAAkB,CAACb,YAAaA,EAAaT,mBAAoB9G,KAWlEyW,EAAyBA,CAAClU,EAAYvC,IAExCd,IAAAA,cAACsD,EAAAA,oBAAmB,CAAClC,MAAOA,EAAO6B,IAAKA,GACtCjD,IAAAA,cAAC0H,EAAW,CAACC,cAAeA,EAAeC,mBAAoB9G,KAQrElN,eAAe4jB,EAAgBrX,GAC7B,GAAiC,uBAA7B/H,EAASqB,OAAO+H,UAAwE,SAAnCpJ,EAASqB,OAAOsV,gBAC1C,2BAA7B3W,EAASqB,OAAO+H,UAA4E,SAAnCpJ,EAASqB,OAAOsV,eACzE,GAAK3W,EAASqB,OAAOge,UAEd,CACL3X,EAAgB4X,kBAAkB,CAChCrX,UAAW4V,GAAwB,WAGrC,MAAM0B,EAAeR,IACrBX,GAAgB,GAEhB,MAAMzP,QAAcsP,EAAalW,GACjCwX,EAAa7W,QAETiG,EACFqP,IAEAY,G,MAfFhB,GAAkB,OAkBf,CACL,MAAM4B,QAAgBtB,IAKtB,GAJIN,IAAsB4B,GACxB5B,GAAkB,IAGf4B,EAAS,OAMd,GAJA9X,EAAgB4X,kBAAkB,CAChCrX,UAAW4V,GAAwB,WAGjCE,EAA4B,CAC9B,MAAM0B,EAAoB3B,IAG1B,GAFAO,EAAiBoB,GAES,OAAtBA,EAA4B,CAC9B,MAAMF,EAAeR,IACrBX,GAAgB,GAEhB,MAAMzP,QAAcsP,EAAalW,GAGjC,GAFAwX,EAAa7W,QAETiG,EACFqP,QACK,CACL,MAAM,cAAErM,GAAkB3I,EAAME,WAAWmE,SACvCsE,EAhFwB+N,MACpC,MAAMb,EAAQ/T,EAAaC,eAAemU,EAA+B,CAAC,EAAG,CAAE9W,KAAM+C,EAAAA,GAAiBgM,IACtGwH,EAA2BE,EAAM,EA+EvBa,GAEAd,G,OApEI9T,EAAaC,eAAeoU,EAAwB,CAAC,EAAG,CAAE/W,KAAM+C,EAAAA,GAAiBgM,G,KA0EtF,CACL,MAAMoI,EAAeR,IACrBX,GAAgB,GAEhB,MAAMzP,QAAcsP,EAAalW,GACjCwX,EAAa7W,QAETiG,EACFqP,IAEAY,G,EAIR,CACApjB,eAAeyU,EAAYlI,GACrBuW,GACFA,EAAQ5V,QAEV+V,GAAY,GACZ,MAAMc,EAAeR,IACfpQ,QAAcsP,EAAalW,GACjCwX,EAAa7W,QACTiG,EACFqP,KAEAY,IACAH,GAAY,GAEhB,CAUA,OARAtV,EAAAA,EAAAA,YAAU,MACHgV,GAAgBK,GAAUC,GAAY,EAAM,GAChD,CAACN,KAEJhV,EAAAA,EAAAA,YAAU,KACRgF,EAAS,CAAEnQ,KAAM,oBAAqB8Q,SAAS,GAAO,GACrD,IAGDlH,IAAAA,cAAC2V,GAAe,CAACpO,UAAU,4BACzBvH,IAAAA,cAAC4I,EAAAA,EAAiB,CAACC,IAAKC,EAAAA,GAAYC,MAClC/I,IAAAA,cAACC,EAAAA,EAAG,CACFK,IAAI,SACJlK,KAAK,SACLmK,SAAS,UACTL,QAAUC,IACRA,EAAE4C,iBACFyU,EAAgBrX,EAAE,EAEpBuB,gBAAc,GAEbiF,GAAgB,WAGrB3G,IAAAA,cAAC4I,EAAAA,EAAiB,CAACI,IAAKF,EAAAA,GAAYC,MAClC/I,IAAAA,cAACC,EAAAA,EAAG,CACFK,IAAI,SACJlK,KAAK,SACLmK,SAAS,UACTL,QAAUC,IACRA,EAAE4C,iBACFyU,EAAgBrX,EAAE,GAGnBwG,GAAgB,WAGL,E,qBClOtB,MAAMoR,GAAgBrT,EAAAA,GAAOC,IAAGC,KAAAA,IAAAC,EAAAA,EAAAA,GAAA,qDAEdI,GAAUA,EAAM2K,WAAa3K,EAAM2K,WAAa,SAE5DoI,GAA0BtT,EAAAA,GAAOC,IAAGG,KAAAA,IAAAD,EAAAA,EAAAA,GAAA,+BACxBI,GAAUA,EAAMgT,mBAAqBhT,EAAMgT,mBAAqB,SAY5E,SAAUC,GAAqBjT,GACnC,MAAM,iBAAEkT,EAAgB,kCAAEC,EAAiC,MAAEC,EAAK,WAAEzI,EAAU,mBAAEqI,EAAkB,UAAEK,GAAcrT,GAC5G,SAAEtB,IAAaE,EAAAA,EAAAA,OACf,SAAE0U,IAAa1Y,EAAAA,EAAAA,sBACf,MACJkH,EAAK,SACLuF,EAAQ,WACRkM,EAAU,cACVC,EAAa,KACbhY,EAAI,gBACJiY,EAAe,mBACfC,EAAkB,aAClBC,EAAY,QACZC,EAAO,iBACPC,EAAgB,WAChBC,EAAU,uBACVC,IACEC,EAAAA,EAAAA,MACE1S,GAAWC,EAAAA,EAAAA,OACX,SAAEf,IAAavB,EAAAA,EAAAA,KAAab,GAAwBA,KACpD,UAAE6V,GAAczT,EAUtB,OACEzF,IAAAA,cAAC+X,GAAa,CAACxQ,UAAU,wBAAwBqI,WAAYA,GAC3D5P,IAAAA,cAACyB,EAAAA,EAAS,CAACU,KAAM,SAAUC,OAAQC,EAAAA,EAAgBiR,WACjDtT,IAAAA,cAAA,OAAK0I,MAAO,CAAEyQ,SAAU,WAAYC,SAAU,YAC5CpZ,IAAAA,cAACqZ,EAAAA,QAAO,CACNL,uBACEZ,GAAwEY,EAE1EP,cAAeA,EACf1R,MAAOA,EACPuF,SAAUA,EACV6L,iBAAkBA,IAAsC,EACxDY,WAAYA,EACZJ,mBAAoBA,EACpBO,UAAWb,GAAgBa,EAC3BZ,UAAWA,KAGftY,IAAAA,cAACyB,EAAAA,EAAS,CAACU,KAAM,UACfnC,IAAAA,cAACC,EAAAA,EAAG,CACFK,IAAI,SACJC,SAAUmY,EAAkB,UAAY,YACxCjY,KAAMA,EACNP,QAAStM,UACPuM,EAAE4C,iBACG2V,GAAiBE,GAAc,EAEtCU,WAAUT,EACVrY,KAAK,SAAO,+BAIbsY,EACC9Y,IAAAA,cAACgY,GAAuB,CAACC,mBAAoBA,GAC3CjY,IAAAA,cAACwC,EAAAA,GAAI,CAACqF,UAAWC,EAAAA,EAAc7F,KAAMS,WAAYC,EAAAA,eAAoBgJ,SAAO,uCAI5E,MAEL1G,EAAMsU,mBACLvZ,IAAAA,cAACC,EAAAA,EAAG,CACFK,IAAI,SACJJ,QAAStM,UACPuM,EAAE4C,iBACFwD,EAAS,CAAEnQ,KAAM,gBAAiB8Q,QAAS,CAAE6H,eAAgB,WAC7DwJ,GAAU,EAEZ/X,KAAK,SAAO,kBAIZ,MAENR,IAAAA,cAAA,SACE5J,KAAK,SACLN,KAAK,aACLiR,MAAOyR,EAjEeA,KACrBgB,EAAAA,EAAAA,eAAchB,KAAgBiB,EAAAA,GAAAA,GAAajB,GAGvCA,EAAW1iB,KAFV0iB,EAA4BkB,uBA+DdC,CAAmBnB,GAAc,KACrDzL,IAAKpJ,EAAS,CAAEmD,UAAU,MAIlC,C,oCCxHA,MAAM8S,GAAe,CACnB,CACE9jB,KAAM,KACNH,KAAM,KACNkkB,MAAO,CAAC,6CAA8C,mCACtDC,aAAc,+BAEhB,CACEhkB,KAAM,KACNH,KAAM,KACNkkB,MAAO,CAAC,wBACRC,aAAc,sBAEhB,CACEhkB,KAAM,KACNH,KAAM,KACNkkB,MAAO,CACL,kEACA,8BACA,sCAEFC,aAAc,gCAEhB,CACEhkB,KAAM,KACNH,KAAM,KACNkkB,MAAO,CAAC,gCAAiC,+BACzCC,aAAc,oBAEhB,CACEhkB,KAAM,KACNH,KAAM,KACNkkB,MAAO,CAAC,+BACRC,aAAc,oBAEhB,CACEhkB,KAAM,KACNH,KAAM,KACNkkB,MAAO,CAAC,8BAA+B,yBACvCC,aAAc,mBAEhB,CACEhkB,KAAM,QACNH,KAAM,QACNkkB,MAAO,CAAC,oBACRC,aAAc,oCAQZC,GAAiBrV,EAAAA,GAAOC,IAAGC,KAAAA,IAAAC,EAAAA,EAAAA,GAAA,6dAITI,GAAWA,EAAM+U,mBAAqB,aAAe,kBAiBvEC,GAA+BvV,EAAAA,GAAOC,IAAGG,KAAAA,IAAAD,EAAAA,EAAAA,GAAA,yNAS3BI,GAAWA,EAAM+U,mBAAqB,OAAS,QAG7DE,GAAmBxV,EAAAA,GAAOC,IAAGK,KAAAA,IAAAH,EAAAA,EAAAA,GAAA,oIAS7BsV,GAAgBzV,EAAAA,GAAOC,IAAGQ,KAAAA,IAAAN,EAAAA,EAAAA,GAAA,oNAY1BuV,GAAoB1V,EAAAA,GAAOC,IAAGS,KAAAA,IAAAP,EAAAA,EAAAA,GAAA,qPAa9BwV,GAA0B3V,EAAAA,GAAOC,IAAGU,KAAAA,IAAAR,EAAAA,EAAAA,GAAA,8FACzBI,GAAWA,EAAM+U,mBAAqB,OAAS,OAU1DM,GAAoB5V,EAAAA,GAAOC,IAAG4V,KAAAA,IAAA1V,EAAAA,EAAAA,GAAA,wQAElBI,GAAWA,EAAMuV,aAAe,KAAO,SAGrCvV,GAAWA,EAAMuV,aAAe,KAAO,SAgMrDC,IAAqBC,EAAAA,EAAAA,KAPFrX,IAChB,CACLoC,SAAUpC,EAAMoC,SAChBrN,SAAUiL,EAAMjL,SAASqB,UAIFihB,EA/KDzV,IACxB,MAAM,SAAEtB,EAAQ,OAAEC,IAAWC,EAAAA,EAAAA,OACvB,MAAEpP,EAAK,SAAE0P,IAAatE,EAAAA,EAAAA,OACrB8a,EAAeC,IAAoB3Z,EAAAA,EAAAA,UAAS,KAC5C4Z,EAAmBC,IAAwB7Z,EAAAA,EAAAA,WAAS,IACpD8Z,EAAaC,IAAkB/Z,EAAAA,EAAAA,WAAS,IACxCga,EAAqBC,IAA0Bja,EAAAA,EAAAA,UAAS,KACxDka,EAAgBC,IAAqBna,EAAAA,EAAAA,WAAS,IAC9Coa,EAAUC,IAAera,EAAAA,EAAAA,WAAS,IAClCsa,EAAcC,IAAmBva,EAAAA,EAAAA,WAAS,IAC1Cwa,EAASC,IAAcza,EAAAA,EAAAA,UAAiB,OACxC0a,EAAeC,IAAoB3a,EAAAA,EAAAA,UAAS,MAC7C4a,EAAY,kBACXC,EAAaC,IAAkB9a,EAAAA,EAAAA,UAAmB,OACnD,SAAE7I,EAAQ,mBAAE4hB,EAAkB,aAAEQ,GAAiBvV,GAEvD1D,EAAAA,EAAAA,YAAU,KACR,GAAInJ,EAAS4jB,aAAc,CACzBN,EAAWtjB,EAAS4jB,cACpB,MAAML,EAAgB/B,GAAa/kB,MAAMonB,GAAMA,EAAEnmB,OAASsC,EAAS4jB,eACnEJ,EAAiBD,GACjBI,EAAeJ,EAAc9B,M,MAE7B6B,EAAW,MACXE,EAAiBhC,GAAa,IAC9BmC,EAAenC,GAAa,GAAGC,OAE7BzhB,EAAS8jB,YACXhB,EAAuB9iB,EAAS8jB,WAChCpB,GAAqB,IAEnB1iB,EAAS+jB,mBACXvB,EAAiBxiB,EAAS+jB,kBAC1BnB,GAAe,G,GAEhB,IA0DH,OA1BAzZ,EAAAA,EAAAA,YAAU,KACJoZ,EAAche,OAAS,IAGpBoe,GAAkD,OAAnCJ,EAAclU,MAAMoV,GAEX,KAAlBlB,GACTK,GAAe,GACfM,GAAY,IAEZA,GAAY,GALZA,GAAY,G,GAQf,CAACX,EAAeI,KAEnBxZ,EAAAA,EAAAA,YAAU,KACJ9M,IACwB6mB,KAA1BD,IAAYN,IAC0BK,KAAtCD,IAAkBN,I,GAEnB,CAACpmB,KAEJ8M,EAAAA,EAAAA,YAAU,KACH4Z,GAAmBA,GAAgBhX,GAAS,EAAM,GACtD,CAACgX,EAAgBA,IAGlBnb,IAAAA,cAACqL,GAAc,CAAC2O,mBAAoBA,GAClCha,IAAAA,cAAC+Z,GAAc,CAACxS,UAAU,4BAA4ByS,mBAAoBA,GACxEha,IAAAA,cAACia,GAA4B,CAAC1S,UAAU,oBAAoByS,mBAAoBA,GAC9Eha,IAAAA,cAACma,GAAa,CAAC5S,UAAU,0BACvBvH,IAAAA,cAACoc,GAAc,CACbtmB,KAAK,eACL6Q,MAAM,OACNI,MAAO0U,EACP3U,UAAQ,EACR7Q,QAAS2jB,GACTlG,aAvDiB+B,IAC3BiG,EAAWjG,EAAMhC,cAAc1M,OAC/B,MAAM4U,EAAgB/B,GAAa/kB,MAAMonB,GAAMA,EAAEnmB,OAAS2f,EAAMhC,cAAc1M,QAC9E6U,EAAiBD,GACjBI,EAAeJ,EAAc9B,OACF,KAAvB8B,EAAc7lB,MAAa0lB,GAAgB,EAAM,EAmD3Ctb,QAASA,IAAM,KACfmc,cAAY,EACZC,UAAWZ,EACXa,YAAY,KAGhBvc,IAAAA,cAACka,GAAgB,KACfla,IAAAA,cAAC0G,GAAAA,GAAiB,CAChB5Q,KAAK,YACL6Q,MAAM,YACNvQ,KAAK,OACLyQ,SAAUlD,EAAS,CACjB6Y,SAAWC,GAhFEA,IACTX,EAAYY,MAAMC,GAAUA,EAAMC,KAAKH,MAGrDrB,GAAkB,IACX,IAEPA,GAAkB,IACX,GAwEwByB,CAAkBJ,GACvC3V,SAAU,CACRC,OAAO,EACPrQ,QAAS,aAEX2Q,UAAW,MAEbT,YAAU,EACVK,SAAW9G,GA/DQA,KAC7B+a,EAAuB/a,EAAEgH,OAAOJ,OAChC+T,GAAqB,EAAM,EA6DAgC,CAAsB3c,GACvC2G,UAAQ,IAETqU,GACCnb,IAAAA,cAACoa,GAAiB,CAAC7S,UAAU,2BAC3BvH,IAAAA,cAACsH,GAAAA,GAAU,CAACC,UAAU,eAAeoU,EAAc7B,iBAK3D9Z,IAAAA,cAACqa,GAAuB,CAACL,mBAAoBA,GAC3Cha,IAAAA,cAACsa,GAAiB,CAACE,aAAcA,EAAcjT,UAAU,iBACvDvH,IAAAA,cAAC0G,GAAAA,GAAiB,CAChB5Q,KAAK,mBACL6Q,MAAM,uBACNvQ,KAAK,SACLyQ,SAAUlD,EAAS,CACjBmD,SAAU,CACRC,OAAO,EACPrQ,QAAS,aAEXsQ,QAAS,CACPD,MAAO8U,EACPnlB,QAAS,mBAGbkQ,YAAU,EACVK,SAAW9G,GA/FEA,KACvBya,EAAiBza,EAAEgH,OAAOJ,OAC1BiU,GAAe,EAAM,EA6FM+B,CAAgB5c,GACjC2G,UAAQ,IAETuU,GAAYrb,IAAAA,cAACsH,GAAAA,GAAU,CAACC,UAAU,eAAa,mBAGlDyS,EAIE,KAHFha,IAAAA,cAACsa,GAAiB,CAACE,cAAY,GAC7Bxa,IAAAA,cAACgd,GAAa,QAIL,I,OChUrB,MAAMvV,GAAa/C,EAAAA,GAAOC,IAAGC,KAAAA,IAAAC,EAAAA,EAAAA,GAAA,kLAuBfoY,GAAahY,IACzB,MAAMsB,GAAWC,EAAAA,EAAAA,OACX,KAAE1Q,EAAI,YAAE2O,EAAW,SAAE8D,GAAatD,GAElC,SAAEtB,EAAQ,SAAE2I,IAAazI,EAAAA,EAAAA,OACzB,eAAEkN,EAAc,WAAEmM,IAAerd,EAAAA,EAAAA,OAChCsd,EAAeC,IAAoBnc,EAAAA,EAAAA,UAAiB,MAE3D,OACEjB,IAAAA,cAAAA,IAAAA,SAAA,KACEA,IAAAA,cAACwC,EAAAA,GAAI,CAACE,WAAYC,EAAAA,eAAoBE,SACnC0F,GAEHvI,IAAAA,cAACyH,GAAU,KACTzH,IAAAA,cAAC8T,GAAAA,EAAW,CACVxT,IAAI,SACJxK,KAAMA,EACN6Q,MAAO,QACPE,SAAUlD,EAAS,CACjBmD,UAAU,IAEZqW,cAAeA,EACf3c,KAAM,QACN4O,IAAK,WACLlP,QAAUC,IACJ,UAAYgd,GACdC,EAAiB,SACjB9Q,EAASxW,GAAM,GAEX2O,GACFsM,EAAe5Q,KAGjBid,EAAiB,MACjB9Q,EAASxW,EAAM,MACfyQ,EAAS,CAAEnQ,KAAM,gBAAiB8Q,QAAS,CAAE,CAACpR,GAAO,Q,IAI3DkK,IAAAA,cAAC8T,GAAAA,EAAW,CACVxT,IAAI,SACJxK,KAAMA,EACN6Q,MAAO,uBACPE,SAAUlD,EAAS,CACjBmD,UAAU,IAEZqW,cAAeA,EACf3c,KAAM,QACN4O,IAAK,YACLlP,QAAUC,IAEJ,yBAA2Bgd,GAC7BC,EAAiB,wBACjB9Q,EAASxW,GAAK,GACdyQ,EAAS,CAAEnQ,KAAM,gBACjB8mB,MAGAE,EAAiB,MACjB9Q,EAASxW,EAAM,MACfyQ,EAAS,CAAEnQ,KAAM,gBAAiB8Q,QAAS,CAAE,CAACpR,GAAO,Q,KAK5D,EC5EMunB,GAA6BpY,IACxC,MAAM,SAAEsD,EAAQ,MAAE5B,GAAU1B,GACtB,SAAEsT,IAAa1Y,EAAAA,EAAAA,qBACfC,GAAkBC,EAAAA,EAAAA,KAExB,OACEC,IAAAA,cAACgS,GAAAA,GAAM,CACLC,yBAAuB,EACvBvP,WAAY,CACV,CAACoG,EAAAA,GAAYoJ,SAAU,CACrB,CAAEpc,KAAM,IAAKqc,QAAS,GACtB,CAAErc,KAAM,IAAKqc,QAAS,IACtB,CAAErc,KAAM,IAAKqc,QAAS,IAExB,CAACrJ,EAAAA,GAAY6J,MAAO,CAClB,CAAE7c,KAAM,IAAKqc,QAAS,GACtB,CAAErc,KAAM,IAAKqc,QAAS,IACtB,CAAErc,KAAM,IAAKqc,QAAS,IAExB,CAACrJ,EAAAA,GAAYwU,OAAQ,CACnB,CAAExnB,KAAM,IAAKqc,QAAS,GACtB,CAAErc,KAAM,IAAKqc,QAAS,IACtB,CAAErc,KAAM,IAAKqc,QAAS,IAExB,CAACrJ,EAAAA,GAAYsJ,OAAQ,CACnB,CAAEtc,KAAM,IAAKqc,QAAS,GACtB,CAAErc,KAAM,IAAKqc,QAAS,IACtB,CAAErc,KAAM,IAAKqc,QAAS,IAExB,CAACrJ,EAAAA,GAAYyU,OAAQ,CACnB,CAAEznB,KAAM,IAAKqc,QAAS,GACtB,CAAErc,KAAM,IAAKqc,QAAS,IACtB,CAAErc,KAAM,IAAKqc,QAAS,MAI1BnS,IAAAA,cAACyB,EAAAA,EAAS,CACRU,KAAM,SACNR,QAAS,CAAEC,IAAKC,EAAAA,EAAiB2b,aACjCpb,OAAQC,EAAAA,EAAgBiR,WAExBtT,IAAAA,cAACwC,EAAAA,GAAI,CAACE,WAAYC,EAAAA,eAAoBE,QAASgJ,YAAU,GACtDtD,GAAsB,+DAEzBvI,IAAAA,cAACC,EAAAA,EAAG,CACFK,IAAI,SACJC,SAAS,UACTL,QAAUC,IACRL,EAAgBM,yBAAyB,CACvCC,UAAW,cAEbF,EAAE4C,iBACFwV,GAAU,EAEZxG,UAAU,cAETpL,GAAgB,YAGd,E,gCChEb,MAAM8W,GAAgB/Y,EAAAA,GAAOC,IAAGC,KAAAA,IAAAC,EAAAA,EAAAA,GAAA,mNAElBI,GAAWA,EAAMqU,SAAW,MAAQ,MAKrCrU,GAAgC,SAArBA,EAAMiH,WAAwB,UAAY,YAIpDjH,GAAgC,SAArBA,EAAMiH,WAAwB,UAAY,YAQ7DwR,GAAehZ,EAAAA,GAAOxO,OAAM4O,KAAAA,IAAAD,EAAAA,EAAAA,GAAA,QAsBrBuX,GAAiBpc,IAAAA,YAAiB,CAACiF,EAAoB8H,KAClE,MAAO4Q,EAASC,IAAc3c,EAAAA,EAAAA,UAAwB,OAC/C4c,EAAaC,IAAkB7c,EAAAA,EAAAA,WAAkB,IAEjD8c,EAAcC,IAAmB/c,EAAAA,EAAAA,aAClC,KAAEnL,EAAI,QAAEG,EAAO,UAAEqmB,EAAS,aAAED,EAAY,MAAEtV,EAAK,aAAE2M,EAAY,WAAE6I,EAAU,MAAE5V,EAAK,aAAEsX,EAAY,WAAErX,EAAU,SAAEC,GAAa5B,EACzHiZ,GAAaC,EAAAA,EAAAA,QAA2B,MACxC5X,GAAWC,EAAAA,EAAAA,MACX1G,GAAkBC,EAAAA,EAAAA,uBAClB,SAAE0F,IAAavB,EAAAA,EAAAA,KAAab,GAAwBA,KACpD,SAAEiJ,IAAazI,EAAAA,EAAAA,MAEfua,EAAsBje,IACrB+d,EAAWG,QAAQC,SAASne,EAAEgH,SACjC2W,GAAe,E,EAIbS,EAAUA,CAACroB,EAAa4W,KAC5B,IAAK7H,EAAMqU,SAAU,CACnB,GAAsB,iBAAXpjB,EACT0nB,EAAW1nB,GACPomB,GAAWA,EAAUpmB,OACpB,CACL,MAAMsoB,EAAatoB,EAAO+O,MAAMwZ,SAAS,GAAGxZ,MAAMwZ,SAClDb,EAAWY,E,CAETvZ,EAAMyZ,cAAczZ,EAAMyZ,aAAa5R,GAC3CgR,GAAe,E,GA8BnB,OA1BAvc,EAAAA,EAAAA,YAAU,KACRqc,EAAW,KAAK,GACf,CAAC3Y,EAAMhP,WAEVsL,EAAAA,EAAAA,YAAU,KACRoQ,SAASC,iBAAiB,YAAawM,GAEhC,KACLzM,SAASE,oBAAoB,YAAauM,EAAmB,IAE9D,CAACF,EAAWG,WAEf9c,EAAAA,EAAAA,YAAU,KACR8a,GACI9V,EAAS,CAAEnQ,KAAM,gBAAiB8Q,QAAS,CAAE,CAACpR,GAAOioB,GAA8BhX,IAC1E,GACZ,CAACgX,EAAchX,KAElBxF,EAAAA,EAAAA,YAAU,KACJwF,GACF4X,YAAW,KACTf,EAAW7W,EAAM,GAChB,E,GAEJ,CAACA,IAGF/G,IAAAA,cAACyd,GAAa,CACZvd,QAASA,KACPJ,EAAgB8e,oBACd,CACEve,UAAWsG,GAEb,CACE0O,cAAevf,IAGnBmP,EAAM/E,SAAS,EAEjBoZ,SAAUrU,EAAMqU,SAChBvM,IAAKmR,EACLhS,WAAYzG,EAASyT,WAErBlZ,IAAAA,cAAC6e,GAAAA,EAAM,CACLlY,MAAOA,EACPC,WAAYA,EACZG,MAAOA,EACPjR,KAAMA,EACNmR,SAAWwO,IACTA,EAAM1S,iBACN2Q,EAAa+B,EAAM,EAErB3O,SAAUyV,EACVuC,WAAW,EACX/R,IAAKlG,GAEJD,GAAc5G,IAAAA,cAAC0d,GAAY,CAAC3W,MAAM,GAAGuS,UAAQ,GAAE3S,GAC/C1Q,EAAQ2W,KAAI,CAAC1W,EAAa4W,IACH,iBAAX5W,EAEP8J,IAAAA,cAAC0d,GAAY,CACXxd,QAAUC,IACRA,EAAE4C,iBACFwb,EAAQroB,EAAQ4W,EAAM,EAExBsC,IAAKtC,EACL/F,MAAO7Q,GAENA,GAKH8J,IAAAA,cAAA,UACEE,QAAUC,IACRA,EAAE4C,iBACFwb,EAAQroB,EAAOJ,KAAMgX,GACrBkR,EAAgB9nB,EAAOP,KAAK,EAE9ByZ,IAAKtC,EACL/F,MAAO7Q,EAAOJ,MAEbI,EAAOJ,SAMJ,ICxKPipB,GAAQA,KACjB,MAAO9oB,EAAS+oB,IAAc/d,EAAAA,EAAAA,UAA+B,IACvDsF,GAAWC,EAAAA,EAAAA,MACXpL,GAAgBgJ,EAAAA,EAAAA,OAEtB7C,EAAAA,EAAAA,YAAU,KACe3N,WACjB,MACMqC,GADWmF,QAAsBT,EAAAA,GAAAA,IAAqB,iCAAmCJ,EAAAA,GAAAA,IAAe,2BAC/DzD,QAAQ8V,KAAI,CAACqS,EAAKC,KAAS,CAAGppB,KAAMmpB,EAAIE,WAAW,GAAGpY,MAAOpR,KAAMspB,EAAIE,WAAW,GAAGpY,MAAOqI,IAAK8F,OAAOgK,OACvJF,EAAW/oB,GACXsQ,EAAS,CAAEnQ,KAAM,gBAAiB8Q,QAAS,CAAEkY,MAAOnpB,EAAQ,GAAGH,OAAS,EAE5EupB,EAAc,GACf,IAMH,OACIrf,IAAAA,cAACoc,GAAc,CAACnmB,QAASA,EAASH,KAAK,QAAQ6Q,MAAM,QAAQ4V,YAAU,EAAC7I,aALtD+B,IAClBlP,EAAS,CAAEnQ,KAAM,gBAAiB8Q,QAAS,CAAEkY,MAAO3J,EAAMhC,cAAc1M,QAAU,EAIkB7G,QAASA,QAAa,E,OChBlI,MAAM6Z,GAAiBrV,EAAAA,GAAOC,IAAGC,KAAAA,IAAAC,EAAAA,EAAAA,GAAA,iQAcpBya,GAAyBze,IAA+C,IAA9C,UAAE0e,GAAwC1e,EAC/E,MAAMzF,GAAgBgJ,EAAAA,EAAAA,MAEtB,OACEpE,IAAAA,cAACqL,GAAc,KACbrL,IAAAA,cAAC+Z,GAAc,CAACxS,UAAU,2BACvBnM,EAAgB4E,IAAAA,cAAC+e,GAAK,MAAM,KAC7B/e,IAAAA,cAACwf,GAAsB,CAACD,UAAWA,GACjCvf,IAAAA,cAACyf,GAAAA,GAAM,OAETzf,IAAAA,cAACwf,GAAsB,CAACD,UAAWA,GACjCvf,IAAAA,cAAC0f,GAAAA,GAAQ,CAAC5pB,KAAK,UAAUgR,UAAU,EAAMH,MAAM,qBAEjD3G,IAAAA,cAACwf,GAAsB,CAACD,UAAWA,GACjCvf,IAAAA,cAAC0f,GAAAA,GAAQ,CAAC5pB,KAAK,gBAAgB6Q,MAAM,mBAAmBG,UAAU,MAGvD,E,kBChCrB,MAAM6Y,GAAmBjb,EAAAA,GAAO6G,KAAI3G,KAAAA,IAAAC,EAAAA,EAAAA,GAAA,+DAEtBI,GAAWA,EAAMkI,MAAQlI,EAAMkI,MAAQ,YAKxCyS,GAAsB3a,IACjC,MAAM,SAAEtB,EAAQ,OAAEC,EAAM,WAAEic,IAAehc,EAAAA,EAAAA,MACnCzI,GAAgBgJ,EAAAA,EAAAA,OACf0b,EAASC,IAAc9e,EAAAA,EAAAA,WAAU7F,GACxC,OACE4E,IAAAA,cAAA,OAAK0I,MAAO,CAAEsX,QAAS,OAAQnQ,cAAe,OAAQoQ,cAAe,SAAUC,IAAK,SAClFlgB,IAAAA,cAAA,OAAK0I,MAAO,CAAEsX,QAAS,OAAQE,IAAK,SACjC9kB,GACC4E,IAAAA,cAACmgB,GAAAA,EAAQ,CACPrqB,KAAK,qBACLoK,QAASA,KACF4f,GACHD,EAAW,sBAEbE,GAAYD,EAAQ,EAEtB/S,IAAKpJ,EAAS,CACZmD,SAAU,CAAEC,OAAO,EAAMrQ,QAAS,aAClC8lB,SAAWzV,GACQ,cAAVA,IAGXA,MAAO+Y,EAAU,YAAc,iBAKnC9f,IAAAA,cAACwC,EAAAA,GAAI,CAACE,WAAYC,EAAAA,eAAoBE,SACnCzH,EAAgB,SAAW,uDAAsD,MAAK,IACvF4E,IAAAA,cAAC2f,GAAgB,CAACxS,MAAOlI,EAAMkI,OAC7BnN,IAAAA,cAACC,EAAAA,EAAG,CACFK,IAAI,IACJS,KACE3F,EACI,mFACA,0EAEN+L,OAAO,SACP5G,SAAS,YAAU,8BAO1BqD,GAAUA,EAAOwc,mBAChBpgB,IAAAA,cAACsH,GAAAA,GAAU,CAAC+Y,SAAS,eAAa,4CAChC,KACA,E,sBCjDe3b,EAAAA,GAAO+X,MAAK7X,KAAAA,IAAAC,EAAAA,EAAAA,GAAA,kiEA8ExBH,EAAAA,GAAOC,IAAGG,KAAAA,IAAAD,EAAAA,EAAAA,GAAA,6EAKDH,EAAAA,GAAOC,IAAGK,KAAAA,IAAAH,EAAAA,EAAAA,GAAA,gTAcTH,EAAAA,GAAOC,IAAGQ,KAAAA,IAAAN,EAAAA,EAAAA,GAAA,mLASLH,EAAAA,GAAOC,IAAGS,KAAAA,IAAAP,EAAAA,EAAAA,GAAA,+GAMPH,EAAAA,GAAOC,IAAGU,KAAAA,IAAAR,EAAAA,EAAAA,GAAA,gQ,sBC7GdH,EAAAA,GAAOC,IAAGC,KAAAA,IAAAC,EAAAA,EAAAA,GAAA,meACpBI,GAAUA,EAAMqb,UAAYrb,EAAMqb,UAAY,SAK5Crb,GAAWA,EAAMqb,UAAYrb,EAAMqb,UAAY,SAIpDrb,GAAWA,EAAMsa,UAAY,sBAAwB,UAGrDta,GAAWA,EAAMsa,UAAY,sBAAwB,UAGrDta,GAAWA,EAAMsa,UAAY,sBAAwB,UAGrDta,GAAWA,EAAMsa,UAAY,sBAAwB,UAGrDta,GAAWA,EAAMsa,UAAY,sBAAwB,U,aClBxC7a,EAAAA,GAAOC,IAAGC,KAAAA,IAAAC,EAAAA,EAAAA,GAAA,ihBACpBI,GAAUA,EAAMqb,UAAYrb,EAAMqb,UAAY,SAI7Crb,GAAWA,EAAMsa,UAAY,KAAO,wBAGnCta,GAAWA,EAAMqb,UAAYrb,EAAMqb,UAAY,SAIpDrb,GAAWA,EAAMsa,UAAY,sBAAwB,UAGrDta,GAAWA,EAAMsa,UAAY,sBAAwB,UAC/Cta,GAAWA,EAAMsa,UAAY,KAAO,UAG1Cta,GAAWA,EAAMsa,UAAY,sBAAwB,UAGrDta,GAAWA,EAAMsa,UAAY,sBAAwB,UAGrDta,GAAWA,EAAMsa,UAAY,sBAAwB,UAItC7a,EAAAA,GAAOC,IAAGG,KAAAA,IAAAD,EAAAA,EAAAA,GAAA,2GACzBI,GAASA,EAAMsb,YAAc,OAAS,OACpCtb,GAASA,EAAMsb,YAAc,OAAS,OAG1Ctb,GAASA,EAAMsb,YAAc,OAAS,OAI9B7b,EAAAA,GAAOC,IAAGK,KAAAA,IAAAH,EAAAA,EAAAA,GAAA,mE,gBCxC9B,MAAM2b,GAAiB9b,EAAAA,GAAOC,IAAGC,KAAAA,IAAAC,EAAAA,EAAAA,GAAA,gqCA8C3B4b,GAAY/b,EAAAA,GAAOC,IAAGG,KAAAA,IAAAD,EAAAA,EAAAA,GAAA,0HAOtB6b,GAAchc,EAAAA,GAAOC,IAAGK,KAAAA,IAAAH,EAAAA,EAAAA,GAAA,yFASxB8b,GAAuBjc,EAAAA,GAAOC,IAAGQ,KAAAA,IAAAN,EAAAA,EAAAA,GAAA,2GACzBI,GAASA,EAAMsb,YAAc,OAAS,OACpCtb,GAASA,EAAMsb,YAAc,OAAS,OAG1Ctb,GAASA,EAAMsb,YAAc,OAAS,OAIrCK,GAAqB3b,IACjC,MAAM,SAAE4b,EAAQ,UAAEC,EAAY,QAAO,UAAEC,EAAY,QAAO,UAAExB,EAAS,UAAEe,EAAS,SAAExZ,EAAQ,UAAEka,EAAS,YAAEvc,EAAW,YAAE8b,GAAgBtb,GAC9H,eAAE8L,IAAmBlR,EAAAA,EAAAA,OACrB,SAAEzH,EAAQ,aAAE6oB,IAAiB/c,EAAAA,EAAAA,KAAab,GAAwBA,IAClEkD,GAAWC,EAAAA,EAAAA,OACX,SAAE7C,IAAaE,EAAAA,EAAAA,OACdqd,EAAYC,IAAiBlgB,EAAAA,EAAAA,WAAS,IACtClD,EAAOqjB,IAAYngB,EAAAA,EAAAA,UAAS,OAC5BogB,EAAOC,IAAYrgB,EAAAA,EAAAA,UAAS,OAC5BsgB,EAAQC,IAAavgB,EAAAA,EAAAA,UAAS,OAC9BwgB,EAAQC,IAAazgB,EAAAA,EAAAA,UAAS,MAkB/B0gB,EAAmBC,IACxB,MAAM9rB,EAAO8rB,EAAgB,WAAE/sB,MAAKgtB,GAAmB,QAAZA,EAAI/rB,OACzCH,EAAOisB,EAAgB,WAAE/sB,MAAKgtB,GAAmB,QAAZA,EAAI/rB,OAC/C,MAAO,CACNH,KAAMA,EAAOA,EAAKoR,MAAQ,KAC1BjR,KAAMA,EAAOA,EAAKiR,MAAQ,KAC1B,EAyBI+a,EAAmBC,IAExB,GADAL,EAAU,MACNK,GAAad,EAAae,cAC7BN,EAAUT,EAAaQ,YAEnB,CACJ,MAAMA,EAAS,IACfzkB,EAAAA,GAAAA,IAAa+kB,EAAWf,GAAWjmB,MAAMknB,KACpCA,aAAM,EAANA,EAAQnrB,WACXmrB,EAAOnrB,QAAUorB,EAAUD,EAAOnrB,SAClCmrB,EAAOnrB,QAAQqrB,SAASP,IACvBH,EAAOrsB,KAAKusB,EAAgBC,GAAK,I,IAIpCF,EAAUD,GACVlb,EAAS,CAAEnQ,KAAM,kBAAmB8Q,QAAS,CAAEua,OAAQA,I,IAIzDlgB,EAAAA,EAAAA,YAAU,KA1Cc6gB,MACvB,IAAKb,EAEJ,GADAG,EAAU,MACNT,EAAaM,OAChBC,EAAUP,EAAaM,YAEnB,CACJ,MAAMA,EAAS,IACfxkB,EAAAA,GAAAA,IAAYikB,GAAWjmB,MAAMknB,KACxBA,aAAM,EAANA,EAAQnrB,WACXmrB,EAAOnrB,QAAUorB,EAAUD,EAAOnrB,SAClCmrB,EAAOnrB,QAAQqrB,SAASP,IACvBL,EAAOnsB,KAAKusB,EAAgBC,GAAK,I,IAIpCJ,EAAUD,GACVhb,EAAS,CAAEnQ,KAAM,kBAAmB8Q,QAAS,CAAEqa,OAAQA,I,GA0BzDa,GAEInB,EAAae,gBAChBZ,EAASH,EAAae,eACtBF,EAAgBb,EAAae,eACzBf,EAAaoB,eAChBf,EAASL,EAAaoB,e,GAGtB,IAEH,MAuBMH,EAAa7tB,IAClBA,EAAKiuB,MAAK,CAAClvB,EAAGmvB,KACb,MAAMC,EAAQpvB,EAAE+rB,WAAWtqB,MAAK4tB,GAAsB,SAAdA,EAAK3sB,OAAiBiR,MACxD2b,EAAQH,EAAEpD,WAAWtqB,MAAK4tB,GAAsB,SAAdA,EAAK3sB,OAAiBiR,MAC9D,OAAIyb,EAAQE,GACH,EAELF,EAAQE,EACJ,EAED,CAAC,IAEFruB,GAaR,OACC2L,IAAAA,cAAC2gB,GAAoB,CAACJ,aAAW,EAAChB,UAAWA,EAAWe,UAAWA,EAAWxZ,UAAQ,GACpFya,EACAvhB,IAAAA,cAACwgB,GAAc,CAACjB,UAAWA,EAAWe,UAAWA,EAAWxZ,UAAQ,GACnE9G,IAAAA,cAACoc,GAAc,CACdzV,MAAM,QACN1Q,QAASsrB,GAAUA,EAAO5kB,OAAS,EAAI4kB,EAAS,GAChDzrB,KAAMgrB,EACNvE,WAAYzV,EACZA,UAAQ,EACR4M,aA1DsBvT,IAE1B,GADAA,EAAE4C,iBACE5C,EAAEgH,OAAOJ,MAAO,CACnB,MAAMhJ,GAlFgBjI,EAkFOqK,EAAEgH,OAAOJ,MAjFhCwa,EAASA,EAAO1sB,MAAKgtB,GAAOA,EAAI/rB,MAAQA,IAAQ,MAkFtDsrB,EAASrjB,GACTujB,EAAS,MACT/a,EAAS,CAAEnQ,KAAM,kBAAmB8Q,QAAS,CAAE8a,cAAejkB,EAAOskB,cAAe,QAC3E9b,EAAS,CAAEnQ,KAAM,gBAAiB8Q,QAAS,CAAE,CAAC4Z,GAAY/iB,EAAMpI,QACzEmsB,EAAgB/jB,EAAMpI,K,CAvFAG,K,EA0InBiR,MAAOhJ,EAAQA,EAAMjI,KAAO,GAC5BmoB,aAAa,GACb/d,QAASA,IAAM,KACfoc,UAAW8E,EACXxa,YAAY,IAEb5G,IAAAA,cAACygB,GAAS,CAAClZ,UAAU,oBACrBvH,IAAAA,cAACoc,GAAc,CACd9C,UAAWvb,IAAU0jB,EACrB9a,MAAM,QACN1Q,QAASwrB,GAAUA,EAAO9kB,OAAS,EAAI8kB,EAAS,GAChD3rB,KAAMirB,EACNxE,WAAYzV,EACZA,UAAQ,EACR4M,aA7DsBvT,IAE1B,GADAA,EAAE4C,iBACE5C,EAAEgH,OAAOJ,MAAO,CACnB,MAAMsa,GAtFgBvrB,EAsFOqK,EAAEgH,OAAOJ,MArFhC0a,EAASA,EAAO5sB,MAAKgtB,GAAOA,EAAI/rB,MAAQA,IAAQ,MAsFtDwrB,EAASD,GACT9a,EAAS,CAAEnQ,KAAM,kBAAmB8Q,QAAS,CAAEmb,cAAehB,KAC9D9a,EAAS,CAAEnQ,KAAM,gBAAiB8Q,QAAS,CAAE,CAAC6Z,GAAYM,EAAM1rB,QAChE4Q,EAAS,CAAEnQ,KAAM,8BAA+B8Q,QAAS,CAAE,CAAC2Z,GAAW9iB,EAAMjI,KAAO,IAAMurB,EAAMvrB,O,CA1F1EA,K,EAiJnBiR,MAAOsa,EAAQA,EAAMvrB,KAAO,GAC5BmoB,aAAa,GACb/d,QAASA,IAAM,KACfoc,UAAWgF,EACX1a,YAAY,KAEQ,KACvB5G,IAAAA,cAAA,SACC5J,KAAK,SACLN,KAAK,SACLiR,MAAOma,EAAa,OAAUG,EAAQA,EAAM1rB,KAAO,KACnDoX,IAAKpJ,EAAS,CAAEmD,SAAUA,MAEzByZ,EACDvgB,IAAAA,cAAC0gB,GAAW,KACX1gB,IAAAA,cAACC,EAAAA,EAAG,CACHM,SAAU,YACVD,IAAI,SACJE,KAAM,QACNN,QAAUC,IACTA,EAAE4C,iBAvDPqe,EAAS,MACTE,EAAS,MACT/a,EAAS,CAAEnQ,KAAM,kBAAmB8Q,QAAS,CAAE8a,cAAe,KAAMK,cAAe,QACnF9b,EAAS,CAAEnQ,KAAM,gBAAiB8Q,QAAS,CAAE,CAAC4Z,GAAY,QAC1Dva,EAAS,CAAEnQ,KAAM,gBAAiB8Q,QAAS,CAAE,CAAC6Z,GAAY,QAC1Dxa,EAAS,CAAEnQ,KAAM,8BAA+B8Q,QAAS,CAAE,CAAC2Z,GAAW,QACvEM,GAAc,GAmDN1c,GACFka,YAAW,KACV5N,GAAgB,GACd,E,GAEJ,OAGA,KACkB,E,UC7RzB,MAAM4R,IAAeC,E,QAAAA,WAAShe,KAAAA,IAAAC,EAAAA,EAAAA,GAAA,0GCQjBge,IDCene,EAAAA,GAAOC,IAAGG,KAAAA,IAAAD,EAAAA,EAAAA,GAAA,yGAIvB8d,ICLmBE,IAE9B7iB,IAAAA,cAACyB,EAAAA,EAAS,CAACW,OAAQC,EAAAA,EAAgBiR,UAAWnR,KAAM,UAClDnC,IAAAA,cAACqE,GAAAA,GAAoB,CAACC,UAAWqI,EAAAA,GAAU7W,KAAK,UAAUgtB,SAAS,KAAKre,aAAW,IACnFzE,IAAAA,cAACwC,EAAAA,GAAI,CAACE,WAAYC,EAAAA,eAAoBE,QAASgF,UAAWC,EAAAA,EAAc7F,KAAM4J,YAAU,GACtF7L,IAAAA,cAAA,gBAAc,IAAG,4F,kBCRlB,MAAMqL,GAAiB3G,EAAAA,GAAOC,IAAGC,KAAAA,IAAAC,EAAAA,EAAAA,GAAA,mGACtBI,GAAWA,EAAM+U,mBAAqB,MAAQ,SAE5C/U,GAAWA,EAAM+U,mBAAqB,MAAQ,S,UCH3D,MAAMM,GAAoB5V,EAAAA,GAAOC,IAAGC,KAAAA,IAAAC,EAAAA,EAAAA,GAAA,wWAG7BI,GAAWA,EAAMsa,UAAY,sBAAwB,UAGnDta,GAAWA,EAAMsa,UAAY,sBAAwB,UAGrDta,GAAWA,EAAMsa,UAAY,sBAAwB,UAGrDta,GAAWA,EAAMsa,UAAY,sBAAwB,UAGrDta,GAAWA,EAAMsa,UAAY,sBAAwB,UAIxDC,GAAyB9a,EAAAA,GAAOC,IAAGG,KAAAA,IAAAD,EAAAA,EAAAA,GAAA,4XAIlCI,GAAWA,EAAMsa,UAAY,sBAAwB,UAGnDta,GAAWA,EAAMsa,UAAY,sBAAwB,UAGrDta,GAAWA,EAAMsa,UAAY,sBAAwB,UAGrDta,GAAWA,EAAMsa,UAAY,sBAAwB,UAGrDta,GAAWA,EAAMsa,UAAY,sBAAwB,U,OCnC9D,MAAMwD,GAA2Bre,EAAAA,GAAOC,IAAGC,KAAAA,IAAAC,EAAAA,EAAAA,GAAA,uaAEhCI,GAAWA,EAAM+U,mBAAqB,MAAQ/U,EAAMuV,aAAe,IAAM,SAEvEvV,GAAWA,EAAM+U,mBAAqB,MAAQ/U,EAAMuV,aAAe,IAAM,SAG/EvV,GAAWA,EAAMsa,UAAY,sBAAwB,UAGrDta,GAAWA,EAAMsa,UAAY,sBAAwB,UAGrDta,GAAWA,EAAMsa,UAAY,sBAAwB,UAGrDta,GAAWA,EAAMsa,UAAY,sBAAwB,UAGrDta,GAAWA,EAAMsa,UAAY,sBAAwB,U,OCzB5D,MAAMyD,GAAqBte,EAAAA,GAAOC,IAAGC,KAAAA,IAAAC,EAAAA,EAAAA,GAAA,oX,OCArC,MAAMoe,GAAkCve,EAAAA,GAAOC,IAAGC,KAAAA,IAAAC,EAAAA,EAAAA,GAAA,uG,OCAzBH,EAAAA,GAAO6G,KAAI3G,KAAAA,IAAAC,EAAAA,EAAAA,GAAA,mE,OCADH,EAAAA,GAAOC,IAAGC,KAAAA,IAAAC,EAAAA,EAAAA,GAAA,uGAA7C,MCKOqe,GAAkB5nB,GACrBA,EACJsR,KAAKnP,IACG,CACL9H,KAAMuf,OAAOzX,EAAQ9H,MACrBG,KAAM2H,EAAQ6K,MACd8G,IAAK3R,EAAQ6K,UAGhBga,MAAK,CAAClvB,EAAGmvB,IAAMnvB,EAAE0C,KAAKqtB,cAAcZ,EAAEzsB,UAAMD,EAAW,CAAEutB,YAAa,WACtE5lB,QAAO,CAACC,EAASqP,EAAOxZ,IAASwZ,IAAUxZ,EAAK+vB,WAAWC,GAAMA,EAAExtB,OAAS2H,EAAQ3H,SCT7EytB,GAAmC9lB,GACxCA,EAGE,CACL9H,KAAMuf,OAAOzX,EAAQ9H,MACrBG,KAAM,GAAF5B,OAAKuJ,EAAQ+lB,MAAQ,SAAW,IAAEtvB,OAAGuJ,EAAQ6K,OACjD8G,IAAK3R,EAAQ6K,OALN,KCFEmb,GAAoBA,CAACnoB,EAAyBooB,IACvDA,ECN6BpoB,IAC1BA,EACJsR,KAAKnP,GAAY8lB,GAAgC9lB,KACjDmP,KAAKnP,GACAA,EAAQ3H,KAAK0D,SAAS,UAExBiE,EAAQ3H,KAAO2H,EAAQ3H,KAAK4B,QAAQ,SAAU,IAAIxD,OAAO,YAClDuJ,GAEFA,IAERD,QAAQye,GAAY,OAANA,IACdqG,MAAK,CAAClvB,EAAGmvB,IAAMnvB,EAAE0C,KAAKqtB,cAAcZ,EAAEzsB,UAAMD,EAAW,CAAEutB,YAAa,WACtExW,KAAKnP,GACAA,EAAQ3H,KAAK0D,SAAS,WAExBiE,EAAQ3H,KAAO,SAAH5B,OAAYuJ,EAAQ3H,KAAK4B,QAAQ,WAAY,KAClD+F,GAEFA,IDZFkmB,CAAmBroB,GAEnBA,EAASsR,KAAKnP,GAAY8lB,GAAgC9lB,KAAUD,QAAQye,GAAY,OAANA,IEThF2H,GAAwBtoB,GACrCA,EAASsR,KAAKnP,GCGuCA,IAC9CA,EAGE,CACL9H,KAAMuf,OAAOzX,EAAQ9H,MACrBG,KAAM2H,EAAQ3H,KACdsZ,IAAK3R,EAAQ3H,MALN,KDLe+tB,CAAoCpmB,KAAUD,QAAQye,GAAY,OAANA,IEGxE6H,GAAoBA,CAACxoB,EAAqDyoB,IACjFA,EAIEzoB,EACJsR,KAAKnP,IACJ,GAA4C,IAAxCA,EAAQumB,YAAYD,GACtB,OAAOtmB,C,IAGVD,QAAQC,QAAwB5H,IAAZ4H,IATdnC,ECPE2oB,GAA8B3oB,GAClCA,EACJsR,KAAKnP,GAAYA,EAAQymB,cACzB1mB,QAAQye,GAAY,OAANA,IACdkI,OCEQC,GAA2B9oB,IACtC,MAAM+oB,EAAcJ,GAA2B3oB,GAC/C,OAAOsoB,GAAqBS,EAAY,ECH7BC,GAA6BA,CAAChpB,EAAyBipB,IAC3DA,EACJ3X,KAAK4X,GAAgBlpB,EAASzG,MAAM4I,GAAYA,EAAQ9H,MAAQ6uB,MAChEhnB,QAAQye,QAAYpmB,IAANomB,ICFNwI,GAAwCA,CAACnpB,EAAyBopB,KAC7E,MAAML,EAAcJ,GAA2B3oB,GAC/C,OAAOopB,EACJ9X,KAAK+X,GAAmBN,EAAYxvB,MAAMgC,GAAeA,EAAWlB,MAAQgvB,MAC5EnnB,QAAQye,QAAYpmB,IAANomB,GAAgB,ECVtB2I,GAA4BA,CAACtpB,EAAqD3F,IAC7F2F,EAASzG,MAAM4I,I,MACb,OAA0B,QAA1BrJ,EAAOqJ,EAAQymB,mBAAW,IAAA9vB,OAAA,EAAAA,EAAES,MAAMgC,GAAeA,EAAWlB,OAASA,GAAK,ICCjEkvB,GAAcA,CACzBvpB,EACA3F,EACAmvB,KAEA,GAAIA,EAAc,CAEhB,OADcF,GAA0BtpB,EAAUwpB,E,CAE3C,GAAIxpB,EAASzG,MAAM4I,GAAyBA,EAAQ9H,OAASovB,OAAOpvB,KAAQ,CAEnF,OADc2F,EAASzG,MAAM4I,GAAyBA,EAAQ9H,OAASovB,OAAOpvB,I,CAI9E,OADc2F,EAASzG,MAAM4I,GAAyBA,EAAQ3H,OAAUH,GAI/D,ECnBAqvB,GAAwBA,CAACC,EAA2B7V,IACjE6V,GAAaA,EAAU7V,IAAQ6V,EAAU7V,GAAKzS,OAAS,EAE1CuoB,GAA8BD,GAA8BD,GAAsBC,EAAW,YAE7FE,GAAiCF,GAA8BD,GAAsBC,EAAW,eAEhGG,GAAiBH,GAAkD,aAApBA,aAAS,EAATA,EAAWI,MAE1DC,GAAoBL,GAAkD,gBAApBA,aAAS,EAATA,EAAWI,MAE7DE,GAAeN,GAAkD,WAApBA,aAAS,EAATA,EAAWI,MC2B/D,SAAUrI,GAAc/X,GAC5B,MAAM,WAAEugB,EAAU,UAAEjG,EAAS,aAAE/E,EAAY,WAAEiL,EAAU,aAAE/B,EAAY,aAAEgC,GAAiBzgB,GAClF,SAAEtB,EAAQ,OAAEC,IAAWC,EAAAA,EAAAA,OACtB8hB,EAAaC,IAAkB3kB,EAAAA,EAAAA,WAAS,IACzC,SAAE7I,EAAQ,YAAEytB,EAAW,SAAEpgB,IAAavB,EAAAA,EAAAA,KAAab,GAAwBA,KAC3E,OAAE5J,GAAWrB,GACb,YAAEoN,GAAgBC,GAClB,SAAEnK,GAAauqB,GACf,MAAEpxB,EAAK,eAAEsc,IAAmBlR,EAAAA,EAAAA,OAC3BimB,EAAMC,IAAW9kB,EAAAA,EAAAA,UAA+B,MACjDsF,GAAWC,EAAAA,EAAAA,OACVwf,EAAQC,IAAahlB,EAAAA,EAAAA,UAAS,MAC/BgkB,GAAYiB,EAAAA,EAAAA,gBACZC,GAAiBhI,EAAAA,EAAAA,QAAO,MACxB/iB,GAAgBgJ,EAAAA,EAAAA,MAOhBgiB,EAAqBA,CAACC,EAAYvwB,IAAiBwwB,EAAsBD,EAAIvwB,GAE7EwwB,EAAwBA,CAACD,EAAYvwB,KACzCyQ,EAAS,CACPnQ,KAAM,iBACN8Q,QAAS,CACPqf,aAAcF,EACdG,eAAgB1wB,IAElB,EAGE2wB,EAAoBA,CAACjC,EAAqBkC,KAC9C,GAAIprB,EAAU,CACZ,IAAImC,EAEA6nB,GAAiBL,IACnBxnB,EAAUmnB,GAA0BtpB,EAAUkpB,GAC1C/mB,EACF2oB,EAAmB5B,EAAakC,GAEhCjpB,EAAUonB,GAAYvpB,EAAUkpB,IAEzBe,GAAYN,IAErBxnB,EAAUonB,GAAYvpB,EAAUkpB,GA1BA8B,EAAsB,KAAM,MA8BvD7oB,IAEHA,EAAUmnB,GAA0BtpB,EAAUkpB,GAC9C4B,EAAmB5B,EAAakC,KAGlCjpB,EAAUonB,GAAYvpB,EAAUkpB,GAGlCje,EAAS,CAAEnQ,KAAM,uBAAwB8Q,QAASzJ,IAC7CgoB,GACHlf,EAAS,CAAEnQ,KAAM,gBAAiB8Q,QAAS,CAAEsd,YAAa/mB,EAAQ9H,O,GASlEgxB,EAAoBb,IACxB,GAAKA,EAIL,GADAC,EAAQD,GACJrsB,EAAOusB,OAAQ,CACjB,MAAMY,EAAed,EAAKjxB,MAAMgyB,GAAcA,EAAU/wB,OAAS2D,EAAOusB,SAExEc,EAAmBF,EAAa9wB,KAAMgwB,GACtCW,EAAkB1B,OAAO6B,EAAajxB,M,MAGtCmxB,EAAmB,GAAIhB,E,EAIrBiB,EAA8BnzB,UAElC,MAAMozB,EAAmBlD,GAAkBxoB,EAAU7B,EAAOsqB,gBAC5D,IAAIkD,EACAC,EAEJ,GAAIhC,GAA2BD,GAA/B,CAEEiC,EAAcjC,EAAU3pB,SAASkC,QAAOye,GAAqB,IAAhBA,EAAErH,aAG7CqS,EADE,QAAQrK,KAAKsK,EAAY,IACHF,EAAiBxpB,QAAQye,GAAMiL,EAAYta,IAAImY,QAAQvrB,SAASyiB,EAAEtmB,QAElEqxB,EAAiBxpB,QAAQye,GAAMiL,EAAYta,IAAIsI,QAAQ1b,SAASyiB,EAAEnmB,QAE5FtB,QAAQoF,IAAI,iBAAkBqtB,GAE9B,MAAME,EAAoB1D,GAAkBwD,EAAuBvD,GACnEiD,EAAiBQ,E,MAEZ,GAAI3B,EAAJ,CACL,IAAKlqB,EAAU,CACb,MAAM8rB,QAAoB/rB,EAAAA,GAAAA,MACpBgsB,EAAsBvD,GAAkBsD,EAAa3tB,EAAOsqB,gBAC5DoD,EAAoB1D,GAAkB4D,EAAqB3D,GAEjE,YADAiD,EAAiBQ,E,CAInB,MAAMA,EAAoB1D,GAAkBuD,EAAkBtD,GAC9DiD,EAAiBQ,E,KAEZ,CAEL,MAAM7rB,QAAiBJ,EAAAA,GAAAA,IAAsBE,GAC7CurB,EAAiBrrB,E,IA4DrBiG,EAAAA,EAAAA,YAAU,KACJ+jB,GAAiBL,GAzDgBrxB,WAErC,MAAMozB,EAAmBlD,GAAkBxoB,EAAU7B,EAAOsqB,gBAE5D,GAAIoB,GAA8BF,GAAY,CAC5C,MAAMqC,EAA2B7C,GAAsCuC,EAAkB/B,EAAUZ,aAC7FkD,EAAsB3D,GAAqB0D,GACjD,OAAKC,GAAsD,IAA/BA,EAAoB5qB,YAIhDgqB,EAAiBY,QAHfR,G,CAKG,GAAIvB,EAAY,CAErB,MAAM+B,EAAsBnD,GAAwB4C,GAC/CO,GAAsD,IAA/BA,EAAoB5qB,OAIhDgqB,EAAiBY,GAHfR,G,GAyCFS,GACSjC,GAAYN,GAnCSrxB,WAEhC,MAAMozB,EAAmBlD,GAAkBxoB,EAAU7B,EAAOsqB,gBAE5D,IAAI9B,EAA+B,GAEnC,GAAIkD,GAA8BF,GAAY,CAC5C,MAAMqC,EAA2B7C,GAAsCuC,EAAkB/B,EAAUZ,aAC7FkD,EAAsB3D,GAAqB0D,GACjDrF,EAAS,IAAIA,KAAWsF,E,CAE1B,GAAIrC,GAA2BD,GAAY,CACzC,MAAMgC,EAAwB3C,GAA2B0C,EAAkB/B,EAAU3pB,UAC/E6rB,EAAoB1D,GAAkBwD,EAAuBvD,GACnEzB,EAAS,IAAIA,KAAWkF,E,CAErBlF,GAA4B,IAAlBA,EAAOtlB,QACpBoqB,IAEFJ,EAAiB1E,EAAO,EAiBtBwF,GACShC,EAfwB7xB,WAEnC,MAAMwzB,QAAoB/rB,EAAAA,GAAAA,MACpBgsB,EAAsBvD,GAAkBsD,EAAa3tB,EAAOsqB,gBAC5DoD,EAAoBjE,GAAemE,GAEzCV,EAAiBQ,EACX,EASJO,GAEAX,G,GAED,KAEHxlB,EAAAA,EAAAA,YAAU,KAIR,IAAIomB,EAAAA,EAAAA,QAAOxB,EAAe9H,SACxB8H,EAAe9H,QAAU7Y,OAEzB,GAAIggB,EAAY,CACd,MAAM/nB,EAAUqoB,EAAKjxB,MAAM4I,GAAiBA,EAAQ3H,OAASkwB,IACzDvoB,IACE6nB,GAAiBL,IAAcM,GAAYN,GAC7CwB,EAAkB1B,OAAOtnB,EAAQ9H,MAAO8H,EAAQ3H,MAEhD2wB,EAAkB1B,OAAOtnB,EAAQ9H,O,IAKxC,CAAC6P,KAEJjE,EAAAA,EAAAA,YAAU,KACRqC,EAAOoiB,QAAWvxB,IAAUuxB,EAAWJ,GAAe,GAAQA,GAAe,EAAM,GAClF,CAAChiB,EAAQnP,IAEZ,MAAMqyB,EAAqBA,CAACzF,EAAeyE,KACzCG,EAAU5E,GACV,MAAMuG,EAAa9B,aAAI,EAAJA,EAAMjxB,MAAMgzB,GAAYA,EAAQ/xB,OAASurB,IAC5D9a,EAAS,CAAEnQ,KAAM,gBAAiB8Q,QAAS,CAAE0gB,eAAe,EAmB9D,OACE5nB,IAAAA,cAAC+iB,GAAwB,CAACxD,UAAWA,EAAW/E,aAAcA,GAC3Dpf,IAAiB3B,aAAM,EAANA,EAAQquB,iBACxB9nB,IAAAA,cAAAA,IAAAA,SAAA,KACEA,IAAAA,cAAC+nB,GAAe,CACdjyB,KAAK,SACL8Q,YAAY,EACZqX,aAAa,WACblX,MAAM,WACND,UAAQ,EACRuV,cAAY,EACZ2L,YAAalB,EACbxK,UAAW2J,EACX1J,YAAY,KAIlBuJ,EACE9lB,IAAAA,cAAAA,IAAAA,SAAA,KACEA,IAAAA,cAACoc,GAAc,CACbtmB,KAAK,SACL6Q,MAAM,uBACNC,YAAY,EACZqX,aAAa,GACblX,MAAOif,EACPlf,UAAQ,EACR7Q,QAAS6vB,EACTpS,aA3CV,SAA4B+B,GAC1B,MAAMwS,EAAYxS,EAAMhC,cAAc1M,MAElCkhB,GACFnB,EAAmBmB,EAAWnC,GAGd,KAAdmC,GACFrC,GAAe,GAGbF,GACF3U,GAEJ,EA8BU7Q,QAASA,OACTmc,cAAY,EACZC,UAAW2J,EACX1J,YAAY,KAIhBvc,IAAAA,cAAA,OAAK0I,MAAO,CAAEmH,cAAe,QAC3B7P,IAAAA,cAAC0G,GAAAA,GAAiB,CAChBG,SAAUlD,EAAS,CACjBmD,SAAU,CACRC,OAAO,EACPrQ,QAAS,eAGbZ,KAAK,SACL6Q,MAAM,SACNC,YAAU,KAIf+e,EAAc3lB,IAAAA,cAACsH,GAAAA,GAAU,CAACC,UAAU,eAAa,6BAA0C,KAC3FvH,IAAAA,cAAA,SAAOlK,KAAK,SAASoyB,QAAM,EAACnhB,MAAOif,IAG1C,C,OCtUA,MAAMmC,GAAgBzjB,EAAAA,GAAOC,IAAGC,KAAAA,IAAAC,EAAAA,EAAAA,GAAA,2HAKnBI,GAAWA,EAAM8O,OAAS9O,EAAM8O,OAAS,SAGzCqU,GAAmBA,KAC9B,MAAOrU,EAAQsU,IAAapnB,EAAAA,EAAAA,UAAS,QAiBrC,OAfAM,EAAAA,EAAAA,YAAU,KACR,MAAM0P,EAAiB5X,OAAOivB,YACxBC,EAAgBlvB,OAAOmvB,WAC7B,IAAIhV,EAGFA,EADE+U,EAAgB,IACZtX,EAAiB,IACdsX,EAAgB,KACnBtX,EAAiB,IAEjBA,EAAiB,IAEzBoX,EAAU,GAADn0B,OAAIsf,EAAG,MAAK,GACpB,IAGDxT,IAAAA,cAACmoB,GAAa,CAACpU,OAAQA,GACrB/T,IAAAA,cAACmI,EAAAA,EAAO,CAACxH,QAAQ,UACjBX,IAAAA,cAACwC,EAAAA,GAAI,2BACS,ECnBPimB,GAAiBxjB,IAC5B,MAAM,iBAAEyjB,EAAgB,cAAEC,EAAa,UAAEpJ,EAAS,kBAAEqJ,EAAiB,eAAEC,GAAmB5jB,EAC1F,OACEjF,IAAAA,cAAAA,IAAAA,SAAA,KACIuf,EACAvf,IAAAA,cAAAA,IAAAA,SAAA,KACG,IACA0oB,EAAmB1oB,IAAAA,cAAAA,IAAAA,SAAA,KAAG0oB,EAAkB,KAAU,KAEjDC,EAAgB3oB,IAAAA,cAACwC,EAAAA,GAAI,CAACC,MAAI,GAAEkmB,EAAe,KAAc,KAE1DC,EAAoB5oB,IAAAA,cAAAA,IAAAA,SAAA,KAAG4oB,EAAmB,KAAU,KAEnDC,EAAiB7oB,IAAAA,cAACwC,EAAAA,GAAI,CAACC,MAAI,GAAEomB,GAAyB,MAI1D7oB,IAAAA,cAAAA,IAAAA,SAAA,KACEA,IAAAA,cAAC4I,EAAAA,EAAiB,CAACC,IAAKC,EAAAA,GAAYgH,OAClC9P,IAAAA,cAACwC,EAAAA,GAAI,CAACE,WAAYC,EAAAA,eAAoBC,YAAaiF,UAAWC,EAAAA,EAAc7F,MACzEymB,EAAmB1oB,IAAAA,cAAAA,IAAAA,SAAA,KAAG0oB,EAAkB,KAAU,KAEjDC,EAAgB3oB,IAAAA,cAACwC,EAAAA,GAAI,CAACC,MAAI,GAAEkmB,GAAwB,KAErDC,EAAoB5oB,IAAAA,cAAAA,IAAAA,SAAA,KAAG4oB,EAAmB,KAAU,KAEnDC,EAAiB7oB,IAAAA,cAACwC,EAAAA,GAAI,CAACC,MAAI,GAAEomB,GAAyB,OAI5D7oB,IAAAA,cAAC4I,EAAAA,EAAiB,CAACI,IAAKF,EAAAA,GAAYgH,OAClC9P,IAAAA,cAACwC,EAAAA,GAAI,CAACE,WAAYC,EAAAA,eAAoBC,YAAaiF,UAAWC,EAAAA,EAAc7F,MACzEymB,EAAmB1oB,IAAAA,cAAAA,IAAAA,SAAA,KAAG0oB,EAAkB,KAAU,KAEjDC,EAAgB3oB,IAAAA,cAACwC,EAAAA,GAAI,CAACC,MAAI,GAAEkmB,GAAwB,KAErDC,EAAoB5oB,IAAAA,cAAAA,IAAAA,SAAA,KAAG4oB,EAAmB,KAAU,KAEnDC,EAAiB7oB,IAAAA,cAACwC,EAAAA,GAAI,CAACC,MAAI,GAAEomB,GAAyB,QAM/D,E,OC3CP,MAAMC,GAAcpkB,EAAAA,GAAOC,IAAGC,KAAAA,IAAAC,EAAAA,EAAAA,GAAA,qOAcjBkkB,GAAmB9jB,IAC9B,MAAM,SAAE+jB,EAAQ,UAAEC,EAAS,gBAAEC,GAAoBjkB,EAEjD,OACEjF,IAAAA,cAAC8oB,GAAW,KACV9oB,IAAAA,cAACC,EAAAA,EAAG,CACFK,IAAI,IACJS,KAAMioB,EAASG,IACf5oB,SAAUyoB,EAASzoB,UAElByoB,EAASriB,OAGVsiB,EACEjpB,IAAAA,cAACC,EAAAA,EAAG,CACFK,IAAI,IACJS,KAAMmoB,EAAgBC,IACtB5oB,SAAU2oB,EAAgB3oB,UAEzB2oB,EAAgBviB,OAEjB,KAGM,EC3BLyiB,GAAkBnkB,IAC7B,MAAK,UACHsa,EAAS,SACT8J,EAAQ,UACRC,EAAS,eACTC,EAAc,SACdP,EAAQ,UACRC,EAAS,gBACTC,EAAe,UACfM,EAAS,YACTC,EAAW,OACXC,GACEzkB,GACE,SAAE7M,IAAa8L,EAAAA,EAAAA,KAAab,GAAwBA,KACpD,SAAE7B,GAAapJ,EAASqB,OAE9B,OACEuG,IAAAA,cAAAA,IAAAA,SAAA,KAEEuf,EACEvf,IAAAA,cAACgS,GAAAA,GAAM,CACLtP,WAAY,CACV,CAACoG,EAAAA,GAAYoJ,SAAU,CACrB,CAAEpc,KAAM,IAAKqc,QAAS,GACtB,CAAErc,KAAM,IAAKqc,QAAS,IACtB,CAAErc,KAAM,IAAKqc,QAAS,IAExB,CAACrJ,EAAAA,GAAY6J,MAAO,CAClB,CAAE7c,KAAM,IAAKqc,QAAS,GACtB,CAAErc,KAAM,IAAKqc,QAAS,IACtB,CAAErc,KAAM,IAAKqc,QAAS,IAExB,CAACrJ,EAAAA,GAAYwU,OAAQ,CACnB,CAAExnB,KAAM,IAAKqc,QAAS,GACtB,CAAErc,KAAM,IAAKqc,QAAS,IACtB,CAAErc,KAAM,IAAKqc,QAAS,IAExB,CAACrJ,EAAAA,GAAYyU,OAAQ,CACnB,CAAEznB,KAAM,IAAKqc,QAAS,GACtB,CAAErc,KAAM,IAAKqc,QAAS,IACtB,CAAErc,KAAM,IAAKqc,QAAS,MAI1BnS,IAAAA,cAAA,OAAK0I,MAAO,CAAEb,UAAW,OAAQgI,cAAe,MAAOyC,MAAO,SAC5DtS,IAAAA,cAACyB,EAAAA,EAAS,CAACE,QAAS,CAAEC,IAAKC,EAAAA,EAAiBoG,YAAajG,OAAQsnB,EAAYznB,EAAAA,EAAiBoG,YAAcpG,EAAAA,EAAiB8nB,SAAWvnB,OAAQC,EAAAA,EAAgBC,UAAWH,KAAM,UAC/KnC,IAAAA,cAACwC,EAAAA,GAAI,CAACE,WAAYC,EAAAA,eAAoBE,QAASgF,UAAWC,EAAAA,EAAc7F,MACtEonB,GAGAE,EACEvpB,IAAAA,cAACwC,EAAAA,GAAI,CAACE,WAAYC,EAAAA,eAAoBE,QAASgF,UAAWC,EAAAA,EAAc7F,MACrEsnB,GAED,MAIND,EAAYtpB,IAAAA,cAAC+oB,GAAe,CAACC,SAAUA,EAAUC,UAAWA,EAAWC,gBAAiBA,IAAsB,KAG9GM,EAAWxpB,IAAAA,cAAC4pB,GAAqB,CAACC,QAASL,EAAWC,YAAaA,IAAkB,KAGrFjoB,GAAyB,gBAAbA,GAA2C,eAAbA,EACxCxB,IAAAA,cAAC8pB,GAAS,CACRX,IAAKO,IAEL,OAMV1pB,IAAAA,cAACgS,GAAAA,GAAM,CACLtP,WAAY,CACV,CAACoG,EAAAA,GAAYoJ,SAAU,CACrB,CAAEpc,KAAM,IAAKqc,QAAS,GACtB,CAAErc,KAAM,IAAKqc,QAAS,IACtB,CAAErc,KAAM,IAAKqc,QAAS,IAExB,CAACrJ,EAAAA,GAAY6J,MAAO,CAClB,CAAE7c,KAAM,IAAKqc,QAAS,GACtB,CAAErc,KAAM,IAAKqc,QAAS,IACtB,CAAErc,KAAM,IAAKqc,QAAS,MAI1BnS,IAAAA,cAAA,OAAK0I,MAAO,CAAEb,UAAW,OAAQgI,cAAe,MAAOyC,MAAO,SAC5DtS,IAAAA,cAACyB,EAAAA,EAAS,CAACE,QAAS,CAAEC,IAAKC,EAAAA,EAAiBoG,YAAajG,OAAQsnB,EAAYznB,EAAAA,EAAiBoG,YAAcpG,EAAAA,EAAiB8nB,SAAWvnB,OAAQC,EAAAA,EAAgBC,UAAWH,KAAM,UAC/KnC,IAAAA,cAACwC,EAAAA,GAAI,CAACE,WAAYC,EAAAA,eAAoBE,QAASgF,UAAWC,EAAAA,EAAc7F,MACrEonB,GAGDE,EACEvpB,IAAAA,cAACwC,EAAAA,GAAI,CAACE,WAAYC,EAAAA,eAAoBE,QAASgF,UAAWC,EAAAA,EAAc7F,MACrEsnB,GAED,MAIND,EAAYtpB,IAAAA,cAAC+oB,GAAe,CAACC,SAAUA,EAAUC,UAAWA,EAAWC,gBAAiBA,IAAsB,KAG9GM,EAAWxpB,IAAAA,cAAC4pB,GAAqB,CAACC,QAASL,EAAWC,YAAaA,IAAkB,KAGrFjoB,GAAyB,gBAAbA,GAA2C,eAAbA,EACxCxB,IAAAA,cAAC8pB,GAAS,CACRX,IAAKO,IAEL,OAKX,ECnIME,GAAyB3kB,IACpC,MAAM,QAAE4kB,EAAO,YAAEJ,GAAgBxkB,EAEjC,OACEjF,IAAAA,cAACC,EAAAA,EAAG,CACFK,IAAI,SACJC,SAAUspB,EAAQtpB,SAClBL,QAAUC,IACRA,EAAE4C,iBACF0mB,GAAa,GAGdI,EAAQljB,MACL,ECfGmjB,GAAa7kB,IACxB,MAAM,IAAEkkB,GAAQlkB,GACV,WAAEiY,IAAerd,EAAAA,EAAAA,qBAGvB,OACEG,IAAAA,cAACyB,EAAAA,EAAS,CACRE,QAAS,CAAEC,IAAKC,EAAAA,EAAiBiB,WACjCX,KAAM,SACNC,OAAQC,EAAAA,EAAgBS,WAExB9C,IAAAA,cAACC,EAAAA,EAAG,CACFK,IAAI,IACJS,KAAMooB,EACN5oB,SAAS,WAAS,YAIpBP,IAAAA,cAACC,EAAAA,EAAG,CACFK,IAAI,SACJC,SAAS,YACTL,QAAUC,IACRA,EAAE4C,iBACFma,GAAY,GACb,oBAIO,E,mDCzBhB,MAAM6M,GAAUrlB,EAAAA,GAAOC,IAAGC,KAAAA,IAAAC,EAAAA,EAAAA,GAAA,0VA0BpB4Y,GAAgB/Y,EAAAA,GAAOC,IAAGG,KAAAA,IAAAD,EAAAA,EAAAA,GAAA,qOAKnBI,GAAgC,SAArBA,EAAMiH,WAAwB,UAAY,YAIpDjH,GAAgC,SAArBA,EAAMiH,WAAwB,UAAY,YA6BtD6b,GAAkB/nB,IAAAA,YAAiB,CAACiF,EAAoB8H,KACnE,MAAO4Q,EAASC,IAAc3c,EAAAA,EAAAA,UAAwB,OAC/C4c,EAAaC,IAAkB7c,EAAAA,EAAAA,WAAkB,GAClDiC,GAAe8L,EAAAA,EAAAA,sBAAqB,kBACpC,mBAAEpP,IAAuBC,EAAAA,EAAAA,sBACxBke,EAAcC,IAAmB/c,EAAAA,EAAAA,aAClC,KAAEnL,EAAI,aAAEumB,EAAY,MAAEtV,EAAK,YAAEihB,EAAW,UAAE1L,GAAcrX,EACxDiZ,GAAaC,EAAAA,EAAAA,QAA2B,MACxC5X,GAAWC,EAAAA,EAAAA,OACX,SAAEf,IAAavB,EAAAA,EAAAA,KAAab,GAAwBA,IACpD+a,EAAsBje,IACrB+d,EAAWG,QAAQC,SAASne,EAAEgH,SACjC2W,GAAe,E,EAIbtW,EAAU9C,EAAAA,GAAOC,IAAGK,KAAAA,IAAAH,EAAAA,EAAAA,GAAA,qTAiBpBmlB,EAAWtlB,EAAAA,GAAOC,IAAGQ,KAAAA,IAAAN,EAAAA,EAAAA,GAAA,yHAOrB4C,EAAa/C,EAAAA,GAAOC,IAAGS,KAAAA,IAAAP,EAAAA,EAAAA,GAAA,0TAiBvBolB,EAAmBA,CAAC5mB,EAAYvC,IAElCd,IAAAA,cAACwH,EAAO,KACNxH,IAAAA,cAACgqB,EAAQ,CACP9pB,QAASA,IAAMY,EAAM,CAAC,EAAG,CAAC,EAAG,CAAC,IAE9Bd,IAAAA,cAAC4F,GAAAA,EAAK,OAER5F,IAAAA,cAACgS,GAAAA,GAAM,CACLtP,WAAY,CACV,CAACoG,EAAAA,GAAYoJ,SAAU,CACrB,CAAEpc,KAAM,IAAKqc,QAAS,GACtB,CAAErc,KAAM,IAAKqc,QAAS,IACtB,CAAErc,KAAM,IAAKqc,QAAS,MAI1BnS,IAAAA,cAACyB,EAAAA,EAAS,CAACW,OAAQC,EAAAA,EAAgB6nB,UAAW/nB,KAAM,UAClDnC,IAAAA,cAACwC,EAAAA,GAAI,CAACE,WAAYC,EAAAA,eAAoBC,aAAW,qDAE7B5C,IAAAA,cAACwC,EAAAA,GAAI,CAACC,MAAI,gBAE9BzC,IAAAA,cAACyH,EAAU,CAACvH,QAAUC,IACpBA,EAAE4C,iBACFnD,EAAmBO,GACnBW,EAAM,CAAC,EAAG,CAAC,EAAG,CAAC,EAAE,GAEjBd,IAAAA,cAAA,2DAwCZ,OA5BAuB,EAAAA,EAAAA,YAAU,KACRqc,EAAW,YACXoK,EAAY,YACZ1L,EAAU,WAAW,GACrB,KAEF/a,EAAAA,EAAAA,YAAU,KACRoQ,SAASC,iBAAiB,YAAawM,GAEhC,KACLzM,SAASE,oBAAoB,YAAauM,EAAmB,IAE9D,CAACF,EAAWG,WAEf9c,EAAAA,EAAAA,YAAU,KACR8a,GACI9V,EAAS,CAAEnQ,KAAM,gBAAiB8Q,QAAS,CAAE,CAACpR,GAAOioB,GAA8BhX,IAC1E,GACZ,CAACgX,EAAchX,KAElBxF,EAAAA,EAAAA,YAAU,KACJwF,GACF4X,YAAW,KACTf,EAAW7W,EAAM,GAChB,E,GAEJ,CAACA,IAGF/G,IAAAA,cAACyd,GAAa,CACZnE,SAAUrU,EAAMqU,SAChBvM,IAAKmR,EACLhS,WAAYzG,EAASyT,WAErBlZ,IAAAA,cAAC+pB,GAAO,KACN/pB,IAAAA,cAAA,OAAKE,QAASA,KAtClBgD,EAAaC,eAAe8mB,EAAkB,CAAC,EAAG,CAAEzpB,KAAM+C,EAAAA,GAAiBgM,EAAG9L,eAAe,GAuCrE,GAElBzD,IAAAA,cAAC0M,GAAAA,EAAI,QAGT1M,IAAAA,cAACmqB,GAAAA,EAAS,CAACxjB,MAAM,SAASI,MAAM,aAClB,I,UCtNpB,MAAMqjB,GAAiB1lB,EAAAA,GAAOC,IAAGC,KAAAA,IAAAC,EAAAA,EAAAA,GAAA,sVAqB3BwlB,GAAe3lB,EAAAA,GAAOC,IAAGG,KAAAA,IAAAD,EAAAA,EAAAA,GAAA,oYAIZI,GAAUA,EAAMqlB,UAAY,QAAU,MAoB5CC,GAAqBtlB,IAChC,MAAM,MAAEulB,EAAK,UAAEzJ,GAAc9b,EAE7B,OACEjF,IAAAA,cAACoqB,GAAc,CAAC7iB,UAAU,yBACxBvH,IAAAA,cAACqqB,GAAY,CAACC,WAAS,GACrBtqB,IAAAA,cAAA,OAAKuS,IAAKiY,EAAOhY,IAAKuO,KAET,C,8GCnCf,SAAUjN,EAAY7O,GAC1B,MAAMnF,GAAkBC,EAAAA,EAAAA,MAElB,SAAE8G,EAAQ,MAAEyB,EAAK,IAAE8G,EAAG,cAAE+N,EAAa,MAAExW,EAAK,KAAE7Q,EAAI,QAAEoK,EAAO,KAAEM,EAAI,kBAAEiqB,EAAiB,SAAEnR,GAAarU,GACnG,SAAE7M,IAAa8L,EAAAA,EAAAA,KAAab,GAAwBA,KAEpD,QAAEqnB,EAAO,SAAE/mB,EAAQ,SAAE2I,IAAazI,EAAAA,EAAAA,OACjC8mB,EAAWC,IAAgB3pB,EAAAA,EAAAA,UAAmB,aAerD,OARAM,EAAAA,EAAAA,YAAU,KACkBqpB,EAA1BzN,IAAkBxW,EAAqB,UAA0B,aACjE,MAAMI,EAAQ3O,EAASqB,OAAO3D,GAC1BiR,GAASA,IAAUJ,GACrBikB,EAAa,U,GAEd,CAACzN,IAGFnd,IAAAA,cAAC6qB,EAAAA,GAAU,CACTC,GACE9qB,IAAAA,cAACC,EAAAA,EAAGwN,OAAAC,OAAA,GACEzI,EAAK,CACT3E,IAAI,SACJyM,IAAKlG,GAAsBlD,EAC3BpD,SAAUoqB,EACVzqB,QAAUC,IACRA,EAAE4C,iBACFjD,EAAgB4V,qBAAqB,CACnCrV,UAAWsG,IAIR8jB,IA3BeG,EAAd,cAAdD,EAAyC,UAA0B,aACnEre,EAASxW,EAAM6Q,IA6BHzG,GACFA,EAAQC,E,EAGZK,KAAMA,GAAc,QACpB8Y,SAAUA,IAET3S,GAGLyI,IAAKA,EACLtZ,KAAMA,EACN40B,QAASA,GAGf,C,2SCzDM,SAAUhkB,EAAkBzB,GAChC,MAAM,SAAE4B,EAAQ,KAAE/Q,EAAI,OAAEi1B,EAAM,SAAEjkB,EAAQ,iBAAE+M,EAAgB,SAAE5M,EAAQ,MAAEN,EAAK,KAAEvQ,EAAI,QAAE40B,EAAO,SAAE1R,GAAarU,GACnG,OAAErB,EAAM,SAAED,EAAQ,SAAE2I,IAAazI,EAAAA,EAAAA,OACjC,eAAEkN,IAAmBlR,EAAAA,EAAAA,qBACrBC,GAAkBC,EAAAA,EAAAA,sBAElBkrB,GAAwBjc,EAAAA,EAAAA,sBAAqB,oBAC7C,SAAE5W,IAAa8L,EAAAA,EAAAA,KAAab,GAAwBA,KACnD+I,EAAcC,IAAmBpL,EAAAA,EAAAA,UAAS,KAEjDM,EAAAA,EAAAA,YAAU,KACR,MAAMwF,EAAQ3O,EAASqB,OAAO3D,GAE1BiR,GAASA,IAAU8M,GAA6B,QAAT9M,GAA4B,SAATA,GAA6B,KAATA,GAChFsF,EAAgBtF,E,GAEjB,IAQH,OACE/G,IAAAA,cAACmqB,EAAAA,EAAS1c,OAAAC,OAAA,GACJzI,EAAK,CACTvC,WAAYkB,EAAO9N,GAAQ6d,EAAAA,GAAgBnd,MAAQ8iB,EAAW3F,EAAAA,GAAgBuX,SAAWvX,EAAAA,GAAgBC,QACzG7G,IAAKlG,GAAsBlD,EAC3BsD,SAAW9G,IACTkM,EAAgBlM,EAAEsT,cAAc1M,OAC5BE,GACFA,EAAS9G,E,EAGb4qB,OAAS5qB,IACH4qB,GAAQA,EAAO5qB,GACnBmM,EAASxW,EAAMqK,EAAEsT,cAAc1M,OAC/BkkB,EAAsBE,SAASr1B,EAAMqK,EAAEsT,cAAc1M,MAAM,EAE7DikB,QAAU7qB,IAtBegH,SAuBHhH,EAAEgH,SAtBZ9N,OAAOmvB,WAAa,KAChCrhB,EAAOikB,eAAe,CAAEC,MAAO,WAsB7BvrB,EAAgB8e,oBACd,CACEve,UAAWsG,GAEb,CACE0O,cAAevf,IAGfk1B,GACFA,EAAQ7qB,E,EAGZ/J,KAAMA,GAAc,OACpBwQ,YAAawF,EACbrF,MAAOqF,IAGb,C,cCjEM,SAAUsT,EAASza,GACvB,MAAM,SAAEtB,EAAQ,OAAEC,IAAWC,EAAAA,EAAAA,OACvB,KAAE/N,EAAI,MAAE6Q,EAAK,SAAEG,EAAQ,cAAEf,GAAkBd,GAC1CqmB,EAAYC,IAAiBtqB,EAAAA,EAAAA,UAAS,KACtCuqB,EAAUC,IAAexqB,EAAAA,EAAAA,WAAS,IACnC,MAAExM,EAAK,OAAEi3B,IAAWC,EAAAA,EAAAA,GAAsBH,EAAUF,GACpD/kB,GAAWC,EAAAA,EAAAA,MAEXK,EAAWC,EACbnD,EAAS,CACTmD,SAAU,CACRC,OAAO,EACPrQ,QAAS,aAEXsQ,QAAS,CACPD,MAAO2kB,EACPh1B,QAAS,4BAGXiN,EAUJ,OACE3D,IAAAA,cAAA,WACEA,IAAAA,cAAC0G,EAAiB,CAChB5Q,KAAMA,GAAc,WACpB6Q,MAAOA,GAAgB,WACvBC,YAAU,EACVC,SAAUA,EACVzQ,KAAK,OACL6Q,SAAW9G,GAhBKA,KAChB4F,IAAkBtR,GACpB8R,EAAS,CAAEnQ,KAAM,gBAAiB8Q,QAAS,CAAE,CAACpR,GAAOqK,EAAEgH,OAAOJ,SAEhEwkB,EAAcprB,EAAEgH,OAAOJ,OACvB0kB,GAAY,EAAM,EAWG/X,CAAavT,GAC9B2G,SAAUA,IAEXrS,GAASuL,IAAAA,cAACsH,EAAAA,GAAU,CAACC,UAAU,eAAa,0BAGnD,C,cCnCM,SAAUqkB,EAAM3mB,GACpB,MAAM,mBAAE+U,EAAkB,iBAAE6R,EAAgB,SAAE/kB,EAAQ,UAAEyY,EAAS,KAAEzpB,EAAI,MAAE6Q,EAAK,SAAE2S,EAAQ,WAAE1J,EAAU,SAAEkc,EAAQ,aAAEC,EAAY,cAAEC,GAAkB/mB,GAE1I,SAAEtB,EAAQ,OAAEC,IAAWC,EAAAA,EAAAA,OACtBynB,EAAYC,IAAiBtqB,EAAAA,EAAAA,UAAS,KACtCuqB,EAAUC,IAAexqB,EAAAA,EAAAA,WAAS,IAClCgrB,EAAYC,IAAiBjrB,EAAAA,EAAAA,WAAS,GACvCyqB,EACJ,wHACI,MAAEj3B,EAAK,SAAE0P,IAAatE,EAAAA,EAAAA,MACtB0G,GAAWC,EAAAA,EAAAA,MAEX2lB,EAAmBplB,IAAmBykB,IAAaE,EAAO9O,KAAK7V,KAAUA,aAAK,EAALA,EAAOpK,QAAS,EA+B/F,OAzBA4E,EAAAA,EAAAA,YAAU,KACJ4qB,EAAgBb,IAClBY,GAAc,GACXH,GAAcA,GAAa,KAE1BD,IAAar3B,IACfq3B,EAASR,GACTS,GAAa,IAEXC,IAAkBv3B,GACpB8R,EAAS,CAAEnQ,KAAM,gBAAiB8Q,QAAS,CAAEklB,MAAOd,KAEtDY,GAAc,GACd/nB,GAAS,G,GAEV,CAACmnB,EAAYE,KAEhBjqB,EAAAA,EAAAA,YAAU,MACF+pB,GAAc72B,GAAWA,GAAS03B,EAAgBb,GACtDY,GAAc,GAEdA,GAAc,E,GAEf,CAACz3B,IAGFuL,IAAAA,cAAC+iB,EAAAA,GAAwB,CAACxb,UAAU,sBAAsByS,mBAAoBA,EAAoBuF,UAAWA,EAAW3P,WAAYA,GAClI5P,IAAAA,cAAC0G,EAAAA,GAAiB,CAChB5Q,KAAMA,GAAc,QACpB6Q,MAAOA,GAAgB,QACvBC,YAAU,EACVC,SAAUlD,EAAS,CACjBmD,SAAU,CACRC,OAAO8kB,EACPn1B,QAAS,aAEXsQ,QAAS,CACPD,MAAO2kB,EACPh1B,QAAS,4BAGbuQ,SAAW9G,GA9CKA,KACpBorB,EAAcprB,EAAEgH,OAAOJ,OACvB0kB,GAAY,EAAM,EA4CG/X,CAAavT,GAC9B2G,SAAUA,EACVwS,SAAUA,IAEX2S,GAAcjsB,IAAAA,cAACsH,EAAAA,GAAU,CAACC,UAAU,eAAa,6BAGxD,C,oCCjFO,MAAMD,EAAa5C,EAAAA,GAAO2nB,EAACznB,IAAAA,GAAAC,EAAAA,EAAAA,GAAA,kZAOlBI,GAAUA,EAAMob,SAAWpb,EAAMob,SAAW,UAO1Cpb,GAAUA,EAAMob,SAAWpb,EAAMob,SAAW,UAG5Cpb,GAAUA,EAAMob,SAAWpb,EAAMob,SAAW,UCZxD,SAAUZ,EAAOxa,GACrB,MAAM,cAAEc,GAAkBd,EACpBsB,GAAWC,EAAAA,EAAAA,OACX,SAAE7C,IAAaE,EAAAA,EAAAA,OACdynB,EAAYC,IAAiBtqB,EAAAA,EAAAA,UAAS,KACtCuqB,EAAUC,IAAexqB,EAAAA,EAAAA,WAAS,IACnC,MAAExM,EAAK,OAAEi3B,IAAWC,EAAAA,EAAAA,GAAsBH,EAAUF,GAW1D,OACEtrB,IAAAA,cAAA,WACEA,IAAAA,cAAC0G,EAAAA,GAAiB,CAChB5Q,KAAK,OACL6Q,MAAM,SACNC,YAAU,EACVC,SAAUlD,EAAS,CACjBmD,SAAU,CACRC,OAAO,EACPrQ,QAAS,aAEXsQ,QAAS,CACPD,MAAO2kB,EACPh1B,QAAS,4BAGbuQ,SAAW9G,GAzBKA,KAChB4F,IAAkBtR,GACpB8R,EAAS,CAAEnQ,KAAM,gBAAiB8Q,QAAS,CAAE,KAAU/G,EAAEgH,OAAOJ,SAGlEwkB,EAAcprB,EAAEgH,OAAOJ,OACvB0kB,GAAY,EAAM,EAmBG/X,CAAavT,GAC9B2G,UAAQ,IAETrS,GAASuL,IAAAA,cAACsH,EAAAA,GAAU,CAACC,UAAU,eAAa,0BAGnD,C,kCC7CO,SAAS+kB,IACf,OAAO,KAAUC,KAAKh5B,KAAM,IAC7B,CAEA+4B,EAASE,UAAY/e,OAAOgf,OAAO,KAAUD,UAAW,CAAC,GACzDF,EAASE,UAAU/1B,YAAc61B,E,wLCOZI,EAAAA,WACpB,cAAsD,IAAxCC,EAAwC,EAAxCA,gBAAiBC,EAAuB,EAAvBA,qB,4FAAuB,SACrDr5B,KAAKo5B,gBAAkBA,EACvBp5B,KAAKq5B,oBAAsBA,CAC3B,C,4CAED,YAAgC,IAAxBnR,EAAwB,EAAxBA,QAASoR,EAAe,EAAfA,YAChBt5B,KAAKu5B,eAAgB,EACrBv5B,KAAKw5B,aAAc,EACnBx5B,KAAKy5B,eAAYn3B,EACjBtC,KAAKs5B,iBAAch3B,EACnBtC,KAAK05B,OAAS,GACd15B,KAAK25B,iCACL35B,KAAK45B,0BAA0B1R,EAASoR,EACxC,G,4CAED,WACCt5B,KAAK65B,0BAA4B75B,KAAK85B,oBACtC95B,KAAK+5B,uCAAwC,EAC7C/5B,KAAKg6B,oBAAiB13B,EACtBtC,KAAKi6B,iBAAc33B,EACnBtC,KAAKk6B,kDAA+C53B,CACpD,G,oBAED,SAAO63B,GACN,IAAK,IAAL,MAAkBjgB,OAAOkgB,KAAKD,GAA9B,eAA2C,CAAtC,IAAMte,EAAG,KACb7b,KAAK6b,GAAOse,EAAWte,EACvB,CACD,G,uCAED,SAA0BqM,EAASoR,GAClCt5B,KAAKmoB,WAAWD,GAChBloB,KAAKq6B,eAAef,EACpB,G,wBAED,SAAWpR,GACVloB,KAAKkoB,QAAUA,EACfloB,KAAKo5B,gBAAgBlR,EACrB,G,4BAED,SAAeoR,GACdt5B,KAAKs5B,YAAcA,EACnBt5B,KAAKq5B,oBAAoBC,EAAat5B,KAAKkoB,QAC3C,G,sCAED,SAAyBA,EAASoR,GAEjCt5B,KAAKu5B,eAAgB,EAIrBv5B,KAAK45B,0BAA0B1R,EAASoR,EACxC,G,0BAED,SAAagB,GACZt6B,KAAK05B,QAAUY,CACf,G,mDAED,SAAsCA,GACrCt6B,KAAK65B,2BAA6BS,CAClC,G,+BASD,WACC,OAAIt6B,KAAKu5B,cACDv5B,KAAK05B,OAAOriB,OACjBrX,KAAKy5B,UAAYz5B,KAAKy5B,UAAUrwB,OAAS,IACzCpJ,KAAKs5B,YAAct5B,KAAKs5B,YAAYlwB,OAAS,IAGzCpJ,KAAK05B,MACZ,G,iDAED,WACC,OAAI15B,KAAKu5B,eACJv5B,KAAKy5B,UACDz5B,KAAK05B,OAAOriB,MAAMrX,KAAKy5B,UAAUrwB,QAGnCpJ,KAAK05B,MACZ,M,gFAtFmBP,G,m0BCjBd,IAAMoB,EAAoB,IAC3BC,EAA4B,IAAIC,OAAOF,GAqBtC,SAASG,EAAOC,EAAQC,GAC9B,GAAIA,EAAQ,EACX,MAAO,GAGR,IADA,IAAIlM,EAAS,GACNkM,EAAQ,GACF,EAARA,IACHlM,GAAUiM,GAEXC,IAAU,EACVD,GAAUA,EAEX,OAAOjM,EAASiM,CAChB,CAEM,SAASE,EAA2BF,EAAQG,GAIlD,MAH+B,MAA3BH,EAAOG,IACVA,IAmBK,SAA8BH,GACpC,IAAMI,EAAiB,GACnBj7B,EAAI,EACR,KAAOA,EAAI66B,EAAOvxB,QACC,MAAduxB,EAAO76B,GACVi7B,EAAgBl5B,KAAK/B,GAEC,MAAd66B,EAAO76B,IACfi7B,EAAgBC,MAEjBl7B,IAED,IAAIm7B,EAAQ,EACRC,EAAiB,GACrBH,EAAgBl5B,KAAK84B,EAAOvxB,QAC5B,IAAK,IAAL,MAAoB2xB,EAApB,eAAqC,CAAhC,IAAMxhB,EAAK,KACf2hB,GAAkBP,EAAOtjB,MAAM4jB,EAAO1hB,GACtC0hB,EAAQ1hB,EAAQ,CAChB,CACD,OAAO2hB,CACP,CArCOC,CAAqBR,EAAOtjB,MAAM,EAAGyjB,GAC5C,C,kCCvCc,SAASM,EAAqBtrB,EAAOurB,EAArC,GAIZ,IAHFC,EAGE,EAHFA,SACAC,EAEE,EAFFA,sCACAC,EACE,EADFA,gCAGA,GADgB,IAAIf,OAAJ,cAAkBY,EAAO5nB,UAAzB,OACJ4V,KAAKvZ,EAAM+pB,2BACtB,OAgBF,SAAwE/pB,EAAOurB,EAA/E,GAIG,IAHFC,EAGE,EAHFA,SACAC,EAEE,EAFFA,sCACAC,EACE,EADFA,gCASI1rB,EAJH+pB,0BAIG/pB,EAHHypB,cAGGzpB,EAFHkqB,eAEGlqB,EADHmqB,YAaD,GAAIsB,EAAsCF,GAAS,CAClD,IAAMI,EAAkBC,EAAqB5rB,EAAOurB,EAAQ,CAC3DM,iCAAiC,EACjCH,gCAAAA,EACAF,SAAAA,IAED,GAAIG,EACH,OAAOA,CAER,CAGD,OAAOC,EAAqB5rB,EAAOurB,EAAQ,CAC1CM,iCAAiC,EACjCH,gCAAAA,EACAF,SAAAA,GAED,CAzDQM,CACN9rB,EACAurB,EACA,CACCC,SAAAA,EACAC,sCAAAA,EACAC,gCAAAA,GAIH,CAiDD,SAASE,EAAqB5rB,EAAOurB,EAArC,GAIG,IAHFC,EAGE,EAHFA,SACAK,EAEE,EAFFA,gCACAH,EACE,EADFA,gCAEIK,GAA0BC,EAAAA,EAAAA,GAC7BhsB,EAAM+pB,0BACNwB,EACA,CACCpB,YAAanqB,EAAMmqB,YACnB8B,uBAAwBjsB,EAAMypB,cAC9ByC,mBAAoBL,EACpBL,SAAAA,IAgBF,GAbKK,IACA7rB,EAAMkqB,eAGT6B,EAA0B/rB,EAAMkqB,eAC/BwB,EAAgCH,GAChCQ,EACS/rB,EAAMoqB,+CAChB2B,EAA0B/rB,EAAMoqB,6CAC/B,IACA2B,IAqCJ,SAAwCA,EAAyB/rB,GAChE,OAAOmsB,EAAAA,EAAAA,IAAYJ,KAA6B/rB,EAAMgqB,mBACtD,CApCIoC,CAA+BL,EAAyB/rB,GAC3D,OAAO+rB,CAER,C,0KCrGoBM,EAAAA,W,+JACpB,SAAM1oB,GAQL,GAPAzT,KAAKo8B,QAAU,CAAC,CACfC,IAAI,EACJC,aAAc,KAGft8B,KAAKu8B,aAAa9oB,GAEU,IAAxBzT,KAAKo8B,QAAQhzB,OAChB,MAAM,IAAInG,MAAM,wDAGjB,MAAmCjD,KAAKo8B,QAAQ,GAAxCI,EAAR,EAAQA,SAAUF,EAAlB,EAAkBA,aAElB,GAAIE,EACH,MAAO,CACNC,GAAI,IACJC,KAAMF,EAAS77B,OAAO,CACrBg8B,EAAyBL,MAM5B,GAA4B,IAAxBA,EAAalzB,OAChB,MAAM,IAAInG,MAAM,uBAGjB,OAA4B,IAAxBq5B,EAAalzB,OACTkzB,EAAa,GAGdA,CACP,G,0BAED,SAAaF,GACZp8B,KAAKo8B,QAAQv6B,KAAKu6B,EAClB,G,wBAED,WACCp8B,KAAKo8B,QAAQpB,KACb,G,wBAED,WACC,OAAOh7B,KAAKo8B,QAAQp8B,KAAKo8B,QAAQhzB,OAAS,EAC1C,G,0BAED,SAAaqK,GACZ,IAAKA,EACJ,MAAM,IAAIxQ,MAAM,uBAGjB,IAAMiQ,EAAQO,EAAQP,MAAM0pB,GAC5B,GAAK1pB,EAAL,CAUA,IAAM2pB,EAAW3pB,EAAM,GACjB4pB,EAASrpB,EAAQ4D,MAAM,EAAGnE,EAAMqG,OAChCwjB,EAAYtpB,EAAQ4D,MAAMnE,EAAMqG,MAAQsjB,EAASzzB,QAEvD,OAAQyzB,GACP,IAAK,MACAC,GACH98B,KAAKu8B,aAAaO,GAEnB98B,KAAKg9B,aAAa,CACjBX,IAAI,EACJC,aAAc,GACdE,SAAU,KAEX,MAED,IAAK,IACJ,IAAKx8B,KAAKi9B,aAAaZ,GACtB,MAAM,IAAIp5B,MAAM,mDAKjB,GAHI65B,GACH98B,KAAKu8B,aAAaO,GAE2B,IAA1C98B,KAAKi9B,aAAaX,aAAalzB,OAClC,MAAM,IAAInG,MAAM,6DAEjB,IAAQu5B,EAAax8B,KAAKi9B,aAAlBT,SACRA,EAAS36B,KACR86B,EACC38B,KAAKi9B,aAAaX,eAGpBt8B,KAAKk9B,aACLl9B,KAAKi9B,aAAaX,aAAaz6B,KAAK,CACnC46B,GAAI,IACJC,KAAMF,IAEP,MAED,IAAK,IACJ,IAAKx8B,KAAKi9B,aAAaZ,GACtB,MAAM,IAAIp5B,MAAM,oDAMjB,GAJI65B,GACH98B,KAAKu8B,aAAaO,IAGd98B,KAAKi9B,aAAaT,SAAU,CAGhC,GAA4B,IAAxBx8B,KAAKo8B,QAAQhzB,OAGhB,MAAM,IAAInG,MAAM,iDAFhBjD,KAAKi9B,aAAaT,SAAW,EAI9B,CACDx8B,KAAKi9B,aAAaT,SAAS36B,KAC1B86B,EACC38B,KAAKi9B,aAAaX,eAGpBt8B,KAAKi9B,aAAaX,aAAe,GACjC,MAED,IAAK,IACAQ,GACH98B,KAAKu8B,aAAaO,GAEnB98B,KAAKg9B,aAAa,CACjBG,UAAU,IAEX,MAED,IAAK,IACJ,IAAKn9B,KAAKi9B,aAAaE,SACtB,MAAM,IAAIl6B,MAAM,iDAEjBjD,KAAKk9B,aACLl9B,KAAKi9B,aAAaX,aAAaz6B,KAAK,CACnC46B,GAAI,KACJC,KAAMU,EAAcN,KAErB,MAGD,QACC,MAAM,IAAI75B,MAAJ,4BAA+B45B,IAGnCE,GACH/8B,KAAKu8B,aAAaQ,EA5FlB,KARD,CACC,GAAIM,EAAyBhU,KAAK5V,GACjC,MAAM,IAAIxQ,MAAJ,iDAAoDwQ,IAE3DzT,KAAKi9B,aAAaX,aAAet8B,KAAKi9B,aAAaX,aAAa37B,OAC/D8S,EAAQ1P,MAAM,IAGf,CA8FD,M,gFA5JmBo4B,GA+JrB,SAASiB,EAAc3pB,GAGtB,IAFA,IAAMoO,EAAS,GACX/hB,EAAI,EACDA,EAAI2T,EAAQrK,QAAQ,CAC1B,GAAmB,MAAfqK,EAAQ3T,GAAY,CACvB,GAAU,IAANA,GAAWA,IAAM2T,EAAQrK,OAAS,EACrC,MAAM,IAAInG,MAAJ,+CAAkDwQ,IAKzD,IAHA,IAAM6pB,EAAY7pB,EAAQ3T,EAAI,GAAGy9B,WAAW,GAAK,EAC3CC,EAAY/pB,EAAQ3T,EAAI,GAAGy9B,WAAW,GAAK,EAC7C/pB,EAAQ8pB,EACL9pB,GAASgqB,GACf3b,EAAOhgB,KAAK8f,OAAO8b,aAAajqB,IAChCA,GAED,MACAqO,EAAOhgB,KAAK4R,EAAQ3T,IAErBA,GACA,CACD,OAAO+hB,CACP,CAED,IAAMwb,EAA2B,mBAE3BT,EAAW,IAAInC,OAEpB,+BAsBD,SAASkC,EAAyBe,GACjC,OAAqB,IAAjBA,EAAMt0B,OACFs0B,EAAM,GAEPA,CACP,C,6+BCnNoBC,EAAAA,WACpB,WAAYlqB,I,4FAAS,SACpBzT,KAAK49B,WAAY,IAAIzB,GAAgB0B,MAAMpqB,EAC3C,C,2CAED,SAAMknB,GAAgC,IAAtBmD,GAAsB,uDAAJ,CAAC,GAAnBA,cACf,IAAKnD,EACJ,MAAM,IAAI13B,MAAM,sBAEjB,IAAMyrB,EAASxb,EAAMynB,EAAO52B,MAAM,IAAK/D,KAAK49B,WAAW,GAIvD,GAHIlP,GAAUA,EAAOxb,cACbwb,EAAOqP,cAEXrP,IAAUA,EAAO7I,UACfiY,EAIN,OAAOpP,CACP,I,mFAnBmBiP,GA6BrB,SAASzqB,EAAM8qB,EAAYC,EAAMC,GAOhC,GAAoB,iBAATD,EAAmB,CAC7B,IAAME,EAAkBH,EAAWI,KAAK,IACxC,OAAsC,IAAlCH,EAAKI,QAAQF,GAKZH,EAAW50B,SAAW60B,EAAK70B,OACvB,CACN8J,OAAO,EACP6qB,aAAcC,GAOT,CACNM,cAAc,GAIsB,IAAlCH,EAAgBE,QAAQJ,GACvBC,GASCF,EAAW50B,OAAS60B,EAAK70B,OACrB,CACNyc,UAAU,GAIN,CACN3S,OAAO,EACP6qB,aAAcC,EAAW3mB,MAAM,EAAG4mB,EAAK70B,cAGzC,CACA,CAED,GAAIm1B,MAAMC,QAAQP,GAAO,CAGxB,IAFA,IAAIQ,EAAiBT,EAAW3mB,QAC5BvX,EAAI,EACDA,EAAIm+B,EAAK70B,QAAQ,CACvB,IACMslB,EAASxb,EAAMurB,EADLR,EAAKn+B,GACyBo+B,GAASp+B,IAAMm+B,EAAK70B,OAAS,GAC3E,IAAKslB,EACJ,OACM,GAAIA,EAAO7I,SACjB,OAAO6I,EACD,IAAIA,EAAOxb,MAgBX,CAEN,GAAIwb,EAAO4P,aACV,MAAO,CACNA,cAAc,GAIf,MAAM,IAAIr7B,MAAJ,qCAAwCy7B,KAAKC,UAAUjQ,EAAQ,KAAM,IAE5E,CAvBA,GAA8B,KAD9B+P,EAAiBA,EAAepnB,MAAMqX,EAAOqP,aAAa30B,SACvCA,OAClB,OAAItJ,IAAMm+B,EAAK70B,OAAS,EAChB,CACN8J,OAAO,EACP6qB,aAAcC,GAGR,CACNM,cAAc,GAgBlBx+B,GACA,CAID,OAAIo+B,EACI,CACNrY,UAAU,GAGL,CACN3S,OAAO,EACP6qB,aAAcC,EAAW3mB,MAAM,EAAG2mB,EAAW50B,OAASq1B,EAAer1B,QAEtE,CAED,OAAQ60B,EAAKxB,IACZ,IAAK,IAEJ,IADA,IAAI6B,EACJ,MAAqBL,EAAKvB,QAA1B,aAAgC,KACzBhO,EAASxb,EAAM8qB,EADU,QACUE,GACzC,GAAIxP,EAAQ,CACX,GAAIA,EAAO7I,SACV,OAAO6I,EACD,GAAIA,EAAOxb,MACjB,MAAO,CACNA,OAAO,EACP6qB,aAAcrP,EAAOqP,cAItB,IAAIrP,EAAO4P,aAGV,MAAM,IAAIr7B,MAAJ,qCAAwCy7B,KAAKC,UAAUjQ,EAAQ,KAAM,KAF3E4P,GAAe,CAKjB,CACD,CACD,OAAIA,EACI,CACNA,cAAc,QAKhB,EAED,IAAK,KACJ,IAAK,IAAL,MAAmBL,EAAKvB,QAAxB,aAA8B,KAAnBkC,EAAmB,QAC7B,GAAIZ,EAAW,KAAOY,EACrB,OAA0B,IAAtBZ,EAAW50B,OACP,CACN8J,OAAO,EACP6qB,aAAcC,GAGZE,EACI,CACNrY,UAAU,GAGL,CACN3S,OAAO,EACP6qB,aAAc,CAACa,GAGjB,CAED,OAGD,QACC,MAAM,IAAI37B,MAAJ,wCAA2Cg7B,IAEnD,C,qgCC5KD,IAKMY,GAA6BnE,EALf,IAEyB,IAOvCoE,GAAqC,OAYrCC,GAAwE,iBAAM,iBAAN,EAOxEC,GAAyE,iBAAM,mBAAN,EAoCzEC,GAA8B,IAAIxE,OACvC,IAAMyE,EAAAA,GAAN,UAKMA,EAAAA,GALN,aAMaA,EAAAA,GANb,SAeoBC,GAAAA,WACpB,cAGG,EAFFrvB,MAEE,IADFwrB,EACE,EADFA,U,4FACE,SACFt7B,KAAKs7B,SAAWA,EAChBt7B,KAAKo/B,aACL,C,kDAED,WACCp/B,KAAKq/B,kBAAe/8B,EACpBtC,KAAKs/B,cAAWh9B,EAChBtC,KAAKu/B,4BAAyBj9B,EAC9BtC,KAAKw/B,qCAAkCl9B,EACvCtC,KAAKy/B,yCAA2C,CAChD,G,mBAED,SAAMC,EAAe5vB,GACpB9P,KAAKo/B,cACDM,GACH1/B,KAAK2/B,OAAyC,MAAhCD,EAAcpG,cAC5Bt5B,KAAK4/B,gBAAkBF,EAAcG,UACjC/vB,EAAM+pB,2BACT75B,KAAK8/B,0BAA0BhwB,KAGhC9P,KAAK2/B,YAASr9B,EACdtC,KAAK4/B,gBAAkB,GAExB,G,oBAQD,SAAOtF,EAAYxqB,GAAO,IHtHa+pB,EAA2ByB,EGsHxC,OAezB,GHrIsCzB,EGqIV/pB,EAAM+pB,0BHrI+ByB,EGqIJt7B,KAAKs7B,SHpID,iBAA3DyE,EAAAA,EAAAA,GAAkBlG,EAA2ByB,GGqIlD,IAAK,IAAL,MAAqBt7B,KAAK4/B,mBAA1B,aAA2C,KAAhCvE,EAAgC,QACpC2E,EAA0B5E,EAC/BtrB,EACAurB,EACA,CACCC,SAAUt7B,KAAKs7B,SACfC,sCAAuC,SAACF,GAAD,OAAY,EAAKE,sCAAsCF,EAAQ,CACrG9B,cAAezpB,EAAMypB,cACrBS,eAAgBlqB,EAAMkqB,gBAFgB,EAIvCwB,gCAAiC,SAACH,GAAD,OAAY,EAAKG,gCAAgCH,EAAjD,IAGnC,GAAI2E,EAQH,OAPAhgC,KAAKo/B,cACLp/B,KAAKq/B,aAAehE,EACpBr7B,KAAKigC,0BAA0BD,EAAwB77B,QAAQ,MAAOo2B,GAAoBzqB,GAC1F9P,KAAKw/B,gCAAkCQ,EAGvChgC,KAAKy/B,wCAA0Cz/B,KAAKs/B,SAASY,YAAY3F,GAClEyF,CAGR,CAIF,OAAOhgC,KAAKmgC,mCAAmC7F,EAAYxqB,EAC3D,G,gDAGD,SAAmCwqB,EAAYxqB,GAC9C,IAAMswB,EAAyBpgC,KAAKq/B,aAG9BgB,EAAoBrgC,KAAKsgC,aAAaxwB,GAE5C,GAAIuwB,EACH,OAAIA,IAAsBD,EAIlBpgC,KAAKugC,+BAA+BjG,GAMpCt6B,KAAKugC,+BAA+BzwB,EAAMgqB,oBAGnD,G,uCAED,YAIG,WAHFD,EAGE,EAHFA,0BACAG,EAEE,EAFFA,eACAT,EACE,EADFA,cAEMiH,EAAgB3G,EAclB4G,EAA4BD,EAAcp3B,OAhId,EAiI5Bq3B,EAA4B,IAC/BA,EAA4B,GAG7BzgC,KAAK4/B,gBAAkB5/B,KAAK4/B,gBAAgB31B,QAC3C,SAAAoxB,GAAM,OAAI,EAAKqF,YAAYrF,EAAQ9B,EAAeS,IAC9C,EAAK2G,cAActF,EAAQmF,EAAeC,EADxC,IAWHzgC,KAAKq/B,eAAqE,IAArDr/B,KAAK4/B,gBAAgBvB,QAAQr+B,KAAKq/B,eAC1Dr/B,KAAKo/B,aAEN,G,yBAED,SAAY/D,EAAQ9B,EAAeS,GAWlC,QAAIA,IACFqB,EAAOuF,uBAEPvF,EAAOwF,2DAQJtH,IACHS,GACDqB,EAAOyF,0DAIR,G,2BAED,SAAczF,EAAQmF,EAAeC,GACpC,IAAMM,EAA6B1F,EAAO2F,wBAAwB53B,OAKlE,GAAmC,IAA/B23B,EACH,OAAO,EAQRN,EAA4BQ,KAAKxrB,IAAIgrB,EAA2BM,EAA6B,GAC7F,IAAMG,EAAuB7F,EAAO2F,wBAAwBP,GA2B5D,GAAID,EAAcp3B,OA/Nc,EAoO/B,IACC,YAAkG9G,IAA3F,IAAIq7B,EAAeuD,GAAsBhuB,MAAMstB,EAAe,CAAE1C,eAAe,GACtF,CAAC,MAAO58B,GAMR,OADAD,QAAQC,MAAMA,IACP,CACP,CASF,OAAO,IAAIu5B,OAAJ,YAAgByG,EAAhB,MAAyC7X,KAAKmX,EACrD,G,6BAED,SAAgBnF,EAAQ9B,GACvB,OAAOA,EAAgB8B,EAAO8F,sBAAwB9F,EAAOA,QAC7D,G,0BAED,SAAavrB,GAgBZ,IAhBmB,IAgBnB,EAhBmB,wBAgBRurB,EAhBQ,QAmBlB,OAAI,EAAKgE,eAAiBhE,EACzB,QAyCI4D,GAA4B5V,KAAK,EAAK+X,gBAAgB/F,EAAQvrB,EAAMypB,gBAGpE,EAAK8H,wBAAwBhG,EAAQvrB,IAK1C,EAAKuvB,aAAehE,EACpB,UAJC,EAAKuE,gBAAkB,EAAKA,gBAAgB31B,QAAO,SAAAq3B,GAAC,OAAIA,IAAMjG,CAAV,IACpD,YALA,UA9DiB,EAgBnB,IAAqBr7B,KAAK4/B,gBAAgBvoB,WAA1C,aAAmD,0BAsDlD,KACA,CAKD,OAJKrX,KAAKq/B,cAETr/B,KAAKo/B,cAECp/B,KAAKq/B,YACZ,G,qCAED,SAAwBhE,EAAQvrB,GAK/B,KAA0CurB,EAAO5nB,UAAU4qB,QAAQ,MAAQ,GAA3E,CAIA,IAAMiB,EAAWt/B,KAAKuhC,qBAAqBlG,EAAQvrB,GAGnD,OAAIwvB,GACHt/B,KAAKigC,0BAA0BX,EAAUxvB,IAClC,QAFR,CALC,CASD,G,6CAED,SAAgCurB,GAM/B,OAAIr7B,KAAK2/B,QAOLtE,GACHA,EAAOmG,gCACP1C,GAAmCzV,KAAKgS,EAAOmG,gCARxC,IAcD,EACP,G,4DAED,WAA2E9+B,GAAS,IAAnC+2B,EAAmC,EAAnCA,UAAWD,EAAwB,EAAxBA,YAC3D,OAAIC,EACI/2B,IAA+B,IAApBA,EAAQ++B,QAAoBhI,EAAYA,EAAY,IAEnED,EACI,GAED,GACP,G,yBAED,SAAY1pB,GACX,GAAK9P,KAAKs/B,SAAV,CASA,IAHA,IAAI/lB,GAAS,EACTzZ,EAAI,EACF4hC,EAAsB5xB,EAAMypB,cAAgBv5B,KAAK2hC,+CAA+C7xB,EAAO,CAAE2xB,SAAS,IAAW,GAC5H3hC,EAAI4hC,EAAoBt4B,OAAS0G,EAAM8xB,sCAAsCx4B,QACnFmQ,EAAQvZ,KAAKs/B,SAASjB,QAAQ9D,EAAmBhhB,EAAQ,GACzDzZ,IAED,OAAO+6B,EAA2B76B,KAAKs/B,SAAU/lB,EAAQ,EAXxD,CAYD,G,uCAED,SAA0B+lB,EAAUxvB,GACnC9P,KAAKu/B,uBAAyBD,EAC9Bt/B,KAAKw/B,gCAAkCF,EAGvCt/B,KAAKy/B,yCAA2C,EAM5C3vB,EAAMypB,cACTv5B,KAAKs/B,SACJt/B,KAAK2hC,+CAA+C7xB,GAAO3L,QAAQ,UAAWo2B,GAC9EG,EAAOH,EAAmBzqB,EAAMwpB,YAAYlwB,QAC5C,IACAk2B,EAEDt/B,KAAKs/B,SAAWA,CAEjB,G,kCASD,SAAqBjE,EAArB,GAKG,IAJFxB,EAIE,EAJFA,0BACAN,EAGE,EAHFA,cACAS,EAEE,EAFFA,eACAE,EACE,EADFA,6CAEIzmB,EAAU4nB,EAAO5nB,UAIpBA,EAAUA,EAERtP,QAAQ46B,KAAkC,OAE1C56B,QAAQ66B,KAAmC,OAW9C,IAAItF,EAASmF,GAA2B3rB,MAAMO,GAAS,GAIvD,KAAIomB,EAA0BzwB,OAASswB,EAAOtwB,QAA9C,CAmCA,IAAMy4B,EAAgB,IAAIpH,OAAO,IAAMhnB,EAAU,KAC3CquB,EAA4BjI,EAA0B11B,QAAQ,MA7jBlD,KAkkBd09B,EAAcxY,KAAKyY,KACtBpI,EAASoI,GAGV,IACIC,EADAC,EAAehiC,KAAKohC,gBAAgB/F,EAAQ9B,GAUhD,GAAIv5B,KAAKu7B,sCAAsCF,EAAQ,CAAE9B,cAAAA,EAAeS,eAAAA,IAAmB,CAC1F,IAAMiI,EAAiCD,EAAa79B,QACnD+9B,EAAAA,EACA7G,EAAOmG,gCAUR,IAAIvF,EAAAA,EAAAA,IAAYZ,EAAOmG,mCAAqCxH,GAAkB,KAAMiC,EAAAA,EAAAA,IAAY,QAC/F+F,EAAeC,EACfF,GAAmC,EAG/B/H,GAEH,IADA,IAAIl6B,EAAIk6B,EAAe5wB,OAChBtJ,EAAI,GACVkiC,EAAeA,EAAa79B,QAAQ,KAAMo2B,GAC1Cz6B,GAIH,CAGD,IAAIw/B,EAAW5F,EAEbv1B,QAAQ,IAAIs2B,OAAOhnB,GAAUuuB,GAE7B79B,QAAQ,IAAIs2B,OAjnBI,IAinBgB,KAAMF,GAwBxC,OAlBKwH,IACA7H,EAEHoF,EAAW5E,EAAOH,EAAmBL,EAA6C9wB,QACjF,IACAk2B,EACStF,IAEVsF,EAAW5E,EAAOH,EAAmBP,EAAe5wB,QACnDpJ,KAAKw7B,gCAAgCH,GACrCiE,IAIC/F,IACH+F,GAAW6C,EAAAA,EAAAA,GAAiC7C,IAGtCA,CA9GN,CA+GD,G,4CAED,SAA+B5F,GAC9B,IAAMhL,EJplBD,SAAoC4Q,EAAU1Z,EAAU8T,GAM9D,IAAK,IAAL,MAAoBA,EAAO31B,MAAM,OAAjC,aAAsC,KAA3Bq+B,EAA2B,QAKrC,GAAI9C,EAASjoB,MAAMuO,EAAW,GAAG5f,OAAOw0B,GAA6B,EACpE,OAED5U,EAAW0Z,EAASt5B,OAAOw0B,GAC3B8E,EAAWA,EAASn7B,QAAQq2B,EAA2B4H,EACvD,CACD,MAAO,CAAC9C,EAAU1Z,EAClB,CIkkBgByc,CACdriC,KAAKw/B,gCACLx/B,KAAKy/B,wCACL/F,GAGD,GAAKhL,EAUL,OAJA1uB,KAAKw/B,gCAAkC9Q,EAAO,GAC9C1uB,KAAKy/B,wCAA0C/Q,EAAO,GAG/CmM,EAA2B76B,KAAKw/B,gCAAiCx/B,KAAKy/B,wCAA0C,GARtHz/B,KAAKo/B,aAcN,G,mDAED,SAAsC/D,EAAtC,GAAiF,IAAjC9B,EAAiC,EAAjCA,cAAeS,EAAkB,EAAlBA,eAC9D,GAAIqB,EAAOmG,+BAAgC,CAI1C,IAAMZ,EAAqBvF,EAAOuF,qBAClC,GAAKA,GAAsB5G,IACxB4G,IAAuBrH,EACzB,OAAO,CAER,CACD,M,kFAhmBmB4F,G,sqCC5FrB,IAAMmD,GACL,IACCpD,EAAAA,GACAqD,EAAAA,GACD,KAEKC,GAAmD,IAAI/H,OAAO,IAAM6H,GAA2C,IAAK,KAEpHG,GACL,OACOC,EAAAA,GADP,KAGExD,EAAAA,GACAqD,EAAAA,GAJF,OAQErD,EAAAA,GACAqD,EAAAA,GATF,MAaKI,GAAwC,IAAIlI,OACjD,KACCyE,EAAAA,GACAqD,EAAAA,GAFD,SAWKK,GAA0B,YAEXC,GAAAA,WACpB,cAKG,IAJFC,EAIE,EAJFA,eACAC,EAGE,EAHFA,mBACAzH,EAEE,EAFFA,SACA0H,EACE,EADFA,mC,4FACE,SACFhjC,KAAK8iC,eAAiBA,EACtB9iC,KAAK+iC,mBAAqBA,EAC1B/iC,KAAKs7B,SAAWA,EAChBt7B,KAAKgjC,kCAAoCA,CACzC,C,4CAED,SAAMz+B,EAAMuL,GACX,IAGImzB,EAHJ,EA+aK,SAAuC1+B,GAC7C,MAhBD,SAAwCA,GAEvC,IAAM2+B,EA9BP,SAAqC3+B,GAEpC,IAOI4+B,EAPEC,EAAW7+B,EAAKyB,OAAOy8B,IAC7B,KAAIW,EAAW,GAiBf,MAVgB,OAHhB7+B,EAAOA,EAAK8S,MAAM+rB,IAGT,KACRD,GAAU,EACV5+B,EAAOA,EAAK8S,MAAM,IAGnB9S,EAAOA,EAAKJ,QAAQw+B,GAAuC,IAEvDQ,IACH5+B,EAAO,IAAMA,GAEPA,CACP,CASwB8+B,CAA4B9+B,IAAS,GAE7D,MAA2B,MAAvB2+B,EAAgB,GACZ,CAACA,EAAgB7rB,MAAM,IAAa,GAErC,CAAC6rB,EACR,CAQiCI,CAA+B/+B,GAAhE,UAAKg/B,EAAL,KAAsBJ,EAAtB,KAOA,OAHKX,GAAiDnZ,KAAKka,KAC1DA,EAAkB,IAEZ,CAACA,EAAiBJ,EACzB,CAxboCK,CAA8Bj/B,GAAjE,UAAOg/B,EAAP,KAAwBJ,EAAxB,KACMzJ,GAASuC,EAAAA,EAAAA,IAAYsH,GAc3B,OAXIJ,IACErzB,EAAM4pB,SACV5pB,EAAM2zB,2BACD/J,IACJuJ,GAAkB,KAIjBvJ,GACH15B,KAAK0jC,YAAYhK,EAAQ5pB,GAEnB,CACN4pB,OAAAA,EACAuJ,gBAAAA,EAED,G,yBAOD,SAAY3I,EAAYxqB,GACvB,IAAQ4pB,EAAW5pB,EAAX4pB,OACFiK,EAAgCjK,EAAOtwB,OAAS,GAAKswB,EAAOtwB,OAASkxB,EAAWlxB,QAAU,EAuBhG,GApBA0G,EAAM8zB,aAAatJ,GAgBfqJ,GACH3jC,KAAK6jC,iBAAiB/zB,GAGnB9P,KAAK8jC,+BAA+Bh0B,IACvC,IAAK9P,KAAK+jC,0BAA0Bj0B,GACnC,YAGDA,EAAMk0B,sCAAsC1J,GAQxCxqB,EAAMypB,eACLv5B,KAAKikC,uCACTjkC,KAAKkkC,iCACJp0B,EAAMgqB,qBACN,SAACqK,GAAD,OAAiBr0B,EAAMs0B,OAAOD,EAA9B,GAIH,G,4CAED,YAA+D,IAA9B5K,EAA8B,EAA9BA,cAAeD,EAAe,EAAfA,YAC/C,OAAOC,IAAkBD,CACzB,G,uCAID,SAA0BxpB,GACzB,OAAuCi0B,EAAAA,GAAAA,GACtC,IAAMj0B,EAAM8xB,sCACZ5hC,KAAK8iC,eACL9iC,KAAK+iC,mBACL/iC,KAAKs7B,SAASA,UAJP+I,EAAR,EAAQA,mBAAoBC,EAA5B,EAA4BA,OAM5B,GAAID,EAKH,OAJAv0B,EAAMuqB,eAAegK,GACrBv0B,EAAMs0B,OAAO,CACZvK,0BAA2ByK,KAErB,CAER,G,mBAED,SAAM5E,GACL,GAAIA,EAAe,CAClB1/B,KAAKukC,0BAA2B,EAChC,IAAMC,EAA2B9E,EAAc+E,4BAC/CzkC,KAAK0kC,qDAAuDF,GAA4B5B,GAAwBvZ,KAAKmb,EACrH,MACAxkC,KAAKukC,8BAA2BjiC,EAChCtC,KAAK0kC,0DAAuDpiC,CAE7D,G,8CASD,SAAiCqiC,EAAgBC,GAChD,GAAK5kC,KAAKukC,yBAAV,CAGA,OAIIM,EAAAA,GAAAA,GACHF,EACA3kC,KAAKs7B,UALLtB,EADD,EACCA,eACA8K,EAFD,EAECA,eACA7K,EAHD,EAGCA,YAKD,GAAI6K,IAAmBH,EAUvB,OAPA3kC,KAAK+kC,0BACJ/K,EACAC,EACA6K,EACAH,EACAC,IAEM,CAnBN,CAoBD,G,qDAOD,SAAwCD,EAAgBK,EAA+BJ,GACtF,IAAK5kC,KAAKikC,sCACT,OAAOjkC,KAAKkkC,iCAAiCS,EAAgBC,GAE9D,GAAK5kC,KAAK0kC,qDAAV,CAGA,OAIIG,EAAAA,GAAAA,GACHF,EACA3kC,KAAKs7B,UALLtB,EADD,EACCA,eACA8K,EAFD,EAECA,eACA7K,EAHD,EAGCA,YAWD,GAAI6K,IAAmBE,EAUvB,OAPAhlC,KAAK+kC,0BACJ/K,EACAC,EACA6K,EACAH,EACAC,IAEM,CAzBN,CA0BD,G,uCAED,SACC5K,EACAC,EACAJ,EACA8K,EACAC,GAEA,IAAI1K,EACAH,EAEEkL,EAAiCN,EAAezE,YAAYrG,GAMlE,GAAIoL,GAAkC,GACrCA,IAAmCN,EAAev7B,OAASywB,EAA0BzwB,OAAQ,CAC7F2wB,GAAwC,EAMxC,IAAMmL,EAA6BP,EAAettB,MAAM,EAAG4tB,GAMvDC,IAA+BlL,IAClCE,EAA+CgL,EAEhD,CACDN,EAAS,CACR5K,eAAAA,EACAC,YAAAA,EACAJ,0BAAAA,EACAE,sCAAAA,EACAG,6CAAAA,IAIDl6B,KAAKikC,uCAAwC,EAC7CjkC,KAAKgjC,mCACL,G,gDAED,SAAmClzB,GAkClC,QAAI9P,KAAKmlC,wCACRr1B,EAAMgqB,oBACNhqB,EAAM+pB,2BACN,SAACsK,GAAD,OAAiBr0B,EAAMs0B,OAAOD,EAA9B,MAkBGnkC,KAAK6jC,iBAAiB/zB,IAWtB9P,KAAKolC,eAAet1B,IAVvB9P,KAAKqlC,+CAA+Cv1B,IAC7C,QASR,EAIA,G,8BAED,SAAiBA,GAGhB,IACCypB,EAIGzpB,EAJHypB,cACAE,EAGG3pB,EAHH2pB,UACAC,EAEG5pB,EAFH4pB,OAGD,GADI5pB,EADH+pB,2BAEGN,IAAiBE,EAArB,CAOA,IAAM6L,GAAmBC,EAAAA,GAAAA,GACxB7L,EACA15B,KAAK8iC,eACL9iC,KAAK+iC,mBACL/iC,KAAKs7B,SAASA,UAEf,YAAyBh5B,IAArBgjC,GAAkCA,IAAqB5L,GAG1D5pB,EAAMs0B,OAAO,CACZ3K,UAAWC,EAAOriB,MAAM,EAAGqiB,EAAOtwB,OAASk8B,EAAiBl8B,UAE7DpJ,KAAKyjC,yBAAyB3zB,EAAO,CACpCoY,aAAS5lB,EACTg3B,iBAAah3B,KAEP,QAVR,CAXC,CAuBD,G,4BAED,SAAewN,GACd,IAAKA,EAAMypB,cAAe,CACzB,OAGIiM,EAAAA,GAAAA,GACH11B,EAAM4pB,OACN15B,KAAK8iC,eACL9iC,KAAK+iC,mBACL/iC,KAAKs7B,SAASA,UANMmK,EADrB,EACCpB,mBAQD,GATA,EAECC,OAOGmB,EAQH,OAPA31B,EAAMs0B,OAAO,CACZ5K,aAAa,IAEdx5B,KAAKyjC,yBAAyB3zB,EAAO,CACpCoY,QAASpY,EAAMoY,QACfoR,YAAamM,KAEP,CAER,CACD,G,sCAED,SAAyB31B,EAAzB,GAA0D,IAAxBoY,EAAwB,EAAxBA,QAASoR,EAAe,EAAfA,YAC1CxpB,EAAM2zB,yBAAyBvb,EAASoR,GAEpCxpB,EAAM+pB,4BACT/pB,EAAM6pB,iCACN35B,KAAKgjC,oCACLhjC,KAAKikC,2CAAwC3hC,EAE9C,G,4DAED,SAA+CwN,GAC1C9P,KAAK+jC,0BAA0Bj0B,IAOlC9P,KAAKkkC,iCACJp0B,EAAMgqB,qBACN,SAACqK,GAAD,OAAiBr0B,EAAMs0B,OAAOD,EAA9B,GAGF,M,kFA1YmBtB,G,gqCCvCrB,IAEqB6C,GAAAA,WAKpB,WAAYC,EAAyBrK,I,4FAAU,SAC9Ct7B,KAAKs7B,SAAW,IAAIvC,EAAAA,GAASuC,GAC7B,SAA6Ct7B,KAAK4lC,yBAAyBD,GAA3E,GAAO7C,EAAP,KAAuBC,EAAvB,KAIA/iC,KAAK8iC,eAAiBA,EACtB9iC,KAAK+iC,mBAAqBA,EAC1B/iC,KAAK6lC,OACL,C,+DAED,SAAyBF,GAExB,IAAI7C,EACAC,EAqBJ,OAnBI4C,KACCG,EAAAA,GAAAA,GAASH,IACZ7C,EAAiB6C,EAAwB7C,eACzCC,EAAqB4C,EAAwB5C,oBAE7CD,EAAiB6C,GAGf7C,IAAmB9iC,KAAKs7B,SAASyK,WAAWjD,KAC/CA,OAAiBxgC,GAUX,CAACwgC,EAAgBC,EACxB,G,mBAOD,SAAMx+B,GACL,MAGIvE,KAAKgmC,OAAO9c,MAAM3kB,EAAMvE,KAAK8P,OAFhC4pB,EADD,EACCA,OAGD,GAJA,EAECuJ,gBAGAjjC,KAAKimC,gBAAkB,SACjB,GAAIvM,EAAQ,CAMlB,IAAImC,EAIJ,GATA77B,KAAKkmC,8BAEDlmC,KAAK8P,MAAM+pB,2BACd75B,KAAKmmC,UAAUrG,0BAA0B9/B,KAAK8P,OAG3C9P,KAAKs7B,SAASiJ,6BACjB1I,EAA0B77B,KAAKmmC,UAAU9K,OAAO3B,EAAQ15B,KAAK8P,aAE9BxN,IAA5Bu5B,GAEC77B,KAAKgmC,OAAOI,mCAAmCpmC,KAAK8P,OAAQ,CAC/D9P,KAAKkmC,8BAEL,IAAMvB,EAAiB3kC,KAAK8P,MAAMgqB,oBAC9B6K,IACH9I,EAA0B77B,KAAKmmC,UAAU9K,OAAOsJ,EAAgB3kC,KAAK8P,OAEtE,CAEF9P,KAAKimC,gBAAkBpK,EACpB77B,KAAKqmC,cAAcxK,GACnB77B,KAAKsmC,uBACR,CACD,OAAOtmC,KAAKimC,eACZ,G,mBAED,WAAQ,WAmCP,OAlCAjmC,KAAK8P,MAAQ,IAAIqpB,EAAe,CAC/BC,gBAAiB,SAAClR,GAMjB,EAAKA,QAAUA,CACf,EACDmR,oBAAqB,SAACC,EAAapR,GAClC,EAAKoT,SAASiL,oBAAoBre,EAASoR,GAC3C,EAAK6M,UAAUN,MAAM,EAAKvK,SAASoE,cAAe,EAAK5vB,OACvD,EAAKk2B,OAAOH,MAAM,EAAKvK,SAASoE,cAChC,IAEF1/B,KAAKmmC,UAAY,IAAIhH,GAAmB,CACvCrvB,MAAO9P,KAAK8P,MACZwrB,SAAUt7B,KAAKs7B,WAEhBt7B,KAAKgmC,OAAS,IAAInD,GAAgB,CACjCC,eAAgB9iC,KAAK8iC,eACrBC,mBAAoB/iC,KAAK+iC,mBACzBzH,SAAUt7B,KAAKs7B,SACfxrB,MAAO9P,KAAK8P,MACZkzB,kCAAmC,WAClC,EAAKkD,8BACL,EAAKC,UAAUN,MAAM,EAAKvK,SAASoE,cAAe,EAAK5vB,MACvD,IAEF9P,KAAK8P,MAAM+1B,MAAM,CAChB3d,QAASloB,KAAK8iC,eACdxJ,YAAat5B,KAAK+iC,qBAEnB/iC,KAAKimC,gBAAkB,GAChBjmC,IACP,G,6BAOD,WACC,OAAOA,KAAK8P,MAAMypB,aAClB,G,4BAQD,WASC,GAAIv5B,KAAKwmC,kBACR,OAAOxmC,KAAK8P,MAAMwpB,WAEnB,G,mCAGD,WACC,OAAOt5B,KAAKymC,gBACZ,G,wBAQD,WAGC,GAFmBzmC,KAAK8P,MAAhB4pB,OAGP,OAAO15B,KAAK0mC,aAEb,G,yBAOD,WACC,IAAQxe,EAAYloB,KAAK8P,MAAjBoY,QASR,OAAOA,CACP,G,yCAED,WAiBMloB,KAAK8P,MAAMoY,UAAWloB,KAAK2mC,iCAC/B3mC,KAAK4mC,qBAEN,G,2BAGD,SAAc/K,GAAyB,WACtC,GAAI77B,KAAKwmC,kBAAmB,CAC3B,IAAMK,EAAS,SAACtiC,GAAD,OAAU,EAAK4hC,UAAUxE,+CAA+C,EAAK7xB,MAAO,CAClG2xB,UAASl9B,IACLA,CAFU,EAGP+0B,EAAgBt5B,KAAK8P,MAArBwpB,YACR,OAMOuN,EANFvN,EAGAuC,EAGS,GAAD,OAAIvC,EAAJ,YAAmBuC,GAFjBvC,EAHA,GAAD,OAAIt5B,KAAK8P,MAAM8xB,uCAM7B,CACD,OAAO/F,CACP,G,qDAED,WACC,MAII77B,KAAK8P,MAHR+pB,EADD,EACCA,0BACAK,EAFD,EAECA,6CACAF,EAHD,EAGCA,eAEGsK,EAASzK,EACPgN,EAAS3M,GAAgDF,EAI/D,OAHI6M,IACHvC,EAASuC,EAASvC,GAEZA,CACP,G,mCAED,WACC,IAAQvK,EAA0C/5B,KAAK8P,MAA/CiqB,sCACR,OAAO/5B,KAAKqmC,cACXtM,EACG/5B,KAAK8mC,0CACL9mC,KAAK8P,MAAMgqB,oBAEf,G,qCAED,WACC,IAAMwK,EAAStkC,KAAKsmC,wBACpB,GAAIhC,EACH,OAAOA,EAAOngC,QAAQ,UAAWo2B,EAElC,G,2CAED,WACC,IAAQjB,EAAgBt5B,KAAK8P,MAArBwpB,YACFyN,EAAe/mC,KAAKs7B,SAAS0L,8BAA8B1N,GACjE,OAAOyN,GAAgBA,EAAa39B,OAAS,CAC7C,G,iCAKD,WACCpJ,KAAK8P,MAAMqY,YAAW8e,EAAAA,GAAAA,GACrBjnC,KAAKwmC,kBAAoBxmC,KAAK8P,MAAMwpB,YAAct5B,KAAK+iC,mBACvD,CACC+B,eAAgB9kC,KAAK8P,MAAM+pB,0BAC3BiJ,eAAgB9iC,KAAK8iC,eACrBxH,SAAUt7B,KAAKs7B,WAGjB,G,4BAoBD,WACC,MAKIt7B,KAAK8P,MAJR4pB,EADD,EACCA,OACAJ,EAFD,EAECA,YACApR,EAHD,EAGCA,QACA2R,EAJD,EAICA,0BAID,GAAKH,EAIL,OAAI15B,KAAKwmC,kBACJlN,EACI,IAAMA,EAAcO,EAEpB,IAAMH,EAGVxR,GAAWoR,EAEP,KADcpR,EAAUloB,KAAKs7B,SAAS+I,qBAAuB/K,GACxCO,OAF7B,CAKD,G,uBAQD,WACC,MAII75B,KAAK8P,MAHR+pB,EADD,EACCA,0BACAI,EAFD,EAECA,YACAX,EAHD,EAGCA,YAMGpR,EAAUloB,KAAK0mC,cAEnB,GAAK7M,IAQA3R,GAAYoR,GAAjB,CAiBA,GAAIpR,GACCA,IAAYloB,KAAK8iC,eAAgB,CAIpC,IAAMxH,EAAW,IAAIvC,EAAAA,GAAS/4B,KAAKs7B,SAASA,UAC5CA,EAASiL,oBAAoBre,GAC7B,IAAMoR,EAAcgC,EAASoE,cAAcpG,cACrC4N,EAAqBlnC,KAAKs7B,SAAS0L,8BAA8B1N,GACvE,GAAI4N,EAAmB99B,OAAS,EAAG,CAClC,IAAM+9B,GAAeC,EAAAA,GAAAA,GAA2BvN,EAA2B,CAC1EwN,UAAWH,EACXpE,eAAgB9iC,KAAK8iC,eACrBxH,SAAUt7B,KAAKs7B,SAASA,WAErB6L,IACHjf,EAAUif,EAEX,CACD,CAGF,IAAMG,EAAc,IAAIC,EAAAA,EACvBrf,GAAWoR,EACXO,EACA75B,KAAKs7B,SAASA,UAMf,OAJIrB,IACHqN,EAAYrN,YAAcA,GAGpBqN,CA9CN,CA+CD,G,wBAOD,WACC,IAAMA,EAActnC,KAAKwnC,YACzB,QAAKF,GAGEA,EAAYG,YACnB,G,qBAOD,WACC,IAAMH,EAActnC,KAAKwnC,YACzB,QAAKF,GAGEA,EAAYjjB,SACnB,G,+BAOD,WACC,OAAOrkB,KAAK8P,MAAM+pB,yBAClB,G,sBAMD,WACC,OAAQ75B,KAAK8P,MAAMypB,cAAgB,IAAM,IAAMv5B,KAAK8P,MAAM4pB,MAC1D,G,yBAMD,WACC,OAAO15B,KAAKmmC,UAAUuB,YAAY1nC,KAAK8P,QAAU9P,KAAK2nC,2BAA6B,EACnF,M,kFAhcmBjC,GCLd,SAAS,GAAUxd,GACzB,OAAO,GAAW8Q,KAAKh5B,KAAMkoB,EAAS,IACvC,CAEA,GAAU+Q,UAAY/e,OAAOgf,OAAO,GAAWD,UAAW,CAAC,GAC3D,GAAUA,UAAU/1B,YAAc,G,yvBCLnB,SAAS0kC,KACvB,OAAkCC,EAAAA,GAAAA,GAAmBC,WAA/CvjC,EAAN,EAAMA,KAAM7B,EAAZ,EAAYA,QAAS44B,EAArB,EAAqBA,SACrB54B,EAAU,GAAH,MACHA,GADG,IAENqlC,SAAS,IAIV,IACC,IAAMT,GAAcU,EAAAA,GAAAA,GAA0BzjC,EAAM7B,EAAS44B,IAC7DA,EAAW,IAAIvC,EAAAA,GAASuC,IACfiL,oBAAoBe,EAAYjD,oBACzC,IAAM3V,GAASqR,EAAAA,EAAAA,GAAkBuH,EAAYxC,eAAgBxJ,GAC7D,GAAe,gBAAX5M,EACH,OAAOA,CAER,CAAC,MAAOxtB,GAER,GAAIA,aAAiB+mC,GAAAA,EACpB,OAAO/mC,EAAMiC,QAEb,MAAMjC,CAEP,CACD,CC3BM,SAAS,KACf,OAAO,EAAAgnC,GAAA,GAAqB,GAA4BJ,UACzD,CCwBA,MAAMK,GAAiBh3B,EAAAA,GAAOC,IAAGC,KAAAA,IAAAC,EAAAA,EAAAA,GAAA,4BAI3B82B,GAAcj3B,EAAAA,GAAOC,IAAGG,KAAAA,IAAAD,EAAAA,EAAAA,GAAA,wdAIdI,GAAWA,EAAMsa,UAAY,sBAAwB,UAGrDta,GAAWA,EAAMsa,UAAY,sBAAwB,UAGrDta,GAAWA,EAAMsa,UAAY,sBAAwB,UAMrDta,GAAWA,EAAMsa,UAAY,sBAAwB,UAGrDta,GAAWA,EAAMsa,UAAY,sBAAwB,UAI/Dqc,GAAcl3B,EAAAA,GAAOC,IAAGK,KAAAA,IAAAH,EAAAA,EAAAA,GAAA,ucAEXI,GAAWA,EAAMsa,UAAY,OAAS,SAE3Cta,GAAWA,EAAMsa,UAAY,sBAAwB,UAC9Cta,GAAWA,EAAM42B,YAAc,MAAQ52B,EAAMsa,UAAY,OAAS,SAGzEta,GAAWA,EAAMsa,UAAY,sBAAwB,UAGrDta,GAAWA,EAAMsa,UAAY,sBAAwB,UAG9Cta,GAAWA,EAAM42B,YAAc,MAAQ52B,EAAMsa,UAAY,OAAS,SAGzEta,GAAWA,EAAMsa,UAAY,sBAAwB,UAGrDta,GAAWA,EAAMsa,UAAY,sBAAwB,UAI7Duc,GAAep3B,EAAAA,GAAOC,IAAGQ,KAAAA,IAAAN,EAAAA,EAAAA,GAAA,2EAMzBk3B,GAAiB,KACVC,GAAsBj1B,GACjCg1B,GAAenf,KAAK7V,KAAW,sBAAsB6V,KAAK7V,IAAWA,EAAMpK,OAAS,GAAKoK,EAAMpK,OAAS,EAE7Fs/B,GAAgBp7B,IAAyF,IAAxF,iBAAEgrB,EAAgB,SAAE/kB,EAAQ,eAAEo1B,EAAc,gBAAEC,EAAe,KAAErmC,GAAqB+K,EAChH,MAAM,UAAEu7B,EAAS,OAAEhC,EAAM,cAAEiC,EAAa,SAAE76B,IAAa0C,EAAAA,EAAAA,KAAab,GAAwBA,EAAMjL,SAASqB,UACpG6iC,EAAeC,IAAoBt7B,EAAAA,EAAAA,WAAS,IAC5CuqB,EAAUC,IAAexqB,EAAAA,EAAAA,WAAS,IAClCu7B,EAAWC,IAAgBx7B,EAAAA,EAAAA,UAAiB,OAC7C,MAAExM,EAAK,SAAE0P,IAAatE,EAAAA,EAAAA,OACrB68B,EAAWC,IAAgB17B,EAAAA,EAAAA,UAAS,IACpCoG,EAAWu1B,IAAgB37B,EAAAA,EAAAA,UAAS,IACrC,SAAE0C,EAAQ,OAAEC,EAAQO,SAAU04B,EAAY,WAAEhd,IAAehc,EAAAA,EAAAA,MAE3D0C,GAAWC,EAAAA,EAAAA,OAEVs2B,EAAWC,IAAiB97B,EAAAA,EAAAA,UAAS,cAE5CM,EAAAA,EAAAA,YAAU,KACLzL,GACDinC,EAAajnC,E,GAEd,CAACA,IAEJ,MAAM4d,EAAgBvT,IACpBs8B,EAAat8B,EAAEgH,OAAOJ,OACtBR,EAAS,CAAEnQ,KAAM,gBAAiB8Q,QAAS,CAAE,CAAC41B,GAAY38B,EAAEgH,OAAOJ,UAE/Di2B,EAAAA,EAAAA,GAAmB,GAAD9oC,OAAIkmC,GAAMlmC,OAAGiM,EAAEgH,OAAOJ,QAC1Cw1B,GAAiB,GAEjBA,GAAiB,GAEnB9Q,GAAY,EAAM,EAuCpB,OApCAlqB,EAAAA,EAAAA,YAAU,KAENg7B,KADG9nC,IAAU+2B,GAAc/2B,IAAU+nC,G,GAKtC,CAAC/nC,KAEJ8M,EAAAA,EAAAA,YAAU,KACR,MAAMstB,EAAW,IAAIvC,EACf2Q,EAAY,IAAIhE,GACtBgE,EAAU7D,QACV6D,EAAUxgB,MAAM2d,GAAkB,OAClC,MAAM8C,EAAkBrO,EAASiL,oBAAoBmD,EAAUxhB,SAASyhB,kBAClE71B,EAAYmtB,KAAK3rB,OAAOq0B,GACxBR,EAAYlI,KAAKxrB,OAAOk0B,GAC9BN,EAAav1B,GACbs1B,EAAaD,GACbhpB,EAAa,CAAEvM,OAAQ,CAAEJ,MAAOy1B,IAAc,GAC7C,CAACpC,KAEJ74B,EAAAA,EAAAA,YAAU,KACQ,SAAbC,GAAuB66B,EACxBI,EAAaJ,GAETD,GACJK,EAAaL,GAIVhC,GAEH7zB,EAAS,CAAEnQ,KAAM,gBAAiB8Q,QAAS,CAAEkzB,OAAQ,Q,GAEtD,IAGDp6B,IAAAA,cAAC87B,GAAY,KACX97B,IAAAA,cAAC0G,EAAAA,GAAiB,CAChB5Q,KAAMA,GAAc,YACpB6Q,MAAM,WACNC,YAAU,EACVS,UAAWA,EACXR,SAAUlD,EAAS,CACjBmD,SAAU,CACRC,OAAO8kB,EACPn1B,QAAS,aAEX2Q,UAAW,CAAEN,MAAOM,EAAW3Q,QAAS,UAAFxC,OAAYmT,EAAS,aAC3Dq1B,UAAW,CAAE31B,MAAO21B,EAAWhmC,QAAS,kBACxC8lB,SAAWzV,IAAUi2B,EAAAA,EAAAA,GAAmB,GAAD9oC,OAAIkmC,GAAMlmC,OAAG6S,MAMtDE,SAAW9G,IACTuT,EAAavT,GACTg8B,GACFA,G,EAGJnR,QAASA,KACHkR,GACFA,G,EAGJp1B,SAAUA,IAGX01B,GAAaA,EAAU7/B,OAAS,GAAK2/B,KAAkBU,EAAAA,EAAAA,GAAmB,GAAD9oC,OAAIkmC,GAAMlmC,OAAGsoC,IACrFx8B,IAAAA,cAACsH,EAAU,CAACC,UAAU,eACoC,aAAvD4zB,GAA0B,GAADjnC,OAAIkmC,GAAMlmC,OAAGsoC,IAA2B,UAAAtoC,OACpDmT,EAAS,YACoC,cAAvD8zB,GAA0B,GAADjnC,OAAIkmC,GAAMlmC,OAAGsoC,IACtC,iBACuD,iBAAvDrB,GAA0B,GAADjnC,OAAIkmC,GAAMlmC,OAAGsoC,IACtC,2BACAQ,EAAAA,EAAAA,GAAmB,GAAD9oC,OAAIkmC,GAAMlmC,OAAGsoC,IAC/B,KACA,oBAEJ,KACS,EAINW,GAAeC,IAAsC,IAArC,SAAEt2B,EAAQ,KAAEhR,GAAqBsnC,EAC5D,MAAQhD,OAASiD,EAAgBC,WAAYC,EAAkB,SAAE/7B,IAAY0C,EAAAA,EAAAA,KAAab,GAAwBA,EAAMjL,SAASqB,UAC1H2gC,EAAQoD,IAAav8B,EAAAA,EAAAA,UAAiB,OACtCw8B,EAAYC,IAAiBz8B,EAAAA,EAAAA,UAAgB,IAC9CsF,GAAWC,EAAAA,EAAAA,OAEVs2B,EAAWC,IAAiB97B,EAAAA,EAAAA,UAAS,UAuC5C,OArCAM,EAAAA,EAAAA,YAAU,KACLzL,GACDinC,EAAajnC,E,GAEd,CAACA,KAEJyL,EAAAA,EAAAA,YAAU,KACJ64B,GACF7zB,EAAS,CAAEnQ,KAAM,gBAAiB8Q,QAAS,CAAEkzB,W,GAE9C,CAACA,KAEJ74B,EAAAA,EAAAA,YAAU,KACQ,SAAbC,GAAuB+7B,EACxBC,EAAUD,GACDF,EACTG,EAAUH,IAEVG,EAAU,OACVj3B,EAAS,CAAEnQ,KAAM,gBAAiB8Q,QAAS,CAAE,CAAC41B,GAAY,UAG5D,MACMW,EADS,GAAGvpC,UAAUypC,IAEzB/wB,KAAKjX,GAASA,EAAK+B,QAAQ,QAAS,MACpC8F,QAAO,CAACogC,EAAM9wB,EAAOxZ,IAASwZ,IAAUxZ,EAAKs+B,QAAQgM,KACrDtb,MAAK,CAAClvB,EAAQmvB,IAAWnvB,EAAImvB,IAC7B3V,KAAKjX,GAAI,IAAAzB,OAASyB,KAErB+nC,EAAcD,EAAW,GACxB,IAQDz9B,IAAAA,cAACoc,EAAAA,GAAc,CACbtmB,KAAMA,GAAe,UACrB6Q,MAAM,UACNI,MAAOqzB,EACPtzB,UAAQ,EACR7Q,QAASwnC,EACT/pB,aAZJ,SAA4B+B,GAC1B,MAAMooB,EAAYpoB,EAAMhC,cAAc1M,MACtCy2B,EAAUK,EACZ,EAUI39B,QAASA,IAAM,KACfmc,cAAY,EACZC,UAAWkhB,EACXjhB,WAAYzV,GACZ,EAIA,SAAUg3B,GAAgB74B,GAC9B,OACEjF,IAAAA,cAAAA,IAAAA,SAAA,KACGiF,EAAM42B,YAAc,KACnB77B,IAAAA,cAAC27B,GAAW,CAACp0B,UAAU,eAAegY,UAAWta,EAAMsa,WACrDvf,IAAAA,cAACm9B,GAAY1vB,OAAAC,OAAA,GAAKzI,KAGtBjF,IAAAA,cAAC47B,GAAW,CAACC,YAAa52B,EAAM42B,YAAatc,UAAWta,EAAMsa,WAC5Dvf,IAAAA,cAACi8B,GAAaxuB,OAAAC,OAAA,GAAKzI,KAI3B,CAEM,SAAU84B,GAAS94B,GACvB,OACEjF,IAAAA,cAACqL,EAAAA,GAAc,CAAC2O,mBAAoB/U,EAAM+U,oBACxCha,IAAAA,cAACsa,EAAAA,GAAiB,CAAC/S,UAAU,eAAegY,UAAWta,EAAMsa,WAC3Dvf,IAAAA,cAAC07B,GAAc,KACb17B,IAAAA,cAAC89B,GAAerwB,OAAAC,OAAA,GAAKzI,MAK/B,C,yBCjRM,SAAUsO,GAAiBtO,GAC/B,MAAM,SAAE4B,EAAQ,KAAE/Q,EAAI,OAAEi1B,EAAM,iBAAElX,EAAgB,SAAE5M,EAAQ,MAAEN,EAAK,KAAEq3B,EAAI,SAAEl3B,EAAQ,UAAEO,GAAcpC,GAC3F,SAAEqH,IAAazI,EAAAA,EAAAA,OACf,MAAEpP,EAAK,SAAE0P,IAAatE,EAAAA,EAAAA,qBACtBC,GAAkBC,EAAAA,GAAAA,MAClBkrB,GAAwBjc,EAAAA,EAAAA,sBAAqB,oBAC7C,SAAE5W,IAAa8L,EAAAA,EAAAA,KAAab,GAAwBA,KACnD+I,EAAcC,IAAmBpL,EAAAA,EAAAA,UAAS,IAiBjD,OAVAM,EAAAA,EAAAA,YAAU,KACJ8F,GALQsK,SAASyB,qBAAqB,YACtC,GAAGC,aAAa,YAAahM,EAAUuN,YAK3C,MAAM7N,EAAQ3O,EAASqB,OAAO3D,GAE1BiR,GAASA,IAAU8M,GACrBxH,EAAgBtF,E,GAGjB,IAGD/G,IAAAA,cAAAA,IAAAA,SAAA,KACEA,IAAAA,cAACi+B,GAAAA,EAAQxwB,OAAAC,OAAA,GACHzI,EAAK,CACTgC,SAAW9G,IACTkM,EAAgBlM,EAAEsT,cAAc1M,OAC7B5G,EAAEsT,cAAc1M,MAAMpK,OAAS,GAChCwH,GAAS,GAEP8C,GACFA,EAAS9G,E,EAGb4qB,OAAS5qB,IACH4qB,GAAQA,EAAO5qB,GACnBmM,EAASxW,EAAMqK,EAAEsT,cAAc1M,OAC/BkkB,EAAsBE,SAASr1B,EAAMqK,EAAEsT,cAAc1M,MAAM,EAE7DikB,QAASA,KACPlrB,EAAgB8e,oBACd,CACEve,UAAWsG,GAEb,CACE0O,cAAevf,GAElB,EAEHiR,MAAOqF,EACP4xB,KAAMA,GAAc,EACpBl3B,SAAUA,IAAsB,EAChCO,UAAWA,KAEbrH,IAAAA,cAAA,SAAO5J,KAAK,SAASN,KAAMA,EAAMiR,MAAOqF,EAAcW,IAAKlG,IAGjE,CClFO,MAAM82B,GAAsB,CACjC,CAAC,QACD,CAAC,QACD,CAAC,QACD,CAAC,OACD,CAAC,UACD,CAAC,UACD,CAAC,QACD,CAAC,QACD,CAAC,QACD,CAAC,QACD,CAAC,OACD,CAAC,UACD,CAAC,OACD,CAAC,OACD,CAAC,QACD,CAAC,QACD,CAAC,QACD,CAAC,QACD,CAAC,UACD,CAAC,QACD,CAAC,OACD,CAAC,QACD,CAAC,QACD,CAAC,QACD,CAAC,QACD,CAAC,QACD,CAAC,QACD,CAAC,UACD,CAAC,QACD,CAAC,QACD,CAAC,QACD,CAAC,OACD,CAAC,UACD,CAAC,QACD,CAAC,QACD,CAAC,QACD,CAAC,QACD,CAAC,MACD,CAAC,OACD,CAAC,QACD,CAAC,QACD,CAAC,QACD,CAAC,OACD,CAAC,QACD,CAAC,QACD,CAAC,OACD,CAAC,QACD,CAAC,OACD,CAAC,OACD,CAAC,QACD,CAAC,OACD,CAAC,QACD,CAAC,QACD,CAAC,OACD,CAAC,QACD,CAAC,QACD,CAAC,OACD,CAAC,QACD,CAAC,OACD,CAAC,UACD,CAAC,SAAU,SAAU,UACrB,CAAC,QACD,CAAC,QACD,CAAC,QACD,CAAC,OACD,CAAC,QACD,CAAC,QACD,CAAC,OACD,CAAC,QACD,CAAC,QACD,CAAC,QACD,CAAC,QACD,CAAC,QACD,CAAC,QACD,CAAC,QACD,CAAC,OACD,CAAC,QACD,CAAC,QACD,CAAC,OACD,CAAC,QACD,CAAC,QACD,CAAC,QACD,CAAC,OACD,CAAC,QACD,CAAC,QACD,CAAC,QACD,CAAC,QACD,CAAC,QACD,CAAC,QACD,CAAC,QACD,CAAC,OACD,CAAC,QACD,CAAC,UACD,CAAC,QACD,CAAC,QACD,CAAC,QACD,CAAC,QACD,CAAC,QACD,CAAC,QACD,CAAC,OACD,CAAC,OACD,CAAC,QACD,CAAC,QACD,CAAC,OACD,CAAC,OACD,CAAC,QACD,CAAC,QACD,CAAC,OACD,CAAC,QACD,CAAC,OACD,CAAC,OACD,CAAC,UACD,CAAC,QACD,CAAC,OACD,CAAC,QACD,CAAC,QACD,CAAC,QACD,CAAC,QACD,CAAC,QACD,CAAC,UACD,CAAC,QACD,CAAC,OACD,CAAC,QACD,CAAC,UACD,CAAC,KAAM,OAAQ,QACf,CAAC,QACD,CAAC,QACD,CAAC,UACD,CAAC,QACD,CAAC,OACD,CAAC,QACD,CAAC,QACD,CAAC,QACD,CAAC,QACD,CAAC,QACD,CAAC,QACD,CAAC,QACD,CAAC,QACD,CAAC,QACD,CAAC,QACD,CAAC,QACD,CAAC,QACD,CAAC,QACD,CAAC,QACD,CAAC,QACD,CAAC,OACD,CAAC,QACD,CAAC,QACD,CAAC,UACD,CAAC,QACD,CAAC,QACD,CAAC,UACD,CAAC,QACD,CAAC,QACD,CAAC,QACD,CAAC,QACD,CAAC,OACD,CAAC,OACD,CAAC,QACD,CAAC,QACD,CAAC,QACD,CAAC,QACD,CAAC,QACD,CAAC,QACD,CAAC,QACD,CAAC,OACD,CAAC,OACD,CAAC,QACD,CAAC,QACD,CAAC,QACD,CAAC,OACD,CAAC,QACD,CAAC,QACD,CAAC,OACD,CAAC,QACD,CAAC,QACD,CAAC,OACD,CAAC,OACD,CAAC,OACD,CAAC,QACD,CAAC,QACD,CAAC,SAAU,UACX,CAAC,QACD,CAAC,QACD,CAAC,QACD,CAAC,QACD,CAAC,QACD,CAAC,QACD,CAAC,OACD,CAAC,QACD,CAAC,KAAM,OAAQ,OAAQ,QACvB,CAAC,QACD,CAAC,QACD,CAAC,QACD,CAAC,QACD,CAAC,QACD,CAAC,OACD,CAAC,OACD,CAAC,QACD,CAAC,QACD,CAAC,OACD,CAAC,QACD,CAAC,QACD,CAAC,QACD,CAAC,QACD,CAAC,QACD,CAAC,QACD,CAAC,QACD,CAAC,QACD,CAAC,QACD,CAAC,UACD,CAAC,QACD,CAAC,QACD,CAAC,QACD,CAAC,UACD,CAAC,QACD,CAAC,QACD,CAAC,OACD,CAAC,QACD,CAAC,QACD,CAAC,QACD,CAAC,QACD,CAAC,QACD,CAAC,QACD,CAAC,OACD,CAAC,UACD,CAAC,QACD,CAAC,QACD,CAAC,QACD,CAAC,QACD,CAAC,QACD,CAAC,MACD,CAAC,MACD,CAAC,QACD,CAAC,QACD,CAAC,OAAQ,OACT,CAAC,UACD,CAAC,OACD,CAAC,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,QAET,CACEjR,KAAM,0BACNiR,MAAO,QAET,CACEjR,KAAM,kBACNiR,MAAO,QAET,CACEjR,KAAM,QACNiR,MAAO,QAET,CACEjR,KAAM,MACNiR,MAAO,QAET,CACEjR,KAAM,gBACNiR,MAAO,QAET,CACEjR,KAAM,UACNiR,MAAO,QAET,CACEjR,KAAM,WACNiR,MAAO,QAET,CACEjR,KAAM,MACNiR,MAAO,QAET,CACEjR,KAAM,WACNiR,MAAO,QAET,CACEjR,KAAM,gBACNiR,MAAO,QAET,CACEjR,KAAM,oBACNiR,MAAO,QAET,CACEjR,KAAM,YACNiR,MAAO,QAET,CACEjR,KAAM,eACNiR,MAAO,QAET,CACEjR,KAAM,cACNiR,MAAO,QAET,CACEjR,KAAM,SACNiR,MAAO,QAET,CACEjR,KAAM,OACNiR,MAAO,QAET,CACEjR,KAAM,UACNiR,MAAO,QAET,CACEjR,KAAM,cACNiR,MAAO,QAET,CACEjR,KAAM,cACNiR,MAAO,QAET,CACEjR,KAAM,mBACNiR,MAAO,QAET,CACEjR,KAAM,mBACNiR,MAAO,QAET,CACEjR,KAAM,iBACNiR,MAAO,QAET,CACEjR,KAAM,mBACNiR,MAAO,QAET,CACEjR,KAAM,iBACNiR,MAAO,QAET,CACEjR,KAAM,qBACNiR,MAAO,QAET,CACEjR,KAAM,YACNiR,MAAO,QAET,CACEjR,KAAM,kBACNiR,MAAO,QAET,CACEjR,KAAM,kBACNiR,MAAO,QAET,CACEjR,KAAM,sBACNiR,MAAO,QAET,CACEjR,KAAM,oBACNiR,MAAO,QAET,CACEjR,KAAM,qBACNiR,MAAO,QAET,CACEjR,KAAM,0BACNiR,MAAO,QAET,CACEjR,KAAM,uBACNiR,MAAO,QAET,CACEjR,KAAM,wBACNiR,MAAO,QAET,CACEjR,KAAM,yBACNiR,MAAO,QAET,CACEjR,KAAM,+BACNiR,MAAO,QAET,CACEjR,KAAM,uBACNiR,MAAO,QAET,CACEjR,KAAM,oBACNiR,MAAO,QAET,CACEjR,KAAM,cACNiR,MAAO,QAET,CACEjR,KAAM,cACNiR,MAAO,QAET,CACEjR,KAAM,mBACNiR,MAAO,QAET,CACEjR,KAAM,2BACNiR,MAAO,QAET,CACEjR,KAAM,0BACNiR,MAAO,QAET,CACEjR,KAAM,yBACNiR,MAAO,QAET,CACEjR,KAAM,2BACNiR,MAAO,QAET,CACEjR,KAAM,yBACNiR,MAAO,QAET,CACEjR,KAAM,SACNiR,MAAO,QAET,CACEjR,KAAM,kBACNiR,MAAO,QAET,CACEjR,KAAM,gBACNiR,MAAO,QAET,CACEjR,KAAM,UACNiR,MAAO,QAET,CACEjR,KAAM,qBACNiR,MAAO,QAET,CACEjR,KAAM,YACNiR,MAAO,QAET,CACEjR,KAAM,UACNiR,MAAO,QAET,CACEjR,KAAM,uBACNiR,MAAO,QAET,CACEjR,KAAM,iBACNiR,MAAO,QAET,CACEjR,KAAM,uBACNiR,MAAO,QAET,CACEjR,KAAM,uBACNiR,MAAO,QAET,CACEjR,KAAM,qBACNiR,MAAO,QAET,CACEjR,KAAM,SACNiR,MAAO,QAET,CACEjR,KAAM,WACNiR,MAAO,QAET,CACEjR,KAAM,uBACNiR,MAAO,QAET,CACEjR,KAAM,gBACNiR,MAAO,QAET,CACEjR,KAAM,uBACNiR,MAAO,SAET,CACEjR,KAAM,gBACNiR,MAAO,QAET,CACEjR,KAAM,uBACNiR,MAAO,QAET,CACEjR,KAAM,SACNiR,MAAO,QAET,CACEjR,KAAM,UACNiR,MAAO,QAET,CACEjR,KAAM,sBACNiR,MAAO,QAET,CACEjR,KAAM,kBACNiR,MAAO,QAET,CACEjR,KAAM,eACNiR,MAAO,QAET,CACEjR,KAAM,cACNiR,MAAO,QAET,CACEjR,KAAM,iBACNiR,MAAO,QAET,CACEjR,KAAM,eACNiR,MAAO,QAET,CACEjR,KAAM,kBACNiR,MAAO,aAET,CACEjR,KAAM,iBACNiR,MAAO,QAET,CACEjR,KAAM,qBACNiR,MAAO,SAET,CACEjR,KAAM,kBACNiR,MAAO,aAET,CACEjR,KAAM,8BACNiR,MAAO,QAET,CACEjR,KAAM,mBACNiR,MAAO,QAET,CACEjR,KAAM,kBACNiR,MAAO,kBAET,CACEjR,KAAM,oBACNiR,MAAO,MAET,CACEjR,KAAM,kBACNiR,MAAO,QAET,CACEjR,KAAM,uBACNiR,MAAO,QAET,CACEjR,KAAM,yBACNiR,MAAO,SAET,CACEjR,KAAM,2BACNiR,MAAO,SAET,CACEjR,KAAM,2BACNiR,MAAO,SAET,CACEjR,KAAM,6BACNiR,MAAO,SAET,CACEjR,KAAM,sBACNiR,MAAO,QAET,CACEjR,KAAM,qBACNiR,MAAO,QAET,CACEjR,KAAM,oBACNiR,MAAO,QAET,CACEjR,KAAM,oBACNiR,MAAO,QAET,CACEjR,KAAM,sBACNiR,MAAO,QAET,CACEjR,KAAM,qBACNiR,MAAO,QAET,CACEjR,KAAM,oBACNiR,MAAO,QAET,CACEjR,KAAM,oBACNiR,MAAO,QAET,CACEjR,KAAM,0BACNiR,MAAO,QAET,CACEjR,KAAM,yBACNiR,MAAO,QAET,CACEjR,KAAM,wBACNiR,MAAO,QAET,CACEjR,KAAM,wBACNiR,MAAO,QAET,CACEjR,KAAM,0BACNiR,MAAO,QAET,CACEjR,KAAM,yBACNiR,MAAO,QAET,CACEjR,KAAM,wBACNiR,MAAO,QAET,CACEjR,KAAM,wBACNiR,MAAO,QAET,CACEjR,KAAM,+BACNiR,MAAO,QAET,CACEjR,KAAM,8BACNiR,MAAO,QAET,CACEjR,KAAM,8BACNiR,MAAO,QAET,CACEjR,KAAM,2BACNiR,MAAO,QAET,CACEjR,KAAM,qBACNiR,MAAO,QAET,CACEjR,KAAM,oBACNiR,MAAO,QAET,CACEjR,KAAM,oBACNiR,MAAO,QAET,CACEjR,KAAM,iBACNiR,MAAO,QAET,CACEjR,KAAM,qBACNiR,MAAO,QAET,CACEjR,KAAM,oBACNiR,MAAO,QAET,CACEjR,KAAM,oBACNiR,MAAO,QAET,CACEjR,KAAM,iBACNiR,MAAO,QAET,CACEjR,KAAM,yBACNiR,MAAO,QAET,CACEjR,KAAM,2BACNiR,MAAO,QAET,CACEjR,KAAM,wBACNiR,MAAO,QAET,CACEjR,KAAM,qBACNiR,MAAO,QAET,CACEjR,KAAM,yBACNiR,MAAO,QAET,CACEjR,KAAM,2BACNiR,MAAO,QAET,CACEjR,KAAM,wBACNiR,MAAO,QAET,CACEjR,KAAM,qBACNiR,MAAO,QAET,CACEjR,KAAM,oCACNiR,MAAO,QAET,CACEjR,KAAM,mCACNiR,MAAO,QAET,CACEjR,KAAM,mCACNiR,MAAO,QAET,CACEjR,KAAM,gCACNiR,MAAO,QAET,CACEjR,KAAM,6BACNiR,MAAO,QAET,CACEjR,KAAM,4BACNiR,MAAO,QAET,CACEjR,KAAM,4BACNiR,MAAO,QAET,CACEjR,KAAM,yBACNiR,MAAO,QAET,CACEjR,KAAM,6BACNiR,MAAO,QAET,CACEjR,KAAM,4BACNiR,MAAO,QAET,CACEjR,KAAM,4BACNiR,MAAO,QAET,CACEjR,KAAM,yBACNiR,MAAO,QAET,CACEjR,KAAM,6BACNiR,MAAO,QAET,CACEjR,KAAM,4BACNiR,MAAO,QAET,CACEjR,KAAM,4BACNiR,MAAO,QAET,CACEjR,KAAM,yBACNiR,MAAO,QAET,CACEjR,KAAM,4BACNiR,MAAO,QAET,CACEjR,KAAM,2BACNiR,MAAO,QAET,CACEjR,KAAM,2BACNiR,MAAO,QAET,CACEjR,KAAM,wBACNiR,MAAO,QAET,CACEjR,KAAM,6BACNiR,MAAO,QAET,CACEjR,KAAM,4BACNiR,MAAO,QAET,CACEjR,KAAM,4BACNiR,MAAO,QAET,CACEjR,KAAM,yBACNiR,MAAO,QAET,CACEjR,KAAM,0BACNiR,MAAO,QAET,CACEjR,KAAM,yBACNiR,MAAO,QAET,CACEjR,KAAM,yBACNiR,MAAO,QAET,CACEjR,KAAM,sBACNiR,MAAO,QAET,CACEjR,KAAM,2BACNiR,MAAO,QAET,CACEjR,KAAM,6BACNiR,MAAO,QAET,CACEjR,KAAM,0BACNiR,MAAO,QAET,CACEjR,KAAM,uBACNiR,MAAO,QAET,CACEjR,KAAM,mCACNiR,MAAO,QAET,CACEjR,KAAM,kCACNiR,MAAO,QAET,CACEjR,KAAM,kCACNiR,MAAO,QAET,CACEjR,KAAM,+BACNiR,MAAO,QAET,CACEjR,KAAM,sBACNiR,MAAO,QAET,CACEjR,KAAM,uBACNiR,MAAO,QAET,CACEjR,KAAM,sBACNiR,MAAO,QAET,CACEjR,KAAM,mBACNiR,MAAO,QAET,CACEjR,KAAM,wBACNiR,MAAO,QAET,CACEjR,KAAM,uBACNiR,MAAO,QAET,CACEjR,KAAM,uBACNiR,MAAO,QAET,CACEjR,KAAM,oBACNiR,MAAO,QAET,CACEjR,KAAM,uBACNiR,MAAO,QAET,CACEjR,KAAM,sBACNiR,MAAO,QAET,CACEjR,KAAM,sBACNiR,MAAO,QAET,CACEjR,KAAM,mBACNiR,MAAO,QAET,CACEjR,KAAM,wBACNiR,MAAO,QAET,CACEjR,KAAM,uBACNiR,MAAO,QAET,CACEjR,KAAM,uBACNiR,MAAO,QAET,CACEjR,KAAM,oBACNiR,MAAO,QAET,CACEjR,KAAM,iCACNiR,MAAO,QAET,CACEjR,KAAM,gCACNiR,MAAO,QAET,CACEjR,KAAM,gCACNiR,MAAO,QAET,CACEjR,KAAM,6BACNiR,MAAO,QAET,CACEjR,KAAM,sBACNiR,MAAO,QAET,CACEjR,KAAM,qBACNiR,MAAO,QAET,CACEjR,KAAM,qBACNiR,MAAO,QAET,CACEjR,KAAM,kBACNiR,MAAO,QAET,CACEjR,KAAM,uBACNiR,MAAO,QAET,CACEjR,KAAM,sBACNiR,MAAO,QAET,CACEjR,KAAM,sBACNiR,MAAO,QAET,CACEjR,KAAM,mBACNiR,MAAO,QAET,CACEjR,KAAM,sBACNiR,MAAO,QAET,CACEjR,KAAM,qBACNiR,MAAO,QAET,CACEjR,KAAM,qBACNiR,MAAO,QAET,CACEjR,KAAM,kBACNiR,MAAO,QAET,CACEjR,KAAM,uBACNiR,MAAO,QAET,CACEjR,KAAM,sBACNiR,MAAO,QAET,CACEjR,KAAM,sBACNiR,MAAO,QAET,CACEjR,KAAM,mBACNiR,MAAO,QAET,CACEjR,KAAM,kBACNiR,MAAO,MAET,CACEjR,KAAM,mBACNiR,MAAO,QAET,CACEjR,KAAM,mBACNiR,MAAO,oCAET,CACEjR,KAAM,oBACNiR,MAAO,QAET,CACEjR,KAAM,yBACNiR,MAAO,QAET,CACEjR,KAAM,wBACNiR,MAAO,QAET,CACEjR,KAAM,wBACNiR,MAAO,QAET,CACEjR,KAAM,qBACNiR,MAAO,QAET,CACEjR,KAAM,yBACNiR,MAAO,QAET,CACEjR,KAAM,wBACNiR,MAAO,QAET,CACEjR,KAAM,wBACNiR,MAAO,QAET,CACEjR,KAAM,qBACNiR,MAAO,QAET,CACEjR,KAAM,uBACNiR,MAAO,QAET,CACEjR,KAAM,SACNiR,MAAO,QAET,CACEjR,KAAM,gCACNiR,MAAO,QAET,CACEjR,KAAM,mBACNiR,MAAO,QAET,CACEjR,KAAM,qBACNiR,MAAO,QAET,CACEjR,KAAM,6BACNiR,MAAO,QAET,CACEjR,KAAM,uBACNiR,MAAO,QAET,CACEjR,KAAM,wBACNiR,MAAO,QAET,CACEjR,KAAM,mCACNiR,MAAO,QAET,CACEjR,KAAM,kCACNiR,MAAO,QAET,CACEjR,KAAM,iCACNiR,MAAO,QAET,CACEjR,KAAM,iCACNiR,MAAO,QAET,CACEjR,KAAM,cACNiR,MAAO,aAET,CACEjR,KAAM,eACNiR,MAAO,YAET,CACEjR,KAAM,iBACNiR,MAAO,QAET,CACEjR,KAAM,2CACNiR,MAAO,QAET,CACEjR,KAAM,0CACNiR,MAAO,QAET,CACEjR,KAAM,yCACNiR,MAAO,QAET,CACEjR,KAAM,yCACNiR,MAAO,QAET,CACEjR,KAAM,sCACNiR,MAAO,QAET,CACEjR,KAAM,qCACNiR,MAAO,QAET,CACEjR,KAAM,oCACNiR,MAAO,QAET,CACEjR,KAAM,oCACNiR,MAAO,QAET,CACEjR,KAAM,mBACNiR,MAAO,SAET,CACEjR,KAAM,oBACNiR,MAAO,QAET,CACEjR,KAAM,qBACNiR,MAAO,SAET,CACEjR,KAAM,uBACNiR,MAAO,SAET,CACEjR,KAAM,6BACNiR,MAAO,QAET,CACEjR,KAAM,eACNiR,MAAO,QAET,CACEjR,KAAM,sBACNiR,MAAO,QAET,CACEjR,KAAM,uBACNiR,MAAO,QAET,CACEjR,KAAM,yBACNiR,MAAO,QAET,CACEjR,KAAM,mBACNiR,MAAO,QAET,CACEjR,KAAM,sBACNiR,MAAO,QAET,CACEjR,KAAM,4BACNiR,MAAO,QAET,CACEjR,KAAM,gCACNiR,MAAO,QAET,CACEjR,KAAM,kCACNiR,MAAO,QAET,CACEjR,KAAM,yBACNiR,MAAO,QAET,CACEjR,KAAM,4BACNiR,MAAO,QAET,CACEjR,KAAM,iBACNiR,MAAO,QAET,CACEjR,KAAM,eACNiR,MAAO,SAET,CACEjR,KAAM,2BACNiR,MAAO,UAET,CACEjR,KAAM,gCACNiR,MAAO,MAET,CACEjR,KAAM,gBACNiR,MAAO,aAET,CACEjR,KAAM,iBACNiR,MAAO,YAET,CACEjR,KAAM,oBACNiR,MAAO,aAET,CACEjR,KAAM,oBACNiR,MAAO,QAET,CACEjR,KAAM,+BACNiR,MAAO,QAET,CACEjR,KAAM,iBACNiR,MAAO,QAET,CACEjR,KAAM,yBACNiR,MAAO,QAET,CACEjR,KAAM,qCACNiR,MAAO,QAET,CACEjR,KAAM,oCACNiR,MAAO,QAET,CACEjR,KAAM,mCACNiR,MAAO,QAET,CACEjR,KAAM,mCACNiR,MAAO,QAET,CACEjR,KAAM,0BACNiR,MAAO,QAET,CACEjR,KAAM,wBACNiR,MAAO,QAET,CACEjR,KAAM,4BACNiR,MAAO,QAET,CACEjR,KAAM,uBACNiR,MAAO,QAET,CACEjR,KAAM,kBACNiR,MAAO,QAET,CACEjR,KAAM,6BACNiR,MAAO,QAET,CACEjR,KAAM,2BACNiR,MAAO,QAET,CACEjR,KAAM,mBACNiR,MAAO,QAET,CACEjR,KAAM,kCACNiR,MAAO,QAET,CACEjR,KAAM,2BACNiR,MAAO,QAET,CACEjR,KAAM,8BACNiR,MAAO,QAET,CACEjR,KAAM,uBACNiR,MAAO,QAET,CACEjR,KAAM,2BACNiR,MAAO,QAET,CACEjR,KAAM,sBACNiR,MAAO,QAET,CACEjR,KAAM,eACNiR,MAAO,QAET,CACEjR,KAAM,4BACNiR,MAAO,QAET,CACEjR,KAAM,2BACNiR,MAAO,QAET,CACEjR,KAAM,gCACNiR,MAAO,QAET,CACEjR,KAAM,sBACNiR,MAAO,QAET,CACEjR,KAAM,+BACNiR,MAAO,QAET,CACEjR,KAAM,iCACNiR,MAAO,QAET,CACEjR,KAAM,mBACNiR,MAAO,QAET,CACEjR,KAAM,uBACNiR,MAAO,QAET,CACEjR,KAAM,yBACNiR,MAAO,QAET,CACEjR,KAAM,kBACNiR,MAAO,QAET,CACEjR,KAAM,sCACNiR,MAAO,QAET,CACEjR,KAAM,kBACNiR,MAAO,QAET,CACEjR,KAAM,qBACNiR,MAAO,QAET,CACEjR,KAAM,sCACNiR,MAAO,QAET,CACEjR,KAAM,oBACNiR,MAAO,QAET,CACEjR,KAAM,mCACNiR,MAAO,QAET,CACEjR,KAAM,uBACNiR,MAAO,QAET,CACEjR,KAAM,uBACNiR,MAAO,QAET,CACEjR,KAAM,wCACNiR,MAAO,QAET,CACEjR,KAAM,0BACNiR,MAAO,QAET,CACEjR,KAAM,aACNiR,MAAO,QAET,CACEjR,KAAM,0BACNiR,MAAO,QAET,CACEjR,KAAM,2BACNiR,MAAO,QAET,CACEjR,KAAM,wBACNiR,MAAO,QAET,CACEjR,KAAM,uBACNiR,MAAO,QAET,CACEjR,KAAM,oBACNiR,MAAO,QAET,CACEjR,KAAM,mBACNiR,MAAO,QAET,CACEjR,KAAM,8BACNiR,MAAO,QAET,CACEjR,KAAM,2BACNiR,MAAO,QAET,CACEjR,KAAM,sBACNiR,MAAO,QAET,CACEjR,KAAM,mBACNiR,MAAO,QAET,CACEjR,KAAM,qBACNiR,MAAO,QAET,CACEjR,KAAM,qBACNiR,MAAO,QAET,CACEjR,KAAM,+BACNiR,MAAO,QAET,CACEjR,KAAM,wBACNiR,MAAO,QAET,CACEjR,KAAM,uCACNiR,MAAO,QAET,CACEjR,KAAM,aACNiR,MAAO,QAET,CACEjR,KAAM,iBACNiR,MAAO,QAET,CACEjR,KAAM,yCACNiR,MAAO,QAET,CACEjR,KAAM,mCACNiR,MAAO,QAET,CACEjR,KAAM,cACNiR,MAAO,QAET,CACEjR,KAAM,yBACNiR,MAAO,QAET,CACEjR,KAAM,gCACNiR,MAAO,QAET,CACEjR,KAAM,qBACNiR,MAAO,QAET,CACEjR,KAAM,uBACNiR,MAAO,QAET,CACEjR,KAAM,wBACNiR,MAAO,QAET,CACEjR,KAAM,sBACNiR,MAAO,QAET,CACEjR,KAAM,sCACNiR,MAAO,QAET,CACEjR,KAAM,mBACNiR,MAAO,QAET,CACEjR,KAAM,mBACNiR,MAAO,QAET,CACEjR,KAAM,mBACNiR,MAAO,QAET,CACEjR,KAAM,gBACNiR,MAAO,QAET,CACEjR,KAAM,6BACNiR,MAAO,QAET,CACEjR,KAAM,uBACNiR,MAAO,QAET,CACEjR,KAAM,mBACNiR,MAAO,QAET,CACEjR,KAAM,qBACNiR,MAAO,QAET,CACEjR,KAAM,uBACNiR,MAAO,QAET,CACEjR,KAAM,yBACNiR,MAAO,QAET,CACEjR,KAAM,qBACNiR,MAAO,QAET,CACEjR,KAAM,uBACNiR,MAAO,QAET,CACEjR,KAAM,2BACNiR,MAAO,QAET,CACEjR,KAAM,0BACNiR,MAAO,QAET,CACEjR,KAAM,4BACNiR,MAAO,QAET,CACEjR,KAAM,mCACNiR,MAAO,QAET,CACEjR,KAAM,sBACNiR,MAAO,QAET,CACEjR,KAAM,0BACNiR,MAAO,QAET,CACEjR,KAAM,oBACNiR,MAAO,QAET,CACEjR,KAAM,kCACNiR,MAAO,QAET,CACEjR,KAAM,2BACNiR,MAAO,QAET,CACEjR,KAAM,yBACNiR,MAAO,QAET,CACEjR,KAAM,eACNiR,MAAO,QAET,CACEjR,KAAM,yBACNiR,MAAO,QAET,CACEjR,KAAM,gCACNiR,MAAO,QAET,CACEjR,KAAM,sBACNiR,MAAO,QAET,CACEjR,KAAM,2BACNiR,MAAO,QAET,CACEjR,KAAM,sBACNiR,MAAO,QAET,CACEjR,KAAM,iBACNiR,MAAO,QAET,CACEjR,KAAM,sBACNiR,MAAO,QAET,CACEjR,KAAM,kBACNiR,MAAO,QAET,CACEjR,KAAM,yBACNiR,MAAO,QAET,CACEjR,KAAM,iBACNiR,MAAO,QAET,CACEjR,KAAM,YACNiR,MAAO,QAET,CACEjR,KAAM,gCACNiR,MAAO,QAET,CACEjR,KAAM,oBACNiR,MAAO,QAET,CACEjR,KAAM,oBACNiR,MAAO,QAET,CACEjR,KAAM,oBACNiR,MAAO,QAET,CACEjR,KAAM,0BACNiR,MAAO,QAET,CACEjR,KAAM,2BACNiR,MAAO,QAET,CACEjR,KAAM,0BACNiR,MAAO,QAET,CACEjR,KAAM,0BACNiR,MAAO,QAET,CACEjR,KAAM,yBACNiR,MAAO,QAET,CACEjR,KAAM,0BACNiR,MAAO,QAET,CACEjR,KAAM,yBACNiR,MAAO,QAET,CACEjR,KAAM,yBACNiR,MAAO,QAET,CACEjR,KAAM,gCACNiR,MAAO,QAET,CACEjR,KAAM,iBACNiR,MAAO,QAET,CACEjR,KAAM,kBACNiR,MAAO,QAET,CACEjR,KAAM,iBACNiR,MAAO,QAET,CACEjR,KAAM,kBACNiR,MAAO,QAET,CACEjR,KAAM,kBACNiR,MAAO,QAET,CACEjR,KAAM,6BACNiR,MAAO,QAET,CACEjR,KAAM,2BACNiR,MAAO,QAET,CACEjR,KAAM,4BACNiR,MAAO,QAET,CACEjR,KAAM,sBACNiR,MAAO,QAET,CACEjR,KAAM,+BACNiR,MAAO,QAET,CACEjR,KAAM,sBACNiR,MAAO,QAET,CACEjR,KAAM,yBACNiR,MAAO,QAET,CACEjR,KAAM,8BACNiR,MAAO,QAET,CACEjR,KAAM,8BACNiR,MAAO,QAET,CACEjR,KAAM,oBACNiR,MAAO,QAET,CACEjR,KAAM,wBACNiR,MAAO,QAET,CACEjR,KAAM,8BACNiR,MAAO,QAET,CACEjR,KAAM,8BACNiR,MAAO,QAET,CACEjR,KAAM,8BACNiR,MAAO,QAET,CACEjR,KAAM,8BACNiR,MAAO,QAET,CACEjR,KAAM,mCACNiR,MAAO,QAET,CACEjR,KAAM,mCACNiR,MAAO,QAET,CACEjR,KAAM,mCACNiR,MAAO,QAET,CACEjR,KAAM,mCACNiR,MAAO,QAET,CACEjR,KAAM,8BACNiR,MAAO,QAET,CACEjR,KAAM,8BACNiR,MAAO,QAET,CACEjR,KAAM,8BACNiR,MAAO,QAET,CACEjR,KAAM,8BACNiR,MAAO,QAET,CACEjR,KAAM,8BACNiR,MAAO,QAET,CACEjR,KAAM,8BACNiR,MAAO,QAET,CACEjR,KAAM,8BACNiR,MAAO,QAET,CACEjR,KAAM,8BACNiR,MAAO,QAET,CACEjR,KAAM,wBACNiR,MAAO,QAET,CACEjR,KAAM,gCACNiR,MAAO,QAET,CACEjR,KAAM,gCACNiR,MAAO,QAET,CACEjR,KAAM,gCACNiR,MAAO,QAET,CACEjR,KAAM,gCACNiR,MAAO,QAET,CACEjR,KAAM,qCACNiR,MAAO,QAET,CACEjR,KAAM,qCACNiR,MAAO,QAET,CACEjR,KAAM,qCACNiR,MAAO,QAET,CACEjR,KAAM,qCACNiR,MAAO,QAET,CACEjR,KAAM,gCACNiR,MAAO,QAET,CACEjR,KAAM,gCACNiR,MAAO,QAET,CACEjR,KAAM,gCACNiR,MAAO,QAET,CACEjR,KAAM,gCACNiR,MAAO,QAET,CACEjR,KAAM,gCACNiR,MAAO,QAET,CACEjR,KAAM,gCACNiR,MAAO,QAET,CACEjR,KAAM,gCACNiR,MAAO,QAET,CACEjR,KAAM,gCACNiR,MAAO,QAET,CACEjR,KAAM,0BACNiR,MAAO,QAET,CACEjR,KAAM,gCACNiR,MAAO,QAET,CACEjR,KAAM,gCACNiR,MAAO,QAET,CACEjR,KAAM,gCACNiR,MAAO,QAET,CACEjR,KAAM,gCACNiR,MAAO,QAET,CACEjR,KAAM,qCACNiR,MAAO,QAET,CACEjR,KAAM,qCACNiR,MAAO,QAET,CACEjR,KAAM,qCACNiR,MAAO,QAET,CACEjR,KAAM,qCACNiR,MAAO,QAET,CACEjR,KAAM,gCACNiR,MAAO,QAET,CACEjR,KAAM,gCACNiR,MAAO,QAET,CACEjR,KAAM,gCACNiR,MAAO,QAET,CACEjR,KAAM,gCACNiR,MAAO,QAET,CACEjR,KAAM,gCACNiR,MAAO,QAET,CACEjR,KAAM,gCACNiR,MAAO,QAET,CACEjR,KAAM,gCACNiR,MAAO,QAET,CACEjR,KAAM,gCACNiR,MAAO,QAET,CACEjR,KAAM,8BACNiR,MAAO,QAET,CACEjR,KAAM,8BACNiR,MAAO,QAET,CACEjR,KAAM,8BACNiR,MAAO,QAET,CACEjR,KAAM,8BACNiR,MAAO,QAET,CACEjR,KAAM,mCACNiR,MAAO,QAET,CACEjR,KAAM,mCACNiR,MAAO,QAET,CACEjR,KAAM,mCACNiR,MAAO,QAET,CACEjR,KAAM,mCACNiR,MAAO,QAET,CACEjR,KAAM,8BACNiR,MAAO,QAET,CACEjR,KAAM,8BACNiR,MAAO,QAET,CACEjR,KAAM,8BACNiR,MAAO,QAET,CACEjR,KAAM,8BACNiR,MAAO,QAET,CACEjR,KAAM,8BACNiR,MAAO,QAET,CACEjR,KAAM,8BACNiR,MAAO,QAET,CACEjR,KAAM,8BACNiR,MAAO,QAET,CACEjR,KAAM,8BACNiR,MAAO,QAET,CACEjR,KAAM,gCACNiR,MAAO,QAET,CACEjR,KAAM,wCACNiR,MAAO,QAET,CACEjR,KAAM,gBACNiR,MAAO,QAET,CACEjR,KAAM,uCACNiR,MAAO,QAET,CACEjR,KAAM,yCACNiR,MAAO,QAET,CACEjR,KAAM,sCACNiR,MAAO,QAET,CACEjR,KAAM,mCACNiR,MAAO,QAET,CACEjR,KAAM,sBACNiR,MAAO,QAET,CACEjR,KAAM,yBACNiR,MAAO,QAET,CACEjR,KAAM,6BACNiR,MAAO,QAET,CACEjR,KAAM,uBACNiR,MAAO,QAET,CACEjR,KAAM,4BACNiR,MAAO,QAET,CACEjR,KAAM,oBACNiR,MAAO,QAET,CACEjR,KAAM,wBACNiR,MAAO,QAET,CACEjR,KAAM,kBACNiR,MAAO,QAET,CACEjR,KAAM,oBACNiR,MAAO,QAET,CACEjR,KAAM,uBACNiR,MAAO,QAET,CACEjR,KAAM,8BACNiR,MAAO,QAET,CACEjR,KAAM,4BACNiR,MAAO,QAET,CACEjR,KAAM,qBACNiR,MAAO,QAET,CACEjR,KAAM,mBACNiR,MAAO,QAET,CACEjR,KAAM,kBACNiR,MAAO,QAET,CACEjR,KAAM,qCACNiR,MAAO,QAET,CACEjR,KAAM,oCACNiR,MAAO,QAET,CACEjR,KAAM,8BACNiR,MAAO,QAET,CACEjR,KAAM,kBACNiR,MAAO,QAET,CACEjR,KAAM,mBACNiR,MAAO,QAET,CACEjR,KAAM,qCACNiR,MAAO,QAET,CACEjR,KAAM,yBACNiR,MAAO,QAET,CACEjR,KAAM,uBACNiR,MAAO,QAET,CACEjR,KAAM,yBACNiR,MAAO,QAET,CACEjR,KAAM,uBACNiR,MAAO,QAET,CACEjR,KAAM,yBACNiR,MAAO,QAET,CACEjR,KAAM,cACNiR,MAAO,QAET,CACEjR,KAAM,sBACNiR,MAAO,QAET,CACEjR,KAAM,yBACNiR,MAAO,QAET,CACEjR,KAAM,wBACNiR,MAAO,QAET,CACEjR,KAAM,kBACNiR,MAAO,QAET,CACEjR,KAAM,iBACNiR,MAAO,QAET,CACEjR,KAAM,mCACNiR,MAAO,QAET,CACEjR,KAAM,iCACNiR,MAAO,QAET,CACEjR,KAAM,mBACNiR,MAAO,QAET,CACEjR,KAAM,iBACNiR,MAAO,QAET,CACEjR,KAAM,oBACNiR,MAAO,QAET,CACEjR,KAAM,qBACNiR,MAAO,QAET,CACEjR,KAAM,gBACNiR,MAAO,QAET,CACEjR,KAAM,qBACNiR,MAAO,QAET,CACEjR,KAAM,mBACNiR,MAAO,QAET,CACEjR,KAAM,eACNiR,MAAO,QAET,CACEjR,KAAM,kBACNiR,MAAO,QAET,CACEjR,KAAM,aACNiR,MAAO,QAET,CACEjR,KAAM,sBACNiR,MAAO,QAET,CACEjR,KAAM,gCACNiR,MAAO,QAET,CACEjR,KAAM,iBACNiR,MAAO,QAET,CACEjR,KAAM,cACNiR,MAAO,QAET,CACEjR,KAAM,iCACNiR,MAAO,QAET,CACEjR,KAAM,gCACNiR,MAAO,QAET,CACEjR,KAAM,gCACNiR,MAAO,QAET,CACEjR,KAAM,6BACNiR,MAAO,QAET,CACEjR,KAAM,oBACNiR,MAAO,QAET,CACEjR,KAAM,qBACNiR,MAAO,QAET,CACEjR,KAAM,sBACNiR,MAAO,QAET,CACEjR,KAAM,qBACNiR,MAAO,QAET,CACEjR,KAAM,sBACNiR,MAAO,QAET,CACEjR,KAAM,kCACNiR,MAAO,QAET,CACEjR,KAAM,kCACNiR,MAAO,QAET,CACEjR,KAAM,iBACNiR,MAAO,SC3pEEu9E,EAAqBp4C,GACzB,CACL,CACEp2C,KAAM,KACNiR,MAAO,QAET,CACEjR,KAAM,aACNiR,MAAO,mKAET,CACEjR,KAAM,KACNiR,MAAO,sBAET,CACEjR,KAAM,UACNiR,MAAO,sBAET,CACEjR,KAAM,YACNiR,MAAO,SAET,CACEjR,KAAM,OACNiR,MAAO,sCAET,CACEjR,KAAM,cACNiR,MAAOmlC,GAAc,uBAEvB,CACEp2C,KAAM,cACNiR,MAAO,sBAET,CACEjR,KAAM,mBACNiR,MAAO,gCAET,CACEjR,KAAM,mBACNiR,MAAO,sBAET,CACEjR,KAAM,iBACNiR,MAAO,gCAET,CACEjR,KAAM,iBACNiR,MAAO,QAET,CACEjR,KAAM,qBACNiR,MAAO,QAET,CACEjR,KAAM,WACNiR,MAAO,cAET,CACEjR,KAAM,sBACNiR,MAAO,4BAET,CACEjR,KAAM,gBACNiR,MAAO,SAET,CACEjR,KAAM,uBACNiR,MAAO,WAET,CACEjR,KAAM,iBACNiR,MAAO,SAET,CACEjR,KAAM,mBACNiR,MAAO,SAET,CACEjR,KAAM,gBACNiR,MAAO,SAET,CACEjR,KAAM,aACNiR,MAAO,QAET,CACEjR,KAAM,UACNiR,MAAO,cAET,CACEjR,KAAM,qBACNiR,MAAO,gCAET,CACEjR,KAAM,eACNiR,MAAO,iBAET,CACEjR,KAAM,qBACNiR,MAAO,SAET,CACEjR,KAAM,kBACNiR,MAAO,aAET,CACEjR,KAAM,WACNiR,MAAO,0BAET,CACEjR,KAAM,WACNiR,MAAO,QAET,CACEjR,KAAM,uBACNiR,MAAO,QAET,CACEjR,KAAM,uBACNiR,MAAO,QAET,CACEjR,KAAM,uBACNiR,MAAO,QAET,CACEjR,KAAM,uBACNiR,MAAO,QAET,CACEjR,KAAM,WACNiR,MAAO,MAET,CACEjR,KAAM,uBACNiR,MAAO,sBAET,CACEjR,KAAM,0BACNiR,MAAO,6BAET,CACEjR,KAAM,8BACNiR,MAAO,SAET,CACEjR,KAAM,0BACNiR,MAAO,SAET,CACEjR,KAAM,iBACNiR,MAAO,UCxJAy9E,EAAkB,CAC7B,CACE1uF,KAAM,KACNiR,MAAO,SAET,CACEjR,KAAM,aACNiR,MAAO,+IAET,CACEjR,KAAM,KACNiR,MAAO,sBAET,CACEjR,KAAM,UACNiR,MAAO,sBAET,CACEjR,KAAM,YACNiR,MAAO,SAET,CACEjR,KAAM,OACNiR,MAAO,gBAET,CACEjR,KAAM,cACNiR,MAAO,gCAET,CACEjR,KAAM,cACNiR,MAAO,sBAET,CACEjR,KAAM,mBACNiR,MAAO,gCAET,CACEjR,KAAM,mBACNiR,MAAO,sBAET,CACEjR,KAAM,iBACNiR,MAAO,gCAET,CACEjR,KAAM,iBACNiR,MAAO,QAET,CACEjR,KAAM,qBACNiR,MAAO,QAET,CACEjR,KAAM,gCACNiR,MAAO,SAET,CACEjR,KAAM,wCACNiR,MAAO,SAET,CACEjR,KAAM,+BACNiR,MAAO,SAET,CACEjR,KAAM,iCACNiR,MAAO,SAET,CACEjR,KAAM,8BACNiR,MAAO,SAET,CACEjR,KAAM,iBACNiR,MAAO,SAET,CACEjR,KAAM,sBACNiR,MAAO,QAET,CACEjR,KAAM,qBACNiR,MAAO,QAET,CACEjR,KAAM,oBACNiR,MAAO,QAET,CACEjR,KAAM,kBACNiR,MAAO,QAET,CACEjR,KAAM,oBACNiR,MAAO,QAET,CACEjR,KAAM,oBACNiR,MAAO,SAET,CACEjR,KAAM,2BACNiR,MAAO,SAET,CACEjR,KAAM,gBACNiR,MAAO,SAET,CACEjR,KAAM,gBACNiR,MAAO,QAET,CACEjR,KAAM,+BACNiR,MAAO,SAET,CACEjR,KAAM,0BACNiR,MAAO,SAET,CACEjR,KAAM,8BACNiR,MAAO,KAET,CACEjR,KAAM,kCACNiR,MAAO,QAET,CACEjR,KAAM,gBACNiR,MAAO,QAET,CACEjR,KAAM,wBACNiR,MAAO,QAET,CACEjR,KAAM,oBACNiR,MAAO,QAET,CACEjR,KAAM,+BACNiR,MAAO,qBAET,CACEjR,KAAM,iCACNiR,MAAO,QAET,CACEjR,KAAM,sBACNiR,MAAO,QAET,CACEjR,KAAM,4BACNiR,MAAO,SAET,CACEjR,KAAM,wBACNiR,MAAO,SAET,CACEjR,KAAM,wBACNiR,MAAO,QAET,CACEjR,KAAM,aACNiR,MAAO,QAET,CACEjR,KAAM,sBACNiR,MAAO,SAET,CACEjR,KAAM,oBACNiR,MAAO,qBAET,CACEjR,KAAM,qBACNiR,MAAO,MAET,CACEjR,KAAM,qBACNiR,MAAO,cAET,CACEjR,KAAM,eACNiR,MAAO,MAET,CACEjR,KAAM,6BACNiR,MAAO,MAET,CACEjR,KAAM,4BACNiR,MAAO,KAET,CACEjR,KAAM,0BACNiR,MAAO,sBAET,CACEjR,KAAM,uBACNiR,MAAO,KAET,CACEjR,KAAM,gBACNiR,MAAO,sBAET,CACEjR,KAAM,0BACNiR,MAAO,sBAET,CACEjR,KAAM,wBACNiR,MAAO,sBAET,CACEjR,KAAM,eACNiR,MAAO,sBAET,CACEjR,KAAM,mBACNiR,MAAO,yBAET,CACEjR,KAAM,yBACNiR,MAAO,cAET,CACEjR,KAAM,eACNiR,MAAO,cAET,CACEjR,KAAM,kBACNiR,MAAO,cAET,CACEjR,KAAM,wBACNiR,MAAO,QAET,CACEjR,KAAM,wBACNiR,MAAO,QAET,CACEjR,KAAM,wBACNiR,MAAO,QAET,CACEjR,KAAM,wBACNiR,MAAO,QAET,CACEjR,KAAM,wBACNiR,MAAO,QAET,CACEjR,KAAM,wBACNiR,MAAO,QAET,CACEjR,KAAM,wBACNiR,MAAO,QAET,CACEjR,KAAM,wBACNiR,MAAO,QAET,CACEjR,KAAM,gBACNiR,MAAO,gBAET,CACEjR,KAAM,iBACNiR,MAAO,uBCnREq9E,EAAsBA,CAACQ,EAAyB14C,IACtD,CACL,CACEp2C,KAAM,KACNiR,MAAO,UAET,CACEjR,KAAM,aACNiR,MAAO,QAET,CACEjR,KAAM,KACNiR,MAAO,QAET,CACEjR,KAAM,YACNiR,MAAO,SAET,CACEjR,KAAM,OACNiR,MAAO,aAET,CACEjR,KAAM,mBACNiR,MAAO,gBAET,CACEjR,KAAM,WACNiR,MAAO,iBAET,CACEjR,KAAM,YACNiR,MAAO,kBAET,CACEjR,KAAM,aACNiR,MAAO,QAET,CACEjR,KAAM,eACNiR,MAAO,sBAET,CACEjR,KAAM,iBACNiR,MAAO,QAET,CACEjR,KAAM,kBACNiR,MAAO,QAET,CACEjR,KAAM,WACNiR,MAAO,QAET,CACEjR,KAAM,UACNiR,MAAO,sBAET,CACEjR,KAAM,cACNiR,MAAOmlC,GAAc,uBAEvB,CACEp2C,KAAM,cACNiR,MAAO,sBAET,CACEjR,KAAM,mBACNiR,MAAO,uBAET,CACEjR,KAAM,mBACNiR,MAAO,sBAET,CACEjR,KAAM,iBACNiR,MAAO,uBAET,CACEjR,KAAM,iBACNiR,MAAO,QAET,CACEjR,KAAM,qBACNiR,MAAO,QAET,CACEjR,KAAM,YACNiR,MAAO,SAET,CACEjR,KAAM,kBACNiR,MAAO,sBAET,CACEjR,KAAM,kBACNiR,MAAO,QAET,CACEjR,KAAM,uBACNiR,MAAO,QAET,CACEjR,KAAM,qBACNiR,MAAO,QAET,CACEjR,KAAM,2BACNiR,MAAO,SAET,CACEjR,KAAM,yBACNiR,MAAO,SAET,CACEjR,KAAM,kBACNiR,MAAO,SAET,CACEjR,KAAM,UACNiR,MAAO,SAET,CACEjR,KAAM,iBACNiR,MAAO,QAET,CACEjR,KAAM,WACNiR,MAAO,SAET,CACEjR,KAAM,gBACNiR,MAAO,QAET,CACEjR,KAAM,gBACNiR,MAAO,KAET,CACEjR,KAAM,uBACNiR,MAAO,6BAET,CACEjR,KAAM,SACNiR,MAAO,SAET,CACEjR,KAAM,UACNiR,MAAO69E,EAAgB,aAAe,WAExC,CACE9uF,KAAM,sBACNiR,MAAO,aAET,CACEjR,KAAM,cACNiR,MAAO,WAET,CACEjR,KAAM,iBACNiR,MAAO,QAET,CACEjR,KAAM,eACNiR,MAAO,iBAET,CACEjR,KAAM,kBACNiR,MAAO,6BAET,CACEjR,KAAM,iBACNiR,MAAO,QAET,CACEjR,KAAM,qBACNiR,MAAO,SAET,CACEjR,KAAM,kBACNiR,MAAO,aAET,CACEjR,KAAM,8BACNiR,MAAO,UAET,CACEjR,KAAM,mBACNiR,MAAO,QAET,CACEjR,KAAM,kBACNiR,MAAO,QAET,CACEjR,KAAM,oBACNiR,MAAO,QAET,CACEjR,KAAM,kBACNiR,MAAO,QAET,CACEjR,KAAM,uBACNiR,MAAO,4BAET,CACEjR,KAAM,sBACNiR,MAAO,QAET,CACEjR,KAAM,qBACNiR,MAAO,QAET,CACEjR,KAAM,oBACNiR,MAAO,QAET,CACEjR,KAAM,oBACNiR,MAAO,SAET,CACEjR,KAAM,sBACNiR,MAAO,QAET,CACEjR,KAAM,qBACNiR,MAAO,QAET,CACEjR,KAAM,oBACNiR,MAAO,QAET,CACEjR,KAAM,oBACNiR,MAAO,SAET,CACEjR,KAAM,0BACNiR,MAAO,QAET,CACEjR,KAAM,yBACNiR,MAAO,QAET,CACEjR,KAAM,wBACNiR,MAAO,QAET,CACEjR,KAAM,wBACNiR,MAAO,SAET,CACEjR,KAAM,0BACNiR,MAAO,QAET,CACEjR,KAAM,yBACNiR,MAAO,QAET,CACEjR,KAAM,wBACNiR,MAAO,QAET,CACEjR,KAAM,wBACNiR,MAAO,SAET,CACEjR,KAAM,wBACNiR,MAAO,QAET,CACEjR,KAAM,2BACNiR,MAAO,QAET,CACEjR,KAAM,6BACNiR,MAAO,QAET,CACEjR,KAAM,0BACNiR,MAAO,SAET,CACEjR,KAAM,uBACNiR,MAAO,QAET,CACEjR,KAAM,mCACNiR,MAAO,QAET,CACEjR,KAAM,kCACNiR,MAAO,QAET,CACEjR,KAAM,kCACNiR,MAAO,SAET,CACEjR,KAAM,+BACNiR,MAAO,QAET,CACEjR,KAAM,sBACNiR,MAAO,QAET,CACEjR,KAAM,uBACNiR,MAAO,QAET,CACEjR,KAAM,sBACNiR,MAAO,SAET,CACEjR,KAAM,mBACNiR,MAAO,QAET,CACEjR,KAAM,wBACNiR,MAAO,QAET,CACEjR,KAAM,uBACNiR,MAAO,QAET,CACEjR,KAAM,uBACNiR,MAAO,SAET,CACEjR,KAAM,oBACNiR,MAAO,QAET,CACEjR,KAAM,uBACNiR,MAAO,QAET,CACEjR,KAAM,sBACNiR,MAAO,QAET,CACEjR,KAAM,sBACNiR,MAAO,SAET,CACEjR,KAAM,mBACNiR,MAAO,QAET,CACEjR,KAAM,wBACNiR,MAAO,QAET,CACEjR,KAAM,uBACNiR,MAAO,QAET,CACEjR,KAAM,uBACNiR,MAAO,SAET,CACEjR,KAAM,oBACNiR,MAAO,QAET,CACEjR,KAAM,iCACNiR,MAAO,QAET,CACEjR,KAAM,gCACNiR,MAAO,QAET,CACEjR,KAAM,gCACNiR,MAAO,SAET,CACEjR,KAAM,6BACNiR,MAAO,QAET,CACEjR,KAAM,sBACNiR,MAAO,QAET,CACEjR,KAAM,qBACNiR,MAAO,QAET,CACEjR,KAAM,qBACNiR,MAAO,SAET,CACEjR,KAAM,kBACNiR,MAAO,QAET,CACEjR,KAAM,uBACNiR,MAAO,QAET,CACEjR,KAAM,sBACNiR,MAAO,QAET,CACEjR,KAAM,sBACNiR,MAAO,SAET,CACEjR,KAAM,mBACNiR,MAAO,QAET,CACEjR,KAAM,sBACNiR,MAAO,QAET,CACEjR,KAAM,qBACNiR,MAAO,QAET,CACEjR,KAAM,qBACNiR,MAAO,SAET,CACEjR,KAAM,kBACNiR,MAAO,QAET,CACEjR,KAAM,uBACNiR,MAAO,QAET,CACEjR,KAAM,sBACNiR,MAAO,QAET,CACEjR,KAAM,sBACNiR,MAAO,SAET,CACEjR,KAAM,mBACNiR,MAAO,QAET,CACEjR,KAAM,kBACNiR,MAAO,QAET,CACEjR,KAAM,oBACNiR,MAAO,SAET,CACEjR,KAAM,uBACNiR,MAAO,SAET,CACEjR,KAAM,gCACNiR,MAAO,SAET,CACEjR,KAAM,qBACNiR,MAAO,SAET,CACEjR,KAAM,2BACNiR,MAAO,SAET,CACEjR,KAAM,mBACNiR,MAAO,QAET,CACEjR,KAAM,kBACNiR,MAAO,QAET,CACEjR,KAAM,qBACNiR,MAAO,QAET,CACEjR,KAAM,sCACNiR,MAAO,QAET,CACEjR,KAAM,oBACNiR,MAAO,QAET,CACEjR,KAAM,mCACNiR,MAAO,QAET,CACEjR,KAAM,uBACNiR,MAAO,QAET,CACEjR,KAAM,uBACNiR,MAAO,QAET,CACEjR,KAAM,wCACNiR,MAAO,QAET,CACEjR,KAAM,0BACNiR,MAAO,QAET,CACEjR,KAAM,aACNiR,MAAO,QAET,CACEjR,KAAM,0BACNiR,MAAO,QAET,CACEjR,KAAM,2BACNiR,MAAO,SAET,CACEjR,KAAM,wBACNiR,MAAO,SAET,CACEjR,KAAM,uBACNiR,MAAO,SAET,CACEjR,KAAM,oBACNiR,MAAO,QAET,CACEjR,KAAM,mBACNiR,MAAO,SAET,CACEjR,KAAM,8BACNiR,MAAO,QAET,CACEjR,KAAM,2BACNiR,MAAO,QAET,CACEjR,KAAM,sBACNiR,MAAO,QAET,CACEjR,KAAM,mBACNiR,MAAO,QAET,CACEjR,KAAM,qBACNiR,MAAO,QAET,CACEjR,KAAM,qBACNiR,MAAO,QAET,CACEjR,KAAM,+BACNiR,MAAO,QAET,CACEjR,KAAM,wBACNiR,MAAO,QAET,CACEjR,KAAM,uCACNiR,MAAO,QAET,CACEjR,KAAM,aACNiR,MAAO,QAET,CACEjR,KAAM,iBACNiR,MAAO,QAET,CACEjR,KAAM,yCACNiR,MAAO,QAET,CACEjR,KAAM,mCACNiR,MAAO,QAET,CACEjR,KAAM,cACNiR,MAAO,SAET,CACEjR,KAAM,yBACNiR,MAAO,QAET,CACEjR,KAAM,gCACNiR,MAAO,QAET,CACEjR,KAAM,qBACNiR,MAAO,QAET,CACEjR,KAAM,uBACNiR,MAAO,QAET,CACEjR,KAAM,wBACNiR,MAAO,QAET,CACEjR,KAAM,sBACNiR,MAAO,QAET,CACEjR,KAAM,sCACNiR,MAAO,QAET,CACEjR,KAAM,mBACNiR,MAAO,QAET,CACEjR,KAAM,mBACNiR,MAAO,QAET,CACEjR,KAAM,mBACNiR,MAAO,QAET,CACEjR,KAAM,6BACNiR,MAAO,SAET,CACEjR,KAAM,uBACNiR,MAAO,SAET,CACEjR,KAAM,oBACNiR,MAAO,SAET,CACEjR,KAAM,kCACNiR,MAAO,SAET,CACEjR,KAAM,2BACNiR,MAAO,SAET,CACEjR,KAAM,yBACNiR,MAAO,SAET,CACEjR,KAAM,eACNiR,MAAO,SAET,CACEjR,KAAM,yBACNiR,MAAO,SAET,CACEjR,KAAM,gCACNiR,MAAO,SAET,CACEjR,KAAM,sBACNiR,MAAO,SAET,CACEjR,KAAM,2BACNiR,MAAO,SAET,CACEjR,KAAM,sBACNiR,MAAO,SAET,CACEjR,KAAM,iBACNiR,MAAO,SAET,CACEjR,KAAM,sBACNiR,MAAO,SAET,CACEjR,KAAM,kBACNiR,MAAO,QAET,CACEjR,KAAM,yBACNiR,MAAO,QAET,CACEjR,KAAM,gCACNiR,MAAO,SAET,CACEjR,KAAM,iBACNiR,MAAO,SAET,CACEjR,KAAM,kBACNiR,MAAO,SAET,CACEjR,KAAM,iBACNiR,MAAO,SAET,CACEjR,KAAM,kBACNiR,MAAO,SAET,CACEjR,KAAM,kBACNiR,MAAO,SAET,CACEjR,KAAM,uCACNiR,MAAO,QAET,CACEjR,KAAM,yCACNiR,MAAO,QAET,CACEjR,KAAM,sCACNiR,MAAO,SAET,CACEjR,KAAM,mCACNiR,MAAO,QAET,CACEjR,KAAM,iBACNiR,MAAO,SAET,CACEjR,KAAM,iCACNiR,MAAO,QAET,CACEjR,KAAM,gCACNiR,MAAO,QAET,CACEjR,KAAM,gCACNiR,MAAO,SAET,CACEjR,KAAM,6BACNiR,MAAO,SAET,CACEjR,KAAM,oBACNiR,MAAO,QAET,CACEjR,KAAM,qBACNiR,MAAO,QAET,CACEjR,KAAM,sBACNiR,MAAO,SAET,CACEjR,KAAM,qBACNiR,MAAO,SAET,CACEjR,KAAM,sBACNiR,MAAO,SAET,CACEjR,KAAM,kCACNiR,MAAO,QAET,CACEjR,KAAM,kCACNiR,MAAO,QAET,CACEjR,KAAM,WACNiR,MAAO,SAET,CACEjR,KAAM,UACNiR,MAAO,SAET,CACEjR,KAAM,YACNiR,MAAO,SAET,CACEjR,KAAM,iBACNiR,MAAO,SCpyBEw9E,EAAwBN,GAC5B,CACL,CACEnuF,KAAM,KACNiR,MAAO,WAET,CACEjR,KAAM,aACNiR,MAAO,iJAET,CACEjR,KAAM,KACNiR,MAAO,sBAET,CACEjR,KAAM,UACNiR,MAAO,sBAET,CACEjR,KAAM,YACNiR,MAAO,SAET,CACEjR,KAAM,OACNiR,MAAO,mBAET,CACEjR,KAAM,cACNiR,MAAO,gCAET,CACEjR,KAAM,cACNiR,MAAO,sBAET,CACEjR,KAAM,mBACNiR,MAAO,gCAET,CACEjR,KAAM,mBACNiR,MAAO,sBAET,CACEjR,KAAM,iBACNiR,MAAO,gCAET,CACEjR,KAAM,iBACNiR,MAAO,QAET,CACEjR,KAAM,qBACNiR,MAAO,QAET,CACEjR,KAAM,qBACNiR,MAAO,SAET,CACEjR,KAAM,kBACNiR,MAAO,QAET,CACEjR,KAAM,YACNiR,MAAO,SAET,CACEjR,KAAM,YACNiR,MAAO,UAET,CACEjR,KAAM,wBACNiR,MAAO,KAET,CACEjR,KAAM,yBACNiR,MAAO,KAET,CACEjR,KAAM,+BACNiR,MAAOk9E,EAAc,WAAa,qBAEpC,CACEnuF,KAAM,qBACNiR,MAAO,cAET,CACEjR,KAAM,WACNiR,MAAOk9E,EAAc,oBAAsB,qBAE7C,CACEnuF,KAAM,UACNiR,MAAOk9E,EAAc,YAAc,YAErC,CACEnuF,KAAM,eACNiR,MAAO,gBAET,CACEjR,KAAM,2BACNiR,MAAO,IAET,CACEjR,KAAM,2BACNiR,MAAO,KAET,CACEjR,KAAM,sBACNiR,MAAO,KAET,CACEjR,KAAM,gBACNiR,MAAOk9E,EAAc,OAAS,QAEhC,CACEnuF,KAAM,kBACNiR,MAAO,WAET,CACEjR,KAAM,qBACNiR,MAAO,SAET,CACEjR,KAAM,qBACNiR,MAAO,QAET,CACEjR,KAAM,gBACNiR,MAAO,QAET,CACEjR,KAAM,4BACNiR,MAAO,KAET,CACEjR,KAAM,kBACNiR,MAAO,mBAET,CACEjR,KAAM,eACNiR,MAAO,MAET,CACEjR,KAAM,kBACNiR,MAAOk9E,EAAc,QAAU,SAEjC,CACEnuF,KAAM,sBACNiR,MAAO,cAET,CACEjR,KAAM,sBACNiR,MAAO,gBAET,CACEjR,KAAM,gBACNiR,MAAO,sBAET,CACEjR,KAAM,qBACNiR,MAAO,SAET,CACEjR,KAAM,mBACNiR,MAAO,QAET,CACEjR,KAAM,qBACNiR,MAAOk9E,EAAc,QAAU,SAEjC,CACEnuF,KAAM,6BACNiR,MAAO,MAET,CACEjR,KAAM,6BACNiR,MAAO,KAET,CACEjR,KAAM,8BACNiR,MAAO,MCpLAs9E,EAAen4C,GACpB,CACN,CACCp2C,KAAM,KACNiR,MAAO,QAER,CACCjR,KAAM,aACNiR,MAAO,+IAER,CACCjR,KAAM,KACNiR,MAAO,sBAER,CACCjR,KAAM,YACNiR,MAAO,SAER,CACCjR,KAAM,iBACNiR,MAAO,QAER,CACCjR,KAAM,WACNiR,MAAO,aAER,CACCjR,KAAM,YACNiR,MAAO,aAER,CACCjR,KAAM,aACNiR,MAAO,QAER,CACCjR,KAAM,aACNiR,MAAO,QAER,CACCjR,KAAM,OACNiR,MAAO,uBAER,CACCjR,KAAM,eACNiR,MAAO,sBAER,CACCjR,KAAM,QACNiR,MAAO,QAER,CACCjR,KAAM,UACNiR,MAAO,QAER,CACCjR,KAAM,UACNiR,MAAO,wKAER,CACCjR,KAAM,QACNiR,MAAO,QAER,CACCjR,KAAM,cACNiR,MAAO,aAER,CACCjR,KAAM,MACNiR,MAAO,QAER,CACCjR,KAAM,QACNiR,MAAO,uBAER,CACCjR,KAAM,UACNiR,MAAO,QAER,CACCjR,KAAM,WACNiR,MAAO,6CAER,CACCjR,KAAM,cACNiR,MAAO,QAER,CACCjR,KAAM,aACNiR,MAAO,QAER,CACCjR,KAAM,SACNiR,MAAO,qBAER,CACCjR,KAAM,WACNiR,MAAO,QAER,CACCjR,KAAM,SACNiR,MAAO,QAER,CACCjR,KAAM,kBACNiR,MAAO,OAER,CACCjR,KAAM,gBACNiR,MAAO,QAER,CACCjR,KAAM,oBACNiR,MAAO,QAER,CACCjR,KAAM,UACNiR,MAAO,sBAER,CACCjR,KAAM,qBACNiR,MAAO,SAER,CACCjR,KAAM,cACNiR,MAAO,SAER,CACCjR,KAAM,gBACNiR,MAAO,QAER,CACCjR,KAAM,qBACNiR,MAAO,QAER,CACCjR,KAAM,qBACNiR,MAAO,QAER,CACCjR,KAAM,yBACNiR,MAAO,QAER,CACCjR,KAAM,kBACNiR,MAAO,QAER,CACCjR,KAAM,cACNiR,MAAOmlC,GAAc,gCAEtB,CACCp2C,KAAM,cACNiR,MAAO,sBAER,CACCjR,KAAM,mBACNiR,MAAO,gCAER,CACCjR,KAAM,mBACNiR,MAAO,sBAER,CACCjR,KAAM,iBACNiR,MAAO,gCAER,CACCjR,KAAM,mBACNiR,MAAO,QAER,CACCjR,KAAM,YACNiR,MAAO,SAER,CACCjR,KAAM,mBACNiR,MAAO,SAER,CACCjR,KAAM,iBACNiR,MAAO,gCAER,CACCjR,KAAM,qBACNiR,MAAO,gCAER,CACCjR,KAAM,mBACNiR,MAAO,cAER,CACCjR,KAAM,mBACNiR,MAAO,QAER,CACCjR,KAAM,SACNiR,MAAO,QAER,CACCjR,KAAM,kBACNiR,MAAO,QAER,CACCjR,KAAM,qBACNiR,MAAO,QAER,CACCjR,KAAM,mBACNiR,MAAO,QAER,CACCjR,KAAM,eACNiR,MAAO,sBAER,CACCjR,KAAM,iCACNiR,MAAO,MAER,CACCjR,KAAM,iCACNiR,MAAO,SAER,CACCjR,KAAM,WACNiR,MAAO,cAER,CACCjR,KAAM,gBACNiR,MAAO,sBAER,CACCjR,KAAM,0BACNiR,MAAO,QAER,CACCjR,KAAM,YACNiR,MAAO,8BAER,CACCjR,KAAM,iBACNiR,MAAO,sBAER,CACCjR,KAAM,uBACNiR,MAAO,QAER,CACCjR,KAAM,cACNiR,MAAO,QAER,CACCjR,KAAM,8BACNiR,MAAO,gBAER,CACCjR,KAAM,0BACNiR,MAAO,QAER,CACCjR,KAAM,6BACNiR,MAAO,aAER,CACCjR,KAAM,0BACNiR,MAAO,iBAER,CACCjR,KAAM,sBACNiR,MAAO,QAER,CACCjR,KAAM,kBACNiR,MAAO,QAER,CACCjR,KAAM,kBACNiR,MAAO,QAER,CACCjR,KAAM,gBACNiR,MAAO,aAER,CACCjR,KAAM,kCACNiR,MAAO,QAER,CACCjR,KAAM,sCACNiR,MAAO,QAER,CACCjR,KAAM,sCACNiR,MAAO,QAER,CACCjR,KAAM,eACNiR,MAAO,QAER,CACCjR,KAAM,gCACNiR,MAAO,QAER,CACCjR,KAAM,wBACNiR,MAAO,QAER,CACCjR,KAAM,wBACNiR,MAAO,QAER,CACCjR,KAAM,sBACNiR,MAAO,QAER,CACCjR,KAAM,aACNiR,MAAO,QAER,CACCjR,KAAM,8BACNiR,MAAO,QAER,CACCjR,KAAM,yBACNiR,MAAO,WAER,CACCjR,KAAM,uBACNiR,MAAO,SAER,CACCjR,KAAM,8BACNiR,MAAO,QAER,CACCjR,KAAM,uBACNiR,MAAO,SAER,CACCjR,KAAM,uBACNiR,MAAO,SAER,CACCjR,KAAM,wBACNiR,MAAO,SAER,CACCjR,KAAM,uBACNiR,MAAO,SAER,CACCjR,KAAM,qBACNiR,MAAO,QAER,CACCjR,KAAM,0BACNiR,MAAO,SAER,CACCjR,KAAM,kCACNiR,MAAO,QAER,CACCjR,KAAM,iCACNiR,MAAO,QAER,CACCjR,KAAM,iCACNiR,MAAO,QAER,CACCjR,KAAM,mBACNiR,MAAO,QAER,CACCjR,KAAM,+BACNiR,MAAO,SAER,CACCjR,KAAM,uBACNiR,MAAO,cAER,CACCjR,KAAM,kCACNiR,MAAO,uBAER,CACCjR,KAAM,wBACNiR,MAAO,QAER,CACCjR,KAAM,0BACNiR,MAAO,SAER,CACCjR,KAAM,gCACNiR,MAAO,QAER,CACCjR,KAAM,mCACNiR,MAAO,QAER,CACCjR,KAAM,gCACNiR,MAAO,QAER,CACCjR,KAAM,wBACNiR,MAAO,QAER,CACCjR,KAAM,2BACNiR,MAAO,QAER,CACCjR,KAAM,qBACNiR,MAAO,QAER,CACCjR,KAAM,uBACNiR,MAAO,SAER,CACCjR,KAAM,+BACNiR,MAAO,QAER,CACCjR,KAAM,yBACNiR,MAAO,QAER,CACCjR,KAAM,0BACNiR,MAAO,QAER,CACCjR,KAAM,2CACNiR,MAAO,QAER,CACCjR,KAAM,+BACNiR,MAAO,SAER,CACCjR,KAAM,iCACNiR,MAAO,SAER,CACCjR,KAAM,8BACNiR,MAAO,SAER,CACCjR,KAAM,gCACNiR,MAAO,SAER,CACCjR,KAAM,uBACNiR,MAAO,QAER,CACCjR,KAAM,wBACNiR,MAAO,QAER,CACCjR,KAAM,yBACNiR,MAAO,QAER,CACCjR,KAAM,qBACNiR,MAAO,QAER,CACCjR,KAAM,qCACNiR,MAAO,QAER,CACCjR,KAAM,qBACNiR,MAAO,QAER,CACCjR,KAAM,sCACNiR,MAAO,SAER,CACCjR,KAAM,8BACNiR,MAAO,SAER,CACCjR,KAAM,mCACNiR,MAAO,QAER,CACCjR,KAAM,qBACNiR,MAAO,QAER,CACCjR,KAAM,6BACNiR,MAAO,QAER,CACCjR,KAAM,mCACNiR,MAAO,QAER,CACCjR,KAAM,uBACNiR,MAAO,QAER,CACCjR,KAAM,qBACNiR,MAAO,QAER,CACCjR,KAAM,mBACNiR,MAAO,QAER,CACCjR,KAAM,qBACNiR,MAAO,QAER,CACCjR,KAAM,mBACNiR,MAAO,QAER,CACCjR,KAAM,0BACNiR,MAAO,6BAER,CACCjR,KAAM,0BACNiR,MAAO,QAER,CACCjR,KAAM,6BACNiR,MAAO,QAER,CACCjR,KAAM,wCACNiR,MAAO,QAER,CACCjR,KAAM,4BACNiR,MAAO,QAER,CACCjR,KAAM,cACNiR,MAAO,QAER,CACCjR,KAAM,iCACNiR,MAAO,QAER,CACCjR,KAAM,mBACNiR,MAAO,QAER,CACCjR,KAAM,gCACNiR,MAAO,QAER,CACCjR,KAAM,sBACNiR,MAAO,QAER,CACCjR,KAAM,iCACNiR,MAAO,QAER,CACCjR,KAAM,oBACNiR,MAAO,QAER,CACCjR,KAAM,mBACNiR,MAAO,sBAER,CACCjR,KAAM,0BACNiR,MAAO,OAER,CACCjR,KAAM,4BACNiR,MAAO,WAER,CACCjR,KAAM,sBACNiR,MAAO,QAER,CACCjR,KAAM,mBACNiR,MAAO,QAER,CACCjR,KAAM,8BACNiR,MAAO,QAER,CACCjR,KAAM,8BACNiR,MAAO,QAER,CACCjR,KAAM,eACNiR,MAAO,QAER,CACCjR,KAAM,gCACNiR,MAAO,QAER,CACCjR,KAAM,oCACNiR,MAAO,gCAER,CACCjR,KAAM,kCACNiR,MAAO,QAER,CACCjR,KAAM,0BACNiR,MAAO,gCAER,CACCjR,KAAM,2BACNiR,MAAO,QAER,CACCjR,KAAM,wBACNiR,MAAO,SAER,CACCjR,KAAM,0BACNiR,MAAO,QAER,CACCjR,KAAM,qBACNiR,MAAO,QAER,CACCjR,KAAM,qCACNiR,MAAO,sBAER,CACCjR,KAAM,4BACNiR,MAAO,wBAER,CACCjR,KAAM,oBACNiR,MAAO,SAER,CACCjR,KAAM,yBACNiR,MAAO,SAER,CACCjR,KAAM,gCACNiR,MAAO,QAER,CACCjR,KAAM,4BACNiR,MAAO,QAER,CACCjR,KAAM,uBACNiR,MAAO,QAER,CACCjR,KAAM,qBACNiR,MAAO,QAER,CACCjR,KAAM,+BACNiR,MAAO,QAER,CACCjR,KAAM,mCACNiR,MAAO,QAER,CACCjR,KAAM,qCACNiR,MAAO,SAER,CACCjR,KAAM,sCACNiR,MAAO,QAER,CACCjR,KAAM,mCACNiR,MAAO,SAER,CACCjR,KAAM,cACNiR,MAAO,QAER,CACCjR,KAAM,iBACNiR,MAAO,QAER,CACCjR,KAAM,kBACNiR,MAAO,QAER,CACCjR,KAAM,mBACNiR,MAAO,QAER,CACCjR,KAAM,wBACNiR,MAAO,SAER,CACCjR,KAAM,+BACNiR,MAAO,SAER,CACCjR,KAAM,6BACNiR,MAAO,QAER,CACCjR,KAAM,oBACNiR,MAAO,QAER,CACCjR,KAAM,0BACNiR,MAAO,SAER,CACCjR,KAAM,2BACNiR,MAAO,SAER,CACCjR,KAAM,0BACNiR,MAAO,SAER,CACCjR,KAAM,2BACNiR,MAAO,SAER,CACCjR,KAAM,0BACNiR,MAAO,SAER,CACCjR,KAAM,wBACNiR,MAAO,QAER,CACCjR,KAAM,0CACNiR,MAAO,SAER,CACCjR,KAAM,yCACNiR,MAAO,QAER,CACCjR,KAAM,kCACNiR,MAAO,SAER,CACCjR,KAAM,oBACNiR,MAAO,UAER,CACCjR,KAAM,0BACNiR,MAAO,SAER,CACCjR,KAAM,uBACNiR,MAAO,QAER,CACCjR,KAAM,2BACNiR,MAAO,QAER,CACCjR,KAAM,8BACNiR,MAAO,QAER,CACCjR,KAAM,6BACNiR,MAAO,SAER,CACCjR,KAAM,8BACNiR,MAAO,uBAER,CACCjR,KAAM,8BACNiR,MAAO,QAER,CACCjR,KAAM,sCACNiR,MAAO,QAER,CACCjR,KAAM,sBACNiR,MAAO,SAER,CACCjR,KAAM,oBACNiR,MAAO,gBAER,CACCjR,KAAM,eACNiR,MAAO,SAER,CACCjR,KAAM,yBACNiR,MAAO,QAER,CACCjR,KAAM,uBACNiR,MAAO,QAER,CACCjR,KAAM,eACNiR,MAAO,QAER,CACCjR,KAAM,gCACNiR,MAAO,SAER,CACCjR,KAAM,4BACNiR,MAAO,QAER,CACCjR,KAAM,4BACNiR,MAAO,QAER,CACCjR,KAAM,iBACNiR,MAAO,QAER,CACCjR,KAAM,wBACNiR,MAAO,QAER,CACCjR,KAAM,iCACNiR,MAAO,QAER,CACCjR,KAAM,gCACNiR,MAAO,QAER,CACCjR,KAAM,mCACNiR,MAAO,QAER,CACCjR,KAAM,wCACNiR,MAAO,QAER,CACCjR,KAAM,iCACNiR,MAAO,QAER,CACCjR,KAAM,6CACNiR,MAAO,QAER,CACCjR,KAAM,4CACNiR,MAAO,QAER,CACCjR,KAAM,mBACNiR,MAAO,SAER,CACCjR,KAAM,qBACNiR,MAAO,SAER,CACCjR,KAAM,kBACNiR,MAAO,QAER,CACCjR,KAAM,qCACNiR,MAAO,QAER,CACCjR,KAAM,qBACNiR,MAAO,QAER,CACCjR,KAAM,mBACNiR,MAAO,QAER,CACCjR,KAAM,4BACNiR,MAAO,QAER,CACCjR,KAAM,yBACNiR,MAAO,QAER,CACCjR,KAAM,+BACNiR,MAAO,QAER,CACCjR,KAAM,qBACNiR,MAAO,QAER,CACCjR,KAAM,yBACNiR,MAAO,SAER,CACCjR,KAAM,8BACNiR,MAAO,QAER,CACCjR,KAAM,mCACNiR,MAAO,QAER,CACCjR,KAAM,mCACNiR,MAAO,QAER,CACCjR,KAAM,yBACNiR,MAAO,sBAER,CACCjR,KAAM,gCACNiR,MAAO,SAER,CACCjR,KAAM,2BACNiR,MAAO,+BAER,CACCjR,KAAM,sCACNiR,MAAO,QAER,CACCjR,KAAM,0BACNiR,MAAO,QAER,CACCjR,KAAM,sCACNiR,MAAO,SAER,CACCjR,KAAM,sBACNiR,MAAO,OAER,CACCjR,KAAM,yBACNiR,MAAO,QAER,CACCjR,KAAM,yBACNiR,MAAO,SCx7BGm9E,EAAgBA,CAACU,EAAyB14C,IAC/C,CACN,CACCp2C,KAAM,KACNiR,MAAO,UAER,CACCjR,KAAM,aACNiR,MAAO,qJAER,CACCjR,KAAM,KACNiR,MAAO,sBAER,CACCjR,KAAM,YACNiR,MAAO,SAER,CACCjR,KAAM,iBACNiR,MAAO,QAER,CACCjR,KAAM,OACNiR,MAAO,wBAER,CACCjR,KAAM,WACNiR,MAAO,kBAER,CACCjR,KAAM,YACNiR,MAAO,SAER,CACCjR,KAAM,aACNiR,MAAO,QAER,CACCjR,KAAM,aACNiR,MAAO,QAER,CACCjR,KAAM,OACNiR,MAAO,QAER,CACCjR,KAAM,eACNiR,MAAO,sBAER,CACCjR,KAAM,WACNiR,MAAO,QAER,CACCjR,KAAM,iBACNiR,MAAO,wKAER,CACCjR,KAAM,kBACNiR,MAAO,wKAER,CACCjR,KAAM,WACNiR,MAAO,6CAER,CACCjR,KAAM,QACNiR,MAAO,QAER,CACCjR,KAAM,MACNiR,MAAO,QAER,CACCjR,KAAM,gBACNiR,MAAO,QAER,CACCjR,KAAM,UACNiR,MAAO,QAER,CACCjR,KAAM,MACNiR,MAAO,QAER,CACCjR,KAAM,WACNiR,MAAO,QAER,CACCjR,KAAM,gBACNiR,MAAO,QAER,CACCjR,KAAM,oBACNiR,MAAO,QAER,CACCjR,KAAM,YACNiR,MAAO,QAER,CACCjR,KAAM,eACNiR,MAAO,QAER,CACCjR,KAAM,cACNiR,MAAO,QAER,CACCjR,KAAM,SACNiR,MAAO,QAER,CACCjR,KAAM,OACNiR,MAAO,QAER,CACCjR,KAAM,kBACNiR,MAAO,OAER,CACCjR,KAAM,UACNiR,MAAO,sBAER,CACCjR,KAAM,cACNiR,MAAOmlC,GAAc,gCAEtB,CACCp2C,KAAM,cACNiR,MAAO,sBAER,CACCjR,KAAM,mBACNiR,MAAO,gCAER,CACCjR,KAAM,mBACNiR,MAAO,sBAER,CACCjR,KAAM,iBACNiR,MAAO,gCAER,CACCjR,KAAM,mBACNiR,MAAO,QAER,CACCjR,KAAM,iBACNiR,MAAO,gCAER,CACCjR,KAAM,qBACNiR,MAAO,gCAER,CACCjR,KAAM,YACNiR,MAAO,SAER,CACCjR,KAAM,kBACNiR,MAAO,sBAER,CACCjR,KAAM,kBACNiR,MAAO,QAER,CACCjR,KAAM,qBACNiR,MAAO,QAER,CACCjR,KAAM,0BACNiR,MAAO,QAER,CACCjR,KAAM,uBACNiR,MAAO,wKAER,CACCjR,KAAM,qBACNiR,MAAO,wKAER,CACCjR,KAAM,oBACNiR,MAAO,aAER,CACCjR,KAAM,kBACNiR,MAAO,QAER,CACCjR,KAAM,mBACNiR,MAAO,QAER,CACCjR,KAAM,uBACNiR,MAAO,QAER,CACCjR,KAAM,cACNiR,MAAO,kCAER,CACCjR,KAAM,cACNiR,MAAO,QAER,CACCjR,KAAM,mBACNiR,MAAO,QAER,CACCjR,KAAM,sBACNiR,MAAO,QAER,CACCjR,KAAM,mBACNiR,MAAO,QAER,CACCjR,KAAM,kBACNiR,MAAO,QAER,CACCjR,KAAM,2BACNiR,MAAO,SAER,CACCjR,KAAM,yBACNiR,MAAO,SAER,CACCjR,KAAM,kBACNiR,MAAO,SAER,CACCjR,KAAM,0BACNiR,MAAO,QAER,CACCjR,KAAM,yBACNiR,MAAO,QAER,CACCjR,KAAM,2BACNiR,MAAO,QAER,CACCjR,KAAM,yBACNiR,MAAO,QAER,CACCjR,KAAM,qBACNiR,MAAO,sBAER,CACCjR,KAAM,SACNiR,MAAO,QAER,CACCjR,KAAM,kBACNiR,MAAO,QAER,CACCjR,KAAM,gBACNiR,MAAO,QAER,CACCjR,KAAM,UACNiR,MAAO,QAER,CACCjR,KAAM,sBACNiR,MAAO,QAER,CACCjR,KAAM,qCACNiR,MAAO,mBAER,CACCjR,KAAM,uBACNiR,MAAO,QAER,CACCjR,KAAM,uBACNiR,MAAO,SAER,CACCjR,KAAM,wBACNiR,MAAO,SAER,CACCjR,KAAM,uBACNiR,MAAO,QAER,CACCjR,KAAM,qBACNiR,MAAO,QAER,CACCjR,KAAM,gBACNiR,MAAO,QAER,CACCjR,KAAM,YACNiR,MAAO,QAER,CACCjR,KAAM,cACNiR,MAAO,QAER,CACCjR,KAAM,mCACNiR,MAAO,QAER,CACCjR,KAAM,sBACNiR,MAAO,cAER,CACCjR,KAAM,sBACNiR,MAAO,QAER,CACCjR,KAAM,mBACNiR,MAAO,8FAER,CACCjR,KAAM,qBACNiR,MAAO,cAER,CACCjR,KAAM,uBACNiR,MAAO,QAER,CACCjR,KAAM,wBACNiR,MAAO,QAER,CACCjR,KAAM,sBACNiR,MAAO,SAER,CACCjR,KAAM,sBACNiR,MAAO,QAER,CACCjR,KAAM,oBACNiR,MAAO,QAER,CACCjR,KAAM,2BACNiR,MAAO,uBAER,CACCjR,KAAM,mBACNiR,MAAO,QAER,CACCjR,KAAM,iBACNiR,MAAO,QAER,CACCjR,KAAM,2BACNiR,MAAO,QAER,CACCjR,KAAM,wCACNiR,MAAO,SAER,CACCjR,KAAM,yCACNiR,MAAO,QAER,CACCjR,KAAM,+BACNiR,MAAO,QAER,CACCjR,KAAM,sBACNiR,MAAO,QAER,CACCjR,KAAM,kBACNiR,MAAO,QAER,CACCjR,KAAM,mBACNiR,MAAO,QAER,CACCjR,KAAM,8BACNiR,MAAO,QAER,CACCjR,KAAM,4BACNiR,MAAO,QAER,CACCjR,KAAM,yBACNiR,MAAO,QAER,CACCjR,KAAM,yBACNiR,MAAO,QAER,CACCjR,KAAM,wBACNiR,MAAO,QAER,CACCjR,KAAM,iBACNiR,MAAO,QAER,CACCjR,KAAM,4BACNiR,MAAO,QAER,CACCjR,KAAM,sBACNiR,MAAO,QAER,CACCjR,KAAM,eACNiR,MAAO,QAER,CACCjR,KAAM,yBACNiR,MAAO,QAER,CACCjR,KAAM,oBACNiR,MAAO,SAER,CACCjR,KAAM,uBACNiR,MAAO,SAER,CACCjR,KAAM,0BACNiR,MAAO,QAER,CACCjR,KAAM,+BACNiR,MAAO,QAER,CACCjR,KAAM,0BACNiR,MAAO,QAER,CACCjR,KAAM,uBACNiR,MAAO,QAER,CACCjR,KAAM,iBACNiR,MAAO,SAER,CACCjR,KAAM,gBACNiR,MAAO,SAER,CACCjR,KAAM,kBACNiR,MAAO,SAER,CACCjR,KAAM,uBACNiR,MAAO,SAER,CACCjR,KAAM,gCACNiR,MAAO,QAER,CACCjR,KAAM,sBACNiR,MAAO,QAER,CACCjR,KAAM,iBACNiR,MAAO,2BAER,CACCjR,KAAM,iBACNiR,MAAO,QAER,CACCjR,KAAM,eACNiR,MAAO,QAER,CACCjR,KAAM,kBACNiR,MAAO,SAER,CACCjR,KAAM,qBACNiR,MAAO,QAER,CACCjR,KAAM,wBACNiR,MAAO,QAER,CACCjR,KAAM,uBACNiR,MAAO,aAER,CACCjR,KAAM,uBACNiR,MAAO,QAER,CACCjR,KAAM,oCACNiR,MAAO,OAER,CACCjR,KAAM,mCACNiR,MAAO,OAER,CACCjR,KAAM,qCACNiR,MAAO,OAER,CACCjR,KAAM,kCACNiR,MAAO,OAER,CACCjR,KAAM,4BACNiR,MAAO,OAER,CACCjR,KAAM,kCACNiR,MAAO,OAER,CACCjR,KAAM,+BACNiR,MAAO,QAER,CACCjR,KAAM,uBACNiR,MAAO,KAER,CACCjR,KAAM,mBACNiR,MAAO,SAER,CACCjR,KAAM,kCACNiR,MAAO,KAER,CACCjR,KAAM,kBACNiR,MAAO,QAER,CACCjR,KAAM,yBACNiR,MAAO,SAER,CACCjR,KAAM,uBACNiR,MAAO,QAER,CACCjR,KAAM,yBACNiR,MAAO,QAER,CACCjR,KAAM,0BACNiR,MAAO,QAER,CACCjR,KAAM,qBACNiR,MAAO,QAER,CACCjR,KAAM,wBACNiR,MAAO,UAER,CACCjR,KAAM,6BACNiR,MAAO,QAER,CACCjR,KAAM,0BACNiR,MAAO,QAER,CACCjR,KAAM,+BACNiR,MAAO,SAER,CACCjR,KAAM,mBACNiR,MAAO,SAER,CACCjR,KAAM,mBACNiR,MAAO,QAER,CACCjR,KAAM,qBACNiR,MAAO,QAER,CACCjR,KAAM,mBACNiR,MAAO,QAER,CACCjR,KAAM,gCACNiR,MAAO,SAER,CACCjR,KAAM,wBACNiR,MAAO,cAER,CACCjR,KAAM,qBACNiR,MAAO,QAER,CACCjR,KAAM,qBACNiR,MAAO,QAER,CACCjR,KAAM,yBACNiR,MAAO,QAER,CACCjR,KAAM,eACNiR,MAAO,SAER,CACCjR,KAAM,uBACNiR,MAAO,SAER,CACCjR,KAAM,qBACNiR,MAAO,SAER,CACCjR,KAAM,mCACNiR,MAAO,wDAER,CACCjR,KAAM,gBACNiR,MAAO,SAER,CACCjR,KAAM,kCACNiR,MAAO,SAER,CACCjR,KAAM,kCACNiR,MAAO,MAER,CACCjR,KAAM,gBACNiR,MAAO,QAER,CACCjR,KAAM,8BACNiR,MAAO,QAER,CACCjR,KAAM,qBACNiR,MAAO,QAER,CACCjR,KAAM,2BACNiR,MAAO,QAER,CACCjR,KAAM,sBACNiR,MAAO,QAER,CACCjR,KAAM,aACNiR,MAAO,QAER,CACCjR,KAAM,wBACNiR,MAAO,QAER,CACCjR,KAAM,oBACNiR,MAAO,QAER,CACCjR,KAAM,wBACNiR,MAAO,SAER,CACCjR,KAAM,wBACNiR,MAAO,SAER,CACCjR,KAAM,yBACNiR,MAAO,SAER,CACCjR,KAAM,wBACNiR,MAAO,SAER,CACCjR,KAAM,sBACNiR,MAAO,QAER,CACCjR,KAAM,uBACNiR,MAAO,QAER,CACCjR,KAAM,iCACNiR,MAAO,wBAER,CACCjR,KAAM,qBACNiR,MAAO,QAER,CACCjR,KAAM,gCACNiR,MAAO,SAER,CACCjR,KAAM,iBACNiR,MAAO,aAER,CACCjR,KAAM,gBACNiR,MAAO,QAER,CACCjR,KAAM,oCACNiR,MAAO,QAER,CACCjR,KAAM,4BACNiR,MAAO,QAER,CACCjR,KAAM,4BACNiR,MAAO,SAER,CACCjR,KAAM,4BACNiR,MAAO,SAER,CACCjR,KAAM,6BACNiR,MAAO,SAER,CACCjR,KAAM,4BACNiR,MAAO,SAER,CACCjR,KAAM,0BACNiR,MAAO,SAER,CACCjR,KAAM,wBACNiR,MAAO,SAER,CACCjR,KAAM,+BACNiR,MAAO,QAER,CACCjR,KAAM,4CACNiR,MAAO,QAER,CACCjR,KAAM,gCACNiR,MAAO,SAER,CACCjR,KAAM,iCACNiR,MAAO,SAER,CACCjR,KAAM,kCACNiR,MAAO,SAER,CACCjR,KAAM,+BACNiR,MAAO,SAER,CACCjR,KAAM,iCACNiR,MAAO,SAER,CACCjR,KAAM,wBACNiR,MAAO,QAER,CACCjR,KAAM,yBACNiR,MAAO,QAER,CACCjR,KAAM,0BACNiR,MAAO,QAER,CACCjR,KAAM,sBACNiR,MAAO,QAER,CACCjR,KAAM,sCACNiR,MAAO,QAER,CACCjR,KAAM,qBACNiR,MAAO,QAER,CACCjR,KAAM,wBACNiR,MAAO,SAER,CACCjR,KAAM,qBACNiR,MAAO,QAER,CACCjR,KAAM,qBACNiR,MAAO,SAER,CACCjR,KAAM,sBACNiR,MAAO,QAER,CACCjR,KAAM,mBACNiR,MAAO,QAER,CACCjR,KAAM,kCACNiR,MAAO,QAER,CACCjR,KAAM,wCACNiR,MAAO,SAER,CACCjR,KAAM,qCACNiR,MAAO,SAER,CACCjR,KAAM,qBACNiR,MAAO,QAER,CACCjR,KAAM,uCACNiR,MAAO,QAER,CACCjR,KAAM,6CACNiR,MAAO,QAER,CACCjR,KAAM,2BACNiR,MAAO,QAER,CACCjR,KAAM,oBACNiR,MAAO,QAER,CACCjR,KAAM,oBACNiR,MAAO,SAER,CACCjR,KAAM,8BACNiR,MAAO,SAER,CACCjR,KAAM,yBACNiR,MAAO,SAER,CACCjR,KAAM,mBACNiR,MAAO,SAER,CACCjR,KAAM,0BACNiR,MAAO,SAER,CACCjR,KAAM,gBACNiR,MAAO,QAER,CACCjR,KAAM,oBACNiR,MAAO,QAER,CACCjR,KAAM,sBACNiR,MAAO,QAER,CACCjR,KAAM,oBACNiR,MAAO,QAER,CACCjR,KAAM,oBACNiR,MAAO,QAER,CACCjR,KAAM,sBACNiR,MAAO,QAER,CACCjR,KAAM,oBACNiR,MAAO,QAER,CACCjR,KAAM,gCACNiR,MAAO,SAER,CACCjR,KAAM,sBACNiR,MAAO,SAER,CACCjR,KAAM,2BACNiR,MAAO,SAER,CACCjR,KAAM,4BACNiR,MAAO,SAER,CACCjR,KAAM,2BACNiR,MAAO,SAER,CACCjR,KAAM,4BACNiR,MAAO,SAER,CACCjR,KAAM,2BACNiR,MAAO,SAER,CACCjR,KAAM,yBACNiR,MAAO,QAER,CACCjR,KAAM,iBACNiR,MAAO,SAER,CACCjR,KAAM,oBACNiR,MAAO,SAER,CACCjR,KAAM,4BACNiR,MAAO,QAER,CACCjR,KAAM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ACzBjuK,IAAAA,cAACguK,GAAa,CAACC,UAAU,YACzBjuK,IAAAA,cAACguK,GAAa,CAACC,UAAU,YACzBjuK,IAAAA,cAACguK,GAAa,CAACC,UAAU,YACzBjuK,IAAAA,cAACguK,GAAa,CAACC,UAAU,YACzBjuK,IAAAA,cAACguK,GAAa,CAACC,UAAU,YACzBjuK,IAAAA,cAACguK,GAAa,CAACC,UAAU,YACzBjuK,IAAAA,cAACguK,GAAa,CAACC,UAAU,YACzBjuK,IAAAA,cAACguK,GAAa,CAACC,UAAU,YACzBjuK,IAAAA,cAACguK,GAAa,CAACC,UAAU,YACzBjuK,IAAAA,cAACguK,GAAa,CAACC,UAAU,YACzBjuK,IAAAA,cAACguK,GAAa,CAACC,UAAU,YACzBjuK,IAAAA,cAACguK,GAAa,CAACC,UAAU,YACzBjuK,IAAAA,cAACguK,GAAa,CAACC,UAAU,YACzBjuK,IAAAA,cAACguK,GAAa,CAACC,UAAU,YACzBjuK,IAAAA,cAACguK,GAAa,CAACC,UAAU,YACzBjuK,IAAAA,cAACguK,GAAa,CAACC,UAAU,YACzBjuK,IAAAA,cAACguK,GAAa,CAACC,UAAU,YACzBjuK,IAAAA,cAACguK,GAAa,CAACC,UAAU,YACzBjuK,IAAAA,cAACguK,GAAa,CAACC,UAAU,YACzBjuK,IAAAA,cAACguK,GAAa,CAACC,UAAU,YACzBjuK,IAAAA,cAACguK,GAAa,CAACC,UAAU,YACzBjuK,IAAAA,cAACguK,GAAa,CAACC,UAAU,YACzBjuK,IAAAA,cAACguK,GAAa,CAACC,UAAU,YACzBjuK,IAAAA,cAACguK,GAAa,CAACC,UAAU,YACzBjuK,IAAAA,cAACguK,GAAa,CAACC,UAAU,YACzBjuK,IAAAA,cAACguK,GAAa,CAACC,UAAU,YACzBjuK,IAAAA,cAACguK,GAAa,CAACC,UAAU,YACzBjuK,IAAAA,cAACguK,GAAa,CAACC,UAAU,YACzBjuK,IAAAA,cAACguK,GAAa,CAACC,UAAU,YACzBjuK,IAAAA,cAACguK,GAAa,CAACC,UAAU,YACzBjuK,IAAAA,cAACguK,GAAa,CAA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,mBACbC,QAAS,CACL,CACI7vD,MAAO,aAInB,CACI4vD,YAAa,qBACbC,QAAS,CACL,CACI7vD,MAAO,aAInB,CACI2vD,YAAa,6BACbC,YAAa,SACbC,QAAS,CACL,CACIC,WAAY,SAIxB,CACIH,YAAa,6BACbC,YAAa,mBACbC,QAAS,CACL,CACI7vD,MAAO,aAInB,CACI2vD,YAAa,YACbE,QAAS,CACL,CACI7vD,MAAO,aAInB,CACI2vD,YAAa,oBACbC,YAAa,SACbC,QAAS,CACL,CACI7vD,MAAO,WAEX,CACI8vD,WAAY,cAEhB,CACIhB,OAAQ,MAIpB,CACIa,YAAa,MACbC,YAAa,WACbC,QAAS,CACL,CACI7vD,MAAO,aAInB,CACI2vD,YAAa,MACbC,YAAa,cACbC,QAAS,CACL,CACIC,WAAY,SAIxB,CACIH,YAAa,MACbC,YAAa,mBACbC,QAAS,CACL,CACI7vD,MAAO,aAInB,CACI2vD,YAAa,eACbE,QAAS,CACL,CACIC,WAAY,SAIxB,CACIH,YAAa,WACbC,YAAa,WACbC,QAAS,CACL,CACI7vD,MAAO,aAInB,CACI2vD,YAAa,WACbC,YAAa,gBACbC,QAAS,CACL,CACI7vD,MAAO,aAInB,CACI2vD,YAAa,WACbC,YAAa,SACbC,QAAS,CACL,CACIC,WAAY,QAIxB,CACIH,YAAa,WACbC,YAAa,mBACbC,QAAS,CACL,CACI7vD,MAAO,aAInB,CACI2vD,YAAa,WACbC,YAAa,qBACbC,QAAS,CACL,CACIC,WAAY,SAIxB,CACIH,YAAa,OACbC,YAAa,WACbC,QAAS,CACL,CACI7vD,MAAO,aAInB,CACI2vD,YAAa,OACbC,YAAa,SACbC,QAAS,CACL,CACIC,WAAY,QAIxB,CACIH,YAAa,OACbC,YAAa,cACbC,QAAS,CACL,CACIC,WAAY,SAIxB,CACIH,YAAa,gBACbC,YAAa,SACbC,QAAS,CACL,CACIC,WAAY,QAIxB,CACIH,YAAa,gBACbC,YAAa,cACbC,QAAS,CACL,CACIC,WAAY,QAIxB,CACIH,YAAa,gBACbC,YAAa,mBACbC,QAAS,CACL,CACI7vD,MAAO,aAInB,CACI2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,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,KAAK,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,KAAK,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,KAAK,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,KAAK,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,KAAK,KAAK,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,KAAK,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM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","sources":["webpack://vw-oneform-feature-app/webpack/universalModuleDefinition","webpack://vw-oneform-feature-app/./src/bff/api/get-dealer-kvps.ts","webpack://vw-oneform-feature-app/./src/bff/get-marketing-code.ts","webpack://vw-oneform-feature-app/./src/bff/api/send-form.ts","webpack://vw-oneform-feature-app/./src/bff/api/appadap-appointment-create.ts","webpack://vw-oneform-feature-app/./src/bff/api/fetch-domains.ts","webpack://vw-oneform-feature-app/./src/bff/api/fetch-marketing-code.ts","webpack://vw-oneform-feature-app/./src/bff/api/get-carlines-cita.ts","webpack://vw-oneform-feature-app/./src/bff/api/get-carlines.ts","webpack://vw-oneform-feature-app/./src/bff/api/get-colors.ts","webpack://vw-oneform-feature-app/./src/bff/api/get-dealers.ts","webpack://vw-oneform-feature-app/./src/bff/api/get-installations.ts","webpack://vw-oneform-feature-app/./src/bff/api/get-pincode.ts","webpack://vw-oneform-feature-app/./src/bff/api/get-salesgroups.ts","webpack://vw-oneform-feature-app/./src/bff/api/get-vehiculos-modelo.ts","webpack://vw-oneform-feature-app/./src/bff/api/get-vilma-frame.ts","webpack://vw-oneform-feature-app/./src/bff/api/get-ofertas-suv.ts","webpack://vw-oneform-feature-app/./src/bff/get-data-url.ts","webpack://vw-oneform-feature-app/./src/bff/get-google-api-key.ts","webpack://vw-oneform-feature-app/./src/bff/get-molecular-cdn-url.ts","webpack://vw-oneform-feature-app/./src/bff/get-molecular-url.ts","webpack://vw-oneform-feature-app/./src/bff/get-oneform-bff-url.ts","webpack://vw-oneform-feature-app/./src/bff/get-oneform-bff-api-key.ts","webpack://vw-oneform-feature-app/./src/bff/get-oneform-bff-cdn-url.ts","webpack://vw-oneform-feature-app/./src/bff/get-oneform-bff-cdn-api-key.ts","webpack://vw-oneform-feature-app/./src/bff/report-error-sentry.ts","webpack://vw-oneform-feature-app/./src/components/AnteriorCTA.tsx","webpack://vw-oneform-feature-app/./src/components/AvisoIslasCanarias.tsx","webpack://vw-oneform-feature-app/./src/components/CanalDeContacto.tsx","webpack://vw-oneform-feature-app/./src/components/Card.tsx","webpack://vw-oneform-feature-app/./src/components/CarouselComponent.tsx","webpack://vw-oneform-feature-app/./src/components/CloseButton.tsx","webpack://vw-oneform-feature-app/./src/components/CodigoPostal.tsx","webpack://vw-oneform-feature-app/./src/components/ConfirmacionLayers.tsx","webpack://vw-oneform-feature-app/./src/components/Legales/LegalFullScreenSinConsentimientos.tsx","webpack://vw-oneform-feature-app/./src/components/Legales/LegalItem.tsx","webpack://vw-oneform-feature-app/./src/components/Legales/Legales.tsx","webpack://vw-oneform-feature-app/./src/components/Legales/LegalesFormatoLayer.tsx","webpack://vw-oneform-feature-app/./src/components/Legales/LssiTkmQuestions.tsx","webpack://vw-oneform-feature-app/./src/components/Legales/LssiTkmQuestionsComerciales.tsx","webpack://vw-oneform-feature-app/./src/components/Legales/LssiTkmQuestionsTurismos.tsx","webpack://vw-oneform-feature-app/./src/components/Legales/ConsentQuestion.tsx","webpack://vw-oneform-feature-app/./src/components/DealerCard.tsx","webpack://vw-oneform-feature-app/./src/components/DetalleMotivo.tsx","webpack://vw-oneform-feature-app/./src/components/FechaCompra.tsx","webpack://vw-oneform-feature-app/./src/components/Kilometros.tsx","webpack://vw-oneform-feature-app/./src/components/LastNavigationConfirmacion.tsx","webpack://vw-oneform-feature-app/./src/components/LocateUserFullScreen.tsx","webpack://vw-oneform-feature-app/./src/components/MatriculaYModelo.tsx","webpack://vw-oneform-feature-app/./src/components/NoCliente.tsx","webpack://vw-oneform-feature-app/./src/components/PantallaIntroduccionStars.tsx","webpack://vw-oneform-feature-app/./src/components/SelectExtended.tsx","webpack://vw-oneform-feature-app/./src/components/Trato.tsx","webpack://vw-oneform-feature-app/./src/components/PantallaNombreApellido.tsx","webpack://vw-oneform-feature-app/./src/components/PoliticaPrivacidad.tsx","webpack://vw-oneform-feature-app/./src/components/SlideEncuestas.tsx","webpack://vw-oneform-feature-app/./src/components/SuggestMarca.tsx","webpack://vw-oneform-feature-app/./src/components/SuggestModelo.tsx","webpack://vw-oneform-feature-app/./src/components/SelectMarcaModelo.tsx","webpack://vw-oneform-feature-app/./src/components/VerticalLine.tsx","webpack://vw-oneform-feature-app/./src/components/YaTienesVolkswagen.tsx","webpack://vw-oneform-feature-app/./src/components/styleComponents/PaddingWrapper.tsx","webpack://vw-oneform-feature-app/./src/components/styleComponents/InputWidthWrapper.tsx","webpack://vw-oneform-feature-app/./src/components/styleComponents/GeneralInputWidthWrapper.tsx","webpack://vw-oneform-feature-app/./src/components/styleComponents/ContactoInfoWrapper.tsx","webpack://vw-oneform-feature-app/./src/components/styleComponents/GeneralConfirmacionLayerWrapper.tsx","webpack://vw-oneform-feature-app/./src/components/styleComponents/WhiteLinkWrapper.tsx","webpack://vw-oneform-feature-app/./src/components/styleComponents/GeneralConfirmacionWrapper.tsx","webpack://vw-oneform-feature-app/./src/components/CarlineSelect/hooks/use-format-CEMVenta.ts","webpack://vw-oneform-feature-app/./src/components/CarlineSelect/hooks/use-format-carline-select-extended-list.ts","webpack://vw-oneform-feature-app/./src/components/CarlineSelect/hooks/use-format-all-carlines.ts","webpack://vw-oneform-feature-app/./src/components/CarlineSelect/hooks/use-format-alphabetical.ts","webpack://vw-oneform-feature-app/./src/components/CarlineSelect/hooks/use-format-all-salesgroups.ts","webpack://vw-oneform-feature-app/./src/components/CarlineSelect/hooks/use-format-salesgroups-select-extended-list.ts","webpack://vw-oneform-feature-app/./src/components/CarlineSelect/hooks/use-filter-carline-flag.ts","webpack://vw-oneform-feature-app/./src/components/CarlineSelect/hooks/use-get-salesgroups-from-carlines.ts","webpack://vw-oneform-feature-app/./src/components/CarlineSelect/hooks/use-get-formated-salesgroups.ts","webpack://vw-oneform-feature-app/./src/components/CarlineSelect/hooks/use-filter-preselected-fa-content.ts","webpack://vw-oneform-feature-app/./src/components/CarlineSelect/hooks/use-filter-preselected-fa-content-salesgroups.ts","webpack://vw-oneform-feature-app/./src/components/CarlineSelect/hooks/use-find-carline-from-salesgroup.ts","webpack://vw-oneform-feature-app/./src/components/CarlineSelect/hooks/use-find-carline.ts","webpack://vw-oneform-feature-app/./src/components/CarlineSelect/hooks/use-fa-content-modes.ts","webpack://vw-oneform-feature-app/./src/components/CarlineSelect/CarlineSelect.tsx","webpack://vw-oneform-feature-app/./src/components/LoadingEncuestas.tsx","webpack://vw-oneform-feature-app/./src/components/ThankYouPage/ThankYouTitle.tsx","webpack://vw-oneform-feature-app/./src/components/ThankYouPage/CTAThankYouPage.tsx","webpack://vw-oneform-feature-app/./src/components/ThankYouPage/ThankYouFields.tsx","webpack://vw-oneform-feature-app/./src/components/ThankYouPage/CTAThankYouPageAction.tsx","webpack://vw-oneform-feature-app/./src/components/ThankYouPage/LeadsCTAs.tsx","webpack://vw-oneform-feature-app/./src/components/IDBuzzFakeInput.tsx","webpack://vw-oneform-feature-app/./src/components/ImageCarNoColorBG.tsx","webpack://vw-oneform-feature-app/./src/components/inputs/InputButton.tsx","webpack://vw-oneform-feature-app/./src/components/inputs/TextInputExtended.tsx","webpack://vw-oneform-feature-app/./src/components/inputs/Apellido.tsx","webpack://vw-oneform-feature-app/./src/components/inputs/Email.tsx","webpack://vw-oneform-feature-app/./src/components/inputs/InputError.tsx","webpack://vw-oneform-feature-app/./src/components/inputs/Nombre.tsx","webpack://vw-oneform-feature-app/./node_modules/libphonenumber-js/min/exports/Metadata.js","webpack://vw-oneform-feature-app/./node_modules/libphonenumber-js/source/AsYouTypeState.js","webpack://vw-oneform-feature-app/./node_modules/libphonenumber-js/source/AsYouTypeFormatter.util.js","webpack://vw-oneform-feature-app/./node_modules/libphonenumber-js/source/AsYouTypeFormatter.complete.js","webpack://vw-oneform-feature-app/./node_modules/libphonenumber-js/source/AsYouTypeFormatter.PatternParser.js","webpack://vw-oneform-feature-app/./node_modules/libphonenumber-js/source/AsYouTypeFormatter.PatternMatcher.js","webpack://vw-oneform-feature-app/./node_modules/libphonenumber-js/source/AsYouTypeFormatter.js","webpack://vw-oneform-feature-app/./node_modules/libphonenumber-js/source/AsYouTypeParser.js","webpack://vw-oneform-feature-app/./node_modules/libphonenumber-js/source/AsYouType.js","webpack://vw-oneform-feature-app/./node_modules/libphonenumber-js/min/exports/AsYouType.js","webpack://vw-oneform-feature-app/./node_modules/libphonenumber-js/source/validatePhoneNumberLength.js","webpack://vw-oneform-feature-app/./node_modules/libphonenumber-js/min/exports/validatePhoneNumberLength.js","webpack://vw-oneform-feature-app/./src/components/inputs/Telefono.tsx","webpack://vw-oneform-feature-app/./src/components/inputs/TextAreaExtended.tsx","webpack://vw-oneform-feature-app/./src/components/inputs/calling-countries.ts","webpack://vw-oneform-feature-app/./src/components/inputs/CustomRadioButton.tsx","webpack://vw-oneform-feature-app/./src/components/inputs/CustomSelect.tsx","webpack://vw-oneform-feature-app/./src/components/inputs/MultipleOptionsCTAs.tsx","webpack://vw-oneform-feature-app/./src/components/inputs/MultipleCTASelection.tsx","webpack://vw-oneform-feature-app/./src/components/inputs/RatingStars.tsx","webpack://vw-oneform-feature-app/./src/components/inputs/CustomSlider.tsx","webpack://vw-oneform-feature-app/./src/components/inputs/CustomSwitch.tsx","webpack://vw-oneform-feature-app/./src/components/inputs/use-only-letters-control.tsx","webpack://vw-oneform-feature-app/./src/components/layers/AvailabilityErrorLayer.tsx","webpack://vw-oneform-feature-app/./src/feature-app/remove-configuration-hash.ts","webpack://vw-oneform-feature-app/./src/components/layers/AreYouSureLayer.tsx","webpack://vw-oneform-feature-app/./src/components/layers/GenericErrorLayer.tsx","webpack://vw-oneform-feature-app/./node_modules/@redux-devtools/extension/lib/esm/index.js","webpack://vw-oneform-feature-app/./src/feature-app/App.tsx","webpack://vw-oneform-feature-app/./src/feature-app/CalendarioCita/CalandarioStyles.tsx","webpack://vw-oneform-feature-app/./src/feature-app/CalendarioCita/CalendarioCita.tsx","webpack://vw-oneform-feature-app/./src/feature-app/CalendarioCita/FranjaHoraria.tsx","webpack://vw-oneform-feature-app/./src/feature-app/CalendarioCita/SlotsHorario.tsx","webpack://vw-oneform-feature-app/./src/feature-app/CalendarioCita/TabsHorario.tsx","webpack://vw-oneform-feature-app/./src/feature-app/CalendarioCita/get-slots.tsx","webpack://vw-oneform-feature-app/./src/feature-app/CalendarioCita/CloseInDealerCalendar.tsx","webpack://vw-oneform-feature-app/./src/feature-app/InputsValues/CTAsObjects.tsx","webpack://vw-oneform-feature-app/./src/feature-app/InputsValues/CTAsObjectsFormsAdhoc.tsx","webpack://vw-oneform-feature-app/./src/feature-app/InputsValues/OtherInputTypesObjects.tsx","webpack://vw-oneform-feature-app/./src/feature-app/LayerManagerWrapper.tsx","webpack://vw-oneform-feature-app/./src/feature-app/NewMap/Loadscript.tsx","webpack://vw-oneform-feature-app/./src/feature-app/NewMap/MapGeneralController.tsx","webpack://vw-oneform-feature-app/./node_modules/kdbush/src/sort.js","webpack://vw-oneform-feature-app/./node_modules/kdbush/src/within.js","webpack://vw-oneform-feature-app/./node_modules/kdbush/src/index.js","webpack://vw-oneform-feature-app/./node_modules/kdbush/src/range.js","webpack://vw-oneform-feature-app/./node_modules/supercluster/index.js","webpack://vw-oneform-feature-app/./src/feature-app/NewMap/generate-clusters.ts","webpack://vw-oneform-feature-app/./src/feature-app/NewMap/handle-location.ts","webpack://vw-oneform-feature-app/./src/feature-app/NewMap/usePinState.tsx","webpack://vw-oneform-feature-app/./src/feature-app/NewMap/usePredictions.ts","webpack://vw-oneform-feature-app/./src/feature-app/NewMap/use-get-franja-and-day-from.ts","webpack://vw-oneform-feature-app/./src/feature-app/NewMap/use-create-nop-dms-slot-and-asessor.ts","webpack://vw-oneform-feature-app/./src/feature-app/NewMap/components/NewDealerCard.tsx","webpack://vw-oneform-feature-app/./src/feature-app/NewMap/components/SeleccionDealerTabs.tsx","webpack://vw-oneform-feature-app/./src/feature-app/NewMap/components/SuggestStyles.tsx","webpack://vw-oneform-feature-app/./node_modules/google-map-react/src/google_map_map.js","webpack://vw-oneform-feature-app/./node_modules/google-map-react/src/marker_dispatcher.js","webpack://vw-oneform-feature-app/./node_modules/google-map-react/src/utils/omit.js","webpack://vw-oneform-feature-app/./node_modules/google-map-react/src/utils/shallowEqual.js","webpack://vw-oneform-feature-app/./node_modules/google-map-react/src/google_map_markers.js","webpack://vw-oneform-feature-app/./node_modules/google-map-react/src/google_map_markers_prerender.js","webpack://vw-oneform-feature-app/./node_modules/google-map-react/src/loaders/google_map_loader.js","webpack://vw-oneform-feature-app/./node_modules/google-map-react/src/lib/geo/wrap.js","webpack://vw-oneform-feature-app/./node_modules/google-map-react/src/lib/geo/lat_lng.js","webpack://vw-oneform-feature-app/./node_modules/google-map-react/src/lib/geo/transform.js","webpack://vw-oneform-feature-app/./node_modules/google-map-react/src/lib/geo/index.js","webpack://vw-oneform-feature-app/./node_modules/google-map-react/src/utils/raf.js","webpack://vw-oneform-feature-app/./node_modules/google-map-react/src/utils/log2.js","webpack://vw-oneform-feature-app/./node_modules/google-map-react/src/utils/pick.js","webpack://vw-oneform-feature-app/./node_modules/google-map-react/src/utils/isEmpty.js","webpack://vw-oneform-feature-app/./node_modules/google-map-react/src/utils/isNumber.js","webpack://vw-oneform-feature-app/./node_modules/google-map-react/src/utils/detect.js","webpack://vw-oneform-feature-app/./node_modules/google-map-react/src/utils/isPlainObject.js","webpack://vw-oneform-feature-app/./node_modules/google-map-react/src/utils/passiveEvents.js","webpack://vw-oneform-feature-app/./node_modules/google-map-react/src/utils/detectElementResize.js","webpack://vw-oneform-feature-app/./node_modules/google-map-react/src/google_map.js","webpack://vw-oneform-feature-app/./node_modules/google-map-react/src/google_heatmap.js","webpack://vw-oneform-feature-app/./node_modules/google-map-react/src/utils/isArraysEqualEps.js","webpack://vw-oneform-feature-app/./src/feature-app/NewMap/components/CommonStyledComponents.tsx","webpack://vw-oneform-feature-app/./src/feature-app/NewMap/components/CenterMarker.tsx","webpack://vw-oneform-feature-app/./src/feature-app/NewMap/components/ClusterMarker.tsx","webpack://vw-oneform-feature-app/./src/feature-app/NewMap/components/DealerMarker.tsx","webpack://vw-oneform-feature-app/./src/feature-app/NewMap/components/Map.tsx","webpack://vw-oneform-feature-app/./src/feature-app/NewMap/components/Carousel.tsx","webpack://vw-oneform-feature-app/./src/feature-app/NewMap/components/Filtros.tsx","webpack://vw-oneform-feature-app/./src/feature-app/NewMap/components/suggest.tsx","webpack://vw-oneform-feature-app/./src/feature-app/NewMap/components/map-styles.ts","webpack://vw-oneform-feature-app/./src/feature-app/NewMap/provinces.ts","webpack://vw-oneform-feature-app/./src/feature-app/NewMap/views/GenericStylesDesktop.tsx","webpack://vw-oneform-feature-app/./src/feature-app/NewMap/views/LayerDesktopView.tsx","webpack://vw-oneform-feature-app/./src/feature-app/NewMap/views/LayerMobileView.tsx","webpack://vw-oneform-feature-app/./src/feature-app/NewMap/views/helpers/serviceManagment.ts","webpack://vw-oneform-feature-app/./src/feature-app/NewMap/sort-points.ts","webpack://vw-oneform-feature-app/./src/feature-app/NewMap/utils.ts","webpack://vw-oneform-feature-app/./src/feature-app/OneForm.tsx","webpack://vw-oneform-feature-app/./src/feature-app/Screen/Templates.tsx","webpack://vw-oneform-feature-app/./src/feature-app/Screen/CloseComponent.tsx","webpack://vw-oneform-feature-app/./src/feature-app/Screen/FullScreen.tsx","webpack://vw-oneform-feature-app/./src/feature-app/Screen/LayerScreen.tsx","webpack://vw-oneform-feature-app/./src/feature-app/Screen/Navigation.tsx","webpack://vw-oneform-feature-app/./src/feature-app/Screen/PreviousStepFiles/getRatingStarsOutput.tsx","webpack://vw-oneform-feature-app/./src/feature-app/Screen/PreviousStepFiles/getUpdatedField.tsx","webpack://vw-oneform-feature-app/./src/feature-app/Screen/PreviousStep.tsx","webpack://vw-oneform-feature-app/./src/feature-app/Screen/RenderController.tsx","webpack://vw-oneform-feature-app/./src/feature-app/Screen/ScreenController.tsx","webpack://vw-oneform-feature-app/./src/feature-app/Screen/TemplatesFullScreen.tsx","webpack://vw-oneform-feature-app/./src/feature-app/ThankYouComponent.tsx","webpack://vw-oneform-feature-app/./node_modules/libphonenumber-js/source/parsePhoneNumber.js","webpack://vw-oneform-feature-app/./src/feature-service/es-oneform-core-feature-service/pincode-data/get-test-pincode.ts","webpack://vw-oneform-feature-app/./src/feature-service/es-oneform-core-feature-service/pincode-data/dealer.ts","webpack://vw-oneform-feature-app/./src/feature-service/es-oneform-core-feature-service/pincode-data/lead.ts","webpack://vw-oneform-feature-app/./src/feature-service/es-oneform-core-feature-service/pincode-data/order.ts","webpack://vw-oneform-feature-app/./src/feature-service/es-oneform-core-feature-service/pincode-data/person.ts","webpack://vw-oneform-feature-app/./src/feature-service/es-oneform-core-feature-service/pincode-data/vehicle.ts","webpack://vw-oneform-feature-app/./src/feature-service/es-oneform-core-feature-service/pincode-data/ndps/lead.ts","webpack://vw-oneform-feature-app/./src/feature-service/es-oneform-core-feature-service/pincode-data/ndps/person.ts","webpack://vw-oneform-feature-app/./src/feature-service/es-oneform-core-feature-service/index.ts","webpack://vw-oneform-feature-app/./node_modules/libphonenumber-js/min/exports/parsePhoneNumber.js","webpack://vw-oneform-feature-app/./src/feature-app/feature-app.tsx","webpack://vw-oneform-feature-app/./src/feature-app/get-params-form.ts","webpack://vw-oneform-feature-app/./src/feature-app/hooks/use-dropdown-position.ts","webpack://vw-oneform-feature-app/./src/feature-app/hooks/use-fa-content.ts","webpack://vw-oneform-feature-app/./src/feature-app/hooks/use-feature-app-config.ts","webpack://vw-oneform-feature-app/./src/feature-app/hooks/use-get-bounding-client-rect.ts","webpack://vw-oneform-feature-app/./src/feature-app/hooks/use-get-dealer.ts","webpack://vw-oneform-feature-app/./src/feature-app/hooks/use-get-dealers.ts","webpack://vw-oneform-feature-app/./src/feature-app/hooks/use-get-brand.ts","webpack://vw-oneform-feature-app/./src/feature-app/hooks/use-is-comerciales.ts","webpack://vw-oneform-feature-app/./src/feature-app/hooks/use-get-instalaciones.ts","webpack://vw-oneform-feature-app/./src/feature-app/hooks/use-initiate-match-triggers.ts","webpack://vw-oneform-feature-app/./src/feature-app/hooks/use-initiate-bonos-triggers.ts","webpack://vw-oneform-feature-app/./src/feature-app/hooks/use-is-dev-stage.ts","webpack://vw-oneform-feature-app/./src/feature-app/hooks/use-loaded.ts","webpack://vw-oneform-feature-app/./src/feature-app/hooks/use-locate-user.tsx","webpack://vw-oneform-feature-app/./src/feature-app/hooks/use-navigate.ts","webpack://vw-oneform-feature-app/./src/feature-app/hooks/use-on-screen.ts","webpack://vw-oneform-feature-app/./src/feature-app/hooks/use-show-overflow.ts","webpack://vw-oneform-feature-app/./src/feature-app/hooks/use-transform-to-html.ts","webpack://vw-oneform-feature-app/./src/feature-app/hooks/use-get-tracking-form.ts","webpack://vw-oneform-feature-app/./src/feature-app/hooks/use-get-id-person.ts","webpack://vw-oneform-feature-app/./src/feature-app/hooks/use-get-id-vehicle.ts","webpack://vw-oneform-feature-app/./src/feature-app/hooks/use-feature-app-environment.ts","webpack://vw-oneform-feature-app/./src/feature-app/hooks/use-feature-services.ts","webpack://vw-oneform-feature-app/./src/feature-app/hooks/use-get-auth-service.ts","webpack://vw-oneform-feature-app/./src/feature-app/hooks/use-get-waid-litera.ts","webpack://vw-oneform-feature-app/./src/feature-app/hooks/use-tracking-manager.ts","webpack://vw-oneform-feature-app/./src/feature-app/CitaPreviaTile/CitaPreviaTile.tsx","webpack://vw-oneform-feature-app/./src/feature-app/CitaPreviaTile/CitaPreviaTileGrid.tsx","webpack://vw-oneform-feature-app/./src/feature-app/FormController.tsx","webpack://vw-oneform-feature-app/./src/feature-app/format-dates.ts","webpack://vw-oneform-feature-app/./src/triggers/TestIDTrigger.tsx","webpack://vw-oneform-feature-app/./src/feature-app/get-trigger.tsx","webpack://vw-oneform-feature-app/./src/feature-app/lodash-functions.ts","webpack://vw-oneform-feature-app/./src/feature-app/set-object-values.ts","webpack://vw-oneform-feature-app/./src/feature-app/rating-evaluation.ts","webpack://vw-oneform-feature-app/./src/feature-app/redux/dealers-types.ts","webpack://vw-oneform-feature-app/./src/feature-app/redux/dealers-reducer.ts","webpack://vw-oneform-feature-app/./src/feature-app/redux/types.ts","webpack://vw-oneform-feature-app/./src/feature-app/redux/vehicles-types.ts","webpack://vw-oneform-feature-app/./src/feature-app/redux/vehicles-reducer.ts","webpack://vw-oneform-feature-app/./src/feature-app/redux/form-data-types.ts","webpack://vw-oneform-feature-app/./src/feature-app/redux/form-data-reducer.ts","webpack://vw-oneform-feature-app/./src/feature-app/redux/form-info-types.ts","webpack://vw-oneform-feature-app/./src/feature-app/redux/form-info-reducer.ts","webpack://vw-oneform-feature-app/./src/feature-app/redux/reducer.ts","webpack://vw-oneform-feature-app/./node_modules/reselect/es/defaultMemoize.js","webpack://vw-oneform-feature-app/./node_modules/reselect/es/index.js","webpack://vw-oneform-feature-app/./src/feature-app/redux/selectors.ts","webpack://vw-oneform-feature-app/./src/feature-app/save-feature-app.ts","webpack://vw-oneform-feature-app/./src/feature-app/sentry/ErrorBoundary.ts","webpack://vw-oneform-feature-app/./node_modules/@sentry/src/integrations/functiontostring.ts","webpack://vw-oneform-feature-app/./node_modules/@sentry/src/is.ts","webpack://vw-oneform-feature-app/./node_modules/@sentry/src/browser.ts","webpack://vw-oneform-feature-app/./node_modules/@sentry/src/string.ts","webpack://vw-oneform-feature-app/./node_modules/@sentry/src/object.ts","webpack://vw-oneform-feature-app/./node_modules/@sentry/src/logger.ts","webpack://vw-oneform-feature-app/./node_modules/@sentry/src/flags.ts","webpack://vw-oneform-feature-app/./node_modules/@sentry/src/misc.ts","webpack://vw-oneform-feature-app/./node_modules/@sentry/src/integrations/inboundfilters.ts","webpack://vw-oneform-feature-app/./node_modules/@sentry/src/syncpromise.ts","webpack://vw-oneform-feature-app/./node_modules/@sentry/src/scope.ts","webpack://vw-oneform-feature-app/./node_modules/@sentry/src/session.ts","webpack://vw-oneform-feature-app/./node_modules/@sentry/src/severity.ts","webpack://vw-oneform-feature-app/./node_modules/@sentry/src/hub.ts","webpack://vw-oneform-feature-app/./node_modules/@sentry/src/stacktrace.ts","webpack://vw-oneform-feature-app/./node_modules/@sentry/src/supports.ts","webpack://vw-oneform-feature-app/./node_modules/@sentry/src/instrument.ts","webpack://vw-oneform-feature-app/./node_modules/@sentry/src/normalize.ts","webpack://vw-oneform-feature-app/./node_modules/@sentry/src/memo.ts","webpack://vw-oneform-feature-app/./node_modules/src/stack-parsers.ts","webpack://vw-oneform-feature-app/./node_modules/src/eventbuilder.ts","webpack://vw-oneform-feature-app/./node_modules/src/flags.ts","webpack://vw-oneform-feature-app/./node_modules/@sentry/src/index.ts","webpack://vw-oneform-feature-app/./node_modules/@sentry/src/polyfill.ts","webpack://vw-oneform-feature-app/./node_modules/@sentry/src/error.ts","webpack://vw-oneform-feature-app/./node_modules/@sentry/src/dsn.ts","webpack://vw-oneform-feature-app/./node_modules/@sentry/src/api.ts","webpack://vw-oneform-feature-app/./node_modules/src/helpers.ts","webpack://vw-oneform-feature-app/./node_modules/src/integrations/globalhandlers.ts","webpack://vw-oneform-feature-app/./node_modules/src/integrations/trycatch.ts","webpack://vw-oneform-feature-app/./node_modules/@sentry/src/enums.ts","webpack://vw-oneform-feature-app/./node_modules/src/integrations/breadcrumbs.ts","webpack://vw-oneform-feature-app/./node_modules/src/integrations/linkederrors.ts","webpack://vw-oneform-feature-app/./node_modules/src/integrations/useragent.ts","webpack://vw-oneform-feature-app/./node_modules/src/integrations/dedupe.ts","webpack://vw-oneform-feature-app/./node_modules/src/index.ts","webpack://vw-oneform-feature-app/./node_modules/@sentry/src/version.ts","webpack://vw-oneform-feature-app/./node_modules/@sentry/src/integration.ts","webpack://vw-oneform-feature-app/./node_modules/@sentry/src/baseclient.ts","webpack://vw-oneform-feature-app/./node_modules/@sentry/src/envelope.ts","webpack://vw-oneform-feature-app/./node_modules/@sentry/src/request.ts","webpack://vw-oneform-feature-app/./node_modules/@sentry/src/transports/noop.ts","webpack://vw-oneform-feature-app/./node_modules/@sentry/src/basebackend.ts","webpack://vw-oneform-feature-app/./node_modules/@sentry/src/promisebuffer.ts","webpack://vw-oneform-feature-app/./node_modules/@sentry/src/ratelimit.ts","webpack://vw-oneform-feature-app/./node_modules/@sentry/src/status.ts","webpack://vw-oneform-feature-app/./node_modules/@sentry/src/transports/base.ts","webpack://vw-oneform-feature-app/./node_modules/src/transports/utils.ts","webpack://vw-oneform-feature-app/./node_modules/@sentry/src/async.ts","webpack://vw-oneform-feature-app/./node_modules/src/transports/base.ts","webpack://vw-oneform-feature-app/./node_modules/@sentry/src/clientreport.ts","webpack://vw-oneform-feature-app/./node_modules/src/transports/fetch.ts","webpack://vw-oneform-feature-app/./node_modules/src/transports/xhr.ts","webpack://vw-oneform-feature-app/./node_modules/src/backend.ts","webpack://vw-oneform-feature-app/./node_modules/src/transports/new-fetch.ts","webpack://vw-oneform-feature-app/./node_modules/src/transports/new-xhr.ts","webpack://vw-oneform-feature-app/./node_modules/src/client.ts","webpack://vw-oneform-feature-app/./src/feature-app/sentry/sentry.ts","webpack://vw-oneform-feature-app/./src/feature-app/tracking-helpers.ts","webpack://vw-oneform-feature-app/./src/feature-app/tracking-objects.ts","webpack://vw-oneform-feature-app/./src/forms/Autosubmit/AutosubmitController.tsx","webpack://vw-oneform-feature-app/./src/forms/BajaComunicaciones/BajaComunicacionesForm.tsx","webpack://vw-oneform-feature-app/./src/forms/BajaComunicaciones/ThankYouBaja.tsx","webpack://vw-oneform-feature-app/./src/forms/BajaComunicaciones/BajaComunicacionesFields.tsx","webpack://vw-oneform-feature-app/./src/forms/BajaComunicaciones/BajaComunicacionesController.tsx","webpack://vw-oneform-feature-app/./src/forms/CallMe/Oferta/ConfirmarCallMeLayer.tsx","webpack://vw-oneform-feature-app/./src/forms/CallMe/Oferta/ConfirmacionCallMeOferta.tsx","webpack://vw-oneform-feature-app/./src/forms/CallMe/Oferta/CallMeOfertaForm.tsx","webpack://vw-oneform-feature-app/./src/forms/CallMe/Oferta/ThankYouCallMeOferta.tsx","webpack://vw-oneform-feature-app/./src/forms/Cem/ChecksEnvio.tsx","webpack://vw-oneform-feature-app/./src/forms/Cem/ConfirmacionCem.tsx","webpack://vw-oneform-feature-app/./src/forms/Cem/helpers.ts","webpack://vw-oneform-feature-app/./src/forms/Cem/CemController.tsx","webpack://vw-oneform-feature-app/./src/forms/Cem/ThankYouCem.tsx","webpack://vw-oneform-feature-app/./src/forms/Cem/CemFormPosventa.tsx","webpack://vw-oneform-feature-app/./src/forms/Cem/ChecksPublicacion.tsx","webpack://vw-oneform-feature-app/./src/forms/Cem/FirstStepCEM.tsx","webpack://vw-oneform-feature-app/./src/forms/Cem/CemStepsVenta.tsx","webpack://vw-oneform-feature-app/./src/forms/Cem/CemStepsPosventa.tsx","webpack://vw-oneform-feature-app/./src/forms/Cem/CemFormVenta.tsx","webpack://vw-oneform-feature-app/./src/forms/Cem/LastQuestionFlowCEM.tsx","webpack://vw-oneform-feature-app/./src/forms/Cem/LegalesCEM.tsx","webpack://vw-oneform-feature-app/./src/forms/Cem/LegalesSinConsentimientosCEM.tsx","webpack://vw-oneform-feature-app/./src/forms/CitaPosventa/CitaPosventaEmbedded/CitaPosventaCalculadoraForm.tsx","webpack://vw-oneform-feature-app/./src/forms/CitaPosventa/CitaPosventaEmbedded/CitaPosventaBonosForm.tsx","webpack://vw-oneform-feature-app/./src/forms/CitaPosventa/CitaPosventaEmbedded/CitaPosventaMaintenanceForm.tsx","webpack://vw-oneform-feature-app/./src/forms/CitaPosventa/MapaCita/JourneyCitaPosventaController.tsx","webpack://vw-oneform-feature-app/./src/forms/CitaPosventa/MapaCita/JourneyCitaPosventaDealerController.tsx","webpack://vw-oneform-feature-app/./src/forms/CitaPosventa/MapaCita/JourneyCitaPosventaDealerWrapper.tsx","webpack://vw-oneform-feature-app/./src/forms/CitaPosventa/MapaCita/JourneyCitaPosventaWrapper.tsx","webpack://vw-oneform-feature-app/./src/forms/CitaPosventa/MapaCita/MapaCita.tsx","webpack://vw-oneform-feature-app/./src/forms/CitaPosventa/MapaCita/MapaCitaDealer.tsx","webpack://vw-oneform-feature-app/./src/forms/CitaPosventa/NuevaCitaPosventa/ConfirmarCitaLayer.tsx","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/icons-core/dist-es/ChevronUp/index.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/icons-core/dist-es/ChevronDown/index.js","webpack://vw-oneform-feature-app/./src/forms/CitaPosventa/NuevaCitaPosventa/ConfirmacionCita.tsx","webpack://vw-oneform-feature-app/./src/forms/CitaPosventa/NuevaCitaPosventa/LoadingLayer.tsx","webpack://vw-oneform-feature-app/./src/forms/CitaPosventa/NuevaCitaPosventa/LocateUser.tsx","webpack://vw-oneform-feature-app/./src/forms/CitaPosventa/NuevaCitaPosventa/NuevaCitaPosventaFormController.tsx","webpack://vw-oneform-feature-app/./src/forms/CitaPosventa/NuevaCitaPosventa/ThankYouNuevaCita.tsx","webpack://vw-oneform-feature-app/./src/forms/CitaPosventa/NuevaCitaPosventa/NuevaCitaPosventaFormDefault.tsx","webpack://vw-oneform-feature-app/./src/forms/CitaPosventa/NuevaCitaPosventa/NuevaCitaPosventaFormLogged.tsx","webpack://vw-oneform-feature-app/./src/forms/CitaPosventa/NuevaCitaPosventa/ReservaCita.tsx","webpack://vw-oneform-feature-app/./src/forms/CitaPosventa/NuevaCitaPosventa/SeleccionDealer.tsx","webpack://vw-oneform-feature-app/./src/forms/Empresa/ConfirmacionEmpresas.tsx","webpack://vw-oneform-feature-app/./src/forms/Empresa/EmpresaInfoComponent.tsx","webpack://vw-oneform-feature-app/./src/forms/Empresa/Fleet.tsx","webpack://vw-oneform-feature-app/./src/forms/Empresa/EmpresasForm.tsx","webpack://vw-oneform-feature-app/./src/forms/Empresa/ThankYouEmpresas.tsx","webpack://vw-oneform-feature-app/./src/forms/Empresa/MapaEmpresa/JourneyEmpresasController.tsx","webpack://vw-oneform-feature-app/./src/forms/Empresa/MapaEmpresa/JourneyEmpresasWrapper.tsx","webpack://vw-oneform-feature-app/./src/forms/Empresa/MapaEmpresa/MapaEmpresas.tsx","webpack://vw-oneform-feature-app/./src/forms/FormsAdhoc/2023PlanIdeal/PlanIdealController.tsx","webpack://vw-oneform-feature-app/./src/forms/FormsAdhoc/2023PlanIdeal/Checks.tsx","webpack://vw-oneform-feature-app/./src/forms/FormsAdhoc/2023PlanIdeal/QuestionWithImage.tsx","webpack://vw-oneform-feature-app/./src/forms/FormsAdhoc/2023PlanIdeal/PlanIdealForm.tsx","webpack://vw-oneform-feature-app/./src/forms/FormsAdhoc/2023PlanIdeal/ConfirmationPlanIdeal.tsx","webpack://vw-oneform-feature-app/./src/forms/FormsAdhoc/2023PlanIdeal/ThankYouPlanIdeal.tsx","webpack://vw-oneform-feature-app/./src/forms/FormsAdhoc/DiaDeLaMadre/componentsAndViews/CajaCTATrigger.tsx","webpack://vw-oneform-feature-app/./src/forms/FormsAdhoc/DiaDeLaMadre/componentsAndViews/ConfirmacionDiaDeLaMadre.tsx","webpack://vw-oneform-feature-app/./src/forms/FormsAdhoc/DiaDeLaMadre/componentsAndViews/DisplayImagenesYCTATrigger.tsx","webpack://vw-oneform-feature-app/./src/forms/FormsAdhoc/DiaDeLaMadre/componentsAndViews/Mensaje.tsx","webpack://vw-oneform-feature-app/./src/forms/FormsAdhoc/DiaDeLaMadre/componentsAndViews/MensajesCards.tsx","webpack://vw-oneform-feature-app/./src/forms/FormsAdhoc/DiaDeLaMadre/componentsAndViews/SectionMensajes.tsx","webpack://vw-oneform-feature-app/./src/forms/FormsAdhoc/DiaDeLaMadre/assets/Svgs.tsx","webpack://vw-oneform-feature-app/./src/forms/FormsAdhoc/DiaDeLaMadre/componentsAndViews/ThankYouDiaDeLaMadre.tsx","webpack://vw-oneform-feature-app/./src/forms/FormsAdhoc/DiaDeLaMadre/DiaDeLaMadreForm.tsx","webpack://vw-oneform-feature-app/./src/forms/FormsAdhoc/Eurocopa/ComponentsAndViews/Portada.tsx","webpack://vw-oneform-feature-app/./src/forms/FormsAdhoc/Eurocopa/ComponentsAndViews/Experiencia.tsx","webpack://vw-oneform-feature-app/./src/forms/FormsAdhoc/Eurocopa/EurocopaForm.tsx","webpack://vw-oneform-feature-app/./src/forms/FormsAdhoc/Eurocopa/ThankYouEurocopa.tsx","webpack://vw-oneform-feature-app/./src/forms/FormsAdhoc/Eurocopa/ConfirmacionEurocopa.tsx","webpack://vw-oneform-feature-app/./src/forms/FormsAdhoc/Fidelizacion/LastNavigationFidelizacion.tsx","webpack://vw-oneform-feature-app/./src/forms/FormsAdhoc/Fidelizacion/FidelizacionLastScreenFields.tsx","webpack://vw-oneform-feature-app/./src/forms/FormsAdhoc/Fidelizacion/use-initialize-fidelizacion-form.tsx","webpack://vw-oneform-feature-app/./src/forms/FormsAdhoc/Fidelizacion/FidelizacionForm.tsx","webpack://vw-oneform-feature-app/./src/forms/FormsAdhoc/Fidelizacion/FidelizacionController.tsx","webpack://vw-oneform-feature-app/./src/forms/FormsAdhoc/Fidelizacion/ThankYouFidelizacion.tsx","webpack://vw-oneform-feature-app/./src/forms/FormsAdhoc/TestID2023/TestIDController.tsx","webpack://vw-oneform-feature-app/./src/forms/FormsAdhoc/TestID2023/Checks.tsx","webpack://vw-oneform-feature-app/./src/forms/FormsAdhoc/TestID2023/QuestionWithImage.tsx","webpack://vw-oneform-feature-app/./src/forms/FormsAdhoc/TestID2023/TestIDForm.tsx","webpack://vw-oneform-feature-app/./src/forms/FormsAdhoc/TestID2023/ConfirmationTestID.tsx","webpack://vw-oneform-feature-app/./src/forms/FormsAdhoc/TestID2023/EmailForm.tsx","webpack://vw-oneform-feature-app/./src/forms/FormsAdhoc/TestID2023/questions.tsx","webpack://vw-oneform-feature-app/./src/forms/FormsAdhoc/TestID2023/ThankYouTestID.tsx","webpack://vw-oneform-feature-app/./src/forms/FormsAdhoc/ConcursoRodaje2023/ConcursoRodajeConfirmacion.tsx","webpack://vw-oneform-feature-app/./src/forms/FormsAdhoc/ConcursoRodaje2023/ConcursoRodajeController.tsx","webpack://vw-oneform-feature-app/./src/forms/FormsAdhoc/ConcursoRodaje2023/ThankYouConcursoRodaje.tsx","webpack://vw-oneform-feature-app/./src/forms/FormsAdhoc/ConcursoRodaje2023/ConcursoRodajeForm.tsx","webpack://vw-oneform-feature-app/./src/forms/LEM/use-initialize-lem-form.tsx","webpack://vw-oneform-feature-app/./src/forms/LEM/LEMContactadoForm.tsx","webpack://vw-oneform-feature-app/./src/forms/LEM/LEMNoContactadoForm.tsx","webpack://vw-oneform-feature-app/./src/forms/LEM/LEMController.tsx","webpack://vw-oneform-feature-app/./src/forms/LEM/ChecksEnvio.tsx","webpack://vw-oneform-feature-app/./src/forms/LEM/ConfirmacionLEM.tsx","webpack://vw-oneform-feature-app/./src/forms/LEM/ThankYouLEM.tsx","webpack://vw-oneform-feature-app/./src/forms/Leads/CitaVenta/CitaVentaForm.tsx","webpack://vw-oneform-feature-app/./src/forms/Leads/CitaVenta/LeadsCitaVentaPartialData.tsx","webpack://vw-oneform-feature-app/./src/forms/Leads/ConfirmacionLeads.tsx","webpack://vw-oneform-feature-app/./src/forms/Leads/ConfirmacionLeadsNoQuestions.tsx","webpack://vw-oneform-feature-app/./src/forms/Leads/LeadGenericoComercialesForm.tsx","webpack://vw-oneform-feature-app/./src/forms/Leads/LeadGenericoController.tsx","webpack://vw-oneform-feature-app/./src/forms/Leads/LeadGenericoForm.tsx","webpack://vw-oneform-feature-app/./src/forms/Leads/MapaLeads/JourneyLeadsController.tsx","webpack://vw-oneform-feature-app/./src/forms/Leads/MapaLeads/JourneyLeadsWrapper.tsx","webpack://vw-oneform-feature-app/./src/forms/Leads/MapaLeads/MapaLeads.tsx","webpack://vw-oneform-feature-app/./src/forms/Leads/MasInformacion/MasInformacionForm.tsx","webpack://vw-oneform-feature-app/./src/forms/Leads/MasInformacion/LeadsMasInformacionPartialData.tsx","webpack://vw-oneform-feature-app/./src/forms/Leads/Oferta/OfertaForm.tsx","webpack://vw-oneform-feature-app/./src/forms/Leads/Presupuesto/PresupuestoForm.tsx","webpack://vw-oneform-feature-app/./src/forms/Leads/Presupuesto/LeadsPresupuestoPartialData.tsx","webpack://vw-oneform-feature-app/./src/forms/Leads/Stock/StockForm.tsx","webpack://vw-oneform-feature-app/./src/forms/Leads/Stock/LeadsStockFormPartialData.tsx","webpack://vw-oneform-feature-app/./src/forms/Leads/TestDrive/TestDriveForm.tsx","webpack://vw-oneform-feature-app/./src/forms/Leads/TestDrive/LeadsTestDrivePartialData.tsx","webpack://vw-oneform-feature-app/./src/forms/Leads/ThankYouLeads.tsx","webpack://vw-oneform-feature-app/./src/forms/Leads/helpers/get-ofertas-data.ts","webpack://vw-oneform-feature-app/./src/forms/Leads/helpers/append-json-key.ts","webpack://vw-oneform-feature-app/./src/forms/Leads/helpers/get-calculadora-data.ts","webpack://vw-oneform-feature-app/./src/forms/Leads/helpers/get-cod-interest-carline.ts","webpack://vw-oneform-feature-app/./src/forms/Leads/helpers/get-desc-interest-carline.ts","webpack://vw-oneform-feature-app/./src/forms/Leads/helpers/get-match-data.ts","webpack://vw-oneform-feature-app/./src/forms/Leads/helpers/get-salesgroup.ts","webpack://vw-oneform-feature-app/./src/forms/Leads/helpers/formatLegalesOfertas.ts","webpack://vw-oneform-feature-app/./src/forms/Leads/use-initialize-lead-form.ts","webpack://vw-oneform-feature-app/./src/forms/LeadsInPage/Cita/PartialDataCitaConfgurador.tsx","webpack://vw-oneform-feature-app/./src/forms/LeadsInPage/ConfirmacionLeadInPage.tsx","webpack://vw-oneform-feature-app/./src/forms/LeadsInPage/ImageCar.tsx","webpack://vw-oneform-feature-app/./src/forms/LeadsInPage/LocateUserLeadsInPage.tsx","webpack://vw-oneform-feature-app/./src/forms/LeadsInPage/MapaLeadsInPage/JorneyLeadsInPageController.tsx","webpack://vw-oneform-feature-app/./src/forms/LeadsInPage/MapaLeadsInPage/JourneyLeadsInPageWrapper.tsx","webpack://vw-oneform-feature-app/./src/forms/LeadsInPage/MapaLeadsInPage/MapaLeadsInPage.tsx","webpack://vw-oneform-feature-app/./src/forms/LeadsInPage/MasInformacion/PartialDataMasInformacionConfigurador.tsx","webpack://vw-oneform-feature-app/./src/forms/LeadsInPage/Presupuesto/PresupuestoPartialDataConfigurador.tsx","webpack://vw-oneform-feature-app/./src/forms/LeadsInPage/TestDrive/PartialDataTestDriveConfigurador.tsx","webpack://vw-oneform-feature-app/./src/forms/LeadsInPage/get-color-info.tsx","webpack://vw-oneform-feature-app/./src/forms/MGM/MGMLayout.tsx","webpack://vw-oneform-feature-app/./src/forms/MGM/BonoClienteFields.tsx","webpack://vw-oneform-feature-app/./src/forms/MGM/LegalMGM.tsx","webpack://vw-oneform-feature-app/./src/forms/MGM/BonoClienteForm.tsx","webpack://vw-oneform-feature-app/./src/forms/MGM/BonoRegaloFields.tsx","webpack://vw-oneform-feature-app/./src/forms/MGM/BonoRegaloForm.tsx","webpack://vw-oneform-feature-app/./src/forms/MGM/EnvioRegaloFields.tsx","webpack://vw-oneform-feature-app/./src/forms/MGM/EnvioRegaloForm.tsx","webpack://vw-oneform-feature-app/./src/forms/MGM/MGMController.tsx","webpack://vw-oneform-feature-app/./src/forms/MGM/ThankYouMGM.tsx","webpack://vw-oneform-feature-app/./src/forms/Newsletter/ConfirmacionNewsletter.tsx","webpack://vw-oneform-feature-app/./src/forms/Newsletter/NewsletterForm.tsx","webpack://vw-oneform-feature-app/./src/forms/Newsletter/ThankYouNewsletter.tsx","webpack://vw-oneform-feature-app/./src/forms/NoCompra/use-initialize-no-compra-form.tsx","webpack://vw-oneform-feature-app/./src/forms/NoCompra/NoCompraController.tsx","webpack://vw-oneform-feature-app/./src/forms/NoCompra/NoCompraYaTengo.tsx","webpack://vw-oneform-feature-app/./src/forms/NoCompra/ConfirmacionNoCompra.tsx","webpack://vw-oneform-feature-app/./src/forms/NoCompra/ThankYouNoCompra.tsx","webpack://vw-oneform-feature-app/./src/forms/NoCompra/MapaNoCompra/JourneyNoCompraController.tsx","webpack://vw-oneform-feature-app/./src/forms/NoCompra/MapaNoCompra/JourneyNoCompraWrapper.tsx","webpack://vw-oneform-feature-app/./src/forms/NoCompra/MapaNoCompra/MapaNoCompra.tsx","webpack://vw-oneform-feature-app/./src/forms/NoCompra/NoCompraNoTengo.tsx","webpack://vw-oneform-feature-app/./src/forms/NoCompra/PantallaOtrosModelos.tsx","webpack://vw-oneform-feature-app/./src/forms/NoCompra/NoCompraNoQuiero.tsx","webpack://vw-oneform-feature-app/./src/forms/NoCompra/FormData.tsx","webpack://vw-oneform-feature-app/./src/forms/NoCompra/RatingSteps.tsx","webpack://vw-oneform-feature-app/./src/forms/NoRenovacion/use-initialize-no-renovacion-form.tsx","webpack://vw-oneform-feature-app/./src/forms/NoRenovacion/NoRenovacionController.tsx","webpack://vw-oneform-feature-app/./src/forms/NoRenovacion/FormData.tsx","webpack://vw-oneform-feature-app/./src/forms/NoRenovacion/NoRenovacionYaTengo.tsx","webpack://vw-oneform-feature-app/./src/forms/NoRenovacion/ConfirmacionNoRenovacion.tsx","webpack://vw-oneform-feature-app/./src/forms/NoRenovacion/ThankYouNoRenovacion.tsx","webpack://vw-oneform-feature-app/./src/forms/NoRenovacion/MapaNoRenovacion/JourneyNoRenovacionController.tsx","webpack://vw-oneform-feature-app/./src/forms/NoRenovacion/MapaNoRenovacion/JourneyNoRenovacionWrapper.tsx","webpack://vw-oneform-feature-app/./src/forms/NoRenovacion/MapaNoRenovacion/MapaNoRenovacion.tsx","webpack://vw-oneform-feature-app/./src/forms/NoRenovacion/NoRenovacionNoTengo.tsx","webpack://vw-oneform-feature-app/./src/forms/NoRenovacion/NoRenovacionNoQuiero.tsx","webpack://vw-oneform-feature-app/./src/forms/NoRenovacion/PantallaMarcaModelo.tsx","webpack://vw-oneform-feature-app/./src/forms/NoRenovacion/FakeTriggerCTA.tsx","webpack://vw-oneform-feature-app/./src/forms/Prospects/ConfirmacionProspects.tsx","webpack://vw-oneform-feature-app/./src/forms/Prospects/ProspectsVentaForm.tsx","webpack://vw-oneform-feature-app/./src/forms/Prospects/MatchProspectForm.tsx","webpack://vw-oneform-feature-app/./src/forms/Prospects/ProspectsPosventa.tsx","webpack://vw-oneform-feature-app/./src/forms/Prospects/ThankYouProspects.tsx","webpack://vw-oneform-feature-app/./src/forms/Race/RaceForm.tsx","webpack://vw-oneform-feature-app/./src/forms/Race/use-race-form-controller.ts","webpack://vw-oneform-feature-app/./src/forms/SAC/FormData.tsx","webpack://vw-oneform-feature-app/./src/forms/SAC/SACOneShop/SACOneShopForm.tsx","webpack://vw-oneform-feature-app/./src/forms/SAC/SACOneShop/ThankYouOneShop.tsx","webpack://vw-oneform-feature-app/./src/forms/SAC/SACOneShop/SACOneShopFields.tsx","webpack://vw-oneform-feature-app/./src/components/HeaderImage.tsx","webpack://vw-oneform-feature-app/./src/forms/SAC/SACOneShop/SACOneShopController.tsx","webpack://vw-oneform-feature-app/./src/forms/SAC/SACform.tsx","webpack://vw-oneform-feature-app/./src/forms/SAC/PantallaMotivoSAC.tsx","webpack://vw-oneform-feature-app/./src/forms/SAC/PantallaDireccionPostal.tsx","webpack://vw-oneform-feature-app/./src/forms/SAC/PantallaMunicipio.tsx","webpack://vw-oneform-feature-app/./src/forms/SAC/ConfirmacionSAC.tsx","webpack://vw-oneform-feature-app/./src/forms/SAC/ThankYouSAC.tsx","webpack://vw-oneform-feature-app/./src/forms/dps-utils.ts","webpack://vw-oneform-feature-app/./src/forms/format-fields.ts","webpack://vw-oneform-feature-app/./src/forms/helpers/add-remove-steps.ts","webpack://vw-oneform-feature-app/./src/forms/helpers/transform-millage.ts","webpack://vw-oneform-feature-app/./src/globals.ts","webpack://vw-oneform-feature-app/./src/helpers.ts","webpack://vw-oneform-feature-app/./src/triggers/adhoc/DiaDeLaMadreTrigger.tsx","webpack://vw-oneform-feature-app/./src/triggers/adhoc/EurocopaTrigger.tsx","webpack://vw-oneform-feature-app/./src/triggers/adhoc/FidelizacionTrigger.tsx","webpack://vw-oneform-feature-app/./src/forms/FormsAdhoc/NavidadForm/ConfirmacionNavidad.tsx","webpack://vw-oneform-feature-app/./src/forms/FormsAdhoc/NavidadForm/ComponentsAndViews/FriendsName.tsx","webpack://vw-oneform-feature-app/./src/forms/FormsAdhoc/NavidadForm/ThankYouNavidad.tsx","webpack://vw-oneform-feature-app/./src/forms/FormsAdhoc/NavidadForm/NavidadForm.tsx","webpack://vw-oneform-feature-app/./src/forms/FormsAdhoc/NavidadForm/assets/Svgs.tsx","webpack://vw-oneform-feature-app/./src/triggers/adhoc/NavidadTrigger.tsx","webpack://vw-oneform-feature-app/./src/triggers/adhoc/Suvperheroes/AcordionHorizontal.tsx","webpack://vw-oneform-feature-app/./src/triggers/adhoc/Suvperheroes/CTAOfertaSuv.tsx","webpack://vw-oneform-feature-app/./src/triggers/adhoc/Suvperheroes/MobileCard.tsx","webpack://vw-oneform-feature-app/./src/triggers/adhoc/Suvperheroes/LiSection.tsx","webpack://vw-oneform-feature-app/./src/triggers/adhoc/Suvperheroes/Tabs.tsx","webpack://vw-oneform-feature-app/./src/triggers/adhoc/Suvperheroes/ProgressBar.tsx","webpack://vw-oneform-feature-app/./src/triggers/adhoc/Suvperheroes/TabsNavigation.tsx","webpack://vw-oneform-feature-app/./src/triggers/adhoc/SuvperheroesTrigger.tsx","webpack://vw-oneform-feature-app/./src/triggers/adhoc/ConcursoRodajeTrigger.tsx","webpack://vw-oneform-feature-app/./src/triggers/adhoc/PlanIdealTrigger.tsx","webpack://vw-oneform-feature-app/./src/triggers/AutosubmitTrigger.tsx","webpack://vw-oneform-feature-app/./src/triggers/BajaComunicacionesTrigger.tsx","webpack://vw-oneform-feature-app/./src/triggers/CallMeOfertasTrigger.tsx","webpack://vw-oneform-feature-app/./src/triggers/CallMeEmbeddedTrigger.tsx","webpack://vw-oneform-feature-app/./src/triggers/CitaPosventaDealerTrigger.tsx","webpack://vw-oneform-feature-app/./src/triggers/RaceTrigger.tsx","webpack://vw-oneform-feature-app/./src/triggers/CitaPosventaDefaultTrigger.tsx","webpack://vw-oneform-feature-app/./src/triggers/CitaPosventaEmbeddedTrigger.tsx","webpack://vw-oneform-feature-app/./src/triggers/CitaPosventaStageTrigger.tsx","webpack://vw-oneform-feature-app/./src/triggers/CitaPosventaTrigger.tsx","webpack://vw-oneform-feature-app/./src/triggers/EmpresasTrigger.tsx","webpack://vw-oneform-feature-app/./src/forms/Cem/CEM OneShop/LastNavigationCEMOneShop.tsx","webpack://vw-oneform-feature-app/./src/forms/Cem/CEM OneShop/CEMOneShopForm.tsx","webpack://vw-oneform-feature-app/./src/forms/Cem/CEM OneShop/use-initialize-lem-form.tsx","webpack://vw-oneform-feature-app/./src/forms/Cem/CEM OneShop/CEMOneShopController.tsx","webpack://vw-oneform-feature-app/./src/forms/Cem/CEM OneShop/CEMOneShopLastScreenFields.tsx","webpack://vw-oneform-feature-app/./src/forms/Cem/CEM OneShop/ConfirmacionCEMOneShop.tsx","webpack://vw-oneform-feature-app/./src/forms/Cem/CEM OneShop/ThankYouCEMOneShop.tsx","webpack://vw-oneform-feature-app/./src/forms/Cem/CEMVentaProducto/FirstStepCEMVentaProducto.tsx","webpack://vw-oneform-feature-app/./src/forms/Cem/CEMVentaProducto/StepsCEMVentaProducto.tsx","webpack://vw-oneform-feature-app/./src/forms/Cem/CEMVentaProducto/ThankYouCEMVentaProducto.tsx","webpack://vw-oneform-feature-app/./src/forms/Cem/CEMVentaProducto/CEMVentaProductoForm.tsx","webpack://vw-oneform-feature-app/./src/forms/Cem/CEMVentaProducto/CEMVentaProductoController.tsx","webpack://vw-oneform-feature-app/./src/forms/Cem/CEMSegundaEntrega/CEMSegundaEntregaController.tsx","webpack://vw-oneform-feature-app/./src/forms/Cem/CEMSegundaEntrega/CEMSegundaEntregaForm.tsx","webpack://vw-oneform-feature-app/./src/forms/Cem/CEMSegundaEntrega/DealerCEMSegundaEntrega.tsx","webpack://vw-oneform-feature-app/./src/forms/Cem/CEMSegundaEntrega/Calendario/CalendarioCEMStyles.tsx","webpack://vw-oneform-feature-app/./src/forms/Cem/CEMSegundaEntrega/Calendario/CalendarioCEM.tsx","webpack://vw-oneform-feature-app/./src/forms/Cem/CEMSegundaEntrega/CitaCEMSegundaEntrega.tsx","webpack://vw-oneform-feature-app/./src/forms/Cem/CEMSegundaEntrega/FormData.tsx","webpack://vw-oneform-feature-app/./src/forms/Cem/CEMSegundaEntrega/NoMeInteresaCEMSegundaEntrega.tsx","webpack://vw-oneform-feature-app/./src/forms/Cem/CEMSegundaEntrega/ConfirmacionCEMSegundaEntrega.tsx","webpack://vw-oneform-feature-app/./src/forms/Cem/CEMSegundaEntrega/ThankYouCEMSegundaEntrega.tsx","webpack://vw-oneform-feature-app/./src/forms/Cem/CEMSegundaEntrega/valoracion/CEMSegundaEntregaValoracionController.tsx","webpack://vw-oneform-feature-app/./src/forms/Cem/CEMSegundaEntrega/valoracion/CEMSegundaEntregaValoracionForm.tsx","webpack://vw-oneform-feature-app/./src/forms/Cem/CEMSegundaEntrega/valoracion/ThankYouCEMSegundaEntregaValoracion.tsx","webpack://vw-oneform-feature-app/./src/triggers/EncuestasTrigger.tsx","webpack://vw-oneform-feature-app/./src/triggers/LeadBonoTrigger.tsx","webpack://vw-oneform-feature-app/./src/triggers/LeadDealerTrigger.tsx","webpack://vw-oneform-feature-app/./src/feature-app/hooks/use-get-instalacion.ts","webpack://vw-oneform-feature-app/./src/triggers/LeadMatchTrigger.tsx","webpack://vw-oneform-feature-app/./src/triggers/LeadOfertasTrigger.tsx","webpack://vw-oneform-feature-app/./src/triggers/LeadStockTrigger.tsx","webpack://vw-oneform-feature-app/./src/triggers/LeadEmbededTrigger.tsx","webpack://vw-oneform-feature-app/./src/triggers/LeadInPageTrigger.tsx","webpack://vw-oneform-feature-app/./src/triggers/LeadTrigger.tsx","webpack://vw-oneform-feature-app/./src/triggers/MGMTrigger.tsx","webpack://vw-oneform-feature-app/./src/triggers/NewsletterTrigger.tsx","webpack://vw-oneform-feature-app/./src/triggers/OneFormTrigger.tsx","webpack://vw-oneform-feature-app/./src/triggers/ProspectEmbeddedTrigger.tsx","webpack://vw-oneform-feature-app/./src/triggers/ProspectPosventaEmbedded.tsx","webpack://vw-oneform-feature-app/./src/triggers/ProspectsTrigger.tsx","webpack://vw-oneform-feature-app/./src/triggers/SACTrigger.tsx","webpack://vw-oneform-feature-app/./src/widgets/Mapa/CTAMapa.tsx","webpack://vw-oneform-feature-app/./src/widgets/Mapa/CTAServices.tsx","webpack://vw-oneform-feature-app/./src/widgets/Mapa/CarouselWidget.tsx","webpack://vw-oneform-feature-app/./src/widgets/Mapa/DealerCardWidget.tsx","webpack://vw-oneform-feature-app/./src/widgets/Mapa/MapaScreen.tsx","webpack://vw-oneform-feature-app/./src/widgets/Mapa/SuggestionScreen.tsx","webpack://vw-oneform-feature-app/./src/widgets/Mapa/ViewDesktopWidgetMapa.tsx","webpack://vw-oneform-feature-app/./src/widgets/Mapa/ViewMobileWidgetMapa.tsx","webpack://vw-oneform-feature-app/./src/widgets/Mapa/WidgetMapa.tsx","webpack://vw-oneform-feature-app/./src/triggers/WidgetTrigger.tsx","webpack://vw-oneform-feature-app/./src/types.ts","webpack://vw-oneform-feature-app/./node_modules/@googlemaps/js-api-loader/node_modules/tslib/tslib.es6.js","webpack://vw-oneform-feature-app/./node_modules/@googlemaps/js-api-loader/node_modules/fast-deep-equal/index.js","webpack://vw-oneform-feature-app/./node_modules/@googlemaps/js-api-loader/src/index.ts","webpack://vw-oneform-feature-app/./node_modules/@mapbox/point-geometry/index.js","webpack://vw-oneform-feature-app/./node_modules/@n8tb1t/use-scroll-position/lib/index.js","webpack://vw-oneform-feature-app/./node_modules/@n8tb1t/use-scroll-position/lib/useIsomorphicLayoutEffect.js","webpack://vw-oneform-feature-app/./node_modules/@n8tb1t/use-scroll-position/lib/useScrollPosition.js","webpack://vw-oneform-feature-app/./node_modules/@react-hook/latest/dist/module/index.js","webpack://vw-oneform-feature-app/./node_modules/@react-hook/throttle/dist/module/index.js","webpack://vw-oneform-feature-app/./node_modules/@react-hook/debounce/dist/module/index.js","webpack://vw-oneform-feature-app/./node_modules/@react-hook/event/dist/module/index.js","webpack://vw-oneform-feature-app/./node_modules/@react-hook/window-size/dist/module/index.js","webpack://vw-oneform-feature-app/./node_modules/@sentry/src/global.ts","webpack://vw-oneform-feature-app/./node_modules/@sentry/src/node.ts","webpack://vw-oneform-feature-app/./node_modules/@sentry/src/env.ts","webpack://vw-oneform-feature-app/./node_modules/@sentry/src/time.ts","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/dist-es/breakpoint-wrapper/index.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/dist-es/call-to-action/index.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/dist-es/character-counter/index.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/node_modules/@volkswagen-onehub/icons-core/dist-es/CheckboxBorder/index.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/dist-es/checkbox/index.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/dist-es/container/helpers.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/dist-es/container/container.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/dist-es/container/definitions.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/node_modules/@volkswagen-onehub/icons-core/dist-es/StarOutline/index.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/node_modules/@volkswagen-onehub/icons-core/dist-es/Offers/index.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/node_modules/@volkswagen-onehub/icons-core/dist-es/Bookmark/index.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/node_modules/@volkswagen-onehub/icons-core/dist-es/AirConditioning/index.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/dist-es/display-tag/index.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/dist-es/divider/index.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/dist-es/fieldset/index.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/dist-es/helpers/a11y.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/dist-es/helpers/animation.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/dist-es/helpers/breakpoint.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/dist-es/helpers/common-props.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/dist-es/helpers/grid.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/dist-es/helpers/input.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/dist-es/helpers/logger.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/dist-es/image/index.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/dist-es/accordion/index.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/dist-es/alert-layer/index.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/dist-es/aspect-ratio-container/index.js","webpack://vw-oneform-feature-app/./node_modules/react-transition-group/esm/utils/ChildMapping.js","webpack://vw-oneform-feature-app/./node_modules/react-transition-group/esm/TransitionGroup.js","webpack://vw-oneform-feature-app/./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/dist-es/next-best-action-button/index.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/node_modules/@volkswagen-onehub/icons-core/dist-es/ArrowLeft/index.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/node_modules/@volkswagen-onehub/icons-core/dist-es/ArrowRight/index.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/dist-es/button-next/index.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/dist-es/button-previous/index.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/dist-es/card/card-header/card-header-chevron.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/dist-es/card/card-header/card-header-checkbox.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/dist-es/card/card-header/card-title.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/dist-es/card/card-header/index.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/dist-es/card/card.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/dist-es/card/card-footer.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/dist-es/card/card-section.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/dist-es/content-layer-v2/content-layer-v2-content.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/dist-es/content-layer-v2/index.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/dist-es/language/index.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/dist-es/demo/demo-integrator-root/index.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/dist-es/demo/demo-placeholder-text/index.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/dist-es/deprecated/index.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/dist-es/disclaimer-layer/index.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/dist-es/disclaimers/index.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/node_modules/@volkswagen-onehub/icons-core/dist-es/ExternalLink/index.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/dist-es/external-link-indicator/index.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/dist-es/fade/index.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/dist-es/figure/index.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/node_modules/@volkswagen-onehub/icons-core/dist-es/Add/index.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/dist-es/filter-tag/icon.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/dist-es/filter-tag/index.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/dist-es/fixed-width-container/index.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/dist-es/focus-layer/index.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/dist-es/fullscreen-layer/index.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/dist-es/gallery/tabindex-manager.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/dist-es/gallery/slide.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/dist-es/gallery/gallery.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/dist-es/gallery/arrow-buttons.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/dist-es/gallery/navigation-bullets.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/dist-es/gallery/navigation-scrollbar.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/dist-es/external-icon/index.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/dist-es/helpers/color.js","webpack://vw-oneform-feature-app/./node_modules/focus-lock/dist/es2015/constants.js","webpack://vw-oneform-feature-app/./node_modules/use-callback-ref/dist/es2015/useMergeRef.js","webpack://vw-oneform-feature-app/./node_modules/use-callback-ref/dist/es2015/useRef.js","webpack://vw-oneform-feature-app/./node_modules/use-callback-ref/dist/es2015/assignRef.js","webpack://vw-oneform-feature-app/./node_modules/react-focus-lock/dist/es2015/FocusGuard.js","webpack://vw-oneform-feature-app/./node_modules/use-sidecar/node_modules/tslib/tslib.es6.mjs","webpack://vw-oneform-feature-app/./node_modules/use-sidecar/dist/es2015/medium.js","webpack://vw-oneform-feature-app/./node_modules/react-focus-lock/dist/es2015/medium.js","webpack://vw-oneform-feature-app/./node_modules/react-focus-lock/dist/es2015/Lock.js","webpack://vw-oneform-feature-app/./node_modules/@babel/runtime/helpers/esm/typeof.js","webpack://vw-oneform-feature-app/./node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","webpack://vw-oneform-feature-app/./node_modules/@babel/runtime/helpers/esm/toPrimitive.js","webpack://vw-oneform-feature-app/./node_modules/react-clientside-effect/lib/index.es.js","webpack://vw-oneform-feature-app/./node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack://vw-oneform-feature-app/./node_modules/focus-lock/dist/es2015/utils/array.js","webpack://vw-oneform-feature-app/./node_modules/focus-lock/dist/es2015/utils/is.js","webpack://vw-oneform-feature-app/./node_modules/focus-lock/dist/es2015/utils/tabOrder.js","webpack://vw-oneform-feature-app/./node_modules/focus-lock/dist/es2015/utils/tabUtils.js","webpack://vw-oneform-feature-app/./node_modules/focus-lock/dist/es2015/utils/tabbables.js","webpack://vw-oneform-feature-app/./node_modules/focus-lock/dist/es2015/utils/DOMutils.js","webpack://vw-oneform-feature-app/./node_modules/focus-lock/dist/es2015/utils/getActiveElement.js","webpack://vw-oneform-feature-app/./node_modules/focus-lock/dist/es2015/utils/safe.js","webpack://vw-oneform-feature-app/./node_modules/focus-lock/dist/es2015/utils/all-affected.js","webpack://vw-oneform-feature-app/./node_modules/focus-lock/dist/es2015/focusInside.js","webpack://vw-oneform-feature-app/./node_modules/focus-lock/dist/es2015/utils/correctFocus.js","webpack://vw-oneform-feature-app/./node_modules/focus-lock/dist/es2015/utils/firstFocus.js","webpack://vw-oneform-feature-app/./node_modules/focus-lock/dist/es2015/solver.js","webpack://vw-oneform-feature-app/./node_modules/focus-lock/dist/es2015/utils/auto-focus.js","webpack://vw-oneform-feature-app/./node_modules/focus-lock/dist/es2015/utils/parenting.js","webpack://vw-oneform-feature-app/./node_modules/focus-lock/dist/es2015/focusSolver.js","webpack://vw-oneform-feature-app/./node_modules/focus-lock/dist/es2015/moveFocusInside.js","webpack://vw-oneform-feature-app/./node_modules/focus-lock/dist/es2015/commands.js","webpack://vw-oneform-feature-app/./node_modules/react-focus-lock/dist/es2015/util.js","webpack://vw-oneform-feature-app/./node_modules/react-focus-lock/dist/es2015/Trap.js","webpack://vw-oneform-feature-app/./node_modules/focus-lock/dist/es2015/focusIsHidden.js","webpack://vw-oneform-feature-app/./node_modules/focus-lock/dist/es2015/focusables.js","webpack://vw-oneform-feature-app/./node_modules/react-focus-lock/dist/es2015/Combination.js","webpack://vw-oneform-feature-app/./node_modules/react-focus-lock/dist/es2015/index.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/dist-es/hoc/with-focus-lock.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/dist-es/infobox/index.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/dist-es/application-root/index.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/dist-es/interaction-layer/index.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/dist-es/layer-wrapper/index.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/dist-es/legal-frame/index.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/dist-es/list/list.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/dist-es/list/list-item.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/dist-es/map-topography/styles.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/dist-es/media-gallery/helpers/drag.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/dist-es/media-gallery/hooks/use-gallery-id.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/dist-es/media-gallery/hooks/use-media-gallery-context.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/dist-es/media-gallery/hooks/use-gallery-controls.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/dist-es/media-gallery/carousel.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/dist-es/media-gallery/slide.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/dist-es/media-gallery/helpers/lentils.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/dist-es/media-gallery/lentils.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/dist-es/media-gallery/hooks/use-enhanced-reducer.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/dist-es/media-gallery/hooks/use-media-gallery-reducer.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/dist-es/media-gallery/media-gallery-context-provider.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/dist-es/media-gallery/cluster-buttons.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/node_modules/@volkswagen-onehub/icons-core/dist-es/ExitFullscreen/index.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/node_modules/@volkswagen-onehub/icons-core/dist-es/EnterFullscreen/index.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/dist-es/media-gallery/media-gallery-fullscreen-button.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/dist-es/media-gallery/arrow-buttons.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/node_modules/@volkswagen-onehub/icons-core/dist-es/Logo/index.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/dist-es/moving-frame/index.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/dist-es/multi-select/index.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/dist-es/navigation-level-list/index.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/dist-es/notification-bar/index.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/dist-es/progress/index.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/dist-es/reference-badge/index.js","webpack://vw-oneform-feature-app/./node_modules/markdown-to-jsx/index.tsx","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/dist-es/richtext/index.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/dist-es/shim-layer/index.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/dist-es/skip-link/index.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/dist-es/helpers/hooks/use-ref-state.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/dist-es/helpers/hooks/use-window-event-listener.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/dist-es/slider/thumb.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/dist-es/slider/thumb-interaction.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/dist-es/slider/thumbs.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/dist-es/slider/marks.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/dist-es/slider/rail.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/dist-es/slider/index.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/dist-es/helpers/hooks/use-element-ref-before-first-paint.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/dist-es/table/navigation.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/dist-es/table/table.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/dist-es/table/table-body.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/dist-es/table/table-cell.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/dist-es/table/table-row.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/dist-es/table/table-foot.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/dist-es/table/table-head.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/dist-es/table/table-header.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/dist-es/teaser/index.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/dist-es/toast-notification/index.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/node_modules/@volkswagen-onehub/icons-core/dist-es/InfoWithoutCircle/index.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/dist-es/toggle/index.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/dist-es/tooltip/index.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/dist-es/top-bar/index.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/dist-es/picture/index.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/dist-es/video/media-context.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/dist-es/video/video.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/dist-es/video/controls/control-container.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/dist-es/video/controls/timeline.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/node_modules/@volkswagen-onehub/icons-core/dist-es/Pause/index.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/node_modules/@volkswagen-onehub/icons-core/dist-es/Play/index.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/dist-es/video/controls/play-button.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/dist-es/video/controls/play-button-center.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/dist-es/video/controls/time-display.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/dist-es/video/controls/fullscreen-button.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/node_modules/@volkswagen-onehub/icons-core/dist-es/VolumeMute/index.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/node_modules/@volkswagen-onehub/icons-core/dist-es/VolumeMaximum/index.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/node_modules/@volkswagen-onehub/icons-core/dist-es/VolumeMedium/index.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/dist-es/video/controls/volume-slider.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/dist-es/index.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/dist-es/integrator-root/index.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/dist-es/layout/layout.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/dist-es/notification-message/index.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/node_modules/@volkswagen-onehub/icons-core/dist-es/RadioButtonInner/index.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/node_modules/@volkswagen-onehub/icons-core/dist-es/RadioButtonBorder/index.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/dist-es/radio-button/index.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/dist-es/select/index.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/dist-es/spinner/index.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/dist-es/switch/index.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/dist-es/tabs/tab.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/dist-es/tabs/index.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/dist-es/tabs/use-animated-indicator.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/dist-es/tabs/use-previous-next-button-disabled-state.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/dist-es/text-area/index.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/node_modules/@volkswagen-onehub/icons-core/dist-es/InputShow/index.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/node_modules/@volkswagen-onehub/icons-core/dist-es/InputHide/index.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/dist-es/text-input/index.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/dist-es/text/index.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/dist-es/theme-provider/create-css-var-name.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/dist-es/theme-provider/definitions.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/dist-es/theme-provider/example-design-tokens.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/dist-es/helpers/get.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/dist-es/theme-provider/get-design-token-value.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/dist-es/theme-provider/dynamic-tokens.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/dist-es/theme-provider/get-media-query-vars.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/dist-es/theme-provider/index.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/dist-es/theme-provider/deprecations.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/dist-es/theme-provider/example-theme-definitions.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/dist-es/theme-provider/get-theme.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/dist-es/theme-provider/theme-provider.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/node_modules/@volkswagen-onehub/icons-core/dist-es/Alert/index.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/node_modules/@volkswagen-onehub/icons-core/dist-es/CheckboxCheckmark/index.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/node_modules/@volkswagen-onehub/icons-core/dist-es/Checkmark/index.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/node_modules/@volkswagen-onehub/icons-core/dist-es/ChevronDown/index.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/node_modules/@volkswagen-onehub/icons-core/dist-es/ChevronLeft/index.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/node_modules/@volkswagen-onehub/icons-core/dist-es/ChevronRight/index.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/node_modules/@volkswagen-onehub/icons-core/dist-es/Close/index.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/icons-core/dist-es/Close/index.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/icons-core/dist-es/Info/index.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/icons-core/dist/Add/index.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/icons-core/dist/Alert/index.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/icons-core/dist/ArrowDown/index.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/icons-core/dist/ArrowLeft/index.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/icons-core/dist/ArrowRight/index.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/icons-core/dist/ArrowUp/index.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/icons-core/dist/Calc/index.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/icons-core/dist/Calendar/index.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/icons-core/dist/CarPickupService/index.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/icons-core/dist/Checkmark/index.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/icons-core/dist/ChevronLeft/index.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/icons-core/dist/ChevronRight/index.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/icons-core/dist/Close/index.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/icons-core/dist/ContactDealer/index.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/icons-core/dist/Edit/index.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/icons-core/dist/FleetServicePrivate/index.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/icons-core/dist/Info/index.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/icons-core/dist/Interior/index.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/icons-core/dist/Locate/index.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/icons-core/dist/Magnifier/index.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/icons-core/dist/Mail/index.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/icons-core/dist/Phone/index.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/icons-core/dist/Reload/index.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/icons-core/dist/Remove/index.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/icons-core/dist/Route/index.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/icons-core/dist/StarFilled/index.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/icons-core/dist/StarOutline/index.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/layer-manager/src/v2/types.ts","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/myvw-shared-components/dist/dashboard/dashboardTile/index.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/myvw-shared-components/dist/dashboard/tileGridContainer/index.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/myvw-shared-components/dist/dashboard/tileGridLayout/index.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/tokens/dist-es/index.js","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/TTDSGConsent/TTDSGConsentClient.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/TTDSGConsent/TTDSGConsentService.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/TTDSGConsent/index.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/carNetShop/CarNetShopClient.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/carNetShop/CarNetShopService.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/carNetShop/index.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/consent/ConsentClient.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/consent/ConsentConfigurationBuilder.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/consent/ConsentService.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/contractCenter/ContractCenterService.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/contractCenter/types.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/documentConsent/DocumentConsentClient.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/documentConsent/DocumentConsentService.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/enums/DecisionType.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/enums/DevicePlatform.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/enums/EnrollmentStatus.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/enums/ModGeneration.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/enums/Role.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/enums/SoftwareVersion.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/enums/index.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/errors/TimeoutError.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/errors/UnknownSimStatusError.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/errors/VcfUpdateCapabilityError.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/gupis/fetch.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/gupis/index.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/gvf/GvfClient.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/gvf/GvfService.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/gvf/SpecificationFilter.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/gvf/VehicleCommissionDataHelper.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/gvf/errors/GvfNetworkError.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/gvf/errors/UnknownVehicleError.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/gvf/errors/UserNotAuthorizedError.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/gvf/index.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/idk/IdentityDataClient.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/idk/LoginRenewalService.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/idk/index.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/idk/userData/UserDataClient.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/idk/userData/UserDataService.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/idk/userData/helper-functions.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/index.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/mapPackages/MapPackagesService.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/oilNorm/OilNormService.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/permissionService/PermissionService.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/profileService/ProfileServiceV2.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/profileService/WeProfileFacade.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/serviceConfig/ServiceConfigHelper.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/spin/SpinNotificationType.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/spin/SpinService.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/spin/TwoFactorManagementClient.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/spin/errors/InvalidSpinError.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/spin/errors/MissingScopeSpinError.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/spin/index.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/trackingFacade/TrackingFacade.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/user/UserClient.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/user/UserService.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/user/index.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/validation/VehicleIdentifierValidator.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/vas/VasClient.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/vcf/VcfMessageService.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/vcf/VcfSubscriptionsSettingsClient.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/vcf/VcfSubscriptionsSettingsService.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/vcf/VcfTransactionHistoryClient.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/vcf/capabilities/CapabilityUpdateStatusEvaluator.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/vcf/capabilities/PollingWrapper.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/vcf/capabilities/VcfCapabilityClient.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/vcf/capabilities/VcfCapabilityService.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/vcf/digitalKeys/VcfDigitalKeyClient.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/vcf/digitalKeys/VcfDigitalKeyService.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/vcf/errors/NoMessagesFoundError.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/vcf/errors/NoReportAvailableError.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/vcf/errors/NoSubscriptionSettingsFoundError.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/vcf/errors/VcfMeasurementsError.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/vcf/fuelStatus/VcfFuelStatusClient.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/vcf/fuelStatus/VcfFuelStatusService.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/vcf/index.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/vcf/measurements/VcfMeasurementsClient.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/vcf/measurements/VcfMeasurementsService.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/vcf/newsfeeds/VcfNewsFeedsClient.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/vcf/newsfeeds/fetch.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/vcf/notifications/VcfNotificationClient.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/vcf/notifications/VcfNotificationService.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/vcf/notifications/index.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/vcf/notifications/types.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/vcf/vehicleHealth/VcfHealthClient.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/vcf/vehicleHealth/VcfHealthService.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/vcf/vehicleHealth/VcfHealthSettingsConverter.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/vdbs/VdbsClient.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/vdbs/VdbsService.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/vehicleImage/VehicleImageClient.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/vehicleImage/VehicleImageService.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/vehicleImage/VehicleImageUrlBuilder.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/vum/CommissionIdConverter.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/vum/VumClient.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/vum/VumFlattenedVehicleConverter.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/vum/VumService.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/vum/VumUserRoleClient.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/vum/VumUserRoleService.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/vum/errors/NotEnrolledVehicleError.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/vum/errors/VumProfileBrokenError.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/node_modules/uuid/dist/commonjs-browser/index.js","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/node_modules/uuid/dist/commonjs-browser/md5.js","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/node_modules/uuid/dist/commonjs-browser/native.js","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/node_modules/uuid/dist/commonjs-browser/nil.js","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/node_modules/uuid/dist/commonjs-browser/parse.js","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/node_modules/uuid/dist/commonjs-browser/regex.js","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/node_modules/uuid/dist/commonjs-browser/rng.js","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/node_modules/uuid/dist/commonjs-browser/sha1.js","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/node_modules/uuid/dist/commonjs-browser/stringify.js","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/node_modules/uuid/dist/commonjs-browser/v1.js","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/node_modules/uuid/dist/commonjs-browser/v3.js","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/node_modules/uuid/dist/commonjs-browser/v35.js","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/node_modules/uuid/dist/commonjs-browser/v4.js","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/node_modules/uuid/dist/commonjs-browser/v5.js","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/node_modules/uuid/dist/commonjs-browser/validate.js","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/node_modules/uuid/dist/commonjs-browser/version.js","webpack://vw-oneform-feature-app/./node_modules/classnames/index.js","webpack://vw-oneform-feature-app/./node_modules/cross-fetch/dist/browser-ponyfill.js","webpack://vw-oneform-feature-app/./node_modules/dayjs/dayjs.min.js","webpack://vw-oneform-feature-app/./node_modules/dayjs/locale/es.js","webpack://vw-oneform-feature-app/./node_modules/dayjs/plugin/advancedFormat.js","webpack://vw-oneform-feature-app/./node_modules/dayjs/plugin/customParseFormat.js","webpack://vw-oneform-feature-app/./node_modules/dayjs/plugin/isBetween.js","webpack://vw-oneform-feature-app/./node_modules/dayjs/plugin/isSameOrBefore.js","webpack://vw-oneform-feature-app/./node_modules/dayjs/plugin/timezone.js","webpack://vw-oneform-feature-app/./node_modules/dayjs/plugin/utc.js","webpack://vw-oneform-feature-app/./node_modules/enquire.js/src/MediaQuery.js","webpack://vw-oneform-feature-app/./node_modules/enquire.js/src/MediaQueryDispatch.js","webpack://vw-oneform-feature-app/./node_modules/enquire.js/src/QueryHandler.js","webpack://vw-oneform-feature-app/./node_modules/enquire.js/src/Util.js","webpack://vw-oneform-feature-app/./node_modules/enquire.js/src/index.js","webpack://vw-oneform-feature-app/./node_modules/eventemitter3/index.js","webpack://vw-oneform-feature-app/./node_modules/geolib/es/constants.js","webpack://vw-oneform-feature-app/./node_modules/geolib/es/getCoordinateKey.js","webpack://vw-oneform-feature-app/./node_modules/geolib/es/getCoordinateKeys.js","webpack://vw-oneform-feature-app/./node_modules/geolib/es/getDistance.js","webpack://vw-oneform-feature-app/./node_modules/geolib/es/getLatitude.js","webpack://vw-oneform-feature-app/./node_modules/geolib/es/getLongitude.js","webpack://vw-oneform-feature-app/./node_modules/geolib/es/isDecimal.js","webpack://vw-oneform-feature-app/./node_modules/geolib/es/isSexagesimal.js","webpack://vw-oneform-feature-app/./node_modules/geolib/es/isValidCoordinate.js","webpack://vw-oneform-feature-app/./node_modules/geolib/es/isValidLatitude.js","webpack://vw-oneform-feature-app/./node_modules/geolib/es/isValidLongitude.js","webpack://vw-oneform-feature-app/./node_modules/geolib/es/robustAcos.js","webpack://vw-oneform-feature-app/./node_modules/geolib/es/sexagesimalToDecimal.js","webpack://vw-oneform-feature-app/./node_modules/geolib/es/toDecimal.js","webpack://vw-oneform-feature-app/./node_modules/geolib/es/toRad.js","webpack://vw-oneform-feature-app/./node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","webpack://vw-oneform-feature-app/./node_modules/js-file-download/file-download.js","webpack://vw-oneform-feature-app/./node_modules/json2mq/index.js","webpack://vw-oneform-feature-app/./node_modules/lodash.debounce/index.js","webpack://vw-oneform-feature-app/./node_modules/prop-types/factoryWithThrowingShims.js","webpack://vw-oneform-feature-app/./node_modules/prop-types/index.js","webpack://vw-oneform-feature-app/./node_modules/prop-types/lib/ReactPropTypesSecret.js","webpack://vw-oneform-feature-app/./node_modules/react-autosuggest/dist/Autosuggest.js","webpack://vw-oneform-feature-app/./node_modules/react-autosuggest/dist/Autowhatever.js","webpack://vw-oneform-feature-app/./node_modules/react-autosuggest/dist/Item.js","webpack://vw-oneform-feature-app/./node_modules/react-autosuggest/dist/ItemList.js","webpack://vw-oneform-feature-app/./node_modules/react-autosuggest/dist/SectionTitle.js","webpack://vw-oneform-feature-app/./node_modules/react-autosuggest/dist/compareObjects.js","webpack://vw-oneform-feature-app/./node_modules/react-autosuggest/dist/index.js","webpack://vw-oneform-feature-app/./node_modules/react-autosuggest/dist/theme.js","webpack://vw-oneform-feature-app/./node_modules/react-device-detect/main.js","webpack://vw-oneform-feature-app/./node_modules/react-hook-form/dist/react-hook-form.es.js","webpack://vw-oneform-feature-app/./node_modules/react-is/cjs/react-is.production.min.js","webpack://vw-oneform-feature-app/./node_modules/react-is/index.js","webpack://vw-oneform-feature-app/./node_modules/react-redux/es/components/Context.js","webpack://vw-oneform-feature-app/./node_modules/react-redux/es/utils/batch.js","webpack://vw-oneform-feature-app/./node_modules/react-redux/es/utils/Subscription.js","webpack://vw-oneform-feature-app/./node_modules/react-redux/es/utils/useIsomorphicLayoutEffect.js","webpack://vw-oneform-feature-app/./node_modules/react-redux/es/components/Provider.js","webpack://vw-oneform-feature-app/./node_modules/react-redux/es/components/connectAdvanced.js","webpack://vw-oneform-feature-app/./node_modules/react-redux/es/utils/shallowEqual.js","webpack://vw-oneform-feature-app/./node_modules/react-redux/es/connect/wrapMapToProps.js","webpack://vw-oneform-feature-app/./node_modules/react-redux/es/connect/mapDispatchToProps.js","webpack://vw-oneform-feature-app/./node_modules/react-redux/es/utils/bindActionCreators.js","webpack://vw-oneform-feature-app/./node_modules/react-redux/es/connect/mapStateToProps.js","webpack://vw-oneform-feature-app/./node_modules/react-redux/es/connect/mergeProps.js","webpack://vw-oneform-feature-app/./node_modules/react-redux/es/connect/selectorFactory.js","webpack://vw-oneform-feature-app/./node_modules/react-redux/es/connect/connect.js","webpack://vw-oneform-feature-app/./node_modules/react-redux/es/hooks/useReduxContext.js","webpack://vw-oneform-feature-app/./node_modules/react-redux/es/hooks/useStore.js","webpack://vw-oneform-feature-app/./node_modules/react-redux/es/hooks/useDispatch.js","webpack://vw-oneform-feature-app/./node_modules/react-redux/es/hooks/useSelector.js","webpack://vw-oneform-feature-app/./node_modules/react-redux/es/index.js","webpack://vw-oneform-feature-app/./node_modules/react-redux/node_modules/react-is/cjs/react-is.production.min.js","webpack://vw-oneform-feature-app/./node_modules/react-redux/node_modules/react-is/index.js","webpack://vw-oneform-feature-app/./node_modules/react-slick/lib/arrows.js","webpack://vw-oneform-feature-app/./node_modules/react-slick/lib/default-props.js","webpack://vw-oneform-feature-app/./node_modules/react-slick/lib/dots.js","webpack://vw-oneform-feature-app/./node_modules/react-slick/lib/index.js","webpack://vw-oneform-feature-app/./node_modules/react-slick/lib/initial-state.js","webpack://vw-oneform-feature-app/./node_modules/react-slick/lib/inner-slider.js","webpack://vw-oneform-feature-app/./node_modules/react-slick/lib/slider.js","webpack://vw-oneform-feature-app/./node_modules/react-slick/lib/track.js","webpack://vw-oneform-feature-app/./node_modules/react-slick/lib/utils/innerSliderUtils.js","webpack://vw-oneform-feature-app/./node_modules/react-themeable/dist/index.js","webpack://vw-oneform-feature-app/./node_modules/react-themeable/node_modules/object-assign/index.js","webpack://vw-oneform-feature-app/./node_modules/dom-helpers/esm/removeClass.js","webpack://vw-oneform-feature-app/./node_modules/react-transition-group/esm/CSSTransition.js","webpack://vw-oneform-feature-app/./node_modules/dom-helpers/esm/addClass.js","webpack://vw-oneform-feature-app/./node_modules/dom-helpers/esm/hasClass.js","webpack://vw-oneform-feature-app/./node_modules/react-transition-group/esm/config.js","webpack://vw-oneform-feature-app/./node_modules/react-transition-group/esm/Transition.js","webpack://vw-oneform-feature-app/./node_modules/react-transition-group/esm/TransitionGroupContext.js","webpack://vw-oneform-feature-app/./node_modules/react-transition-group/esm/utils/reflow.js","webpack://vw-oneform-feature-app/./node_modules/redux/es/redux.js","webpack://vw-oneform-feature-app/./node_modules/resize-observer-polyfill/dist/ResizeObserver.es.js","webpack://vw-oneform-feature-app/./node_modules/rxjs/src/internal/util/isFunction.ts","webpack://vw-oneform-feature-app/./node_modules/rxjs/src/internal/config.ts","webpack://vw-oneform-feature-app/./node_modules/rxjs/src/internal/util/hostReportError.ts","webpack://vw-oneform-feature-app/./node_modules/rxjs/src/internal/Observer.ts","webpack://vw-oneform-feature-app/./node_modules/rxjs/src/internal/util/UnsubscriptionError.ts","webpack://vw-oneform-feature-app/./node_modules/rxjs/src/internal/Subscription.ts","webpack://vw-oneform-feature-app/./node_modules/rxjs/src/internal/util/isObject.ts","webpack://vw-oneform-feature-app/./node_modules/rxjs/src/internal/symbol/rxSubscriber.ts","webpack://vw-oneform-feature-app/./node_modules/rxjs/src/internal/Subscriber.ts","webpack://vw-oneform-feature-app/./node_modules/rxjs/src/internal/util/identity.ts","webpack://vw-oneform-feature-app/./node_modules/rxjs/src/internal/util/pipe.ts","webpack://vw-oneform-feature-app/./node_modules/rxjs/src/internal/Observable.ts","webpack://vw-oneform-feature-app/./node_modules/rxjs/src/internal/util/toSubscriber.ts","webpack://vw-oneform-feature-app/./node_modules/rxjs/src/internal/util/canReportError.ts","webpack://vw-oneform-feature-app/./node_modules/rxjs/src/internal/util/ObjectUnsubscribedError.ts","webpack://vw-oneform-feature-app/./node_modules/rxjs/src/internal/SubjectSubscription.ts","webpack://vw-oneform-feature-app/./node_modules/rxjs/src/internal/Subject.ts","webpack://vw-oneform-feature-app/./node_modules/rxjs/src/internal/BehaviorSubject.ts","webpack://vw-oneform-feature-app/./node_modules/section-iterator/dist/index.js","webpack://vw-oneform-feature-app/./node_modules/shallow-equal/arrays/index.js","webpack://vw-oneform-feature-app/./node_modules/string-convert/camel2hyphen.js","webpack://vw-oneform-feature-app/./node_modules/styled-normalize/dist/index.js","webpack://vw-oneform-feature-app/./node_modules/tslib/tslib.es6.js","webpack://vw-oneform-feature-app/./node_modules/ua-parser-js/dist/ua-parser.min.js","webpack://vw-oneform-feature-app/./src/components/Legales/iconlssi.svg","webpack://vw-oneform-feature-app/./src/components/Legales/icontmk.svg","webpack://vw-oneform-feature-app/./src/feature-app/NewMap/assets/dealer_marker.png","webpack://vw-oneform-feature-app/./src/feature-app/NewMap/assets/dealer_marker_grey.png","webpack://vw-oneform-feature-app/./src/feature-app/NewMap/assets/dealer_marker_selected.png","webpack://vw-oneform-feature-app/./src/feature-app/NewMap/assets/favourite_dealer.png","webpack://vw-oneform-feature-app/./src/feature-app/NewMap/assets/filter-ic_list.svg","webpack://vw-oneform-feature-app/./src/feature-app/NewMap/assets/marker.png","webpack://vw-oneform-feature-app/./src/feature-app/NewMap/assets/selected_marker.png","webpack://vw-oneform-feature-app/./src/forms/Leads/icon.svg","webpack://vw-oneform-feature-app/./src/forms/LeadsInPage/car_3-4.png","webpack://vw-oneform-feature-app/external umd \"react\"","webpack://vw-oneform-feature-app/external umd \"react-dom\"","webpack://vw-oneform-feature-app/external umd \"styled-components\"","webpack://vw-oneform-feature-app/./node_modules/@babel/runtime/helpers/esm/extends.js","webpack://vw-oneform-feature-app/./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack://vw-oneform-feature-app/./node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","webpack://vw-oneform-feature-app/./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","webpack://vw-oneform-feature-app/./node_modules/@babel/runtime/helpers/esm/taggedTemplateLiteral.js","webpack://vw-oneform-feature-app/./node_modules/axios/lib/helpers/bind.js","webpack://vw-oneform-feature-app/./node_modules/axios/lib/utils.js","webpack://vw-oneform-feature-app/./node_modules/axios/lib/core/AxiosError.js","webpack://vw-oneform-feature-app/./node_modules/axios/lib/helpers/toFormData.js","webpack://vw-oneform-feature-app/./node_modules/axios/lib/helpers/AxiosURLSearchParams.js","webpack://vw-oneform-feature-app/./node_modules/axios/lib/helpers/buildURL.js","webpack://vw-oneform-feature-app/./node_modules/axios/lib/core/InterceptorManager.js","webpack://vw-oneform-feature-app/./node_modules/axios/lib/defaults/transitional.js","webpack://vw-oneform-feature-app/./node_modules/axios/lib/platform/browser/index.js","webpack://vw-oneform-feature-app/./node_modules/axios/lib/platform/browser/classes/URLSearchParams.js","webpack://vw-oneform-feature-app/./node_modules/axios/lib/platform/browser/classes/FormData.js","webpack://vw-oneform-feature-app/./node_modules/axios/lib/platform/browser/classes/Blob.js","webpack://vw-oneform-feature-app/./node_modules/axios/lib/platform/common/utils.js","webpack://vw-oneform-feature-app/./node_modules/axios/lib/platform/index.js","webpack://vw-oneform-feature-app/./node_modules/axios/lib/helpers/formDataToJSON.js","webpack://vw-oneform-feature-app/./node_modules/axios/lib/defaults/index.js","webpack://vw-oneform-feature-app/./node_modules/axios/lib/helpers/toURLEncodedForm.js","webpack://vw-oneform-feature-app/./node_modules/axios/lib/helpers/parseHeaders.js","webpack://vw-oneform-feature-app/./node_modules/axios/lib/core/AxiosHeaders.js","webpack://vw-oneform-feature-app/./node_modules/axios/lib/core/transformData.js","webpack://vw-oneform-feature-app/./node_modules/axios/lib/cancel/isCancel.js","webpack://vw-oneform-feature-app/./node_modules/axios/lib/cancel/CanceledError.js","webpack://vw-oneform-feature-app/./node_modules/axios/lib/helpers/cookies.js","webpack://vw-oneform-feature-app/./node_modules/axios/lib/core/buildFullPath.js","webpack://vw-oneform-feature-app/./node_modules/axios/lib/helpers/isAbsoluteURL.js","webpack://vw-oneform-feature-app/./node_modules/axios/lib/helpers/combineURLs.js","webpack://vw-oneform-feature-app/./node_modules/axios/lib/helpers/isURLSameOrigin.js","webpack://vw-oneform-feature-app/./node_modules/axios/lib/helpers/speedometer.js","webpack://vw-oneform-feature-app/./node_modules/axios/lib/adapters/xhr.js","webpack://vw-oneform-feature-app/./node_modules/axios/lib/adapters/adapters.js","webpack://vw-oneform-feature-app/./node_modules/axios/lib/helpers/null.js","webpack://vw-oneform-feature-app/./node_modules/axios/lib/core/settle.js","webpack://vw-oneform-feature-app/./node_modules/axios/lib/helpers/parseProtocol.js","webpack://vw-oneform-feature-app/./node_modules/axios/lib/core/dispatchRequest.js","webpack://vw-oneform-feature-app/./node_modules/axios/lib/core/mergeConfig.js","webpack://vw-oneform-feature-app/./node_modules/axios/lib/env/data.js","webpack://vw-oneform-feature-app/./node_modules/axios/lib/helpers/validator.js","webpack://vw-oneform-feature-app/./node_modules/axios/lib/core/Axios.js","webpack://vw-oneform-feature-app/./node_modules/axios/lib/cancel/CancelToken.js","webpack://vw-oneform-feature-app/./node_modules/axios/lib/helpers/HttpStatusCode.js","webpack://vw-oneform-feature-app/./node_modules/axios/lib/axios.js","webpack://vw-oneform-feature-app/./node_modules/axios/lib/helpers/spread.js","webpack://vw-oneform-feature-app/./node_modules/axios/lib/helpers/isAxiosError.js","webpack://vw-oneform-feature-app/./node_modules/libphonenumber-js/source/ParseError.js","webpack://vw-oneform-feature-app/./node_modules/libphonenumber-js/source/helpers/getPossibleCountriesForNumber.js","webpack://vw-oneform-feature-app/./node_modules/libphonenumber-js/source/helpers/getIddPrefix.js","webpack://vw-oneform-feature-app/./node_modules/libphonenumber-js/source/format.js","webpack://vw-oneform-feature-app/./node_modules/libphonenumber-js/source/helpers/RFC3966.js","webpack://vw-oneform-feature-app/./node_modules/libphonenumber-js/source/PhoneNumber.js","webpack://vw-oneform-feature-app/./node_modules/libphonenumber-js/source/isValid.js","webpack://vw-oneform-feature-app/./node_modules/libphonenumber-js/source/constants.js","webpack://vw-oneform-feature-app/./node_modules/libphonenumber-js/source/helpers/applyInternationalSeparatorStyle.js","webpack://vw-oneform-feature-app/./node_modules/libphonenumber-js/source/helpers/checkNumberLength.js","webpack://vw-oneform-feature-app/./node_modules/libphonenumber-js/source/helpers/mergeArrays.js","webpack://vw-oneform-feature-app/./node_modules/libphonenumber-js/source/helpers/extractCountryCallingCode.js","webpack://vw-oneform-feature-app/./node_modules/libphonenumber-js/source/helpers/extractCountryCallingCodeFromInternationalNumberWithoutPlusSign.js","webpack://vw-oneform-feature-app/./node_modules/libphonenumber-js/source/helpers/extractNationalNumber.js","webpack://vw-oneform-feature-app/./node_modules/libphonenumber-js/source/helpers/extractNationalNumberFromPossiblyIncompleteNumber.js","webpack://vw-oneform-feature-app/./node_modules/libphonenumber-js/source/helpers/formatNationalNumberUsingFormat.js","webpack://vw-oneform-feature-app/./node_modules/libphonenumber-js/source/helpers/getCountryByCallingCode.js","webpack://vw-oneform-feature-app/./node_modules/libphonenumber-js/source/helpers/getCountryByNationalNumber.js","webpack://vw-oneform-feature-app/./node_modules/libphonenumber-js/source/helpers/getNumberType.js","webpack://vw-oneform-feature-app/./node_modules/libphonenumber-js/source/helpers/isObject.js","webpack://vw-oneform-feature-app/./node_modules/libphonenumber-js/source/helpers/matchesEntirely.js","webpack://vw-oneform-feature-app/./node_modules/libphonenumber-js/source/helpers/parseDigits.js","webpack://vw-oneform-feature-app/./node_modules/libphonenumber-js/source/helpers/stripIddPrefix.js","webpack://vw-oneform-feature-app/./node_modules/libphonenumber-js/source/isPossible.js","webpack://vw-oneform-feature-app/./node_modules/libphonenumber-js/source/tools/semver-compare.js","webpack://vw-oneform-feature-app/./node_modules/libphonenumber-js/source/metadata.js","webpack://vw-oneform-feature-app/./node_modules/libphonenumber-js/source/normalizeArguments.js","webpack://vw-oneform-feature-app/./node_modules/libphonenumber-js/source/helpers/extension/createExtensionPattern.js","webpack://vw-oneform-feature-app/./node_modules/libphonenumber-js/source/helpers/isViablePhoneNumber.js","webpack://vw-oneform-feature-app/./node_modules/libphonenumber-js/source/helpers/extension/extractExtension.js","webpack://vw-oneform-feature-app/./node_modules/libphonenumber-js/source/parseIncompletePhoneNumber.js","webpack://vw-oneform-feature-app/./node_modules/libphonenumber-js/source/helpers/extractPhoneContext.js","webpack://vw-oneform-feature-app/./node_modules/libphonenumber-js/source/helpers/extractFormattedPhoneNumberFromPossibleRfc3966NumberUri.js","webpack://vw-oneform-feature-app/./node_modules/libphonenumber-js/source/parse.js","webpack://vw-oneform-feature-app/./node_modules/libphonenumber-js/source/parsePhoneNumberWithError_.js","webpack://vw-oneform-feature-app/./node_modules/libphonenumber-js/source/parsePhoneNumber_.js","webpack://vw-oneform-feature-app/./node_modules/libphonenumber-js/metadata.min.json.js","webpack://vw-oneform-feature-app/./node_modules/libphonenumber-js/source/isValidPhoneNumber.js","webpack://vw-oneform-feature-app/./node_modules/libphonenumber-js/min/exports/isValidPhoneNumber.js","webpack://vw-oneform-feature-app/./node_modules/libphonenumber-js/min/exports/withMetadataArgument.js","webpack://vw-oneform-feature-app/webpack/bootstrap","webpack://vw-oneform-feature-app/webpack/runtime/amd options","webpack://vw-oneform-feature-app/webpack/runtime/compat get default export","webpack://vw-oneform-feature-app/webpack/runtime/define property getters","webpack://vw-oneform-feature-app/webpack/runtime/global","webpack://vw-oneform-feature-app/webpack/runtime/harmony module decorator","webpack://vw-oneform-feature-app/webpack/runtime/hasOwnProperty shorthand","webpack://vw-oneform-feature-app/webpack/runtime/make namespace object","webpack://vw-oneform-feature-app/webpack/startup"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"react\"), require(\"react-dom\"), require(\"styled-components\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"react\", \"react-dom\", \"styled-components\"], factory);\n\telse {\n\t\tvar a = typeof exports === 'object' ? factory(require(\"react\"), require(\"react-dom\"), require(\"styled-components\")) : factory(root[\"react\"], root[\"react-dom\"], root[\"styled-components\"]);\n\t\tfor(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];\n\t}\n})((typeof self !== 'undefined' ? self : this), (__WEBPACK_EXTERNAL_MODULE__8156__, __WEBPACK_EXTERNAL_MODULE__7111__, __WEBPACK_EXTERNAL_MODULE__1608__) => {\nreturn ","import axios from 'axios';\nimport { getDataUrl, reportErrorSentry } from 'src/bff';\nimport { DealersData } from 'src/types';\n\nexport const getDealerKvps = async (kvps: string): Promise => {\n try {\n const dataUrl = getDataUrl();\n\n const dealerResponse = await axios.get(`${dataUrl}/getDealer/${kvps}`);\n\n if (dealerResponse?.data?.dealer) {\n return dealerResponse.data.dealer;\n }\n\n reportErrorSentry('Could not get dealer');\n console.error('Could not get dealer');\n return null;\n } catch (error) {\n reportErrorSentry(error);\n return null;\n }\n};\n","import { fetchMarketingCode, reportErrorSentry } from 'src/bff';\nimport { TrackingConfiguration } from 'src/feature-app';\n\n/*\nexport interface MarketingCodeFields {\n 'fields[COD_VEH_SALESGROUP]': string;\n 'fields[DESC_VEH_SALESGROUP]': string;\n 'fields[DESC_TRIM_LINE]': string;\n 'fields[COD_VEH_TMAIMG]': string;\n 'fields[DESC_VEH_TMAIMG]': string;\n 'fields[DESC_VEH_MARKETING_CODE]': string;\n 'fields[COD_VEH_COLOR]': string;\n 'fields[DESC_VEH_COLOR]': string;\n 'fields[COD_VEH_COLOR_INT]': string;\n 'fields[DESC_VEH_COLOR_INT]': string;\n 'fields[COD_VEH_WHEELS]': string;\n 'fields[DESC_VEH_WHEELS]': string;\n}\n*/\n\nexport interface MarketingCodeHistory {\n marketingCode: string;\n marketingCodeConfig: TrackingConfiguration;\n response: any;\n}\nlet marketingCodeHistory: MarketingCodeHistory[] = [];\n\nexport const getMarketingCode = async (\n marketingCode: string,\n): Promise<{\n marketingCodeConfig: TrackingConfiguration;\n response: any;\n}> => {\n // await delayRequest();\n const offerInHistory = marketingCodeHistory.find((offer) => offer.marketingCode === marketingCode);\n\n if (offerInHistory) {\n return {\n marketingCodeConfig: offerInHistory.marketingCodeConfig,\n response: offerInHistory.response,\n };\n } else {\n const { marketingCodeConfig, response } = await receiveMarketingCode(marketingCode);\n const history: MarketingCodeHistory = { marketingCode, marketingCodeConfig, response };\n marketingCodeHistory.push(history);\n return { marketingCodeConfig, response };\n }\n};\n\nexport const getFeatures = (features: { code: string }[]) => {\n if (!features) return [];\n return features.map((feature) => feature.code);\n};\n\nexport const getWheelsParams = (features: { code: string; name: string }[]) => {\n if (!features) return { COD_VEH_WHEELS: '', DESC_VEH_WHEELS: '' };\n const wheel = features.find((feature) => feature.code.startsWith('MRAD'));\n\n const COD_VEH_WHEELS = wheel?.code ? wheel.code : undefined;\n const DESC_VEH_WHEELS = wheel?.name ? wheel.name : undefined;\n return { COD_VEH_WHEELS, DESC_VEH_WHEELS };\n};\n\nexport const getWheels = (features: { code: string; name: string }[]) => {\n const { COD_VEH_WHEELS, DESC_VEH_WHEELS } = getWheelsParams(features);\n\n return { 'fields[COD_VEH_WHEELS]': COD_VEH_WHEELS, 'fields[DESC_VEH_WHEELS]': DESC_VEH_WHEELS.slice(0, 65) };\n};\n\nexport const getOption = (category: string, options: { category: string, code: string, description: string }[]) => {\n const option = options.find((option) => option.category==category);\n return { option };\n};\n\nexport const getModelFilter = (type: string, modelFilters: { id: string, text: string, type: string }[]) => {\n const modelFilter = modelFilters.find((modelFilter) => modelFilter.type==type);\n return { modelFilter };\n};\n\nclass ErrorLoadStorageDataset extends Error {\n constructor(message: any) {\n super(message);\n this.name = 'ErrorLoadStorageDataset';\n }\n}\n\nexport const receiveMarketingCode = async (\n marketingCode: string,\n): Promise<{ marketingCodeConfig: TrackingConfiguration; response?: any }> => {\n\n try {\n const response = await fetchMarketingCode(marketingCode);\n\n const salesgroup = getOption(\"SALESGROUP\",response.content.consolidatedData.options);\n const modelyear = getOption(\"MODELYEAR\",response.content.consolidatedData.options);\n const type = getOption(\"TYPE\",response.content.consolidatedData.options);\n const baseType = getOption(\"BASETYPE\",response.content.consolidatedData.options);\n\n const equipmentLine = getModelFilter(\"EquipmentLine\",response.content.consolidatedData.meta.modelFilter);\n\n const marketingCodeConfig: TrackingConfiguration = {\n CarlineId: response.content.consolidatedData.model_code.split(\"_\")[1],\n CarlineName: response.content.consolidatedData.model_description,\n SalesgroupId: salesgroup.option.code.replace('SALESGROUP:',''),\n SalesgroupName: salesgroup.option.description,\n EquipmentlineName: equipmentLine.modelFilter.text,\n ModelId: baseType.option.code.replace('BASETYPE:',''),\n ModelName: type.option.description,\n ModelYear: modelyear.option.code.replace('MODELYEAR:',''),\n };\n\n return { marketingCodeConfig, response};\n } catch (error) {\n const errorMkc = new ErrorLoadStorageDataset(error);\n reportErrorSentry(errorMkc);\n const marketingCodeConfig: TrackingConfiguration = null;\n return { marketingCodeConfig };\n }\n};\n\n/**\n * Necesitamos retrasar la request ya que se llama desde muchos sitios al mismo tiempo, por lo que se producen llamadas\n * innecesarias. Esta función simplemente espera a que de tiempo a resolver el marketing code y se la siguiente llamada\n * ya encuentre el resultado de la request anterior en el objeto de historia.\n */\nexport const delayRequest = async () =>\n new Promise((resolve) => {\n setTimeout(resolve, 1000);\n });\n","import axios, { AxiosResponse } from 'axios';\nimport { MolecularResponse, OneformBFFResponse } from 'src/types';\nimport { getMolecularUrl, getOneformBFFUrl, getOneformBFFApiKey, reportErrorSentry } from 'src/bff';\n\n\nexport const oneformBFFNdpsSend = async (formData: FormData, isPresubmit?: boolean): Promise> => {\n if (isTest(formData, isPresubmit)) return {data:{status:{code:'200'}}};\n\n try {\n const oneformBFFUrl = getOneformBFFUrl();\n const oneformBFFApiKey = getOneformBFFApiKey();\n const response = await axios.post(`${oneformBFFUrl}/ndps/responses`, formData, {\n headers: {\n 'X-Api-Key': oneformBFFApiKey\n }\n });\n\n return response;\n } catch (error) {\n reportErrorSentry(error);\n return null;\n }\n}\nexport const dpsSend = async (formData: FormData, isPresubmit?: boolean): Promise> => {\n if (isTest(formData, isPresubmit)) return {data:{content:{code:'200'}}};\n\n try {\n const MOLECULAR_URL = getMolecularUrl(); // Legacy\n const response = await axios.post(`${MOLECULAR_URL}/request-dps-send.php`, formData);\n return response;\n } catch (error) {\n reportErrorSentry(error);\n return null;\n }\n};\n\nexport const yumiwiSend = async (formData: FormData, isPresubmit?: boolean): Promise> => {\n if (isTest(formData, isPresubmit)) return {data:{content:{code:'200'}}};\n\n try {\n const MOLECULAR_URL = getMolecularUrl(); // Legacy\n const response = await axios.post(`${MOLECULAR_URL}/request-dps-send-yumiwi.php`, formData);\n return response;\n } catch (error) {\n reportErrorSentry(error);\n return null;\n }\n};\n\nexport const raceSend = async (formData: FormData, isPresubmit?: boolean): Promise> => {\n if (isTest(formData, isPresubmit)) return {data:{content:{code:'200'}}};\n\n try {\n const MOLECULAR_URL = getMolecularUrl(); // Legacy\n const response = await axios.post(`${MOLECULAR_URL}/request-race-callme.php`, formData);\n return response;\n } catch (error) {\n reportErrorSentry(error);\n return null;\n }\n};\n\nconst isTest = (formData: FormData, isPresubmit?: boolean) => {\n const urlParams = new URLSearchParams(window.location.search);\n const test = urlParams.get('test') &&\n (\n isPresubmit && urlParams.get('test').includes('PRESUBMIT')\n ||\n !isPresubmit && urlParams.get('test').includes('SEND')\n );\n if (test) {\n let fields = [];\n for (const entry of formData.entries()) {\n fields[entry[0]] = entry[1];\n }\n console.log('%cOneform Test Send:', 'font-weight: 700', fields);\n return true;\n }\n return false;\n}\n\nexport const motorflashSend = (formData: FormData): Promise => {\n const MOLECULAR_URL = getMolecularUrl(); // Legacy\n\n return axios\n .post(`${MOLECULAR_URL}/request-motorflash-send.php`, formData)\n .then((response: AxiosResponse) => response.data)\n .catch((error) => error);\n};","import axios, { AxiosResponse } from 'axios';\nimport { AppadapResponse } from 'src/types';\nimport { getMolecularUrl, reportErrorSentry } from 'src/bff';\n\nexport const appadapAppointmentCreate = async (formData: FormData): Promise> => {\n try {\n const MOLECULAR_URL = getMolecularUrl(); // Legacy\n const response = await axios.post(`${MOLECULAR_URL}/request-eapi-appointment-create.php`, formData);\n return response;\n } catch (error) {\n reportErrorSentry(error);\n return null;\n }\n};\n","import Axios from 'axios';\nimport { getMolecularCdnUrl, getOneformBFFCdnApiKey, getOneformBFFCdnUrl, reportErrorSentry } from 'src/bff';\nimport { DomainResponse } from 'src/types';\n\nexport const fetchProvince = async (token?: string): Promise => {\n const requestToken = token ? token : 'VW_DDB_FRM_LEM_REC_LEM';\n const oneformCdn = getOneformBFFCdnUrl();\n const oneformBFFApiKey = getOneformBFFCdnApiKey();\n\n try {\n const response = await Axios.get(`${oneformCdn}/ndps/domain?token=${requestToken}&domain=PROVINCE_CODE`,\n {\n timeout: 10000,\n headers: {\n 'X-Api-Key': oneformBFFApiKey\n }\n }\n );\n\n return response.data;\n } catch (err) {\n reportErrorSentry(err);\n return null;\n }\n};\n\nexport const fetchDealers = async (code: string, token?: string): Promise => {\n const requestToken = token ? token : 'VW_DDB_FRM_LEM_REC_LEM';\n const oneformCdn = getOneformBFFCdnUrl();\n const oneformBFFApiKey = getOneformBFFCdnApiKey();\n\n try {\n const response = await Axios.get(\n `${oneformCdn}/ndps/domain?token=${requestToken}&domain=VOLKSWAGEN_SF_LEAD_INSTALLATION&relatedDomain=FRML_TXT_codVentaProvincia__c&relatedValue=${code}`,\n {\n timeout: 10000,\n headers: {\n 'X-Api-Key': oneformBFFApiKey\n }\n }\n );\n return response.data;\n } catch (err) {\n reportErrorSentry(err);\n return null;\n }\n};\n\nexport const fetchTreatment = async (token?: string): Promise => {\n const requestToken = token ? token : 'VW_DDB_FRM_LEM_REC_LEM';\n const oneformCdn = getOneformBFFCdnUrl();\n const oneformBFFApiKey = getOneformBFFCdnApiKey();\n\n try {\n const response = await Axios.get(`${oneformCdn}/ndps/domain?token=${requestToken}&domain=Treatment`,\n {\n timeout: 10000,\n headers: {\n 'X-Api-Key': oneformBFFApiKey\n }\n });\n return response.data;\n } catch (err) {\n reportErrorSentry(err);\n return null;\n }\n};\n\nexport const fetchProvinceLegacy = async (token?: string): Promise => {\n const requestToken = token ? token : 'VW_DDB_FRM_LEM_REC_LEM';\n const molecularCdn = getMolecularCdnUrl(); \n\n try {\n const response = await Axios.get(`${molecularCdn}/request-dps-domain.php?token=${requestToken}&domain=Province`, \n { \n timeout: 10000 \n });\n return response.data;\n } catch (err) {\n reportErrorSentry(err);\n return null;\n }\n};\n\nexport const fetchDealersLegacy = async (code: string, token?: string, addPosventa?: boolean): Promise => {\n const requestToken = token ? token : 'VW_DDB_FRM_LEM_REC_LEM';\n const domain = addPosventa ? 'Installations_VW_All' : 'Installation';\n const molecularCdn = getMolecularCdnUrl();\n\n try {\n const response = await Axios.get(`${molecularCdn}/request-dps-domain.php?token=${requestToken}&domain=${domain}&relatedDomain=FRML_TXT_codVentaProvincia__c&relatedValue=${code}`,\n { \n timeout: 10000 \n }\n );\n return response.data;\n } catch (err) {\n reportErrorSentry(err);\n return null;\n }\n};\n\nexport const fetchTreatmentLegacy = async (token?: string): Promise => {\n const requestToken = token ? token : 'VW_DDB_FRM_LEM_REC_LEM';\n const molecularCdn = getMolecularCdnUrl(); \n\n try {\n const response = await Axios.get(`${molecularCdn}/request-dps-domain.php?token=${requestToken}&domain=Treatment`, \n {\n timeout: 10000,\n });\n return response.data;\n } catch (err) {\n reportErrorSentry(err);\n return null;\n }\n};\n","import fetch from 'cross-fetch';\nimport * as settings from 'src';\nimport { getOneformBFFCdnUrl, getOneformBFFCdnApiKey, reportErrorSentry } from 'src/bff';\n\nexport const fetchMarketingCode = async (marketingCode: string) => {\n const oneformBFFCdnUrl = getOneformBFFCdnUrl();\n const oneformBFFCdnApiKey = getOneformBFFCdnApiKey();\n\n return fetch(oneformBFFCdnUrl + '/okapi/marketing-code?marketingCode=' + marketingCode, {\n headers: {\n \"X-Api-Key\": oneformBFFCdnApiKey,\n }\n })\n .then((response) => response.json())\n .catch((err) => {\n reportErrorSentry(err);\n });\n};\n","import axios, { AxiosResponse } from 'axios';\nimport { SelectExtendedList } from 'src/components';\nimport { getOneformBFFCdnUrl, getOneformBFFCdnApiKey, getMolecularCdnUrl, reportErrorSentry } from 'src/bff';\nimport { DomainResponse } from 'src/types';\n\nexport interface CarlinesCitaResponse {\n content: SelectExtendedList[];\n}\n\nexport const getCarlinesCita = async (isComerciales?: boolean): Promise => {\n const groupBrand = isComerciales ? 'N' : 'V';\n const oneformCdn = getOneformBFFCdnUrl();\n const oneformBFFApiKey = getOneformBFFCdnApiKey();\n\n try {\n const response = await axios.get(`${oneformCdn}/eapi/carlines?group_brand=${groupBrand}`,\n {\n timeout: 10000,\n headers: {\n 'X-Api-Key': oneformBFFApiKey\n }\n }\n );\n\n return response.data;\n } catch (err) {\n reportErrorSentry(err);\n return null;\n }\n};\n\nexport const getCarlinesCitaLegacy = async (isComerciales?: boolean): Promise => {\n const molecularCdn = getMolecularCdnUrl();\n const groupBrand = isComerciales ? 'N' : 'V';\n try {\n const response: AxiosResponse = await axios.get(\n `${molecularCdn}/request-eapi-carlines.php?group_brand=${groupBrand}`\n );\n\n // Actualmente devuelve 503 Service Temporarily... y no se detecta como error\n if (typeof response.data.content === 'string') {\n return null;\n }\n return response.data.content;\n } catch (error) {\n reportErrorSentry(error);\n return null;\n }\n};\n","import axios, { AxiosResponse } from 'axios';\nimport { CarlineBase } from 'src/types';\nimport { getDataUrl, reportErrorSentry } from 'src/bff';\n\nexport const getCarlines = async (): Promise => {\n try {\n const dataUrl = getDataUrl();\n \n const response: AxiosResponse<{ carlines: CarlineBase[] }> = await axios.get(`${dataUrl}/getCarlines`);\n return response.data.carlines;\n \n } catch (error) {\n reportErrorSentry(error);\n return null;\n }\n};\n","import axios, { AxiosResponse } from 'axios';\nimport { Color } from 'src';\nimport { getDataUrlWithoutTenant, reportErrorSentry } from 'src/bff';\n\ninterface ColoresRequest {\n colores: Color[];\n}\n\nexport const getColors = async () => {\n const dataUrl = getDataUrlWithoutTenant();\n\n try {\n const response: AxiosResponse = await axios.get(`${dataUrl}/getColores`);\n return response.data;\n } catch (err) {\n reportErrorSentry(err);\n return null;\n }\n};\n","import axios, { AxiosResponse } from 'axios';\nimport { getDataUrl, reportErrorSentry } from 'src/bff';\nimport { DealersData } from 'src/types';\n\nexport const getDealers = async (): Promise => {\n try {\n const dataUrl = getDataUrl();\n\n if (!dataUrl) {\n console.error('Error during fetch.');\n return null;\n }\n const dealers: AxiosResponse<{ dealers: DealersData[] }> = await axios.get(`${dataUrl}/getDealers`);\n return dealers.data.dealers;\n } catch (error) {\n reportErrorSentry(error);\n return null;\n }\n};\n","import axios, { AxiosResponse } from 'axios';\nimport { getMolecularCdnUrl, getOneformBFFCdnApiKey, getOneformBFFCdnUrl, reportErrorSentry } from 'src/bff';\nimport { DomainAttributesValues, InstallationResponse } from 'src/types';\n\nexport const getInstallations = async (token?: string): Promise<{ attributes: DomainAttributesValues[] }[]> => {\n\n const domain = 'VOLKSWAGEN_SF_LEAD_INSTALLATION';\n const requestToken = !token || testToken() ? 'VW_DDB_FRM_LEM_REC_LEM' : token;\n const oneformCdn = getOneformBFFCdnUrl();\n const oneformBFFApiKey = getOneformBFFCdnApiKey();\n\n try {\n const installations: AxiosResponse = await axios.get(\n `${oneformCdn}/ndps/domain?token=${requestToken}&domain=${domain}`,\n {\n timeout: 10000,\n headers: {\n 'X-Api-Key': oneformBFFApiKey\n }\n }\n );\n return installations.data.content;\n } catch (error) {\n reportErrorSentry(error);\n return null;\n }\n};\n\nexport const getInstallationsLegacy = async (token?: string, addPosventa?: boolean): Promise<{ attributes: DomainAttributesValues[] }[]> => {\n\n const requestToken = !token || testToken() ? 'VW_DDB_FRM_LEM_REC_LEM' : token;\n const domain = addPosventa ? 'Installations_VW_All' : 'Installation';\n const molecularCdnUrl = getMolecularCdnUrl();\n \n try {\n const installations: AxiosResponse = await axios.get(\n `${molecularCdnUrl}/request-dps-domain.php?token=${requestToken}&domain=${domain}`\n );\n return installations.data.content;\n } catch (error) {\n reportErrorSentry(error);\n return null;\n }\n};\n\n\nconst testToken = () => {\n const urlParams = new URLSearchParams(window.location.search);\n return urlParams.get('test') && urlParams.get('test').includes('TOKEN');\n}","import axios, { AxiosResponse } from 'axios';\nimport { getMolecularUrl, getOneformBFFUrl, getOneformBFFApiKey, reportErrorSentry } from 'src/bff';\n\nexport interface PincodeData {\n status: { result: string; timestamp: string; code: number; time: number; };\n params: { pincode: string; token: string };\n content: PincodeResponseOk[] | PincodeResponseKo;\n}\n\nexport interface PincodeResponseOk {\n attributes: PincodeDataAttributes[];\n}\nexport interface PincodeResponseKo {\n code: string;\n data: string;\n message: string;\n status: string;\n}\nexport interface PincodeDataAttributes {\n name: string;\n value: string;\n}\n\nexport const getPincode = async (\n pincode: string,\n\tuseBff?: boolean,\n token?: string\n): Promise<{ pincodeData: PincodeData; pincodeUsed: boolean; pincodeError: boolean }> => {\n try {\n if (!token) {\n token = getPincodeToken(pincode);\n\n if (!token) {\n return { pincodeData: null, pincodeUsed: false, pincodeError: true };\n }\n }\n\n\t\tlet dataResponse: AxiosResponse;\n\n\t\tif (useBff) {\n\t\t\tconst oneformBFFUrl = getOneformBFFUrl();\n\t\t\tconst oneformBFFApiKey = getOneformBFFApiKey();\n\t\t\tdataResponse = await axios.get(`${oneformBFFUrl}/ndps/preload?pincode=${pincode}&token=${token}`, {\n\t\t\t\theaders: {\n\t\t\t\t\t'X-Api-Key': oneformBFFApiKey\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t\telse { \n\t\t\tconst MOLECULAR_URL = getMolecularUrl(); // Legacy\n\t\t\tdataResponse = await axios.get(\n\t\t\t\t`${MOLECULAR_URL}/request-dps-pincode.php?pincode=${pincode}&token=${token}`\n\t\t\t);\n\t\t}\n\n\t\tconst pincodeData = dataResponse;\n\n if (pincodeData && pincodeData.data && \n\t\t\t(pincodeData.data.status.code === 1 || pincodeData.data.status.code === 200)) {\n return { pincodeData: pincodeData.data, pincodeUsed: false, pincodeError: false };\n } else {\n if (\n pincodeData &&\n pincodeData.data &&\n pincodeData.data.content &&\n (pincodeData.data.content as PincodeResponseKo).message.includes('PINCODE_ALREADY_USED')\n ) {\n return { pincodeData: null, pincodeUsed: true, pincodeError: false };\n }\n\n return { pincodeData: null, pincodeUsed: false, pincodeError: true };\n }\n } catch (error) {\n console.error(error);\n reportErrorSentry(error);\n return { pincodeData: null, pincodeUsed: false, pincodeError: true };\n }\n};\n\n/**\n * El token viene codificado en base64 en el formato PINCODETOKEN.\n * @param pincode\n */\nexport const getPincodeToken = (pincode: string): string => {\n try {\n const pincodeDecoded = atob(pincode).split(/(?=VW)/g);\n return pincodeDecoded[pincodeDecoded.length - 1];\n } catch (error) {\n reportErrorSentry(error);\n return null;\n }\n};\n","import axios, { AxiosResponse } from 'axios';\nimport { getDataUrl, reportErrorSentry } from 'src/bff';\nimport { CarlinesWithSalesgroups } from 'src/types';\n\nexport const getSalesgroups = async (): Promise => {\n try {\n const dataUrl = getDataUrl();\n\n const response: AxiosResponse<{ carlines: CarlinesWithSalesgroups[] }> = await axios.get(\n `${dataUrl}/getSalesgroups`\n );\n\n return response.data.carlines;\n } catch (error) {\n reportErrorSentry(error);\n return null;\n }\n};\n","import axios, { AxiosResponse } from 'axios';\nimport { getDataUrl, getOneformBFFCdnApiKey, getOneformBFFCdnUrl, reportErrorSentry } from 'src/bff';\nimport { modelCar, DomainResponse } from 'src/types';\n\nexport const getVehiculosModelo = async (): Promise => {\n try {\n const dataUrl = getDataUrl();\n const response: AxiosResponse = await axios.get(`${dataUrl}/getVehiculosModelos`);\n return response.data.vehiculos;\n } catch (error) {\n reportErrorSentry(error);\n return null;\n }\n};\n\nexport const fetchMarcas = async (token?: string): Promise => {\n const requestToken = token ? token : 'VW_DDB_FRM_LEM_REC_LEM';\n const oneformCdn = getOneformBFFCdnUrl();\n const oneformBFFApiKey = getOneformBFFCdnApiKey();\n\n try {\n const response = await axios.get(`${oneformCdn}/ndps/domain?token=${requestToken}&domain=BRANDEUROTAX`,\n {\n timeout: 10000,\n headers: {\n 'X-Api-Key': oneformBFFApiKey\n }\n }\n );\n\n return response.data;\n } catch (err) {\n reportErrorSentry(err);\n return null;\n }\n};\n\nexport const fetchModelos = async (code: string, token?: string): Promise => {\n const requestToken = token ? token : 'VW_DDB_FRM_LEM_REC_LEM';\n const oneformCdn = getOneformBFFCdnUrl();\n const oneformBFFApiKey = getOneformBFFCdnApiKey();\n\n try {\n const response = await axios.get(`${oneformCdn}/ndps/domain?token=${requestToken}&domain=MODELOS_EUROTAX&relatedDomain=BRAND&relatedValue=${code}`,\n {\n timeout: 10000,\n headers: {\n 'X-Api-Key': oneformBFFApiKey\n }\n }\n );\n\n return response.data;\n } catch (err) {\n reportErrorSentry(err);\n return null;\n }\n};","import axios, { AxiosResponse } from 'axios';\nimport { getMolecularCdnUrl, getOneformBFFCdnUrl, getOneformBFFCdnApiKey, reportErrorSentry } from 'src/bff';\n\nconst handleErrorInRetrievingExternalConfig = (): null => {\n console.error('Error retrieving Volkswagen Vilma service config provider.');\n return null;\n};\n\nexport const getVilmaAssets = async (frame: string) => {\n\n const oneformCdn = getOneformBFFCdnUrl();\n const oneformBFFApiKey = getOneformBFFCdnApiKey();\n\n try {\n const response: AxiosResponse = await axios.get(\n `${oneformCdn}/vilma/assets?frame=${frame}`,\n {\n timeout: 10000,\n headers: {\n 'X-Api-Key': oneformBFFApiKey\n }\n }\n );\n return response.data.content;\n } catch (error) {\n reportErrorSentry(error);\n return null;\n }\n}\n\nexport const getVilmaAssetsLegacy = async (frame: string) => {\n \n const molecularUrl = getMolecularCdnUrl();\n let dataRes: any;\n\n await axios.get(`${molecularUrl}/request-vilma-frame.php?frame=${frame}`).then(data => dataRes = data)\n .catch((error) => {\n reportErrorSentry(error);\n return null;\n })\n return dataRes;\n}","import axios from 'axios';\nimport { getDataUrl, reportErrorSentry } from 'src/bff';\nimport { CarlineBase, CarlineWithOffers } from 'src/types';\n\nexport const getOfertasSUV = async () => {\n const dataUrl = getDataUrl(); \n let dataRes: any;\n let carlinesWithOffers: CarlineWithOffers[];\n await axios.get(`${dataUrl}/getOfertas`)\n .then(res => dataRes = res.data)\n .then(() => {\n carlinesWithOffers = dataRes.carlines.filter((carline: CarlineBase) => {\n const carlineNames = ['t-cross', 'taigo', 't-roc'];\n return carlineNames.includes(carline.name.toLowerCase());\n });\n })\n .catch((error) => {\n reportErrorSentry(error);\n return null;\n });\n return carlinesWithOffers;\n};\n","import { ServiceConfigurationV1 } from '@volkswagen-onehub/service-config-provider';\nimport { getDataServiceConfig } from 'src/feature-app';\n\nconst handleErrorInRetrievingExternalConfig = (): null => {\n console.error('Error retrieving Volkswagen Data service config provider.');\n return null;\n};\n\nexport const getTenant = (dataService: ServiceConfigurationV1) => {\n return isPrivate(dataService)\n ? dataService.tenantPrivate\n : isCommercial(dataService)\n ? dataService.tenantCommercial\n : null;\n};\n\nexport const isCommercial = (dataService: ServiceConfigurationV1) => dataService.customConfig?.brand === 'N';\nexport const isPrivate = (dataService: ServiceConfigurationV1) => dataService.customConfig?.brand === 'V';\n\nexport const checkTenant = (dataService: ServiceConfigurationV1) => {\n const tenant = getTenant(dataService);\n\n return tenant ? `/${tenant}` : '';\n};\n\nexport const getDataUrl = (): string | null => {\n const data = getDataServiceConfig();\n\n if (!data) {\n return handleErrorInRetrievingExternalConfig();\n }\n\n return `${data.urlOrigin}${data.urlPath}${checkTenant(data)}`;\n};\n\nexport const getDataUrlWithoutTenant = (): string | null => {\n const data = getDataServiceConfig();\n\n if (!data) {\n return handleErrorInRetrievingExternalConfig();\n }\n\n return `${data.urlOrigin}${data.urlPath}`;\n};\n","import { getFeatureServices, getGoogleApiKeyServiceConfig, getMolecularServiceConfig } from 'src/feature-app';\n\nconst handleErrorInRetrievingExternalConfig = (): null => {\n console.error('Error retrieving Google API Key service config provider.');\n return null;\n};\n\nexport const getGoogleApiKey = (): string | null => {\n const googleApiKeyService = getGoogleApiKeyServiceConfig();\n\n if (!googleApiKeyService) {\n return handleErrorInRetrievingExternalConfig();\n }\n\n return googleApiKeyService.customConfig?.apiKey;\n};\n","import { getMolecularCdnServiceConfig } from 'src/feature-app';\n\nconst handleErrorInRetrievingExternalConfig = (): null => {\n console.error('Error retrieving Molecular CDN service config provider.');\n return null;\n};\n\nexport const getMolecularCdnUrl = (): string | null => {\n const molecularCdn = getMolecularCdnServiceConfig();\n\n if (!molecularCdn) {\n return handleErrorInRetrievingExternalConfig();\n }\n\n return (testProduction() ? molecularCdn.urlOrigin.replace('pre-', '') : molecularCdn.urlOrigin) + molecularCdn.urlPath;\n};\n\nconst testProduction = () => {\n const urlParams = new URLSearchParams(window.location.search);\n return urlParams.get('test') && urlParams.get('test').includes('PROD');\n}","import { getMolecularServiceConfig } from 'src/feature-app';\n\nconst handleErrorInRetrievingExternalConfig = (): null => {\n console.error('Error retrieving Molecular service config provider.');\n return null;\n};\n\nexport const getMolecularUrl = (): string | null => {\n const molecular = getMolecularServiceConfig();\n\n if (!molecular) {\n return handleErrorInRetrievingExternalConfig();\n }\n\n return molecular.urlOrigin + molecular.urlPath;\n};\n","import { getOneformBFFServiceConfig } from 'src/feature-app';\n\nconst handleErrorInRetrievingExternalConfig = (): null => {\n console.error('Error retrieving OneForm BFF service config provider.');\n return null;\n};\n\nexport const getOneformBFFUrl = (): string | null => {\n const oneformBFF = getOneformBFFServiceConfig();\n\n\n if (!oneformBFF) {\n return handleErrorInRetrievingExternalConfig();\n }\n\n return oneformBFF.urlOrigin + oneformBFF.urlPath;\n};\n","import { getOneformBFFCdnServiceConfig } from 'src/feature-app';\n\nexport interface OneformBFFCustomConfig {\n 'X-Api-Key'?: string\n}\n\nconst handleErrorInRetrievingExternalConfig = (): null => {\n console.error('Error retrieving OneForm BFF service config provider.');\n return null;\n};\n\nexport const getOneformBFFApiKey = () => {\n const oneformBFF = getOneformBFFCdnServiceConfig();\n const customConfig:OneformBFFCustomConfig = oneformBFF.customConfig;\n\n if (!oneformBFF) {\n return handleErrorInRetrievingExternalConfig();\n }\n\n return customConfig['X-Api-Key'];\n};\n","import { getOneformBFFCdnServiceConfig } from 'src/feature-app';\n\nconst handleErrorInRetrievingExternalConfig = (): null => {\n console.error('Error retrieving OneForm BFF CDN service config provider.');\n return null;\n};\n\nexport const getOneformBFFCdnUrl = (): string | null => {\n const oneformBFFCdn = getOneformBFFCdnServiceConfig();\n\n if (!oneformBFFCdn) {\n return handleErrorInRetrievingExternalConfig();\n }\n\n return (testProduction() ? oneformBFFCdn.urlOrigin.replace('pre-', '') : oneformBFFCdn.urlOrigin) + oneformBFFCdn.urlPath;\n};\n\nconst testProduction = () => {\n const urlParams = new URLSearchParams(window.location.search);\n return urlParams.get('test') && urlParams.get('test').includes('PROD');\n}","import { getOneformBFFCdnServiceConfig } from 'src/feature-app';\n\nexport interface OneformBFFCdnCustomConfig {\n 'X-Api-Key'?: string \n}\n\nconst handleErrorInRetrievingExternalConfig = (): null => {\n console.error('Error retrieving OneForm BFF CDN service config provider.');\n return null;\n};\n\nexport const getOneformBFFCdnApiKey = () => {\n const oneformBFF = getOneformBFFCdnServiceConfig();\n const customConfig:OneformBFFCdnCustomConfig = oneformBFF.customConfig;\n \n if (!oneformBFF) {\n return handleErrorInRetrievingExternalConfig();\n }\n\n return customConfig['X-Api-Key'];\n};\n","import { getSentryHub } from 'src/feature-app/sentry';\n\nexport const reportErrorSentry = (error: any) => {\n const hub = getSentryHub();\n hub.run((currentHub) => {\n currentHub.withScope((scope) => {\n currentHub.captureException(error);\n });\n });\n};\n","import { CTA } from '@volkswagen-onehub/components-core';\nimport { ArrowUp } from 'src/icons-core-imports';\nimport React from 'react';\nimport { useOneFormContext } from 'src/feature-app';\nimport { useTrackingManager } from 'src/feature-app/hooks/use-tracking-manager';\n\n\nexport const AnteriorCTA = () => {\n \n const { handlePreviousStep } = useOneFormContext();\n const trackingManager = useTrackingManager();\n\n return (\n \n {\n trackingManager.trackFormStepButtonClick({\n contentId: 'Anterior',\n });\n handlePreviousStep(e);\n }}\n tag=\"button\"\n emphasis=\"secondary\" \n size=\"small\"\n icon={}\n >\n Anterior\n \n\n );\n};\n","import { FeatureAppEnvironment } from '@feature-hub/core';\nimport { CloseHandleV2, FocusLayerSizeV2, LayerManagerV2 } from '@volkswagen-onehub/layer-manager';\nimport React, { useEffect, useState } from 'react';\nimport { useStore } from 'react-redux';\nimport { AnyAction, Store } from 'redux';\nimport { LayerManagerWrapper } from 'src/feature-app';\n\nimport {\n Container,\n ContainerGutter,\n ContainerPadding,\n CTA,\n Text,\n TokenTextAppearance,\n} from '@volkswagen-onehub/components-core';\n\nexport const AvisoIslasCanarias = ({ close }: { close: CloseHandleV2 }) => {\n const [href, setHref] = useState(null);\n const [copy, setCopy] = useState(null);\n\n const store = useStore();\n\n const { formData } = store.getState();\n\n useEffect(() => {\n if (formData.fields.formName === 'cita-posventa') {\n setHref('https://www.vwcanarias.com/es/cita-previa.html');\n setCopy('Para pedir cita en un Servicio Oficial de las islas, visita la web de Volkswagen Canarias y haz la reserva desde ahí.');\n } else {\n setHref('https://cita.vwcanarias.com/');\n setCopy('Para pedir cita en un punto de venta de las islas, visita la web de Volkswagen Canarias y haz la reserva desde ahí.');\n }\n }, []);\n\n return (\n \n \n \n ¿Estás en las Islas Canarias?\n \n \n {copy}\n \n \n \n \n Ir a Volkswagen Canarias\n \n {\n e.preventDefault();\n close({}, {}, {});\n }}\n >\n Seguir en esta página\n \n \n \n );\n};\n\nexport const renderAvisoIslasCanariasLayer = (\n store: Store,\n env: FeatureAppEnvironment,\n layerManager: LayerManagerV2\n) => {\n\n const render = (state: any, close: CloseHandleV2) => {\n return (\n \n \n \n );\n };\n\n layerManager.openFocusLayer(\n render,\n {},\n { size: FocusLayerSizeV2.B, userCloseable: true }\n );\n};\n","import React, { useEffect, useState } from 'react';\nimport { useFormContext } from 'react-hook-form';\nimport { MultipleCTASelection } from '.';\nimport { useOneFormContext } from 'src/feature-app/OneForm';\nimport { useSelector } from 'react-redux';\nimport { OneFormState } from 'src/types';\nimport { contactoOptionsTurismos, contactoOptionsComerciales } from 'src/feature-app/InputsValues/CTAsObjects';\nimport { useIsComerciales } from 'src/feature-app/hooks';\n\nexport function CanalDeContacto() {\n const { register, errors } = useFormContext();\n const [errorContacto, setErrorContacto] = useState(false);\n const [contacto, setContacto] = useState('Arteon');\n const { fields } = useSelector((state: OneFormState) => state.formData);\n const { error, setError } = useOneFormContext();\n const isComerciales = useIsComerciales();\n\n useEffect(() => {\n if (fields.contacto) {\n setContacto(fields.contacto);\n }\n }, []);\n\n useEffect(() => {\n if (error) {\n !contacto ? setErrorContacto(true) : setErrorContacto(false);\n }\n }, [error]);\n\n useEffect(() => {\n if (errors.contacto) {\n setErrorContacto(true);\n } else {\n setErrorContacto(false);\n }\n }, [errors]);\n\n function handleChange(event: any) {\n const newContacto = event.currentTarget.value;\n setContacto(newContacto);\n if (newContacto !== '') setErrorContacto(false);\n }\n\n return ;\n}\n","import { Breakpoints, Layout, styled } from '@volkswagen-onehub/components-core';\nimport React, { useEffect, useLayoutEffect, useRef, useState } from 'react';\nimport { CSSTransition } from 'react-transition-group';\nimport { Points } from 'src/types';\n\nconst InnerCardContainer = styled.div`\n background-color: rgba(0, 0, 0, 0.5);\n bottom: 0;\n height: 100%;\n left: 0;\n position: fixed;\n right: 0;\n width: 100%;\n z-index: 21;\n`;\n\nconst AnimatedCard = styled.div`\n height: 100%;\n width: 100%;\n &.alert-enter,\n &.alert-appear {\n transform: translateY(100%);\n }\n &.alert-enter-active,\n &.alert-appear-active {\n transform: translateY(0);\n transition: transform 400ms;\n }\n &.alert-exit {\n transform: translateY(0%);\n }\n &.alert-exit-active {\n transform: translateY(100%);\n transition: transform 400ms;\n }\n`;\n\nconst CloseDiv = styled.button`\n width: 100%;\n display: flex;\n justify-content: center;\n background: #001e50;\n height: 35px;\n border: none;\n cursor: pointer;\n left: 50%;\n outline: none;\n position: fixed;\n top: 0;\n transform: translate(-50%, 0) translateY(${(props) => props.translateY}px);\n z-index: 22;\n\n &.close-enter {\n top: 100%;\n }\n &.close-enter-active {\n top: 0%;\n transition: top 400ms;\n\n /* transform: translate(-50%, 0) translateY(${(props) => props.translateY}px);\n transition: transform 400ms; */\n }\n &.close-exit {\n transform: translateY(0%);\n }\n &.close-exit-active {\n transform: translateY(100%);\n transition: transform 400ms;\n }\n`;\n\nconst Marker = styled.div`\n height: 4px;\n width: 44px;\n border-radius: 2px;\n background-color: #ffffff;\n margin-top: 1.5vh;\n opacity: 0;\n &.marker-enter {\n opacity: 0.1;\n transform: scale(1.5);\n display: block;\n }\n &.marker-enter-active {\n opacity: 1;\n transform: scale(1);\n transition: transform 200ms, opacity 200ms ease-in;\n }\n &.marker-enter-done {\n opacity: 1;\n }\n`;\n\nconst TopBar = styled.div`\n height: 32px;\n width: 100%;\n background-color: #001e50;\n position: sticky;\n top: 0;\n z-index: 3;\n`;\n\ninterface translateYProps {\n translateY: number;\n showAllCardsMobile: boolean;\n}\n//max-height: 100vh;\n//overflow-y: scroll;\nconst InnerCard = styled.div`\n background-color: #001e50;\n border-radius: 12px 12px 0px;\n height: 100%;\n left: 50%;\n\n position: absolute;\n top: 53%;\n transform: translate(-50%, -50%) translateY(${(props) => props.translateY}px);\n width: 100%;\n z-index: 1000;\n`;\n\ninterface CardProps {\n children: React.ReactNode;\n closeCard: () => void;\n showCard: boolean;\n selectedPoint: Points;\n showAllCardsMobile: boolean;\n}\n\nconst fullLayout = [{ name: 'a', columns: 24 }];\nconst layoutWithMargins = [\n { name: '.', columns: 2 },\n { name: 'a', columns: 20 },\n { name: '.', columns: 2 },\n];\n\nexport function Card(props: CardProps) {\n const { closeCard, children, showCard, selectedPoint, showAllCardsMobile } = props;\n const [isCardOpen, setIsCardOpen] = useState(false);\n const [animateCarousell, setAnimateCarousell] = useState(false);\n const [initialValue, setInitialValue] = useState(null);\n const [translateY, setTranslateY] = useState(null);\n const [initialY, setInitialY] = useState(null);\n const cardRef = useRef(null);\n\n useEffect(() => {\n if (selectedPoint && !showAllCardsMobile) {\n if (window.innerHeight > 400) {\n setTranslateY(window ? window.innerHeight - 420 : 344);\n setInitialY(window ? window.innerHeight - 420 : 344);\n } else {\n setTranslateY(0);\n setInitialY(0);\n }\n } else {\n setTranslateY(0);\n setInitialY(0);\n }\n }, [selectedPoint, showAllCardsMobile]);\n\n useEffect(() => {\n setIsCardOpen(true);\n // document.body.style.overflow = 'hidden';\n return () => {\n // document.body.style.overflow = 'visible';\n };\n }, []);\n\n useLayoutEffect(() => {\n if (isCardOpen) setTimeout(() => setAnimateCarousell(true), 0);\n }, [isCardOpen]);\n\n const handleTouchStart = (e: React.TouchEvent) => {\n e.preventDefault();\n const x = e.nativeEvent.touches[0].clientY;\n setInitialValue(x);\n };\n\n const handleTouchEnd = (e: React.TouchEvent) => {\n e.preventDefault();\n const finalValue = e.nativeEvent.changedTouches[0].clientY;\n finalValue < (initialValue - initialY) * 6 ? more() : less();\n\n setInitialValue(null);\n };\n const handleMoveStartCard = (e: React.TouchEvent) => {\n e.preventDefault();\n if (!initialValue) {\n return;\n }\n\n const y = e.nativeEvent.changedTouches[0].clientY;\n const result = y - initialValue;\n\n result >= 0 ? setTranslateY(result + initialY) : setTranslateY(initialY);\n };\n\n const more = () => {\n setTranslateY(initialY);\n };\n\n const less = () => {\n closeCard();\n setIsCardOpen(false);\n setAnimateCarousell(false);\n };\n\n const handleOnClickMap = (e: any) => {\n const innerCard = document.getElementById('inner-card-container');\n\n if (e.target != innerCard && !innerCard.contains(e.target) && !showAllCardsMobile) {\n closeCard();\n setIsCardOpen(false);\n setAnimateCarousell(false);\n }\n };\n\n return (\n <>\n \n {\n handleTouchStart(e);\n }}\n onTouchEnd={(e) => {\n handleTouchEnd(e);\n }}\n onTouchMove={(e) => {\n handleMoveStartCard(e);\n }}\n translateY={translateY}\n showAllCardsMobile={showAllCardsMobile}\n >\n \n \n \n \n \n {\n e.preventDefault;\n handleOnClickMap(e);\n }}\n >\n \n \n \n {\n e.preventDefault();\n e.stopPropagation();\n }}\n onTouchStart={(e) => {\n handleTouchStart(e);\n }}\n onTouchEnd={(e) => {\n handleTouchEnd(e);\n }}\n onTouchMove={(e) => {\n handleMoveStartCard(e);\n }}\n />\n \n {children}\n \n \n \n \n \n \n );\n}\n","import { styled } from '@volkswagen-onehub/components-core';\nimport React, { useRef, ReactElement, useEffect, useState } from 'react';\nimport Slider from 'react-slick';\n\nconst CSSDiv = styled.div`\n /* Slider */\n .slick-slider {\n position: relative;\n\n display: block;\n box-sizing: border-box;\n\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n\n -webkit-touch-callout: none;\n -khtml-user-select: none;\n -ms-touch-action: pan-y;\n touch-action: pan-y;\n -webkit-tap-highlight-color: transparent;\n }\n\n .slick-list {\n position: relative;\n\n display: block;\n overflow: hidden;\n\n margin: 0;\n padding: 0;\n }\n .slick-list:focus {\n outline: none;\n }\n .slick-list.dragging {\n cursor: pointer;\n cursor: hand;\n }\n\n .slick-slider .slick-track,\n .slick-slider .slick-list {\n -webkit-transform: translate3d(0, 0, 0);\n -moz-transform: translate3d(0, 0, 0);\n -ms-transform: translate3d(0, 0, 0);\n -o-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n\n .slick-track {\n position: relative;\n top: 0;\n left: 0;\n\n display: block;\n }\n .slick-track:before,\n .slick-track:after {\n display: table;\n\n content: '';\n }\n .slick-track:after {\n clear: both;\n }\n .slick-loading .slick-track {\n visibility: hidden;\n }\n\n .slick-slide {\n display: none;\n float: left;\n\n height: 100%;\n min-height: 1px;\n }\n [dir='rtl'] .slick-slide {\n float: right;\n }\n .slick-slide img {\n display: block;\n }\n .slick-slide.slick-loading img {\n display: none;\n }\n .slick-slide.dragging img {\n pointer-events: none;\n }\n .slick-initialized .slick-slide {\n display: block;\n }\n .slick-loading .slick-slide {\n visibility: hidden;\n }\n .slick-vertical .slick-slide {\n display: block;\n\n height: auto;\n\n border: 1px solid transparent;\n }\n .slick-arrow.slick-hidden {\n display: none;\n }\n\n /* Slider */\n .slick-slider {\n position: relative;\n\n display: block;\n box-sizing: border-box;\n\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n\n -webkit-touch-callout: none;\n -khtml-user-select: none;\n -ms-touch-action: pan-y;\n touch-action: pan-y;\n -webkit-tap-highlight-color: transparent;\n }\n\n .slick-list {\n position: relative;\n\n display: block;\n overflow: hidden;\n\n margin: 0;\n padding: 0;\n }\n .slick-list:focus {\n outline: none;\n }\n .slick-list.dragging {\n cursor: pointer;\n cursor: hand;\n }\n\n .slick-slider .slick-track,\n .slick-slider .slick-list {\n -webkit-transform: translate3d(0, 0, 0);\n -moz-transform: translate3d(0, 0, 0);\n -ms-transform: translate3d(0, 0, 0);\n -o-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n\n .slick-track {\n position: relative;\n top: 0;\n left: 0;\n\n display: block;\n }\n .slick-track:before,\n .slick-track:after {\n display: table;\n\n content: '';\n }\n .slick-track:after {\n clear: both;\n }\n .slick-loading .slick-track {\n visibility: hidden;\n }\n\n .slick-slide {\n display: none;\n float: left;\n\n height: 100%;\n min-height: 1px;\n }\n [dir='rtl'] .slick-slide {\n float: right;\n }\n .slick-slide img {\n display: block;\n }\n .slick-slide.slick-loading img {\n display: none;\n }\n .slick-slide.dragging img {\n pointer-events: none;\n }\n .slick-initialized .slick-slide {\n display: block;\n }\n .slick-loading .slick-slide {\n visibility: hidden;\n }\n .slick-vertical .slick-slide {\n display: block;\n\n height: auto;\n\n border: 1px solid transparent;\n }\n .slick-arrow.slick-hidden {\n display: none;\n }\n`;\nconst OfferPadding = styled.div`\n padding: 0 16px;\n`;\ninterface CarouselProps {\n renderList: (list: any) => JSX.Element[];\n list: any;\n}\n\nexport const CarouselComponent = (props: CarouselProps) => {\n const { renderList, list } = props;\n\n //carousel thigs\n\n const sliderRef = useRef(null);\n const childrenRef = useRef(null);\n\n const settings = {\n className: 'center',\n infinite: false,\n centerMode: true,\n centerPadding: '6%',\n slidesToShow: 1,\n swipe: true,\n speed: 500,\n arrows: false,\n };\n\n return (\n \n \n {renderList(list)}\n \n \n );\n};\n","import { Close } from 'src/icons-core-imports';\nimport React from 'react';\nimport { useSelector } from 'react-redux';\nimport { OneFormState } from 'src/types';\nimport { useOneFormContext } from 'src/feature-app';\nimport { useTrackingManager } from 'src/feature-app/hooks/use-tracking-manager';\n\n\nexport const CloseButton = () => {\n const { handleAreYouSureLayer } = useOneFormContext();\n const { screenIndex } = useSelector(\n (state: OneFormState) => state.formInfo\n );\n\n const trackingManager = useTrackingManager();\n\n return (\n {\n e.preventDefault();\n trackingManager.trackFormCloseClick(\n {\n contentId: 'Cerrar',\n },\n { FormStart: screenIndex === 0 ? true : false }\n );\n handleAreYouSureLayer();\n }}\n >\n \n \n );\n};\n","import { styled } from '@volkswagen-onehub/components-core';\nimport React, { useEffect, useState } from 'react';\nimport { useFormContext } from 'react-hook-form';\nimport { useDispatch } from 'react-redux';\nimport { InputError, TextInputExtended } from 'src/components';\n\n\nconst Wrapper = styled.div`\n width: 100%;\n margin-top: 12px;\n label {\n width: 100%;\n @media screen and (min-width: 960px) {\n width: 170px;\n }\n }\n`;\n\ninterface CodigoPostalProps {\n setFieldValue?: boolean;\n}\n\nexport const CodigoPostal = ({ setFieldValue = false }: CodigoPostalProps) => {\n const { register } = useFormContext();\n\n // PostalCode\n const [inputValuePostalCode, setInputValuePostalCode] = useState('');\n const [pristinePostalCode, setPristinePostalCode] = useState(true);\n const [errorPostalCode, setErrorPostalCode] = useState(false);\n const regExpPostalCode = /\\d{5}/gi;\n const dispatch = useDispatch();\n\n const handleChangePostalCode = (e: any) => {\n if (setFieldValue) {\n dispatch({ type: 'UPDATE_FIELDS', payload: { ['postalCode']: e.target.value } });\n }\n setInputValuePostalCode(e.target.value);\n setPristinePostalCode(false);\n };\n\n useEffect(() => {\n if (!pristinePostalCode && inputValuePostalCode.match(regExpPostalCode) === null) {\n setErrorPostalCode(true);\n } else {\n setErrorPostalCode(false);\n }\n }, [inputValuePostalCode, pristinePostalCode]);\n\n return (\n \n handleChangePostalCode(e)}\n required\n maxLength={5}\n />\n {errorPostalCode && Solo se aceptan números}\n \n );\n};\n","import {\n Breakpoints,\n BreakpointWrapper,\n Container,\n ContainerGutter,\n ContainerPadding,\n CTA,\n Spinner,\n styled,\n Text,\n TextAlignment,\n TokenTextAppearance,\n} from '@volkswagen-onehub/components-core';\nimport { Alert } from 'src/icons-core-imports';\n\nimport { CloseHandleV2 } from '@volkswagen-onehub/layer-manager';\nimport React, { useEffect, useState, useCallback } from 'react';\nimport { useDispatch, useStore } from 'react-redux';\nimport { Store } from 'redux';\nimport {\n createNoDmsSlotAndAssessor,\n getFranjaAndDayFrom,\n weekDay_DayNumber_De_Month,\n useFeatureAppConfig,\n weekDay_Day_Hour,\n} from 'src/feature-app';\nimport { DealersData, OneFormState, Slot, Horario } from 'src/types';\n\nconst Content = styled.div`\n background-color: white;\n padding: 44px 31px;\n flex: auto;\n text-align: center;\n width: 100%;\n @media screen and (min-width: 560px) {\n padding: 52px 46px;\n }\n @media screen and (min-width: 960px) {\n padding: var(--size-grid001);\n }\n`;\n\nconst CTAWrapper = styled.div`\n display: flex;\n flex-wrap: wrap;\n text-align: left;\n > div {\n text-align: left;\n }\n > button {\n @media screen and (min-width: 560px) {\n width: auto;\n }\n }\n`;\n\ninterface InvalidFormProps {\n notSavedField?: string;\n closeLayerCallback?: CloseHandleV2;\n}\n\nexport const InvalidForm = (props: InvalidFormProps) => {\n const { notSavedField, closeLayerCallback } = props;\n return (\n \n \n ¿Quieres conservar estos últimos cambios?\n \n \n \n Si es así, necesitamos que guardes los cambios que has hecho {notSavedField} antes de confirmar tu cita.\n \n \n {\n e.preventDefault();\n closeLayerCallback({}, {}, {});\n }}\n stretchContent\n >\n Entendido\n \n \n \n \n );\n};\n\ninterface loadingSreenProps {\n isleads?: boolean;\n copy?: string;\n}\n\nexport const LoadingScreen = (props: loadingSreenProps) => {\n return (\n \n \n {props.copy ? {props.copy} : Enviando tu petición}\n \n );\n};\n\ninterface KoScreenProps {\n retrySubmit: (e: any) => void;\n closeLayerCallback?: CloseHandleV2;\n title?:string;\n bodyCopy?:string;\n isLEM?: boolean;\n hideSecondCTA?: boolean;\n}\n\nexport const KoScreen = (props: KoScreenProps) => {\n const { retrySubmit, closeLayerCallback, title, bodyCopy, isLEM, hideSecondCTA } = props;\n\n return (\n \n \n
\n \n
\n \n {title? title : 'Uy, algo ha pasado'}\n \n \n \n {bodyCopy? bodyCopy : 'Por alguna razón no hemos podido recoger tus datos. ¿Lo intentamos de nuevo?'}\n \n \n \n \n {\n e.preventDefault();\n retrySubmit(e);\n closeLayerCallback({}, {}, {});\n }}\n stretchContent\n >\n Reintentar\n \n { hideSecondCTA ? null :\n isLEM ? (\n \n Ir a la web\n \n ) : (\n {\n e.preventDefault();\n closeLayerCallback({}, {}, {});\n }}\n stretchContent\n >\n Seguir navegando\n \n )\n }\n \n \n \n \n {\n e.preventDefault();\n retrySubmit(e);\n closeLayerCallback({}, {}, {});\n }}\n >\n Reintentar\n \n { hideSecondCTA ? null :\n isLEM ? (\n
\n \n Ir a la web\n \n
\n ) : (\n
\n {\n e.preventDefault();\n closeLayerCallback({}, {}, {});\n }}\n >\n Seguir navegando\n \n
\n )\n }\n
\n
\n \n \n \n
\n );\n};\n\ninterface IntermitenciaDMSKoProps {\n retrySubmit: (e: any) => void;\n closeLayerCallback?: CloseHandleV2;\n}\n\nexport const IntermitenciaDMSKo = (props: IntermitenciaDMSKoProps) => {\n const { retrySubmit, closeLayerCallback } = props;\n const [dmsFailed, setDmsFailed] = useState(false);\n const store: Store = useStore();\n const dispatch = useDispatch();\n const config = useFeatureAppConfig();\n\n const [day, setDay] = useState(null);\n const [franjaHoraria, setFranjaHoraria] = useState(null);\n const [name, setName] = useState(null);\n const [selectedPoint, setSelectedPoint] = useState(null);\n const { horario }: { horario: Horario } = store.getState().formData.fields;\n\n useEffect(() => {\n const { sendDmsFailed } = store.getState().formInfo;\n let { slot, dealer }: { slot: Slot; dealer: DealersData } = store.getState().formData.fields;\n\n setDmsFailed(sendDmsFailed);\n const { franjaHoraria } = getFranjaAndDayFrom(slot.from);\n\n setDay(weekDay_DayNumber_De_Month(slot.from));\n setFranjaHoraria(franjaHoraria.toLowerCase());\n setName(dealer.name);\n setSelectedPoint(slot);\n }, []);\n\n const handleShowSlots = useCallback((): string | null => {\n let { slot }: { slot: Slot } = store.getState().formData.fields;\n\n const finalSlot = getFinalSlot(slot.from);\n\n return finalSlot ? finalSlot : null;\n }, []);\n\n const getFinalSlot = (from: number) => {\n const momentSlot = weekDay_Day_Hour(from);\n const capitalizedSlot = momentSlot.charAt(0).toUpperCase() + momentSlot.slice(1);\n return capitalizedSlot.replace('-', ' a las ').concat('h');\n };\n\n const createNoDmsSlot = async (e: any) => {\n let { slot, dealer }: { slot: Slot; dealer: DealersData } = store.getState().formData.fields;\n dealer = {\n ...dealer,\n dmsInfo: {\n ...dealer.dmsInfo,\n dmsAvailable: false,\n },\n };\n const { franjaHoraria, day } = getFranjaAndDayFrom(slot.from);\n const { slot: newSlot, assessor } = createNoDmsSlotAndAssessor(franjaHoraria, day);\n dispatch({ type: 'UPDATE_FIELDS', payload: { slot: newSlot, assessor, dealer } });\n\n retrySubmit(e);\n };\n return (\n \n \n \n No hemos podido confirmar tu cita para el{' '}\n {handleShowSlots()}\n \n \n \n ¿Quieres que {name} se ponga en contacto contigo para\n cerrar tu cita el {day} por la {franjaHoraria}?\n \n \n {\n e.preventDefault();\n await createNoDmsSlot(e);\n closeLayerCallback({}, {}, {});\n }}\n stretchContent\n >\n Consultar con mi taller\n \n {\n config.trigger === 'cita-posventa-dealer' ? null : (\n
\n {\n e.preventDefault();\n closeLayerCallback({}, {}, {});\n }}\n stretchContent\n >\n Buscar una nueva cita\n \n
\n )\n }\n
\n \n \n
\n );\n};\n","import {\n Text,\n styled,\n Container,\n ContainerGutter,\n CTA,\n TokenTextAppearance,\n} from '@volkswagen-onehub/components-core';\nimport React from 'react';\nimport { useSelector } from 'react-redux';\nimport { OneFormState } from 'src/types';\n\nconst PaddingWrapper = styled.div`\n padding-top: 32px;\n`;\n\nconst TextColor = styled.span`\n color: #6a767d;\n`;\n\nconst linkLegalesEurocopa = 'https://crm.volkswagen.es/cms/2021/legal_concurso_eurocopa_2021.pdf';\ninterface LegalesProps {\n showBasesLegales?: boolean;\n}\nexport const LegalFullScreenSinConsentmientos = (props: LegalesProps) => {\n const { hideLegal, customLegal } = useSelector((state: OneFormState) => state.formInfo);\n return (\n \n \n \n Texto legal de Volkswagen\n \n \n \n El responsable de tus datos es Volkswagen Group España Distribución, S.A.U. \n Vamos a utilizar tus datos para realizar un control de calidad sobre los productos \n y servicios contratados, mediante la realización de la presente encuesta de satisfacción, \n y contactarte para resolución de incidencias, reclamaciones o quejas. Tus datos podrán ser \n comunicados a las empresas del grupo para las finalidades de controlar la calidad de los productos \n y servicios, así como contactarte para resolución de incidencias, reclamaciones o quejas.\n \n \n \n \n En el supuesto de haber consentido, tus datos y las respuestas de la presente encuesta \n de satisfacción serán comunicadas al Concesionario. Tienes derecho a oponerte al tratamiento, \n limitar el mismo, acceder, rectificar, suprimir los datos y ejercer tu derecho a portabilidad, \n mediante el envío de un correo electrónico a:{' '}\n \n atencioncliente@volkswagen.es\n \n .\n \n \n \n \n Puedes consultar la información adicional en la{' '}\n \n política de privacidad\n \n .\n \n \n {props.showBasesLegales ? (\n \n \n Consulta las{' '}\n \n Bases Legales\n {' '}\n de la promoción.\n \n \n ) : null}\n \n \n );\n};\n","import {\n CTA,\n styled,\n Text,\n TokenTextAppearance,\n TokenTextColor\n} from '@volkswagen-onehub/components-core';\nimport React, { useState, useEffect } from 'react';\nimport { CTAsSiNo } from 'src/feature-app';\nimport { useFormContext } from 'react-hook-form';\nimport { useDispatch } from 'react-redux';\nimport { InputError } from 'src/components';\nimport { CustomSwitch } from '../inputs';\nimport { useIsComerciales } from 'src/feature-app/hooks';\nimport { Info } from 'src/icons-core-imports';\n\n\nconst CTAsWrapper = styled.div`\n .error-field {\n width: fit-content !important;\n }\n \n > button {\n width: 81px;\n height: 33px;\n &:first-of-type {\n margin-right: 44px;\n }\n }\n \n`;\n\nconst PaddingWrapper = styled.div<{ noCompra?: boolean }>`\n width: 100%;\n padding-bottom: 32px;\n`;\n\nconst QuestionWrapper = styled.div`\n width: 100%;\n display: flex;\n justify-content: space-between;\n flex-wrap: nowrap;\n`;\n\nconst ItemWrapper = styled.div`\n padding-bottom: 44px;\n`;\n\ninterface InfoWrapperProps {\n themeColor?: 'main' | 'inverted';\n}\n\nconst InfoWrapper = styled.div`\n margin-left: 16px;\n cursor: pointer;\n svg {\n fill: ${(props) => (props.themeColor === 'main' ? '#001E50' : '#ffffff')};\n }\n`;\n\n\nexport const LegalItem = ({ title, onClick, themeColor, name }: any) => {\n const [currentValue, setCurrentValue] = useState(null);\n const { register, setValue, errors } = useFormContext();\n const [isSelected, setIsSelected] = useState(null);\n const getValue = (isSelected: boolean) => isSelected ? 'PERMITE' : 'NO INFORMADO';\n const isComerciales = useIsComerciales();\n const dispatch = useDispatch();\n\n useEffect(() => {\n dispatch({ type: 'UPDATE_FIELDS', payload: { [name]: getValue(isSelected) } });\n }, [isSelected]);\n\n useEffect(() => {\n !isComerciales && setIsSelected(false);\n }, [])\n\n function checkCurrentValue(label: string, name: string) {\n const value = label === 'Sí' ? 'PERMITE' : 'NO PERMITE';\n setCurrentValue(label);\n dispatch({ type: 'UPDATE_FIELDS', payload: { [name]: value } });\n setValue(name, value);\n }\n\n return (\n \n \n \n {title}\n \n \n \n \n \n {isComerciales ? (\n \n {\n CTAsSiNo.map((cta: { label: string }, index: number) => (\n {\n register(ref, { required: true });\n }}\n onClick={\n (e) => {\n e.preventDefault();\n checkCurrentValue(cta.label, name);\n }\n }\n size={'small'}\n >\n {cta.label}\n \n ))\n }\n {errors[name] ? Este campo es obligatorio : null}\n \n ) : (\n \n \n {isSelected ? 'Aceptado' : 'Aceptar'}\n \n )}\n \n );\n};\n","import {\n Container,\n ContainerGutter,\n CTA,\n styled,\n Text,\n TokenTextAppearance,\n} from '@volkswagen-onehub/components-core';\nimport React from 'react';\nimport { useSelector } from 'react-redux';\nimport { useIsComerciales } from 'src/feature-app/hooks';\nimport { OneFormState } from 'src/types';\n\nconst PaddingWrapper = styled.div`\n padding-top: 32px;\n`;\n\nconst TextColor = styled.span`\n color: #6a767d;\n`;\n\nconst linkLegalesEurocopa = 'https://crm.volkswagen.es/cms/2021/legal_concurso_eurocopa_2021.pdf';\n\n\ninterface LegalesProps {\n showBasesLegales?: boolean;\n showBasesLegalesTestID2023?: boolean;\n}\nexport const Legales = (props: LegalesProps) => {\n const isComerciales = useIsComerciales();\n return isComerciales ? : ;\n};\n\nconst LegalesTurismos = (props: LegalesProps) => {\n const { hideLegal, customLegal } = useSelector((state: OneFormState) => state.formInfo);\n return (\n \n {customLegal ? customLegal : null}\n {hideLegal ? null : (\n \n \n Texto legal de Volkswagen\n \n \n \n Te informamos de que tus datos personales serán tratados por Volkswagen Group España Distribución S.A.U.,\n en calidad de responsable del tratamiento, con la finalidad de atender tus consultas y solicitudes, realizar un control\n de calidad sobre los productos y servicios solicitados, realizar encuestas de opinión y estudios de mercado con fines\n estadísticos; y, en caso de que nos hayas dado tu consentimiento expreso, para las finalidades descritas en los consentimientos adicionales.\n Informarte que puedes ejercer los derechos que te confiere la normativa de protección de datos mediante solicitud escrita a{' '}\n \n atencioncliente@volkswagen.es\n \n .\n \n \n \n \n Puedes consultar la información adicional sobre el tratamiento de tus datos en nuestra{' '}\n \n política de privacidad\n \n .\n \n \n \n )}\n \n );\n};\nconst LegalesComerciales = (props: LegalesProps) => {\n const { hideLegal } = useSelector((state: OneFormState) => state.formInfo);\n return (\n \n {hideLegal ? null : (\n \n \n Texto legal de Volkswagen\n \n \n \n Te informamos de que tus datos personales serán tratados por Volkswagen Group España Distribución S.A.U.,\n en calidad de responsable del tratamiento, con la finalidad de poder cursar tu petición y, en caso de que nos hayas\n dado tu consentimiento expreso, para las finalidades descritas en los consentimientos adicionales. Informarte que\n puedes ejercer los derechos que te confiere la normativa de protección de datos mediante solicitud escrita a{' '}\n \n atencioncliente@volkswagen-comerciales.es\n \n .\n \n \n \n \n Puedes consultar la información adicional sobre el tratamiento de tus datos en nuestra{' '}\n \n política de privacidad\n \n .\n \n \n \n )}\n \n );\n};\n","import React from 'react';\nimport {\n Container,\n ContainerGutter,\n CTA,\n styled,\n Text,\n TokenTextAppearance,\n} from '@volkswagen-onehub/components-core';\nimport { useIsComerciales } from 'src/feature-app/hooks';\n\nconst CTAlinkWhithe = styled.span`\n a {\n color: #ffffff;\n }\n`;\n\ninterface legalesFormatoLayerProps {\n noPadding?: boolean;\n title?: boolean;\n showBasesLegales?: boolean;\n promocion?: boolean;\n hrefBasesLegales?: string;\n}\nconst Wrapper = styled.div`\n padding-top: ${(props) => (props.noPadding ? null : '72px')};\n padding-bottom: ${(props) => (props.noPadding ? null : '52px')};\n`;\n\nexport const LegalesFormatoLayer = (props: legalesFormatoLayerProps) => {\n const isComerciales = useIsComerciales();\n\n return isComerciales ? : ;\n};\nconst LegalesFormatoLayerTurismos = (props: legalesFormatoLayerProps) => {\n return (\n \n \n {props.title ? (\n \n Texto legal de Volkswagen\n \n ) : null}\n\n \n {!props.promocion ? (\n <>\n Te informamos de que tus datos personales serán tratados por Volkswagen Group España Distribución S.A.U.,\n en calidad de responsable del tratamiento, con la finalidad de atender tus consultas y solicitudes, realizar un control\n de calidad sobre los productos y servicios solicitados, realizar encuestas de opinión y estudios de mercado con fines\n estadísticos; y, en caso de que nos hayas dado tu consentimiento expreso, para las finalidades descritas en los consentimientos adicionales.\n Informarte que puedes ejercer los derechos que te confiere la normativa de protección de datos mediante solicitud escrita a{' '}\n \n ) : (\n <>\n Te informamos de que tus datos personales serán tratados por Volkswagen Group España Distribución S.A.U.,\n en calidad de responsable del tratamiento, con la finalidad de gestionar tu participación en la Promoción y, en el caso que lo consientas, para los fines comerciales y/o perfilado según lo indicado en el propio consentimiento.\n Informarte que puedes ejercer los derechos que te confiere la normativa de protección de datos mediante solicitud escrita a{' '}\n \n )}\n \n \n atencioncliente@volkswagen.es\n \n \n .\n \n \n Puedes consultar la información adicional sobre el tratamiento de tus datos en nuestra{' '}\n \n \n política de privacidad\n \n \n .\n \n {props.showBasesLegales ? (\n \n Consulta las{' '}\n \n \n Bases Legales\n \n {' '}\n de la promoción.\n \n ) : null}\n \n \n );\n};\nconst LegalesFormatoLayerComerciales = (props: legalesFormatoLayerProps) => {\n return (\n \n \n {props.title ? (\n \n Texto legal de Volkswagen\n \n ) : null}\n\n \n Te informamos de que tus datos personales serán tratados por Volkswagen Group España Distribución S.A.U.,\n en calidad de responsable del tratamiento, con la finalidad de poder cursar tu petición y, en caso de que nos hayas\n dado tu consentimiento expreso, para las finalidades descritas en los consentimientos adicionales. Informarte que\n puedes ejercer los derechos que te confiere la normativa de protección de datos mediante solicitud escrita a{' '}\n \n \n atencioncliente@volkswagen-comerciales.es\n \n \n .\n \n \n Puedes consultar la información adicional sobre el tratamiento de tus datos en nuestra{' '}\n \n \n política de privacidad\n \n \n .\n \n \n \n );\n};\n\nexport const LegalesFastStart = (props: legalesFormatoLayerProps) => {\n return (\n \n \n {props.title ? (\n \n Texto legal de Volkswagen\n \n ) : null}\n \n Te informamos que el responsable del tratamiento de tus datos es la compañía VOLKSWAGEN GROUP ESPAÑA\n DISTRIBUCION, S.A.U., con la finalidad de atender tus consultas y solicitudes, realizar un control de calidad sobre los productos y servicios solicitados, realizar encuestas de opinión y estudios de mercado con fines estadísticos y gestionar tu participación gratuita en la Promoción Driving Experience Grandvalira comunicada durante el proceso de cita previa.\n \n \n Para más información sobre el tratamiento de los datos pulsa{' '}\n \n \n aquí\n \n \n .\n \n \n \n );\n}\n\nexport const LegalesJarama = (props: legalesFormatoLayerProps) => {\n return (\n \n \n {props.title ? (\n \n Texto legal de Volkswagen\n \n ) : null}\n \n Te informamos que el responsable del tratamiento de tus datos es la compañía VOLKSWAGEN GROUP ESPAÑA DISTRIBUCION, S.A.U., \n con la finalidad de atender tus consultas y solicitudes, realizar un control de calidad sobre los productos y servicios solicitados, \n realizar encuestas de opinión y estudios de mercado con fines estadísticos y gestionar tu participación gratuita en la Promoción Driving Experience Jarama comunicada durante el proceso de cita previa. \n \n \n Para más información sobre el tratamiento de los datos pulsa{' '}\n \n \n aquí\n \n \n .\n \n \n \n );\n}\n\n\n","import React from 'react';\nimport { useIsComerciales } from 'src/feature-app/hooks';\nimport { LssiTkmQuestionsComerciales, LssiTkmQuestionsTurismos } from '.';\n\nexport interface LssiTkmQuestionsProps {\n title: boolean;\n themeColor?: 'main' | 'inverted';\n noCompra?: boolean;\n}\n\nexport function LssiTkmQuestions(props: LssiTkmQuestionsProps) {\n const isComerciales = useIsComerciales();\n\n return isComerciales ? : ;\n}\n","import {\n Breakpoints,\n BreakpointWrapper,\n Container,\n ContainerGutter,\n ContainerPadding,\n CTA,\n Text,\n TokenTextAppearance,\n} from '@volkswagen-onehub/components-core';\nimport { CloseHandleV2, FocusLayerSizeV2, LayerManagerV2 } from '@volkswagen-onehub/layer-manager';\nimport React from 'react';\nimport { useStore } from 'react-redux';\nimport { LayerManagerWrapper, useFeatureAppEnvironment, useFeatureServices } from 'src/feature-app';\nimport { LssiTkmQuestionsProps, LegalItem } from '.';\nimport { useGetIdPerson } from 'src/feature-app';\n\nconst getLssiTitle = (isOfertas: boolean) => {\n return isOfertas ? (\n \n ¿Te gustaría recibir comunicaciones comerciales sobre productos y servicios de nuestra{' '}\n \n marca?*\n \n \n ) : (\n \n ¿Te gustaría recibir descuentos y novedades de{' '}\n \n Volkswagen?*\n \n \n );\n};\n\nconst getLssiText = (isOfertas: boolean) => {\n return isOfertas\n ? 'Te enviaremos por cualquier medio información sobre descuentos, novedades, próximos lanzamientos, invitaciones a eventos y/o promociones especiales'\n : 'Si quieres, podemos enviarte información sobre próximos lanzamientos, invitaciones a eventos y promociones especiales.';\n};\n\nconst getTmkTitle = (isOfertas: boolean) => {\n return isOfertas ? (\n \n ¿Consientes que elaboremos un perfil tuyo como usuario para poder enviarte información comercial sobre los\n productos y servicios de nuestra marca que creamos que puedan resultar más de tu interés según tus{' '}\n \n preferencias?*\n \n \n ) : (\n \n ¿Te gustaría que elaboremos un perfil tuyo para ofrecerte información comercial sobre productos y servicios de\n nuestras marcas que creamos que te puedan interesar más según tus{' '}\n \n preferencias?*\n \n \n );\n};\n\nconst getTmkText = (isOfertas: boolean) => {\n return isOfertas\n ? 'Para elaborar tu perfil utilizaremos toda aquella información que disponemos de ti derivada de tu relación con nosotros como son la tipología de productos y/o servicios contratados, así como cualquier interacción con nuestra marca. Para ello, utilizaremos tanto la información que nos hayas aportado directamente como la que nos puedan hacer llegar terceros a los que hayas consentido que nos hagan llegar esta información. Gracias a esta información seremos capaces de enviarte información comercial sobre nuestros productos y servicios que consideramos que serán de más interés para ti que las genéricas. En el caso que consientas, no recibirás comunicaciones comerciales genéricas sino lo más personalizadas posible según tus preferencias para hacer que tu experiencia con la marca sea lo más positiva posible.'\n : 'Acceder a tu perfil nos ayuda a aprender de ti para mostrarte los servicios y ofertas que más te interesan.';\n};\n\nexport const LssiTkmQuestionsComerciales = ({ title, themeColor }: LssiTkmQuestionsProps) => {\n const store = useStore();\n const idPerson = useGetIdPerson();\n const lssiPermite: boolean = idPerson?.LSSI__c === 'PERMITE';\n\n const { formName, quieroContacto } = store.getState().formData.fields;\n const layerManager = useFeatureServices()['layer-manager'] as LayerManagerV2;\n const env = useFeatureAppEnvironment();\n\n const isOfertasForm = (formName) => {\n return formName === 'callme-oferta' || formName === 'lead-oferta';\n };\n\n const handleInfoLayer = (\n key: 'lssi' | 'tmk',\n renderFn: (state: any, close: CloseHandleV2) => JSX.Element\n ) => {\n const layer = layerManager.openFocusLayer(\n renderFn,\n { body: key === 'tmk' ? getTmkText(true) : getLssiText(true) },\n { size: FocusLayerSizeV2.A, userCloseable: true }\n );\n\n return layer;\n };\n\n const renderInfo = (state: { title: string; body: string }, close: CloseHandleV2) => {\n return (\n \n \n \n \n \n \n \n {\n e.preventDefault();\n close({}, {}, {});\n }}\n size={'small'}\n >\n Entendido\n \n \n \n );\n };\n\n return (\n
\n {!lssiPermite ?\n <>\n {title && (\n <>\n \n
\n \n Y unas últimas preguntas\n \n
\n
\n \n
\n \n Y unas últimas preguntas\n \n
\n
\n \n )}\n handleInfoLayer('lssi', renderInfo)}\n themeColor={themeColor}\n name=\"lssi\"\n />\n handleInfoLayer('tmk', renderInfo)}\n themeColor={themeColor}\n name=\"tmk\"\n />\n \n :\n <>\n {title && (\n
\n \n ¿Listo para enviar?\n \n
\n )}\n \n }\n
\n\n );\n};\n","import {\n Breakpoints,\n BreakpointWrapper,\n Container,\n ContainerGutter,\n ContainerPadding,\n CTA,\n Text,\n TokenTextAppearance,\n} from '@volkswagen-onehub/components-core';\nimport { CloseHandleV2, FocusLayerSizeV2, LayerManagerV2 } from '@volkswagen-onehub/layer-manager';\nimport React from 'react';\nimport { useStore } from 'react-redux';\nimport { LayerManagerWrapper, useFeatureAppEnvironment, useFeatureServices } from 'src/feature-app';\nimport { useGetIdPerson } from 'src/feature-app/hooks';\nimport { LssiTkmQuestionsProps, LegalItem } from '.';\n\nconst infoLayerCopies = {\n lssi: {\n title: 'Estarás mejor informado.',\n body: 'Si nos das tu consentimiento desde Volkswagen Group España Distribución, S.A. como responsable de la marca Volkswagen podremos enviarte por cualquier medio, ya sea por teléfono, correo electrónico, sms o aplicaciones de mensajería instantánea información comercial lo que puede incluir, a título enunciativo, pero no limitativo, descuentos, novedades, próximos lanzamientos, invitaciones a eventos o a concursos, entre otras comunicaciones comerciales.',\n },\n tmk: {\n title: '¡Adiós mensajes genéricos!',\n body: 'Activando esta opción podremos enviarte información y ofertas personalizadas de productos y servicios adecuadas a tu perfil. Para ello nos basaremos en tu comportamiento, preferencias personales y cómo usas nuestros productos y servicios.',\n }\n};\n\nconst legalItemTitles = {\n lssi: '¿Te gustaría recibir descuentos y novedades de Volkswagen?',\n tmk: '¿Te gustaría que elaboremos un perfil tuyo para ofrecerte información comercial sobre productos y servicios de nuestras marcas que creamos que te puedan interesar más según tus preferencias?',\n};\n\nexport const LssiTkmQuestionsTurismos = ({ title, themeColor }: LssiTkmQuestionsProps) => {\n const store = useStore();\n const idPerson = useGetIdPerson();\n const lssiPermite: boolean = idPerson?.LSSI__c === 'PERMITE';\n\n const { formName, quieroContacto } = store.getState().formData.fields;\n const isLead: boolean = quieroContacto === 'true' || formName.includes('lead-');\n const env = useFeatureAppEnvironment();\n const layerManager = useFeatureServices()['layer-manager'] as LayerManagerV2;\n\n const getLegalItemTitle = (key: string) => legalItemTitles[key];\n\n const handleInfoLayer = (\n key: 'lssi' | 'tmk' ,\n renderFn: (state: any, close: CloseHandleV2) => JSX.Element\n ) => {\n const layer = layerManager.openFocusLayer(\n renderFn,\n { ...infoLayerCopies[key] },\n { size: FocusLayerSizeV2.A, userCloseable: true }\n );\n\n return layer;\n };\n\n const renderInfo = (state: { title: string; body: string }, close: CloseHandleV2) => {\n return (\n \n \n \n {state.title}\n {state.body}\n \n {\n e.preventDefault();\n close({}, {}, {});\n }}\n size={'small'}\n >\n Entendido\n \n \n \n );\n };\n\n return (\n
\n {!lssiPermite ?\n <>\n {title && (\n <>\n \n
\n \n Mantente al día\n \n
\n
\n \n
\n \n Mantente al día\n \n
\n
\n \n )}\n handleInfoLayer('lssi', renderInfo)}\n themeColor={themeColor}\n name='lssi'\n />\n handleInfoLayer('tmk', renderInfo)}\n themeColor={themeColor}\n name='tmk'\n />\n \n :\n <>\n {title && !isLead && (\n
\n \n ¿Listo para enviar?\n \n
\n )}\n {title && isLead && (\n
\n \n \n Y una última pregunta\n \n \n \n \n Y una última pregunta\n \n \n
\n )}\n \n }\n
\n );\n};\n","import { BreakpointWrapper, Breakpoints, CTA, Container, ContainerGutter, ContainerPadding, Layout, TextAlignment, TokenTextAppearance, styled } from \"@volkswagen-onehub/components-core\";\nimport { Text } from '@volkswagen-onehub/components-core';\nimport React, { useEffect } from \"react\";\nimport iconlssi from \"./iconlssi.svg\"\nimport icontmk from \"./icontmk.svg\"\nimport { useFormContext } from 'react-hook-form';\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { useOneFormContext } from \"src/feature-app\";\nimport { useWindowHeight } from \"@react-hook/window-size\";\nimport { useGetBoundingClientRect } from 'src/feature-app/hooks';\nimport { OneFormState } from \"src/types\";\n\nconst CTAsWrapper = styled.div`\n padding: var(--size-grid002) 0;\n display: flex;\n justify-content: center;\n gap: var(--size-grid001);\n width: 100%;\n @media (min-width: 960px) {\n padding: var(--size-grid001) 0;\n }\n`\nconst returnLinearGradient = (formType: string) => {\n if (formType === 'layer') {\n return 'linear-gradient(180deg, rgba(7, 29, 77, 0.5) 0%, #071D4D 77.06%);'\n } else {\n return 'linear-gradient(180deg, rgba(255, 255, 255, 0.5) -25.89%, #FFFFFF 50%)'\n }\n}\n\nconst CTAsWrapperMobile = styled.div<{ navPosition: string, formType: string }>`\n padding: ${(props) => props.navPosition === 'fixed' ? '45px 0 110px 0' : '50px 0'};\n display: flex;\n justify-content: center;\n gap: var(--size-grid001);\n position: ${(props) => props.navPosition};\n height: 130px;\n right: 0px;\n width: 100%;\n bottom: ${(props) => props.navPosition === 'fixed' ? '31px' : '-27px'};\n background: ${(props) => returnLinearGradient(props.formType)};\n`\n\ninterface ConsentQuestionProps {\n questionType: 'lssi' | 'tmk';\n}\n\nconst questions = {\n lssi: {\n title: <>¿Te gustaría recibir descuentos y novedades de Volkswagen?,\n subtitle: 'Estarás mejor informado.',\n copy: 'Si nos das tu consentimiento desde Volkswagen Group España Distribución, S.A. como responsable de la marca Volkswagen podremos enviarte por cualquier medio, ya sea por teléfono, correo electrónico, sms o aplicaciones de mensajería instantánea información comercial lo que puede incluir, a título enunciativo, pero no limitativo, descuentos, novedades, próximos lanzamientos, invitaciones a eventos o a concursos, entre otras comunicaciones comerciales.',\n icon: iconlssi,\n },\n tmk: {\n title: <>¿Te gustaría que elaboremos un perfil tuyo para ofrecerte información comercial sobre productos y servicios de nuestras marcas que creamos que te puedan interesar más según tus preferencias?,\n subtitle: '¡Adiós mensajes genéricos!',\n copy: 'Activando esta opción podremos enviarte información y ofertas personalizadas de productos y servicios adecuadas a tu perfil. Para ello nos basaremos en tu comportamiento, preferencias personales y cómo usas nuestros productos y servicios.',\n icon: icontmk,\n }\n}\n\n\nexport const ConsentQuestion = (ConsentQuestionProps: ConsentQuestionProps) => {\n const { questionType } = ConsentQuestionProps;\n const [currentValue, setCurrentValue] = React.useState('');\n const { register, setValue, errors } = useFormContext();\n const dispatch = useDispatch();\n const { handleNextStep } = useOneFormContext();\n const [navPosition, setNavPosition] = React.useState('fixed');\n const viewportHeight = useWindowHeight();\n const { formInfo } = useSelector((state: OneFormState) => state);\n const { setShowPreviousStep } = useOneFormContext();\n\n setShowPreviousStep(false);\n\n const { bottom: bottomContent, getAndUpdateState: getAndUpdateStateContent } = useGetBoundingClientRect(\n '.content-controller-fullScreen'\n );\n\n const { top: topNavigation, getAndUpdateState: getAndUpdateStateNavigation } =\n useGetBoundingClientRect('.navigation-wrapper');\n\n useEffect(() => {\n if (bottomContent === null) {\n setNavPosition('fixed');\n } else if (bottomContent <= viewportHeight - 100) {\n setNavPosition('absolute');\n } else {\n setNavPosition('fixed');\n }\n }, [topNavigation, bottomContent]);\n\n const handlePosition = () => {\n getAndUpdateStateNavigation();\n getAndUpdateStateContent();\n };\n\n useEffect(() => {\n document.addEventListener('scroll', handlePosition);\n return () => {\n document.removeEventListener('scroll', handlePosition);\n };\n\n }, []);\n\n const renderCTAs = () => {\n return (\n <>\n {\n e.preventDefault()\n checkCurrentValue('aceptar', questionType)\n }}\n ariaLabel=\"aceptar\"\n >\n Aceptar\n \n {\n e.preventDefault()\n checkCurrentValue('omitir', questionType)\n }}\n ariaLabel=\"omitir\"\n >\n Omitir\n \n \n \n )\n }\n\n function checkCurrentValue(label: string, name: string) {\n const value = label === 'aceptar' ? 'PERMITE' : 'NO INFORMADO';\n setCurrentValue(label);\n dispatch({ type: 'UPDATE_FIELDS', payload: { [questionType]: value } });\n\n setValue(name, value);\n handleNextStep();\n }\n\n return (\n <>\n \n \n\n
\n \"icon\"\n
\n \n {questions[questionType].title}\n \n \n {questions[questionType].subtitle}\n \n \n {questions[questionType].copy}\n \n \n \n \n {renderCTAs()}\n \n \n \n \n {renderCTAs()}\n \n \n \n \n )\n}\n","import {\n Breakpoints,\n Container,\n ContainerGutter,\n ContainerPadding,\n CTA,\n Layout,\n styled,\n Text,\n TextAlignment,\n TokenTextAppearance,\n} from '@volkswagen-onehub/components-core';\nimport { Calendar } from 'src/icons-core-imports';\n\nimport React from 'react';\nimport { useSelector } from 'react-redux';\nimport { Center, getDistanceFromCenter, Points } from 'src/feature-app';\nimport { useTrackingManager } from 'src/feature-app/hooks/use-tracking-manager';\nimport { Horario, OneFormState } from 'src/types';\n\nconst CTAWrapper = styled.div`\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding-top: 32px;\n`;\n\ninterface DealerCardProps {\n handleShowSlots?: any;\n point?: Points;\n handleSeleccionarOnClick?: any;\n handleShowCalendarOnClick?: any;\n center: Center;\n}\n\nexport const DealerCard = (props: DealerCardProps) => {\n const { point, center } = props;\n const { name, address, city, zipCode } = point.properties.dealer.markerInfo.dealerInfo;\n const { distanceFromCenter, dealer } = point.properties;\n const trackingManager = useTrackingManager();\n const { formData } = useSelector((state: OneFormState) => state);\n const { horario }: { horario: Horario } = formData.fields;\n\n return (\n <>\n \n \n {props.handleShowSlots(point) === null ? null : (\n \n \n {props.handleShowSlots(point)}\n \n \n )}\n\n \n \n {name ? name : null}\n \n \n {address}, {zipCode} {city}\n \n \n \n \n \n {distanceFromCenter ? distanceFromCenter : getDistanceFromCenter(center, point)}km\n \n \n \n\n {!point.properties.dealer.dmsInfo || !point.properties.dealer.dmsInfo.dmsAvailable ? (\n \n {\n e.preventDefault();\n trackingManager.trackFormButtonClick(\n {\n contentId: 'Seleccionar día y franja horaria',\n },\n dealer\n );\n props.handleShowCalendarOnClick(point);\n }}\n >\n Seleccionar día y franja horaria\n \n \n ) : (\n \n {\n e.preventDefault();\n trackingManager.trackFormButtonClick(\n {\n contentId: 'Seleccionar',\n },\n dealer\n );\n if (\n (horario !== 'before' && dealer.slots[horario] === null) ||\n (horario === 'before' && !point.properties.hasOwnProperty('earliestSlot'))\n ) {\n props.handleShowCalendarOnClick(point);\n } else {\n props.handleSeleccionarOnClick(point);\n }\n }}\n >\n Seleccionar\n \n }\n onClick={(e) => {\n e.preventDefault();\n trackingManager.trackFormButtonClick(\n {\n contentId: 'Ver más horas',\n },\n dealer\n );\n props.handleShowCalendarOnClick(point);\n }}\n >\n Ver más horas\n \n \n )}\n \n );\n};\n","import React, { useState, useEffect } from 'react';\nimport {\n Container,\n ContainerGutter,\n ContainerPadding,\n InputAppearance,\n Text,\n TokenTextAppearance,\n} from '@volkswagen-onehub/components-core';\nimport { InputButton, TextAreaExtended, PaddingWrapper } from 'src/components';\nimport { useOneFormContext } from 'src/feature-app';\nimport { useFormContext } from 'react-hook-form';\nimport { FieldType } from 'src/feature-service/es-oneform-core-feature-service/types';\n\ninterface DetalleMotivoProps {\n hideCTA?: boolean;\n CTALabel?: string;\n name?: FieldType;\n label?: string;\n limitedCharacters?: boolean;\n numberOfMaxLength?: number;\n showRecomendation?: string | JSX.Element;\n required?: boolean;\n}\n\nexport function DetalleMotivo(props: DetalleMotivoProps) {\n const { hideCTA, CTALabel, name, label, limitedCharacters, numberOfMaxLength, showRecomendation, required } = props;\n const { register, setValue } = useFormContext();\n const { handleNextStep } = useOneFormContext();\n const [showButton, setShowButton] = useState(true);\n const [currentValue, setCurrentValue] = useState('');\n\n const adMaxLength = (max: number) => {\n const aux = document.getElementsByTagName('textarea');\n aux[0].setAttribute('maxlength', `${max}`);\n };\n\n useEffect(() => {\n if (limitedCharacters) adMaxLength(numberOfMaxLength);\n }, []);\n\n useEffect(() => {\n if (hideCTA) {\n setShowButton(false);\n }\n }, []);\n\n const handleChange = (e: any) => {\n const aux = e.currentTarget.value;\n e.preventDefault();\n setCurrentValue(aux);\n if (!hideCTA && (aux.length <= 2 || aux === '')) {\n setShowButton(true);\n } else {\n setShowButton(false);\n }\n };\n\n return (\n \n \n
\n handleChange(e)}\n appearance={InputAppearance.Default}\n isFloating\n innerRef={register({\n required: {\n value: required ? required : false,\n message: '',\n },\n })}\n maxLength={numberOfMaxLength}\n alternateCTAText={CTALabel ? CTALabel : 'No, eso es todo'}\n />\n {\n showRecomendation ? (\n \n \n {showRecomendation}\n \n \n ) : null\n }\n
\n {\n hideCTA ? null :(\n <>\n {showButton ? (\n {\n setValue('masInformacion', '');\n handleNextStep(e);\n }}\n innerRef={register({\n required: {\n value: required ? required : false,\n message: '',\n },\n })}\n />\n ) : (\n
\n )}\n \n )\n } \n \n \n );\n}\n","import React, { useState, useEffect } from 'react';\nimport { SelectExtended } from '.';\nimport { getActualYearNumber } from 'src/feature-app';\nimport { styled } from '@volkswagen-onehub/components-core';\nimport dayjs from 'dayjs';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { OneFormState } from 'src/types';\nimport { meses } from 'src/feature-app/InputsValues/OtherInputTypesObjects';\ninterface FechaCompraProps {\n notALayer: boolean;\n}\n\nconst FechaCompraWrapper = styled.div`\n margin-top: 4px;\n display: flex;\n flex-wrap: wrap;\n width: var(--size-grid020);\n @media all and (min-width: 560px) {\n width: var(--size-grid013);\n }\n @media screen and (min-width: 960px) {\n margin-top: 0; \n width: var(--size-grid008);\n }\n @media all and (min-width: 1280px) {\n width: var(--size-grid006);\n }\n @media all and (min-width: 1920px) {\n width: var(--size-grid005);\n }\n @media all and (min-width: 2560px) {\n width: var(--size-grid004);\n }\n label {\n margin-top: 40px;\n width: var(--size-grid009);\n\n @media all and (max-height: 624px) {\n margin-top: 20px;\n }\n\n @media all and (min-width: 560px) {\n width: var(--size-grid006);\n }\n @media screen and (min-width: 960px) {\n width: calc( var(--size-grid003) + (var(--size-grid001)/2) );\n }\n @media all and (min-width: 1280px) {\n width: calc( var(--size-grid002) + (var(--size-grid001)/2) );\n }\n @media all and (min-width: 1920px) {\n width: var(--size-grid002);\n }\n @media all and (min-width: 2560px) {\n width: calc( var(--size-grid001) + (var(--size-grid001)/2) );\n }\n }\n`;\nconst MarginDiv = styled.div`\n width: var(--size-grid002);\n @media all and (min-width: 560px) {\n width: var(--size-grid001);\n }\n`;\n\nexport const FechaCompra = (props: FechaCompraProps ) => {\n\n const { notALayer } = props;\n const dispatch = useDispatch();\n const { formData } = useSelector((state: OneFormState) => state);\n const { fecha } = formData.fields;\n\n //month\n const [ month, setMonth ] = useState('Enero');\n\n const handleChangeMonth = (e:any) => {\n e.preventDefault();\n setMonth(e.target.value);\n };\n\n //year\n\n const actualYear = getActualYearNumber();\n const [ yearsArray, setYearsArray ] = useState(null);\n\n useEffect(()=>{\n const previousYear = dayjs(actualYear).subtract(1, 'y').locale('es').format('YYYY');\n\n setYearsArray([previousYear, actualYear]);\n }, [actualYear]);\n\n const [ year, setYear ] = useState(actualYear);\n\n const handleChangeYear = (e:any) => {\n e.preventDefault();\n setYear(e.target.value);\n };\n\n //previous value\n\n useEffect(()=>{\n if(fecha) {\n const aux = fecha.split('/');\n const auxMonth = meses.find((m)=> m.number === aux[1]); \n setMonth(auxMonth.name);\n setYear(aux[2]);\n }\n }, []);\n\n //send value\n\n const [ finalDate, setFinalDate ] = useState(null);\n\n useEffect(()=>{\n const aux = meses.find((m)=> m.name === month);\n\n setFinalDate(`01/${aux.number}/${year}`);\n }, [month, year]);\n\n useEffect(() => {\n dispatch({ type: 'UPDATE_FIELDS', payload: { fecha: finalDate } });\n if(finalDate) {\n const aux = finalDate.split('/');\n const mes = meses.find((m) => m.number === aux[1]);\n dispatch({ type: 'UPDATE_LITERAL_FIELDS_STEPS', payload: { fechaCompra : mes.name + ' / ' + aux[2] } });\n }\n }, [finalDate]);\n\n \n\n \n\n return (\n \n m.name)}\n name='month'\n isRequired={true}\n handleChange={handleChangeMonth}\n value={month}\n onClick={() => null}\n setOption={setMonth}\n />\n \n { yearsArray ? (\n null}\n setOption={setYear}\n />\n ) : null}\n \n );\n};\n","import {\n Container,\n ContainerGutter,\n CTA,\n Text,\n styled,\n TextAlignment,\n TokenTextAppearance,\n} from '@volkswagen-onehub/components-core';\nimport React, { useEffect, useState } from 'react';\nimport { useDispatch } from 'react-redux';\nimport { useOneFormContext } from 'src/feature-app';\nimport { useIsComerciales } from 'src/feature-app/hooks';\nimport { useTrackingManager } from 'src/feature-app/hooks/use-tracking-manager';\nimport { CustomSlider, PaddingWrapper } from '.';\n\nconst KilContentWrapper = styled.div`\n padding-left: 32px;\n padding-right: 8px;\n width: 100vw;\n\n @media all and (min-width: 560px) {\n padding-left: 46px;\n padding-right: 32px;\n }\n @media all and (min-width: 960px) {\n padding-left: 120px;\n padding-right: 81px;\n width: 960px;\n }\n`;\n\nexport function Kilometros() {\n const isCommerciales = useIsComerciales();\n const jumpRange = isCommerciales ? 50000 : 30000;\n const maxValue = isCommerciales ? 400000 : 180000;\n const numberOfSteps = isCommerciales ? 9 : 7;\n const [value, setValue] = useState(1);\n const [millageValue, setMillageValue] = useState([0, jumpRange]);\n const [rangoKilometros, setRangoKilometros] = useState(`0km - ${formatNumber(jumpRange)}km`);\n const dispatch = useDispatch();\n const { handleNextStep } = useOneFormContext();\n const trackingManager = useTrackingManager();\n\n // convertir int a string con '.' de separacion para los miles. ej: 30000 --> 30.000\n function formatNumber(num: number | number[]) {\n return num.toString().replace(/(\\d)(?=(\\d{3})+(?!\\d))/g, '$1.');\n }\n const handleInputChange = (event: any) => {\n setValue(event.target.value);\n };\n\n useEffect(() => {\n const aux = jumpRange;\n const lowValue = aux * value - jumpRange;\n const highValue = aux * value;\n let stringRange;\n\n if (highValue > maxValue) {\n stringRange = isCommerciales ? 'Más de 400.000km' : 'Más de 180.000km';\n setMillageValue([lowValue, highValue]);\n } else {\n stringRange = `${formatNumber(lowValue)}km - ${formatNumber(highValue)}km`;\n setMillageValue([lowValue, highValue]);\n }\n setRangoKilometros(stringRange);\n\n trackingManager.trackFormFilterSelect(\n {\n contentId: 'Kilometros',\n },\n {\n type: 'range',\n name: 'Kilometros',\n lowerbound: String(lowValue),\n upperbound: String(highValue),\n values: undefined,\n },\n { FormFieldName: 'kilometros' }\n );\n }, [value]);\n\n useEffect(() => {\n dispatch({ type: 'UPDATE_FIELDS', payload: { kilometros: millageValue } });\n }, [millageValue]);\n\n return (\n \n \n \n \n {rangoKilometros}\n \n \n \n \n \n \n {\n e.preventDefault();\n trackingManager.trackFormButtonClick({\n contentId: 'No estoy seguro',\n });\n setMillageValue(0);\n handleNextStep(e);\n }}\n ariaLabel=\"aria label\"\n >\n No estoy seguro\n \n \n \n \n );\n}\n","import { Breakpoints, BreakpointWrapper, CTA, styled } from '@volkswagen-onehub/components-core';\nimport { CloseHandleV2, FocusLayerSizeV2, LayerHandleV2, LayerManagerV2 } from '@volkswagen-onehub/layer-manager';\nimport React, { useEffect, useState } from 'react';\nimport { useFormContext } from 'react-hook-form';\nimport { useDispatch, useStore, useSelector } from 'react-redux';\nimport { OneFormState } from 'src/types';\nimport {\n LayerManagerWrapper,\n useFeatureAppEnvironment,\n useFeatureServices,\n useOneFormContext,\n useTrackingManager,\n} from 'src/feature-app';\nimport { KoScreen, LoadingScreen, IntermitenciaDMSKo, InvalidForm } from 'src/components';\n\nconst PositionWrapper = styled.div`\n width: 100%;\n display: flex;\n justify-content: center;\n`;\n\ninterface LastNavigationProps {\n compartir?: string;\n setCompartirError?: React.Dispatch>;\n setPrivacidadError?: React.Dispatch>;\n label?: string;\n KoTitle?: string;\n KoBody?: string;\n loadingCopy?: string;\n ContentID?: string;\n checkNotSavedFields?: () => string;\n ActivarCheckNotSavedFields?: boolean;\n}\n\n\nexport const LastNavigation = (props: LastNavigationProps) => {\n const {\n label,\n KoTitle,\n KoBody,\n loadingCopy,\n setCompartirError,\n ContentID,\n checkNotSavedFields,\n ActivarCheckNotSavedFields,\n } = props;\n\n const { handleShowFinalScreen, handleSubmit } = useOneFormContext();\n const { triggerValidation, errors } = useFormContext();\n const [layerVisible, setLayerVisible] = useState(false);\n const [notSavedField, setNotSavedField] = useState(null);\n const [koLayer, setKoLayer] = useState>(null);\n const [koScreen, setKoScreen] = useState(false);\n const [intermitenciaLayerLayer, setIntermitenciaLayerLayer] = useState>(null);\n const layerManager = useFeatureServices()['layer-manager'] as LayerManagerV2;\n const store = useStore();\n const env = useFeatureAppEnvironment();\n const dispatch = useDispatch();\n const trackingManager = useTrackingManager();\n const { formData } = useSelector((state: OneFormState) => state);\n\n //Loading and Ko layers\n\n const handleKoLayer = () => {\n const layer = layerManager.openFocusLayer(renderKoLayer, {}, { size: FocusLayerSizeV2.A });\n setKoLayer(layer);\n };\n\n const renderKoLayer = (state: any, close: CloseHandleV2) => {\n return (\n \n \n \n );\n };\n\n const handleLoadingScreenLayer = () => {\n const layer = layerManager.openFocusLayer(renderLoadingScreen, {}, { size: FocusLayerSizeV2.A });\n\n return layer;\n };\n\n const renderLoadingScreen = (state: any, close: CloseHandleV2) => {\n return (\n \n \n \n );\n };\n\n const handleIntermitenciaDMSKoLayer = () => {\n const layer = layerManager.openFocusLayer(renderIntermitenciaDMSKoLayer, {}, { size: FocusLayerSizeV2.A });\n setIntermitenciaLayerLayer(layer);\n // return layer;\n };\n\n const renderIntermitenciaDMSKoLayer = (state: any, close: CloseHandleV2) => {\n return (\n \n \n \n );\n };\n\n const handleInvalidFormLayer = () => {\n const layer = layerManager.openFocusLayer(renderInvalidFormLayer, {}, { size: FocusLayerSizeV2.A });\n // setConfirmacionLayer(layer);\n\n // return layer;\n };\n const renderInvalidFormLayer = (state: any, close: CloseHandleV2) => {\n return (\n \n \n \n );\n };\n\n // 1. check de lssi y tmk\n // 2. submit de la cita y activación la pantalla de feedback correspondiente\n // no se hace ninguna validación en este último paso porque esta ya se ha hecho en el edit-guardar de cada campo previamente\n async function handleConfirmar(e: any) {\n if (formData.fields.formName === 'no_compra-no_tengo' && formData.fields.quieroContacto === 'true' ||\n formData.fields.formName === 'no_renovacion-no_tengo' && formData.fields.quieroContacto === 'true') {\n if (!formData.fields.compartir) {\n setCompartirError(true);\n } else {\n trackingManager.trackFormCTAClick({\n contentId: ContentID ? ContentID : 'Enviar',\n });\n\n const loadingLayer = handleLoadingScreenLayer();\n setLayerVisible(true);\n\n const value = await handleSubmit(e);\n loadingLayer.close();\n\n if (value) {\n handleShowFinalScreen();\n } else {\n handleKoLayer();\n }\n }\n } else {\n const isValid = await triggerValidation();\n if (setCompartirError && !isValid) {\n setCompartirError(true);\n }\n \n if (!isValid) return;\n\n trackingManager.trackFormCTAClick({\n contentId: ContentID ? ContentID : 'Enviar',\n });\n\n if (ActivarCheckNotSavedFields) {\n const someNotSavedField = checkNotSavedFields();\n setNotSavedField(someNotSavedField);\n\n if (someNotSavedField === null) {\n const loadingLayer = handleLoadingScreenLayer();\n setLayerVisible(true);\n\n const value = await handleSubmit(e);\n loadingLayer.close();\n\n if (value) {\n handleShowFinalScreen();\n } else {\n const { sendDmsFailed } = store.getState().formInfo;\n if (sendDmsFailed) {\n handleIntermitenciaDMSKoLayer();\n } else {\n handleKoLayer();\n }\n }\n } else {\n handleInvalidFormLayer();\n }\n } else {\n const loadingLayer = handleLoadingScreenLayer();\n setLayerVisible(true);\n\n const value = await handleSubmit(e);\n loadingLayer.close();\n\n if (value) {\n handleShowFinalScreen();\n } else {\n handleKoLayer();\n }\n }\n }\n }\n async function retrySubmit(e: any) {\n if (koLayer) {\n koLayer.close();\n }\n setKoScreen(false);\n const loadingLayer = handleLoadingScreenLayer();\n const value = await handleSubmit(e);\n loadingLayer.close();\n if (value) {\n handleShowFinalScreen();\n } else {\n handleKoLayer();\n setKoScreen(true);\n }\n }\n\n useEffect(() => {\n if (!layerVisible && koScreen) setKoScreen(false);\n }, [layerVisible]);\n\n useEffect(() => {\n dispatch({ type: 'UPDATE_FORM_ENDED', payload: true });\n }, []);\n\n return (\n \n \n {\n e.preventDefault();\n handleConfirmar(e);\n }}\n stretchContent\n >\n {label ? label : 'Enviar'}\n \n \n \n {\n e.preventDefault();\n handleConfirmar(e);\n }}\n >\n {label ? label : 'Enviar'}\n \n \n \n );\n};\n","import {\n Container,\n CTA,\n Text,\n TextAlignment,\n ContainerGutter,\n styled,\n TokenTextAppearance,\n} from '@volkswagen-onehub/components-core';\nimport React from 'react';\nimport { useFormContext } from 'react-hook-form';\nimport { useSelector, useDispatch } from 'react-redux';\nimport {\n isGooglePlace,\n Suggest,\n Suggestion,\n useOneFormContext\n} from 'src/feature-app';\nimport { useLocateUser } from 'src/feature-app/hooks';\nimport { Installation, isDealerData, OneFormState } from 'src/types';\n\nconst LocateWrapper = styled.div<{ paddingTop?: string }>`\n overflow: visible;\n padding-top: ${(props) => props.paddingTop ? props.paddingTop : '44px'};\n`;\nconst LocationDisabledWrapper = styled.div<{ paddingTopLocation?: string }>`\n padding-top: ${(props) => props.paddingTopLocation ? props.paddingTopLocation : '44px'};\n`;\ninterface LocateUserProps {\n isFiltrosSuggest?: boolean;\n onSuggestionSelectedFnAlternative?: (suggestion: Suggestion) => void;\n theme?: 'main' | 'inverted';\n paddingTop?: string;\n paddingTopLocation?: string;\n autoWidth?: boolean;\n noTengoDudasButton?: boolean;\n}\n\nexport function LocateUserFullScreen(props: LocateUserProps) {\n const { isFiltrosSuggest, onSuggestionSelectedFnAlternative, theme, paddingTop, paddingTopLocation, autoWidth } = props;\n const { register } = useFormContext();\n const { nextStep } = useOneFormContext();\n const {\n value,\n setValue,\n suggestion,\n setSuggestion,\n icon,\n locationSuccess,\n setLocationSuccess,\n handleLocate,\n loading,\n locationDisabled,\n isLocating,\n onSuggestionSelectedFn,\n } = useLocateUser();\n const dispatch = useDispatch();\n const { formInfo } = useSelector((state: OneFormState) => state);\n const { formTheme } = formInfo;\n\n const getSuggestionValue = (suggestion: Suggestion) => {\n if (!isGooglePlace(suggestion) && !isDealerData(suggestion)) {\n return (suggestion as Installation).VGED_CommercialName__c;\n } else {\n return suggestion.name;\n }\n };\n\n return (\n \n \n
\n \n
\n \n {\n e.preventDefault();\n if (!locationSuccess) handleLocate();\n }}\n disabled={loading ? true : false}\n size=\"small\"\n >\n Localiza mi posición actual\n \n {locationDisabled ? (\n \n \n Tu localización está deshabilitada\n \n \n ) : null}\n \n {props.noTengoDudasButton ? (\n {\n e.preventDefault();\n dispatch({ type: 'UPDATE_FIELDS', payload: { quieroContacto: 'false' } });\n nextStep();\n }}\n size=\"small\"\n >\n No tengo dudas\n \n ) : null}\n
\n \n
\n );\n}\n","import { styled } from '@volkswagen-onehub/components-core';\nimport React, { useEffect, useState } from 'react';\nimport { useFormContext } from 'react-hook-form';\nimport { connect } from 'react-redux';\nimport { OneFormState } from 'src/types';\nimport { InputError, TextInputExtended, CarlineSelect, PaddingWrapper } from 'src/components';\nimport { useOneFormContext } from 'src/feature-app/OneForm';\nimport { CitaFormDataFields } from 'src/forms/CitaPosventa/types';\nimport { SelectExtended } from '.';\n\nconst arrCountries = [\n {\n name: 'ES',\n code: 'ES',\n regex: [/\\d{4}[b-df-hj-npr-tv-zB-DF-HJ-NPR-TV-Z]{3}/, /[A-Za-z]{1,2}\\d{4}[A-Za-z]{1,2}/],\n errorMessage: 'Ejemplo: 0000BCD o AA0000AA',\n },\n {\n name: 'DE',\n code: 'DE',\n regex: [/[a-zA-Z]{2,5}\\d{1,4}/],\n errorMessage: 'Ejemplo: AAABB0000',\n },\n {\n name: 'FR',\n code: 'FR',\n regex: [\n /[a-hj-np-tv-zA-HJ-NP-TV-Z]{2}\\d{3}[a-hj-np-tv-zA-HJ-NP-TV-Z]{2}/,\n /\\d{2,4}[a-zA-Z]{2,3}\\d{2,3}/,\n /\\d{2,4}[a-zA-Z]{2,3}\\d{1}(a|b|A|B)/,\n ],\n errorMessage: 'Ejemplo: AA000AA o 00000AA00',\n },\n {\n name: 'GB',\n code: 'GB',\n regex: [/[a-zA-Z]{1,2}\\d{2}[a-zA-Z]{3}/, /[a-zA-Z]{1}\\d{3}[a-zA-Z]{3}/],\n errorMessage: 'Ejemplo: AA00AAA',\n },\n {\n name: 'IT',\n code: 'IT',\n regex: [/[a-zA-Z]{2}\\d{3}[a-zA-Z]{2}/],\n errorMessage: 'Ejemplo: AA000AA',\n },\n {\n name: 'PT',\n code: 'PT',\n regex: [/[a-zA-Z]{2}\\d{2}[a-zA-Z]{2}/, /\\d{2}[a-zA-Z]{2}\\d{2}/],\n errorMessage: 'Ejemplo: AA00AA',\n },\n {\n name: 'Otros',\n code: 'Otros',\n regex: [/[a-zA-Z\\d\\s]{3,}/],\n errorMessage: 'Solo números, letras y espacios',\n },\n];\n\ninterface paginaConfirmacionProps {\n paginaConfirmacion: boolean;\n}\n\nconst ContentWrapper = styled.div`\n\n @media screen and (min-width: 960px) {\n display: flex;\n justify-content: ${(props) => (props.paginaConfirmacion ? 'flex-start' : 'space-between')};\n flex-wrap: wrap;\n padding-top: 0;\n }\n /* Eliminar flechas del input type number porque descuadra el layout un poco */\n /* Chrome, Safari, Edge, Opera */\n input::-webkit-outer-spin-button,\n input::-webkit-inner-spin-button {\n -webkit-appearance: none;\n margin: 0;\n }\n /* Firefox */\n input[type='number'] {\n -moz-appearance: textfield;\n }\n`;\n\nconst MatriculaAndCountriesWrapper = styled.div`\n width: 100%;\n display: flex;\n height: max-content;\n @media all and (min-width: 560px) {\n width: 303px;\n }\n @media all and (min-width: 960px) {\n width: 320px;\n margin-right:${(props) => (props.paginaConfirmacion ? '88px' : '0px')};\n }\n`;\nconst MatriculaWrapper = styled.div`\n width: 100%;\n label {\n width: 100%;\n @media screen and (min-width: 960px) {\n width: 170px;\n }\n }\n`;\nconst CoutryWrapper = styled.div`\n margin-right: 24px;\n label {\n width: 109px;\n @media screen and (min-width: 560px) {\n width: 116px;\n }\n @media screen and (min-width: 960px) {\n width: 120px;\n }\n }\n`;\nconst InputErrorWrapper = styled.div`\n &.matricula-error-wrapper {\n p {\n max-width: 179px;\n @media all and (min-width: 560px) {\n max-width: 163px;\n }\n @media all and (min-width: 960px) {\n max-width: 176px;\n }\n }\n }\n`;\nconst AnoMatriculacionWrapper = styled.div<{ paginaConfirmacion: boolean }>`\n margin-top: ${(props) => (props.paginaConfirmacion ? '40px' : null)};\n @media all and (min-width: 960px) {\n margin-top: 0;\n }\n`;\n\ninterface inputWidthWrapperProps {\n noPaddingTop?: boolean;\n}\n\nconst InputWidthWrapper = styled.div`\n width: 100%;\n padding-top: ${(props) => (props.noPaddingTop ? null : '40px')};\n\n @media all and (max-height: 624px) {\n padding-top: ${(props) => (props.noPaddingTop ? null : '24px')};\n }\n @media all and (min-width: 560px) {\n width: 303px;\n }\n @media all and (min-width: 960px) {\n padding-top: 0;\n width: 320px;\n }\n`;\n\ninterface MatriculaProps {\n formData: CitaFormDataFields;\n paginaConfirmacion: boolean;\n noPaddingTop?: boolean;\n}\n\nconst MatriculaYModelo = (props: MatriculaProps) => {\n const { register, errors } = useFormContext();\n const { error, setError } = useOneFormContext();\n const [inputValueAno, setInputValueAno] = useState('');\n const [pristineMatricula, setPristineMatricula] = useState(true);\n const [pristineAno, setPristineAno] = useState(true);\n const [inputValueMatricula, setInputValueMatricula] = useState('');\n const [errorMatricula, setErrorMatricula] = useState(false);\n const [errorAno, setErrorAno] = useState(false);\n const [errorCountry, setErrorCountry] = useState(false);\n const [country, setCountry] = useState('ES');\n const [countryObject, setCountryObject] = useState(null);\n const regExpAno = /^(19|20)\\d{2}$/;\n const [regExCounty, setRegExCounty] = useState(null);\n const { formData, paginaConfirmacion, noPaddingTop } = props;\n\n useEffect(() => {\n if (formData.countryPlate) {\n setCountry(formData.countryPlate);\n const countryObject = arrCountries.find((c) => c.name === formData.countryPlate);\n setCountryObject(countryObject);\n setRegExCounty(countryObject.regex);\n } else {\n setCountry('ES');\n setCountryObject(arrCountries[0]);\n setRegExCounty(arrCountries[0].regex);\n }\n if (formData.matricula) {\n setInputValueMatricula(formData.matricula);\n setPristineMatricula(false);\n }\n if (formData.anoMatriculacion) {\n setInputValueAno(formData.anoMatriculacion);\n setPristineAno(false);\n }\n }, []);\n\n const validateMatricula = (input: string) => {\n const isValid = regExCounty.some((regEx) => regEx.test(input));\n\n if (isValid) {\n setErrorMatricula(false);\n return true;\n } else {\n setErrorMatricula(true);\n return false;\n }\n };\n\n const handleChangeCountry = (event: any) => {\n setCountry(event.currentTarget.value);\n const countryObject = arrCountries.find((c) => c.name === event.currentTarget.value);\n setCountryObject(countryObject);\n setRegExCounty(countryObject.regex);\n if (countryObject.name !== '') setErrorCountry(false);\n };\n\n const handleChangeAno = (e: any) => {\n setInputValueAno(e.target.value);\n setPristineAno(false);\n };\n\n const handleChangeMatricula = (e: any) => {\n setInputValueMatricula(e.target.value);\n setPristineMatricula(false);\n };\n\n useEffect(() => {\n if (inputValueAno.length < 4) {\n return;\n } else {\n if (!pristineAno && inputValueAno.match(regExpAno) === null) {\n setErrorAno(true);\n } else if (inputValueAno === '') {\n setPristineAno(true);\n setErrorAno(false);\n } else {\n setErrorAno(false);\n }\n }\n }, [inputValueAno, pristineAno]);\n\n useEffect(() => {\n if (error) {\n errorAno || pristineAno ? setErrorAno(true) : setErrorAno(false);\n errorMatricula || pristineMatricula ? setErrorMatricula(true) : setErrorMatricula(false);\n }\n }, [error]);\n\n useEffect(() => {\n if (!errorMatricula && !errorMatricula) setError(false);\n }, [errorMatricula, errorMatricula]);\n\n return (\n \n \n \n \n null}\n updateFields\n setOption={setCountry}\n isRequired={true}\n />\n \n \n validateMatricula(input),\n required: {\n value: true,\n message: 'Requerido',\n },\n maxLength: 100,\n })}\n isFloating\n onChange={(e) => handleChangeMatricula(e)}\n required\n />\n {errorMatricula && (\n \n {countryObject.errorMessage}\n \n )}\n \n \n \n \n handleChangeAno(e)}\n required\n />\n {errorAno && Ejemplo: 2010}\n \n \n {!paginaConfirmacion ? (\n \n \n \n ) : null}\n \n \n );\n};\n\nconst mapStateToProps = (state: OneFormState) => {\n return {\n formInfo: state.formInfo,\n formData: state.formData.fields,\n };\n};\n\nconst ConnectedComponent = connect(mapStateToProps)(MatriculaYModelo);\n\nexport { ConnectedComponent as MatriculaYModelo };\n","import React, { useState} from 'react';\nimport { useDispatch } from 'react-redux';\nimport { styled, Text, TokenTextAppearance } from '@volkswagen-onehub/components-core';\nimport { useOneFormContext } from 'src/feature-app/OneForm';\nimport { useFormContext } from 'react-hook-form';\nimport { InputButton } from 'src/components/inputs/InputButton';\n\nconst CTAWrapper = styled.div`\n text-align: left;\n margin: -10px;\n margin-top: 32px;\n @media all and (max-height: 624px) {\n margin-top: 24px;\n }\n & > button {\n margin: 12px;\n }\n`;\n\ninterface CTAValues {\n value?: string | boolean;\n label: string;\n}\n\ninterface NoClienteProps {\n name: string;\n nextOnClick?: boolean;\n bodyCopy: string;\n}\n\nexport const NoCliente = (props: NoClienteProps) => {\n const dispatch = useDispatch();\n const { name, nextOnClick, bodyCopy } = props;\n\n const { register, setValue } = useFormContext();\n const { handleNextStep, closeLayer } = useOneFormContext();\n const [selectedValue, setSelectedValue] = useState(null);\n\n return (\n <>\n \n {bodyCopy} \n \n \n {\n if ('Claro' !== selectedValue) {\n setSelectedValue('Claro');\n setValue(name, true);\n\n if (nextOnClick) {\n handleNextStep(e);\n }\n } else {\n setSelectedValue(null);\n setValue(name, null);\n dispatch({ type: 'UPDATE_FIELDS', payload: { [name]: null } });\n }\n }}\n />\n {\n\n if ('Salir del formulario' !== selectedValue) {\n setSelectedValue('Salir del formulario');\n setValue(name,false);\n dispatch({ type: 'RESET_STATE' });\n closeLayer();\n\n } else {\n setSelectedValue(null);\n setValue(name, null);\n dispatch({ type: 'UPDATE_FIELDS', payload: { [name]: null } });\n }\n }}\n />\n \n \n );\n};\n","import React from 'react';\nimport {\n Text,\n Container,\n ContainerPadding,\n CTA,\n ContainerGutter,\n Layout,\n Breakpoints,\n TokenTextAppearance\n} from '@volkswagen-onehub/components-core';\nimport { useTrackingManager } from 'src/feature-app/hooks/use-tracking-manager';\nimport { useOneFormContext } from 'src/feature-app';\n\ninterface IntroduccioStarsProps {\n bodyCopy?: string;\n label?: string;\n}\n\nexport const PantallaIntroduccionStars = (props:IntroduccioStarsProps) => {\n const { bodyCopy, label } = props;\n const { nextStep } = useOneFormContext();\n const trackingManager = useTrackingManager();\n\n return (\n \n \n \n {bodyCopy ? bodyCopy : 'Valora del 1 al 5 las siguientes experiencias con nosotros.'}\n \n {\n trackingManager.trackFormStepButtonClick({\n contentId: 'Siguiente',\n });\n e.preventDefault();\n nextStep();\n }}\n ariaLabel=\"aria label\"\n >\n {label ? label : 'Empezar'}\n \n \n \n );\n};\n","import React, { useState, useEffect, useRef } from 'react';\nimport { styled, Select } from '@volkswagen-onehub/components-core';\nimport { useSelector } from 'react-redux';\nimport { OneFormState } from 'src/types';\nimport { useDispatch } from 'react-redux';\nimport { useOneFormContext, useTrackingManager } from 'src/feature-app';\nimport { SelectExtendedList } from './CarlineSelect';\nimport { useFormContext } from 'react-hook-form';\n\ntype WrapperProps = {\n disabled?: boolean;\n themeColor?: string;\n};\n\nconst SelectWrapper = styled.div`\n\n opacity: ${(props) => (props.disabled ? '0.5' : '1')};\n & span::before {\n display: none;\n }\n svg {\n fill: ${(props) => (props.themeColor === 'main' ? '#001E50' : '#ffffff')};\n }\n\n label {\n color: ${(props) => (props.themeColor === 'main' ? '#001E50' : '#ffffff')};\n\n option {\n color: #001e50;\n padding-left: 12px;\n }\n }\n`;\nconst SelectOption = styled.option``;\n\ninterface SelectProps {\n options: Array;\n name: string;\n label: string;\n value?: any;\n defaultValue?: string;\n isFloating?: boolean;\n required?: boolean;\n disabled?: boolean;\n error?: boolean;\n getDealers?: (provincia: string) => void;\n setFormValue?: (selValueIndex: number) => void;\n onClick?: (e?: any) => void;\n setOption?: React.Dispatch>;\n updateFields?: boolean;\n handleChange: any;\n isRequired: boolean;\n innerRef?: any;\n}\n\nexport const SelectExtended = React.forwardRef((props: SelectProps, ref: React.Ref) => {\n const [selItem, setSelItem] = useState(null);\n const [showOptions, setShowOptions] = useState(false);\n\n const [keyValuePair, setKeyValuePair] = useState();\n const { name, options, setOption, updateFields, value, handleChange, isRequired, label, defaultValue, isFloating, innerRef } = props;\n const wrapperRef = useRef(null);\n const dispatch = useDispatch();\n const trackingManager = useTrackingManager();\n const { formInfo } = useSelector((state: OneFormState) => state);\n const { setValue } = useFormContext();\n\n const handleClickOutside = (e: any) => {\n if (!wrapperRef.current.contains(e.target)) {\n setShowOptions(false);\n }\n };\n\n const setItem = (option: any, index: number) => {\n if (!props.disabled) {\n if (typeof option !== 'object') {\n setSelItem(option);\n if (setOption) setOption(option);\n } else {\n const dealerName = option.props.children[0].props.children;\n setSelItem(dealerName);\n }\n if (props.setFormValue) props.setFormValue(index);\n setShowOptions(false);\n }\n };\n\n useEffect(() => {\n setSelItem(null);\n }, [props.options]);\n\n useEffect(() => {\n document.addEventListener('mousedown', handleClickOutside);\n // función que se llama cuando la componente se desmonta\n return () => {\n document.removeEventListener('mousedown', handleClickOutside);\n };\n }, [wrapperRef.current]);\n\n useEffect(() => {\n updateFields\n ? dispatch({ type: 'UPDATE_FIELDS', payload: { [name]: keyValuePair ? keyValuePair : value } })\n : undefined;\n }, [keyValuePair, value]);\n\n useEffect(() => {\n if (value) {\n setTimeout(() => {\n setSelItem(value);\n }, 0);\n }\n }, [value]);\n\n return (\n {\n trackingManager.trackFormFieldClick(\n {\n contentId: label,\n },\n {\n FormFieldName: name,\n }\n );\n props.onClick();\n }}\n disabled={props.disabled}\n ref={wrapperRef}\n themeColor={formInfo.formTheme}\n >\n {\n event.preventDefault();\n handleChange(event);\n }}\n required={isRequired}\n autoFocus={false}\n ref={innerRef}\n >\n {isFloating && {label}}\n {options.map((option: any, index: number) => {\n if (typeof option === 'string') {\n return (\n {\n e.preventDefault();\n setItem(option, index);\n }}\n key={index}\n value={option}\n >\n {option}\n \n );\n } else {\n return (\n {\n e.preventDefault();\n setItem(option.name, index);\n setKeyValuePair(option.code);\n }}\n key={index}\n value={option.name}\n >\n {option.name}\n \n );\n }\n })}\n \n \n );\n});\n","import React, { useEffect, useState } from 'react';\nimport { useDispatch } from 'react-redux';\nimport { fetchTreatment, fetchTreatmentLegacy } from 'src/bff';\nimport { SelectExtendedList } from './CarlineSelect';\nimport { SelectExtended } from './SelectExtended';\nimport { useIsComerciales } from 'src/feature-app/hooks';\n\nexport const Trato = () => {\n const [options, setOptions] = useState([]);\n const dispatch = useDispatch();\n const isComerciales = useIsComerciales();\n\n useEffect(() => {\n const getTreatment = async () => {\n const response = isComerciales ? await fetchTreatmentLegacy('LCV_DDB_FRM_LEM_REC_LEM') : await fetchTreatment('VW_DDB_FRM_LEM_REC_LEM');\n const options: SelectExtendedList[] = response.content.map((att, indx) => ({ name: att.attributes[1].value, code: att.attributes[0].value, key: String(indx) }));\n setOptions(options);\n dispatch({ type: 'UPDATE_FIELDS', payload: { trato: options[0].name } });\n };\n getTreatment();\n }, []);\n\n const handleChange = (event: React.SyntheticEvent) => {\n dispatch({ type: 'UPDATE_FIELDS', payload: { trato: event.currentTarget.value } });\n };\n\n return (\n { }} />\n );\n};\n","import { styled } from '@volkswagen-onehub/components-core';\nimport React from 'react';\nimport { Apellido, Nombre, PaddingWrapper, LabelInputWidthWrapper } from '.';\nimport { Trato } from './Trato';\nimport { useIsComerciales } from 'src/feature-app/hooks';\n\ninterface pantallaNombreApellidoProps {\n notALayer?: boolean;\n isComerciales?: boolean;\n}\n\nconst ContentWrapper = styled.div`\n gap: 44px;\n display: flex;\n flex-direction: column;\n width: 100%;\n @media screen and (min-width: 960px) {\n display: flex;\n justify-content: space-between;\n flex-direction: row;\n flex-wrap: wrap;\n margin-top: 0;\n }\n`;\n\nexport const PantallaNombreApellido = ({ notALayer }: pantallaNombreApellidoProps) => {\n const isComerciales = useIsComerciales();\n\n return (\n \n \n {isComerciales ? : null}\n \n \n \n \n \n \n \n \n \n \n \n );\n};\n","import { Checkbox, CTA, styled, Text, TokenTextAppearance } from '@volkswagen-onehub/components-core';\nimport React, { useState } from 'react';\nimport { useFormContext } from 'react-hook-form';\nimport { useIsComerciales } from 'src/feature-app/hooks';\nimport { InputError } from 'src/components';\n\ninterface politicaPrivacidadProps {\n color?: string;\n}\n\nconst WhiteLinkWrapper = styled.span`\n a {\n color: ${(props) => (props.color ? props.color : '#ffffff')};\n font-weight: bold;\n }\n`;\n\nexport const PoliticaPrivacidad = (props: politicaPrivacidadProps) => {\n const { register, errors, clearError } = useFormContext();\n const isComerciales = useIsComerciales();\n const [checked, setChecked] = useState(!isComerciales);\n return (\n
\n
\n {isComerciales &&\n {\n if (!checked) {\n clearError('politicaPrivacidad');\n }\n setChecked(!checked);\n }}\n ref={register({\n required: { value: true, message: 'Requerido' },\n validate: (value) => {\n return value === 'PERMITIDO';\n },\n })}\n value={checked ? 'PERMITIDO' : 'NO PERMITIDO'}\n />\n\n }\n\n \n {isComerciales ? 'Acepto' : 'Enviando este formulario declaras estar informado de'} la{' '}\n \n \n política de privacidad.\n \n \n \n
\n {errors && errors.politicaPrivacidad ? (\n Necesitamos esta información para seguir\n ) : null}\n
\n );\n};\n","import React, {useState, useEffect} from 'react';\nimport { useDispatch } from 'react-redux';\nimport { \n styled, \n Text, \n TextAlignment, \n BreakpointWrapper, \n Breakpoints,\n Container,\n ContainerPadding,\n CTA,\n TokenTextAppearance\n} from '@volkswagen-onehub/components-core';\nimport { useOneFormContext } from 'src/feature-app';\nimport { useTrackingManager } from 'src/feature-app/hooks/use-tracking-manager';\n\nconst CustomInputRange = styled.input`\n width: 100%;\n height: 30px;\n background: transparent;\n font-size: 1em;\n cursor: pointer; \n -webkit-appearance: none;\n\n &::-webkit-slider-runnable-track, &::-webkit-slider-thumb {\n -webkit-appearance: none;\n };\n &::-webkit-slider-runnable-track{\n position: relative;\n width: 100%;\n height: 1px;\n background: transparent; \n };\n &::-moz-range-track {\n width: 100%;\n height: 1px;\n background: transparent;\n };\n &::-ms-track {\n border: none;\n width: 100%;\n height: 1px;\n background: transparent;\n color: transparent;\n };\n &::-ms-fill-lower {\n display: none;\n };\n &::-webkit-slider-thumb {\n box-sizing: border-box;\n width: 24px; \n height: 24px;\n border-radius: 50%;\n background: #001e50;\n transform: translateY(-12px);\n };\n &::-moz-range-thumb {\n box-sizing: border-box;\n width: 24px; \n height: 24px;\n border-radius: 50%;\n background: #001e50;\n transform: translateY(-12px);\n };\n &::-ms-thumb {\n box-sizing: border-box;\n width: 24px; \n height: 24px;\n border-radius: 50%;\n background: #001e50;\n transform: translateY(-12px);\n };\n &::-webkit-slider-runnable-track:before, &::-webkit-slider-runnable-track:after, & /deep/ #track:before, &/deep/ #track:after {\n position: absolute;\n bottom: 100%;\n color: #2c2c2b;\n font: 700 0.875em / 2 arial, sans-serif;\n background: #001e50;\n };\n &::-webkit-slider-runnable-track:before, & /deep/ #track:before {\n left: 0.8125em;\n word-spacing: 1.4375em;\n content: '1 2 3 4 5 6 7 8 9';\n };\n &::-webkit-slider-runnable-track:after, & /deep/ #track:after {\n right: 0.625em;\n word-spacing: 0.875em;\n content: '10 11 12 13 14 15 16';\n };\n &:focus{\n outline: none;\n }\n\n`;\nconst Mark = styled.div`\n height: 9px;\n width: 1px;\n background-color: #001e50;\n`;\nconst MarksPosition = styled.div`\n display: flex;\n display:-webkit-flex;\n width: 100%;\n justify-content: space-between;\n align-items: center;\n margin-bottom: -19.5px;\n z-index: 3;\n margin-left: 7px;\n @media screen and (min-width: 960px) {\n margin-left: 0;\n width: 97%;\n }\n`;\nconst SliderPosition = styled.div`\n width: 100%;\n display: flex;\n justify-content: center;\n margin-left: 7px;\n @media screen and (min-width: 960px) {\n margin-left: 4px;\n }\n`;\nconst SlideLabelsPosition = styled.div`\n width: 100%;\n display: flex;\n justify-content: space-between;\n align-items: center;\n`;\nconst SliderAndMarksPosition = styled.div`\n width: 96%;\n padding-right: 20px;\n display: flex;\n justify-content: center;\n align-items: center;\n flex-direction: column;\n @media all and (min-width: 960px) {\n width: 99%;\n padding-right: 0px;\n }\n`;\ninterface CustomSliderProps {\n mobileLabels: Array;\n desktopLabels: Array;\n name: string;\n}\n\nexport const SlideEncuestas = (props: CustomSliderProps ) => {\n\n const {name, mobileLabels, desktopLabels} = props;\n const { handleNextStep } = useOneFormContext();\n const trackingManager = useTrackingManager();\n const dispatch = useDispatch();\n\n const numberOfSteps = 5;\n const sliderMarks= [];\n const [value, setValue] = useState(3);\n\n\n const handleInputChange = (event: any) => {\n setValue(event.target.value);\n };\n\n useEffect(() => {\n dispatch({ type: 'UPDATE_FIELDS', payload: { [name]: `${value}` } });\n }, [value]);\n\n for(let i = 0; i < 5; i++) {\n sliderMarks.push();\n }\n \n document.documentElement.classList.add('js');\n \n return (\n
\n \n
\n \n {sliderMarks ? sliderMarks : null}\n \n \n handleInputChange(e)}\n value={value}\n />\n \n \n \n \n {mobileLabels[0]}\n {mobileLabels[1]}\n \n \n {desktopLabels[0]}\n {desktopLabels[1]}\n {desktopLabels[2]}\n {desktopLabels[3]}\n {desktopLabels[4]}\n \n \n \n\n \n {\n e.preventDefault();\n trackingManager.trackFormButtonClick({\n contentId: 'Sin respuesta',\n });\n setValue(3);\n handleNextStep(e);\n }}\n ariaLabel=\"aria label\"\n >\n Sin respuesta\n \n \n
\n );\n};\n\n","import React, { useState, useEffect, useRef } from 'react';\nimport { useSelector, useDispatch } from 'react-redux';\nimport Autosuggest from 'react-autosuggest';\nimport { MagnifierLabel, CloseButton, SuggestionWrapper, StyledWrapper } from 'src/feature-app/NewMap';\nimport { Close, Magnifier } from 'src/icons-core-imports';\nimport { Text, ThemeProvider, TokenTextAppearance, TokenTextColor, styled } from '@volkswagen-onehub/components-core';\nimport { useOneFormContext } from 'src/feature-app/OneForm';\nimport { getVehiculosModelo } from 'src/bff';\nimport { modelCar, OneFormState } from 'src/types';\nimport { useFormContext } from 'react-hook-form';\nimport { useDropdowPosition } from 'src/feature-app/hooks';\n\ninterface SuggestModeloProps {\n notALayer: boolean;\n marginTop?: string;\n fieldsName: string;\n required: boolean;\n}\n\nconst FechaCompraWrapper = styled.div`\n margin-top: ${(props) => props.marginTop ? props.marginTop : '44px'};\n width: var(--size-grid020);\n position:relative;\n overflow: visible ;\n @media all and (max-height: 624px) {\n margin-top: ${(props) => (props.marginTop ? props.marginTop : '24px')};\n }\n\n @media all and (min-width: 560px) {\n width: ${(props) => (props.notALayer ? 'var(--size-grid013)' : '303px')};\n }\n @media all and (min-width: 960px) {\n width: ${(props) => (props.notALayer ? 'var(--size-grid008)' : '320px')};\n }\n @media all and (min-width: 1280px) {\n width: ${(props) => (props.notALayer ? 'var(--size-grid006)' : '320px')};\n }\n @media all and (min-width: 1920px) {\n width: ${(props) => (props.notALayer ? 'var(--size-grid005)' : '320px')};\n }\n @media all and (min-width: 2560px) {\n width: ${(props) => (props.notALayer ? 'var(--size-grid004)' : '320px')};\n }\n`;\n\nconst escapeRegexCharacters = (str: string) => {\n return str.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n};\n// Teach Autosuggest how to calculate suggestions for any given input value.\nconst getSuggestions = (value: string, list: modelCar[]) => {\n if (value.length < 2) return [];\n const escapedValue = escapeRegexCharacters(value.trim());\n\n if (escapedValue === '') {\n return [];\n }\n\n const regex = new RegExp(escapedValue, 'i');\n\n return list.filter((car: modelCar) => regex.test(car.title));\n};\n\n// When suggestion is clicked, Autosuggest needs to populate the input\n// based on the clicked suggestion. Teach Autosuggest how to calculate the\n// input value for every given suggestion.\nconst getSuggestionValue = (suggestion: modelCar) => suggestion.title;\n\n// Use your imagination to render suggestions.\nconst renderSuggestion = (suggestion: modelCar) => (\n \n \n {suggestion.title}\n \n \n);\n\nexport const SuggestMarca = (props: SuggestModeloProps) => {\n const { formData } = useSelector((state: OneFormState) => state);\n const { notALayer, marginTop, fieldsName, required } = props;\n const dispatch = useDispatch();\n const [suggestions, setSuggestions] = useState([]);\n const [list, setList] = useState(null);\n const { register, clearError } = useFormContext();\n const [value, setValue] = useState('');\n const [selectedValue, setSelectedValue] = useState(false); // Controla que una vez seleccionado un valor en el input, no siga buscando en google maps.\n const suggestRef = useRef(null);\n const { formInfo } = useSelector((state: OneFormState) => state);\n const { formTheme } = formInfo;\n const [suggestion, setSuggestion] = useState(null);\n const [inputFocus, setInputFocus] = useState(false);\n\n const { setDisableIntroNextStep, setError } = useOneFormContext();\n\n useEffect(() => {\n getVehiculosModelo().then((modelos) => {\n setList(modelos);\n if (formData.fields[fieldsName]) {\n const modeloSuggestion = modelos.find((model) => model.title === formData.fields[fieldsName]);\n setValue(formData.fields[fieldsName]);\n setSuggestion(modeloSuggestion);\n }\n });\n }, []);\n\n const onChange = (e: any, { newValue }: { newValue: string }) => {\n if (setSelectedValue) {\n setSelectedValue(false);\n }\n if (newValue === '') {\n setSuggestion(null);\n setSelectedValue(true);\n }\n setError(false);\n setValue(newValue);\n };\n \n //desplegar el dropdown para arriba o para abajo según la posicinón del input en el window\n const { goUp, getAndUpdateState } = useDropdowPosition('.react-autosuggest__container');\n\n const onClick = () => {\n getAndUpdateState();\n };\n\n const onSuggestionsFetchRequested = async ({ value }: { value: string }) => {\n const suggestions = getSuggestions(value, list);\n setSuggestions(suggestions);\n };\n\n const onSuggestionsClearRequested = () => {\n setSuggestions([]);\n };\n\n const inputPlaceholder = 'Escribe aquí la Marca';\n const inputProps = {\n placeholder: inputPlaceholder,\n value,\n onChange,\n onClick,\n onBlur: () => { setDisableIntroNextStep(false); },\n disabled: false,\n };\n\n \n \n\n return (\n \n {\n {/*setTimeout(() => {\n suggestRef.current.scrollIntoView({ block: 'center', behavior: 'smooth' });\n }, 400);*/}\n setInputFocus(true);\n }}\n onBlur={() => setInputFocus(false)}\n isLocating={false}\n isFiltrosSuggest={false}\n isModeloSuggest={true}\n goUp={goUp}\n >\n \n \n \n {\n setSuggestion(suggestion);\n dispatch({ type: 'UPDATE_FIELDS', payload: { [fieldsName]: suggestion.name } });\n setSelectedValue(true);\n }}\n\n inputProps={inputProps}\n />\n {value !== '' && (\n \n {\n e.preventDefault(); \n setValue('');\n // setFormValue(fieldsName, '')\n setSuggestion(null);\n }}\n >\n \n \n \n )}\n \n \n \n );\n};\n","import React, { useState, useEffect, useRef } from 'react';\nimport { useSelector, useDispatch } from 'react-redux';\nimport Autosuggest from 'react-autosuggest';\nimport { MagnifierLabel, CloseButton, SuggestionWrapper, StyledWrapper } from 'src/feature-app/NewMap';\nimport { Close, Magnifier } from 'src/icons-core-imports';\nimport { Text, ThemeProvider, styled, CTA, TokenTextAppearance, TokenTextColor } from '@volkswagen-onehub/components-core';\nimport { useOneFormContext } from 'src/feature-app/OneForm';\nimport { getVehiculosModelo } from 'src/bff';\nimport { modelCar, OneFormState } from 'src/types';\nimport { useFormContext } from 'react-hook-form';\nimport { useDropdowPosition } from 'src/feature-app/hooks';\n\ninterface SuggestModeloProps {\n notALayer: boolean;\n marginTop?: string;\n fieldsName: string;\n required: boolean;\n outputsSeparados?: boolean;\n filterVW?:boolean;\n nextOnClick?: boolean;\n alternatCTA?: boolean;\n}\n\nconst FechaCompraWrapper = styled.div`\n margin-top: ${(props) => props.marginTop ? props.marginTop : '44px'};\n width: var(--size-grid020);\n position:relative;\n overflow: visible ;\n margin-left: ${(props) => (props.notALayer ? null : 'var(--size-grid002)')};\n\n @media all and (max-height: 624px) {\n margin-top: ${(props) => (props.marginTop ? props.marginTop : '24px')};\n }\n\n @media all and (min-width: 560px) {\n width: ${(props) => (props.notALayer ? 'var(--size-grid013)' : '303px')};\n }\n @media all and (min-width: 960px) {\n width: ${(props) => (props.notALayer ? 'var(--size-grid008)' : '320px')};\n margin-left: ${(props) => (props.notALayer ? null : '122px')};\n }\n @media all and (min-width: 1280px) {\n width: ${(props) => (props.notALayer ? 'var(--size-grid006)' : '320px')};\n }\n @media all and (min-width: 1920px) {\n width: ${(props) => (props.notALayer ? 'var(--size-grid005)' : '320px')};\n }\n @media all and (min-width: 2560px) {\n width: ${(props) => (props.notALayer ? 'var(--size-grid004)' : '320px')};\n }\n`;\n\nconst ModeloInteresWrapper = styled.div`\n display: ${(props)=> props.alternatCTA ? 'flex' : null};\n flex-wrap: ${(props)=> props.alternatCTA ? 'wrap' : null};\n\n @media all and (min-width: 560px) {\n gap: ${(props)=> props.alternatCTA ? '44px' : null};\n }\n`;\n\nconst ButtonWidth = styled.div`\n margin-top: 44px;\n\n button {\n width: 81px;\n }\n`;\n\nconst escapeRegexCharacters = (str: string) => {\n return str.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n};\n// Teach Autosuggest how to calculate suggestions for any given input value.\nconst getSuggestions = (value: string, list: modelCar[]) => {\n if (value.length < 2) return [];\n const escapedValue = escapeRegexCharacters(value.trim());\n\n if (escapedValue === '') {\n return [];\n }\n\n const regex = new RegExp(escapedValue, 'i');\n\n return list.filter((car: modelCar) => regex.test(car.title));\n};\n\n// When suggestion is clicked, Autosuggest needs to populate the input\n// based on the clicked suggestion. Teach Autosuggest how to calculate the\n// input value for every given suggestion.\nconst getSuggestionValue = (suggestion: modelCar) => suggestion.title;\n\n// Use your imagination to render suggestions.\nconst renderSuggestion = (suggestion: modelCar) => (\n \n \n {suggestion.title}\n \n \n);\n\nexport const SuggestModelo = (props: SuggestModeloProps) => {\n const { notALayer, marginTop, fieldsName, required, outputsSeparados, filterVW, nextOnClick, alternatCTA } = props;\n const dispatch = useDispatch();\n const [suggestions, setSuggestions] = useState([]);\n const [list, setList] = useState(null);\n const { register, clearError } = useFormContext();\n const [value, setValue] = useState('');\n const [selectedValue, setSelectedValue] = useState(false); // Controla que una vez seleccionado un valor en el input, no siga buscando en google maps.\n const suggestRef = useRef(null);\n const { formInfo, formData } = useSelector((state: OneFormState) => state);\n const { formTheme } = formInfo;\n const [suggestion, setSuggestion] = useState(null);\n const [inputFocus, setInputFocus] = useState(false);\n const [ isNotAnswered, setIsNotAnswered ] = useState(true);\n const [ buttonEmphasis, setButtonEmphasis ] = useState('secondary');\n const { setIsValueSelected } = useOneFormContext();\n\n const { setDisableIntroNextStep, setError, handleNextStep } = useOneFormContext();\n\n useEffect(() => {\n\n getVehiculosModelo().then((modelos) => {\n let modelosToSet = modelos;\n if (filterVW) {\n modelosToSet = modelos.filter(modelo => modelo.brand !== 'Volkswagen');\n }\n setList(modelosToSet);\n if (formData.fields[fieldsName]) {\n if(formData.fields.brand === 'false' && formData.fields.model === 'false') {\n setButtonEmphasis('primary');\n setSuggestion(null);\n setValue('');\n setIsNotAnswered(false);\n } else {\n const modeloSuggestion = modelosToSet.find((model) => model.title === formData.fields[fieldsName]);\n setValue(formData.fields[fieldsName]);\n setSuggestion(modeloSuggestion);\n }\n }\n });\n }, []);\n\n\n const onChange = (e: any, { newValue }: { newValue: string }) => {\n if (setSelectedValue) {\n setSelectedValue(false);\n }\n if (newValue === '') {\n setSuggestion(null);\n setSelectedValue(true);\n }\n setError(false);\n setValue(newValue);\n };\n \n //desplegar el dropdown para arriba o para abajo según la posicinón del input en el window\n const { goUp, getAndUpdateState } = useDropdowPosition('.react-autosuggest__container');\n\n const onClick = () => {\n getAndUpdateState();\n };\n\n const onSuggestionsFetchRequested = async ({ value }: { value: string }) => {\n const suggestions = getSuggestions(value, list);\n setSuggestions(suggestions);\n };\n\n const onSuggestionsClearRequested = () => {\n setSuggestions([]);\n };\n\n const inputPlaceholder = 'Escribe aquí el modelo';\n const inputProps = {\n placeholder: inputPlaceholder,\n value,\n onChange,\n onClick,\n onBlur: () => { setDisableIntroNextStep(false); },\n disabled: false,\n };\n\n const handleDispatch = (outputsSeparados: boolean, suggestion: modelCar)=> {\n if(outputsSeparados) {\n dispatch({ type: 'UPDATE_FIELDS', payload: { 'brand': suggestion.brand } });\n dispatch({ type: 'UPDATE_FIELDS', payload: { 'model': suggestion.model } });\n } else {\n dispatch({ type: 'UPDATE_FIELDS', payload: { [fieldsName]: suggestion.name } });\n }\n };\n \n \n\n return (\n \n \n {\n {/*setTimeout(() => {\n suggestRef.current.scrollIntoView({ block: 'center', behavior: 'smooth' });\n }, 400);*/}\n setInputFocus(true);\n }}\n onBlur={() => setInputFocus(false)}\n isLocating={false}\n isFiltrosSuggest={false}\n isModeloSuggest={true}\n goUp={goUp}\n notALayer={notALayer}\n >\n \n \n \n {\n setSuggestion(suggestion);\n handleDispatch(outputsSeparados, suggestion);\n setSelectedValue(true);\n if(nextOnClick) {\n setTimeout(() => {\n handleNextStep();\n }, 0);\n }\n }}\n\n inputProps={inputProps}\n />\n {value !== '' && (\n \n {\n e.preventDefault(); \n setValue('');\n // setFormValue(fieldsName, '')\n setSuggestion(null);\n }}\n >\n \n \n \n )}\n \n \n \n \n { alternatCTA ? (\n \n {\n e.preventDefault();\n setSuggestion({brand:'false', id: null, name: 'false', model: 'false', title: 'false'});\n handleDispatch(outputsSeparados, {brand:'false', id: null, name: 'false', model: 'false', title: 'Escribe aquí el modelo'});\n setSelectedValue(true);\n if(nextOnClick) {\n setTimeout(() => {\n handleNextStep();\n }, 0);\n }\n }}\n >No\n \n ) : null}\n \n );\n};\n","import React, { useState, useEffect, useRef } from 'react';\nimport { useSelector, useDispatch } from 'react-redux';\nimport { SelectExtended } from '.';\nimport { styled, CTA } from '@volkswagen-onehub/components-core';\nimport { useOneFormContext } from 'src/feature-app/OneForm';\nimport { fetchMarcas, fetchModelos } from 'src/bff';\nimport { OneFormState } from 'src/types';\nimport { useFormContext } from 'react-hook-form';\n\ninterface BrandModelProps {\n\tstepName: string;\n\tbrandName?: string;\n\tmodelName?: string;\n\tmarginTop?: string;\n\tnotALayer?: boolean;\n\trequired: boolean;\n\tformToken?: string;\n\tnextOnClick?: boolean;\n\talternatCTA?: boolean;\n}\n\nconst SelectsWrapper = styled.div`\n\tmargin-top: 4px;\n\tdisplay: flex;\n\tflex-wrap: wrap;\n\twidth: var(--size-grid020);\n\t@media all and (min-width: 560px) {\n\t\twidth: var(--size-grid013);\n\t}\n\t@media screen and (min-width: 960px) {\n\t\tmargin-top: 0; \n\t\twidth: var(--size-grid008);\n\t}\n\t@media all and (min-width: 1280px) {\n\t\twidth: var(--size-grid006);\n\t}\n\t@media all and (min-width: 1920px) {\n\t\twidth: var(--size-grid005);\n\t}\n\t@media all and (min-width: 2560px) {\n\t\twidth: var(--size-grid004);\n\t}\n\tlabel {\n\t\tmargin-top: 40px;\n\t\twidth: var(--size-grid009);\n\n\t\t@media all and (max-height: 624px) {\n\t\t\tmargin-top: 20px;\n\t\t}\n\n\t\t@media all and (min-width: 560px) {\n\t\t\twidth: var(--size-grid006);\n\t\t}\n\t\t@media screen and (min-width: 960px) {\n\t\t\twidth: calc( var(--size-grid003) + (var(--size-grid001)/2) );\n\t\t}\n\t\t@media all and (min-width: 1280px) {\n\t\t\twidth: calc( var(--size-grid002) + (var(--size-grid001)/2) );\n\t\t}\n\t\t@media all and (min-width: 1920px) {\n\t\t\twidth: var(--size-grid002);\n\t\t}\n\t\t@media all and (min-width: 2560px) {\n\t\t\twidth: calc( var(--size-grid001) + (var(--size-grid001)/2) );\n\t\t}\n\t}\n`;\nconst MarginDiv = styled.div`\n\twidth: var(--size-grid002);\n\t@media all and (min-width: 560px) {\n\t\t\twidth: var(--size-grid001);\n\t\t}\n`;\n\nconst ButtonWidth = styled.div`\n margin-top: 58px;\n margin-left: 10px;\n\n button {\n width: 81px;\n }\n`;\n\nconst ModeloInteresWrapper = styled.div`\n display: ${(props)=> props.alternatCTA ? 'flex' : null};\n flex-wrap: ${(props)=> props.alternatCTA ? 'wrap' : null};\n\n @media all and (min-width: 560px) {\n gap: ${(props)=> props.alternatCTA ? '58px' : null};\n }\n`;\n\nexport const SelectMarcaModelo = (props: BrandModelProps) => {\n\tconst { stepName, brandName = 'brand', modelName = 'model', notALayer, marginTop, required, formToken, nextOnClick, alternatCTA } = props;\n\tconst { handleNextStep } = useOneFormContext();\n\tconst { formData, vehiclesInfo } = useSelector((state: OneFormState) => state);\n\tconst dispatch = useDispatch();\n\tconst { register } = useFormContext();\n\tconst [isAnswered, setIsAnswered] = useState(false);\n\tconst [brand, setBrand] = useState(null);\n\tconst [model, setModel] = useState(null);\n\tconst [brands, setBrands] = useState(null);\n\tconst [models, setModels] = useState(null);\n\n\tconst getBrandByName = (name) => {\n\t\treturn brands ? brands.find(obj => obj.name == name) : null;\n\t}\n\n\tconst getBrandByCode = (code) => {\n\t\treturn brands ? brands.find(obj => obj.code == code) : null;\n\t}\n\n\tconst getModelByName = (name) => {\n\t\treturn models ? models.find(obj => obj.name == name) : null;\n\t}\n\n\tconst getModelByCode = (code) => {\n\t\treturn models ? models.find(obj => obj.code == code) : null;\n\t}\n\n\tconst convertToOption = (arr: any) => {\n\t\tconst name = arr['attributes'].find(obj => obj.name == 'NAME');\n\t\tconst code = arr['attributes'].find(obj => obj.name == 'CODE');\n\t\treturn {\n\t\t\tcode: code ? code.value : null,\n\t\t\tname: name ? name.value : null,\n\t\t}\n\t}\n\n\tconst fillBrandsCombo = () => {\n\t\tif (!brands) {\n\t\t\tsetModels(null);\n\t\t\tif (vehiclesInfo.brands) {\n\t\t\t\tsetBrands(vehiclesInfo.brands);\n\t\t\t}\n\t\t\telse {\n\t\t\t\tconst brands = [];\n\t\t\t\tfetchMarcas(formToken).then((result) => {\n\t\t\t\t\tif (result?.content) {\n\t\t\t\t\t\tresult.content = namesSort(result.content);\n\t\t\t\t\t\tresult.content.forEach((arr) => {\n\t\t\t\t\t\t\tbrands.push(convertToOption(arr));\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tsetBrands(brands);\n\t\t\t\tdispatch({ type: 'UPDATE_VEHICLES', payload: { brands: brands } });\n\t\t\t}\n\t\t}\n\t}\n\n\tconst fillModelsCombo = (brandCode: string) => {\n\t\tsetModels(null);\n\t\tif (brandCode == vehiclesInfo.brandSelected) {\n\t\t\tsetModels(vehiclesInfo.models);\n\t\t}\n\t\telse {\n\t\t\tconst models = [];\n\t\t\tfetchModelos(brandCode, formToken).then((result) => {\n\t\t\t\tif (result?.content) {\n\t\t\t\t\tresult.content = namesSort(result.content);\n\t\t\t\t\tresult.content.forEach((arr) => {\n\t\t\t\t\t\tmodels.push(convertToOption(arr));\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t});\n\t\t\tsetModels(models);\n\t\t\tdispatch({ type: 'UPDATE_VEHICLES', payload: { models: models } });\n\t\t}\n\t}\n\n\tuseEffect(() => {\n\t\tfillBrandsCombo();\n\t\t\n\t\tif (vehiclesInfo.brandSelected) {\n\t\t\tsetBrand(vehiclesInfo.brandSelected);\n\t\t\tfillModelsCombo(vehiclesInfo.brandSelected);\n\t\t\tif (vehiclesInfo.modelSelected) {\n\t\t\t\tsetModel(vehiclesInfo.modelSelected);\n\t\t\t}\n\t\t}\n\t}, []);\n\n\tconst handleChangeBrand = (e: any) => {\n\t\te.preventDefault();\n\t\tif (e.target.value) {\n\t\t\tconst brand = getBrandByName(e.target.value);\n\t\t\tsetBrand(brand);\n\t\t\tsetModel(null);\n\t\t\tdispatch({ type: 'UPDATE_VEHICLES', payload: { brandSelected: brand, modelSelected: null } });\n dispatch({ type: 'UPDATE_FIELDS', payload: { [brandName]: brand.code } });\n\t\t\tfillModelsCombo(brand.code);\n\t\t}\n\t};\n\n\tconst handleChangeModel = (e: any) => {\n\t\te.preventDefault();\n\t\tif (e.target.value) {\n\t\t\tconst model = getModelByName(e.target.value);\n\t\t\tsetModel(model);\n\t\t\tdispatch({ type: 'UPDATE_VEHICLES', payload: { modelSelected: model } });\n\t\t\tdispatch({ type: 'UPDATE_FIELDS', payload: { [modelName]: model.code } });\n\t\t\tdispatch({ type: 'UPDATE_LITERAL_FIELDS_STEPS', payload: { [stepName]: brand.name + ' ' + model.name } });\n\t\t}\n\t};\n\n\tconst namesSort = (data) => {\n\t\tdata.sort((a, b) => {\n\t\t\tconst nameA = a.attributes.find(attr => attr.name === 'NAME').value;\n\t\t\tconst nameB = b.attributes.find(attr => attr.name === 'NAME').value;\n\t\t\tif (nameA < nameB) {\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t\tif (nameA > nameB) {\n\t\t\t\treturn 1;\n\t\t\t}\n\t\t\treturn 0;\n\t\t});\n\t\treturn data;\n\t}\n\n\tconst handleNoModel = () => {\n\t\tsetBrand(null);\n\t\tsetModel(null);\n\t\tdispatch({ type: 'UPDATE_VEHICLES', payload: { brandSelected: null, modelSelected: null} });\n\t\tdispatch({ type: 'UPDATE_FIELDS', payload: { [brandName]: null } });\n\t\tdispatch({ type: 'UPDATE_FIELDS', payload: { [modelName]: null } });\n\t\tdispatch({ type: 'UPDATE_LITERAL_FIELDS_STEPS', payload: { [stepName]: 'No' } });\n\t\tsetIsAnswered(true);\n\t}\n\n\treturn (\n\t\t\n\t\t\t{brands ? (\n\t\t\t\t\n\t\t\t\t\t 0 ? brands : []}\n\t\t\t\t\t\tname={brandName}\n\t\t\t\t\t\tisRequired={required}\n\t\t\t\t\t\trequired\n\t\t\t\t\t\thandleChange={handleChangeBrand}\n\t\t\t\t\t\tvalue={brand ? brand.name : \"\"}\n\t\t\t\t\t\tdefaultValue=\"\"\n\t\t\t\t\t\tonClick={() => null}\n\t\t\t\t\t\tsetOption={setBrand}\n\t\t\t\t\t\tisFloating={true}\n\t\t\t\t\t/>\n\t\t\t\t\t\n\t\t\t\t\t 0 ? models : []}\n\t\t\t\t\t\tname={modelName}\n\t\t\t\t\t\tisRequired={required}\n\t\t\t\t\t\trequired\n\t\t\t\t\t\thandleChange={handleChangeModel}\n\t\t\t\t\t\tvalue={model ? model.name : \"\"}\n\t\t\t\t\t\tdefaultValue=\"\"\n\t\t\t\t\t\tonClick={() => null}\n\t\t\t\t\t\tsetOption={setModel}\n\t\t\t\t\t\tisFloating={true}\n\t\t\t\t\t/>\n\t\t\t\t) : null}\n\t\t\t\n\t\t\t{ alternatCTA ? (\n\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\t\thandleNoModel();\n\t\t\t\t\t\t\tif(nextOnClick) {\n\t\t\t\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\t\t\t\thandleNextStep();\n\t\t\t\t\t\t\t\t}, 0);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}}\n\t\t\t\t\t>No\n\t\t\t\t\n\t\t\t) : null}\n\t\t\n\t);\n};","import { styled } from '@volkswagen-onehub/components-core';\nimport { keyframes } from 'styled-components';\n\nconst lineKeyframe = keyframes`\n from {\n transform: translateY(-40%);\n }\n to {\n transform: translateY(100%);\n }\n`;\n\nexport const VerticalLine = styled.div`\n height: 35px;\n width: 2px;\n background-color: #FFFFFF;\n animation: ${lineKeyframe} 1.75s infinite;\n`;\n","import React from 'react';\nimport { MultipleCTASelection } from 'src/components';\nimport {\n Container,\n ContainerGutter,\n Text,\n TextAlignment,\n TokenTextAppearance\n} from '@volkswagen-onehub/components-core';\nimport { CTAsSiNo } from 'src/feature-app/InputsValues/CTAsObjects';\n\nexport const YaTienesVolkswagen = () => {\n return (\n \n \n \n 1{' '}Recuerda que para participar en el sorteo debes formar parte de la familia Volkswagen. \n \n \n );\n};\n","import {\n styled\n} from '@volkswagen-onehub/components-core';\n\ninterface PaddingWrapperProps {\n paginaConfirmacion?: boolean;\n}\n\nexport const PaddingWrapper = styled.div`\n padding-top: ${(props) => (props.paginaConfirmacion ? '0px' : '44px')};\n @media all and (max-height: 624px) {\n padding-top: ${(props) => (props.paginaConfirmacion ? '0px' : '24px')};\n }\n`;\n","import {\n styled\n} from '@volkswagen-onehub/components-core';\n\ninterface IputWidthProps {\n notALayer?: boolean;\n}\n\nexport const InputWidthWrapper = styled.div`\n width: 100%;\n @media all and (min-width: 560px) {\n width: ${(props) => (props.notALayer ? 'var(--size-grid013)' : '303px')};\n }\n @media all and (min-width: 960px) {\n width: ${(props) => (props.notALayer ? 'var(--size-grid008)' : '320px')};\n }\n @media all and (min-width: 1280px) {\n width: ${(props) => (props.notALayer ? 'var(--size-grid006)' : '320px')};\n }\n @media all and (min-width: 1920px) {\n width: ${(props) => (props.notALayer ? 'var(--size-grid005)' : '320px')};\n }\n @media all and (min-width: 2560px) {\n width: ${(props) => (props.notALayer ? 'var(--size-grid004)' : '320px')};\n }\n`;\n\nexport const LabelInputWidthWrapper = styled.div`\n label {\n width: 100%;\n @media all and (min-width: 560px) {\n width: ${(props) => (props.notALayer ? 'var(--size-grid013)' : '303px')};\n }\n @media all and (min-width: 960px) {\n width: ${(props) => (props.notALayer ? 'var(--size-grid008)' : '320px')};\n }\n @media all and (min-width: 1280px) {\n width: ${(props) => (props.notALayer ? 'var(--size-grid006)' : '320px')};\n }\n @media all and (min-width: 1920px) {\n width: ${(props) => (props.notALayer ? 'var(--size-grid005)' : '320px')};\n }\n @media all and (min-width: 2560px) {\n width: ${(props) => (props.notALayer ? 'var(--size-grid004)' : '320px')};\n }\n }\n`;\n","import { styled } from '@volkswagen-onehub/components-core';\n\ninterface WithProps {\n paginaConfirmacion?: boolean;\n notALayer?: boolean;\n noPaddingTop?: boolean;\n}\n\nexport const GeneralInputWidthWrapper = styled.div`\n width: 100%;\n padding-top: ${(props) => (props.paginaConfirmacion ? '0px' : props.noPaddingTop ? '0' : '44px')};\n @media all and (max-height: 624px) {\n padding-top: ${(props) => (props.paginaConfirmacion ? '0px' : props.noPaddingTop ? '0' : '24px')};\n }\n @media all and (min-width: 560px) {\n width: ${(props) => (props.notALayer ? 'var(--size-grid013)' : '303px')};\n }\n @media all and (min-width: 960px) {\n width: ${(props) => (props.notALayer ? 'var(--size-grid008)' : '320px')};\n }\n @media all and (min-width: 1280px) {\n width: ${(props) => (props.notALayer ? 'var(--size-grid006)' : '320px')};\n }\n @media all and (min-width: 1920px) {\n width: ${(props) => (props.notALayer ? 'var(--size-grid005)' : '320px')};\n }\n @media all and (min-width: 2560px) {\n width: ${(props) => (props.notALayer ? 'var(--size-grid004)' : '320px')};\n }\n`;\n","import { styled } from '@volkswagen-onehub/components-core';\n\nexport const ContactInfoWrapper = styled.div`\n width: 100%;\n margin-bottom: 2px;\n .email-input-wrapper {\n padding-top: 24px;\n }\n @media all and (min-width: 960px) {\n display: flex;\n justify-content: space-between;\n .email-input-wrapper {\n padding-top: 44px;\n }\n }\n @media all and (max-height: 624px) {\n .email-input-wrapper {\n padding-top: 24px;\n }\n }\n`; \n","import { styled } from '@volkswagen-onehub/components-core';\n\nexport const GeneralConfirmacionLayerWrapper = styled.div`\n padding: 72px 0 44px;\n @media all and (min-width: 960px) {\n padding: 86px 0 0;\n }\n`;\n","import { styled } from '@volkswagen-onehub/components-core';\n\nexport const WhiteLinkWrapper = styled.span`\n a {\n color: #ffffff;\n font-weight: bold;\n }\n`;\n","import { styled } from '@volkswagen-onehub/components-core';\n\nexport const GeneralConfirmacionWrapper = styled.div`\n padding: 72px 0 44px;\n @media all and (min-width: 960px) {\n padding: 86px 0 0;\n }\n`;\n","import { CarlineBase } from 'src/types';\n/**\n * En el caso de CEM Venta tenemos que eliminar el \"Nuevo\" del título, ordenar alfabéticamente los carlines y eliminar los duplicados en caso de que haya\n * dos generaciones de carlines en el selector conviviendo como \"Nuevo Arteon\" y \"Arteon\".\n * @param carlines\n * @returns\n */\n export const formatCEMVenta = (carlines: CarlineBase[]) => {\n return carlines\n .map((carline) => {\n return {\n code: String(carline.code),\n name: carline.title,\n key: carline.title,\n };\n })\n .sort((a, b) => a.name.localeCompare(b.name, undefined, { sensitivity: 'base' }))\n .filter((carline, index, self) => index === self.findIndex((t) => t.name === carline.name));\n };\n","import { CarlineBase } from 'src/types';\nimport { SelectExtendedList } from 'src/components/CarlineSelect';\n\n/**\n * Devuelve el carline con el formato necesario para usar el select.\n * @param carline\n * @returns\n */\n export const formatCarlineSelectExtendedList = (carline: CarlineBase): SelectExtendedList => {\n if (!carline) {\n return null;\n }\n return {\n code: String(carline.code),\n name: `${carline.nuevo ? 'Nuevo ' : ''}${carline.title}`,\n key: carline.title,\n };\n };\n","import { CarlineBase } from 'src/types';\nimport { formatAlphabetical, formatCarlineSelectExtendedList } from '.';\n\n/**\n * Devuelve los carlines con el formato necesario\n * @param carlines\n * @returns\n */\n export const formatAllCarlines = (carlines: CarlineBase[], alphabetical?: boolean) => {\n if (alphabetical) {\n return formatAlphabetical(carlines);\n } else {\n return carlines.map((carline) => formatCarlineSelectExtendedList(carline)).filter((c) => c !== null);\n }\n};\n","import { CarlineBase, CarlinesWithSalesgroups, FormularioFlagType, OneFormState, Salesgroup } from 'src/types';\nimport { formatCarlineSelectExtendedList } from '.';\n\nexport const formatAlphabetical = (carlines: CarlineBase[]) => {\n return carlines\n .map((carline) => formatCarlineSelectExtendedList(carline))\n .map((carline) => {\n if (carline.name.includes('Nuevo')) {\n // Pasamos de Nuevo T-Roc a T-Roc ZNuevo para que el \"Nuevo\" no interfiera al ordenar y la parte de Nuevo no tenga preferencia sobre otras.\n carline.name = carline.name.replace('Nuevo ', '').concat(' ZNuevo');\n return carline;\n }\n return carline;\n })\n .filter((c) => c !== null)\n .sort((a, b) => a.name.localeCompare(b.name, undefined, { sensitivity: 'base' }))\n .map((carline) => {\n if (carline.name.includes('ZNuevo')) {\n // Hacemos la operación contraria para devolver el orden correcto.\n carline.name = `Nuevo ${carline.name.replace(' ZNuevo', '')}`;\n return carline;\n }\n return carline;\n });\n};\n","import { formatSalesgroupsSelectExtendedList } from '.';\nimport { Salesgroup } from 'src/types';\n\nexport const formatAllSalesgroups = (carlines: Salesgroup[]) =>\ncarlines.map((carline) => formatSalesgroupsSelectExtendedList(carline)).filter((c) => c !== null);\n","import { Salesgroup } from 'src/types';\nimport { SelectExtendedList } from 'src/components/CarlineSelect';\n/**\n * Devuelve los salesgroups con el formato necesario para usar el select.\n * @param carline\n * @returns\n */\n export const formatSalesgroupsSelectExtendedList = (carline: Salesgroup): SelectExtendedList => {\n if (!carline) {\n return null;\n }\n return {\n code: String(carline.code),\n name: carline.name,\n key: carline.name,\n };\n};\n","import { CarlineBase, CarlinesWithSalesgroups, FormularioFlagType } from 'src/types';\n/**\n * Devuelve únicamente los carlines con el flag del formulario correspondiente.\n * @param carlines\n * @param formularioFlag\n * @returns\n */\n export const filterCarlineFlag = (carlines: CarlineBase[] | CarlinesWithSalesgroups[], formularioFlag: FormularioFlagType) => {\n if (!formularioFlag) {\n return carlines;\n }\n\n return carlines\n .map((carline: CarlineBase | CarlinesWithSalesgroups) => {\n if (carline.formularios[formularioFlag] === 1) {\n return carline;\n }\n })\n .filter((carline) => carline !== undefined);\n};\n","import { CarlinesWithSalesgroups } from 'src/types';\n\nexport const getSalesgroupsFromCarlines = (carlines: CarlinesWithSalesgroups[]) => {\n return carlines\n .map((carline) => carline.salesGroups)\n .filter((c) => c !== null)\n .flat();\n};\n","import { CarlinesWithSalesgroups } from 'src/types';\nimport { getSalesgroupsFromCarlines, formatAllSalesgroups } from '.';\n/**\n * Se agrupan todas las operaciones que se realizan a los carlines con salesgroups (filtrar por flag, obtener solo los salesgroups y formatearlos) para no hacerlas dos veces.\n * @param carlines\n * @param formularioFlag\n * @returns\n */\nexport const getFormattedSalesgroups = (carlines: CarlinesWithSalesgroups[]) => {\n const salesgroups = getSalesgroupsFromCarlines(carlines);\n return formatAllSalesgroups(salesgroups);\n};\n","import { CarlineBase } from 'src/types';\n/**\n * Devuelve únicamente los carlines preseleccionados desde el cms en una array con carlineCodes tipo [30155, 30205].\n * @param carlines\n * @param faContentCarlines\n * @returns\n */\nexport const filterPreselectedFaContent = (carlines: CarlineBase[], faContentCarlines: number[]) => {\n return faContentCarlines\n .map((carlineCode) => carlines.find((carline) => carline.code == carlineCode))\n .filter((c) => c !== undefined);\n};\n","import { CarlineBase } from 'src/types';\nimport { getSalesgroupsFromCarlines } from '.';\n/**\n * Devuelve únicamente los carlines preseleccionados desde el cms en una array con carlineCodes tipo [30155, 30205].\n * @param carlines\n * @param faContentCarlines\n * @returns\n */\nexport const filterPreselectedFaContentSalesgroups = (carlines: CarlineBase[], faContentSalesgroups: number[]) => {\n const salesgroups = getSalesgroupsFromCarlines(carlines);\n return faContentSalesgroups\n .map((salesgroupCode) => salesgroups.find((salesgroup) => salesgroup.code == salesgroupCode))\n .filter((c) => c !== undefined);\n};\n","import { CarlineBase, CarlinesWithSalesgroups } from 'src/types';\n\nexport const findCarlineFromSalesgroup = (carlines: CarlineBase[] | CarlinesWithSalesgroups[], code: number) =>\n carlines.find((carline: CarlinesWithSalesgroups) => {\n return carline.salesGroups?.find((salesgroup) => salesgroup.code === code);\n });\n","import { CarlineBase, CarlinesWithSalesgroups, OneFormState } from 'src/types';\nimport { findCarlineFromSalesgroup } from '.';\nimport { useFaContent } from 'src/feature-app';\n\n\nexport const findCarline = (\n carlines: CarlineBase[] | CarlinesWithSalesgroups[],\n code: number | string,\n salesgroupId?: number\n) => {\n if (salesgroupId) {\n let carline = findCarlineFromSalesgroup(carlines, salesgroupId);\n return carline;\n } else if (carlines.find((carline: CarlineBase) => carline.code === Number(code))) {\n let carline = carlines.find((carline: CarlineBase) => carline.code === Number(code));\n return carline;\n } else {\n let carline = carlines.find((carline: CarlineBase) => carline.name === (code));\n return carline;\n }\n \n return null;\n};\n","import { OneFormContent } from 'src/feature-app';\n\nexport const thereIsKeyInFaContent = (faContent: OneFormContent, key: 'carlines' | 'salesgroups') =>\nfaContent && faContent[key] && faContent[key].length > 0;\n\nexport const thereIsCarlinesInFaContent = (faContent: OneFormContent) => thereIsKeyInFaContent(faContent, 'carlines');\n\nexport const thereIsSalesgroupsInFaContent = (faContent: OneFormContent) => thereIsKeyInFaContent(faContent, 'salesgroups');\n\nexport const isCarlineMode = (faContent: OneFormContent) => faContent?.mode === 'Carline';\n\nexport const isSalesGroupMode = (faContent: OneFormContent) => faContent?.mode === 'Salesgroup';\n\nexport const isMixedMode = (faContent: OneFormContent) => faContent?.mode === 'Mixed';\n\nexport const isConfiguratorMode = (faContent: OneFormContent) => faContent?.mode === 'CarConfiguratorFS';\n","import React, { useEffect, useRef, useState } from 'react';\nimport { useFormContext } from 'react-hook-form';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { getCarlines, getCarlinesCitaLegacy } from 'src/bff';\nimport { GeneralInputWidthWrapper, IDBuzzFakeInput } from 'src/components';\nimport { isNull, useFaContent } from 'src/feature-app';\nimport { useOneFormContext } from 'src/feature-app/OneForm';\nimport { useIsComerciales } from 'src/feature-app/hooks';\nimport { CarlineBase, CarlinesWithSalesgroups, OneFormState } from 'src/types';\nimport { SelectExtended } from 'src/components';\nimport { InputError, TextInputExtended } from 'src/components/inputs';\nimport {\n formatCEMVenta,\n formatAllSalesgroups,\n formatAllCarlines,\n filterCarlineFlag,\n getFormattedSalesgroups,\n filterPreselectedFaContent,\n filterPreselectedFaContentSalesgroups,\n findCarline,\n findCarlineFromSalesgroup,\n thereIsCarlinesInFaContent,\n thereIsSalesgroupsInFaContent,\n isSalesGroupMode,\n isMixedMode,\n} from 'src/components/CarlineSelect';\nexport interface SelectExtendedList {\n code: string;\n name: string;\n key: string;\n}\ninterface CarlineSelectProps {\n useCarline?: boolean;\n isCEMVenta?: boolean;\n notALayer?: boolean;\n noPaddingTop?: boolean;\n alphabetical?: boolean;\n nextOnSelect?:boolean\n}\n\nexport function CarlineSelect(props: CarlineSelectProps) {\n const { useCarline, notALayer, noPaddingTop, isCEMVenta, alphabetical, nextOnSelect } = props;\n const { register, errors } = useFormContext();\n const [errorModelo, setErrorModelo] = useState(false);\n const { formData, dealersInfo, formInfo } = useSelector((state: OneFormState) => state);\n const { fields } = formData;\n const { screenIndex } = formInfo;\n const { carlines } = dealersInfo;\n const { error, handleNextStep } = useOneFormContext();\n const [list, setList] = useState(null);\n const dispatch = useDispatch();\n const [modelo, setModelo] = useState(null);\n const faContent = useFaContent();\n const screenIndexRef = useRef(null);\n const isComerciales = useIsComerciales();\n\n\n /**\n * En modo mixed se fija puede fijar un salesgroup al principio y en caso de que se acabe eligiendo un carline, se ha de eliminar la primera selección.\n */\n const dispatchEmptySalesgroup = () => dispatchSetSalesgroup(null, null);\n const dispatchSalesgroup = (id: number, name: string) => dispatchSetSalesgroup(id, name);\n\n const dispatchSetSalesgroup = (id: number, name: string) => {\n dispatch({\n type: 'SET_SALESGROUP',\n payload: {\n salesGroupId: id,\n salesGroupName: name,\n },\n });\n };\n\n const updateCarlineCode = (carlineCode: number, salesgroupName?: string) => {\n if (carlines) {\n let carline: CarlineBase | CarlinesWithSalesgroups;\n\n if (isSalesGroupMode(faContent)) {\n carline = findCarlineFromSalesgroup(carlines, carlineCode);\n if (carline) {\n dispatchSalesgroup(carlineCode, salesgroupName);\n } else {\n carline = findCarline(carlines, carlineCode);\n }\n } else if (isMixedMode(faContent)) {\n // Primero buscamos carline\n carline = findCarline(carlines, carlineCode);\n\n dispatchEmptySalesgroup();\n\n if (!carline) {\n // Buscamos salesgroup\n carline = findCarlineFromSalesgroup(carlines, carlineCode);\n dispatchSalesgroup(carlineCode, salesgroupName);\n }\n } else {\n carline = findCarline(carlines, carlineCode);\n // dispatchEmptySalesgroup();\n }\n dispatch({ type: 'SET_SELECTED_CARLINE', payload: carline });\n if (!isCEMVenta) {\n dispatch({ type: 'UPDATE_FIELDS', payload: { carlineCode: carline.code } });\n }\n }\n };\n\n /**\n * Inicializa la lista del selector\n * @param list\n */\n const handleUpdateList = (list: SelectExtendedList[]) => {\n if (!list) {\n return;\n }\n setList(list);\n if (fields.modelo) {\n const modeloInList = list.find((listValue) => listValue.name === fields.modelo);\n // setModelo(modeloInList.name);\n changeModeloFields(modeloInList.name, list);\n updateCarlineCode(Number(modeloInList.code));\n } else {\n // Valor inicial del modelo vacío\n changeModeloFields('', list);\n }\n };\n\n const initializeSelectWithCarline = async () => {\n // Eliminamos todos los carlines que no tienen el flag correspondiente del formulario activado.\n const filteredCarlines = filterCarlineFlag(carlines, fields.formularioFlag);\n let carlinesFromFaContent: CarlineBase[];\n let allCarlines: any[];\n\n if (thereIsCarlinesInFaContent(faContent)) {\n // Filtramos los carlines del FA Content.\n allCarlines = faContent.carlines.filter(c => c.toString() != \"\")\n\n if (/[0-9]/.test(allCarlines[0])) {\n carlinesFromFaContent = filteredCarlines.filter((c) => allCarlines.map(Number).includes(c.code));\n } else {\n carlinesFromFaContent = filteredCarlines.filter((c) => allCarlines.map(String).includes(c.name));\n }\n console.log('carllineSelect', carlinesFromFaContent);\n // const carlinesFromFaContent = filterPreselectedFaContent(filteredCarlines, faContent.carlines);\n const carlinesFormatted = formatAllCarlines(carlinesFromFaContent, alphabetical);\n handleUpdateList(carlinesFormatted);\n return;\n } else if (useCarline) {\n if (!carlines) {\n const newCarlines = await getCarlines();\n const newfilteredCarlines = filterCarlineFlag(newCarlines, fields.formularioFlag);\n const carlinesFormatted = formatAllCarlines(newfilteredCarlines, alphabetical);\n handleUpdateList(carlinesFormatted);\n return;\n }\n // En caso de que se necesiten los carlines de getCarlines de forma genérica.\n const carlinesFormatted = formatAllCarlines(filteredCarlines, alphabetical);\n handleUpdateList(carlinesFormatted);\n return;\n } else {\n // Para la pantalla de modelo y matrícula de cita se necesitan unos modelos específicos.\n const carlines = await getCarlinesCitaLegacy(isComerciales);\n handleUpdateList(carlines);\n }\n };\n\n const initializeSelectWithSalesgroup = async () => {\n // Eliminamos todos los carlines que no tienen el flag correspondiente del formulario activado.\n const filteredCarlines = filterCarlineFlag(carlines, fields.formularioFlag);\n\n if (thereIsSalesgroupsInFaContent(faContent)) {\n const salesgroupsFromFaContent = filterPreselectedFaContentSalesgroups(filteredCarlines, faContent.salesgroups);\n const formatedSalesgroups = formatAllSalesgroups(salesgroupsFromFaContent);\n if (!formatedSalesgroups || formatedSalesgroups.length === 0) {\n initializeSelectWithCarline();\n return;\n }\n handleUpdateList(formatedSalesgroups);\n return;\n } else if (useCarline) {\n // En caso de que se necesiten los carlines de getSalesgroup.\n const formatedSalesgroups = getFormattedSalesgroups(filteredCarlines);\n if (!formatedSalesgroups || formatedSalesgroups.length === 0) {\n initializeSelectWithCarline();\n return;\n }\n handleUpdateList(formatedSalesgroups);\n return;\n }\n };\n const initializeSelectWithMixed = async () => {\n // Eliminamos todos los carlines que no tienen el flag correspondiente del formulario activado.\n const filteredCarlines = filterCarlineFlag(carlines, fields.formularioFlag);\n\n let result: SelectExtendedList[] = [];\n\n if (thereIsSalesgroupsInFaContent(faContent)) {\n const salesgroupsFromFaContent = filterPreselectedFaContentSalesgroups(filteredCarlines, faContent.salesgroups);\n const formatedSalesgroups = formatAllSalesgroups(salesgroupsFromFaContent);\n result = [...result, ...formatedSalesgroups];\n }\n if (thereIsCarlinesInFaContent(faContent)) {\n const carlinesFromFaContent = filterPreselectedFaContent(filteredCarlines, faContent.carlines);\n const carlinesFormatted = formatAllCarlines(carlinesFromFaContent, alphabetical);\n result = [...result, ...carlinesFormatted];\n }\n if (!result || result.length === 0) {\n initializeSelectWithCarline();\n }\n handleUpdateList(result);\n };\n\n const initializeSelectWithCEMVenta = async () => {\n // Eliminamos todos los carlines que no tienen el flag correspondiente del formulario activado.\n const newCarlines = await getCarlines();\n const newfilteredCarlines = filterCarlineFlag(newCarlines, fields.formularioFlag);\n const carlinesFormatted = formatCEMVenta(newfilteredCarlines);\n\n handleUpdateList(carlinesFormatted);\n return;\n };\n\n useEffect(() => {\n if (isSalesGroupMode(faContent)) {\n initializeSelectWithSalesgroup();\n } else if (isMixedMode(faContent)) {\n initializeSelectWithMixed();\n } else if (isCEMVenta) {\n initializeSelectWithCEMVenta();\n } else {\n initializeSelectWithCarline();\n }\n }, []);\n\n useEffect(() => {\n // Hack para guardar la información del carline únicamente al pasar a la siguiente pantalla y no enviar datos\n // de analítica del carline seleccionado por defecto.\n\n if (isNull(screenIndexRef.current)) {\n screenIndexRef.current = screenIndex;\n } else {\n if (useCarline) {\n const carline = list.find((carline: any) => carline.name === modelo);\n if (carline) {\n if (isSalesGroupMode(faContent) || isMixedMode(faContent)) {\n updateCarlineCode(Number(carline.code), carline.name);\n } else {\n updateCarlineCode(Number(carline.code));\n }\n }\n }\n }\n }, [screenIndex]);\n\n useEffect(() => {\n errors.modelo || (error && !modelo ) ? setErrorModelo(true) : setErrorModelo(false);\n }, [errors, error]);\n\n const changeModeloFields = (model: string, list: SelectExtendedList[]) => {\n setModelo(model);\n const modeloList = list?.find((element) => element.name === model);\n dispatch({ type: 'UPDATE_FIELDS', payload: { modeloList } });\n };\n\n function handleChangeModelo(event: any) {\n const newModelo = event.currentTarget.value;\n\n if (newModelo) {\n changeModeloFields(newModelo, list);\n }\n\n if (newModelo !== '') {\n setErrorModelo(false);\n }\n\n if (nextOnSelect) {\n handleNextStep();\n }\n }\n\n return (\n \n {isComerciales && fields?.idBuzzExclusive ?\n <>\n \n \n :\n list ? (\n <>\n {}}\n updateFields\n setOption={setModelo}\n isRequired={true}\n />\n \n ) : (\n
\n \n
\n )}\n {errorModelo ? Este campo es obligatorio : null}\n {}\n
\n );\n}\n","import { Spinner, Text, styled } from '@volkswagen-onehub/components-core';\nimport React, { useEffect, useState } from 'react';\n\ninterface CenterContentProps {\n height: string;\n}\nconst CenterContent = styled.div`\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n height: ${(props) => (props.height ? props.height : '100%')};\n`;\n\nexport const LoadingEncuestas = () => {\n const [height, setHeight] = useState('100%');\n\n useEffect(() => {\n const viewportHeight = window.innerHeight;\n const viewportWidth = window.innerWidth;\n let aux;\n\n if (viewportWidth < 560) {\n aux = viewportHeight - 152;\n } else if (viewportWidth < 1600) {\n aux = viewportHeight - 252;\n } else {\n aux = viewportHeight - 380;\n }\n setHeight(`${aux}px`);\n }, []);\n\n return (\n \n \n Cargando tus datos\n \n );\n};\n","import React from 'react';\nimport {\n Breakpoints,\n BreakpointWrapper,\n Text,\n TextAlignment,\n TokenTextAppearance,\n} from '@volkswagen-onehub/components-core';\n\ninterface ThankYouTitleProps {\n notALayer?: boolean;\n regularCopyFirst?: string;\n boldCopyFirst?: string;\n regularCopySecond?: string;\n boldCopySecond?: string;\n}\n\nexport const ThankYouTitle = (props: ThankYouTitleProps) => {\n const { regularCopyFirst, boldCopyFirst, notALayer, regularCopySecond, boldCopySecond } = props;\n return (\n <>\n { notALayer ? (\n <>\n {' '}\n {regularCopyFirst ? <>{regularCopyFirst}{' '} : null}\n {\n boldCopyFirst ? {boldCopyFirst}{' '} : null\n }\n {regularCopySecond ? <>{regularCopySecond}{' '} : null}\n {\n boldCopySecond ? {boldCopySecond} : null\n }\n \n ) : (\n <>\n \n \n {regularCopyFirst ? <>{regularCopyFirst}{' '} : null}\n {\n boldCopyFirst ? {boldCopyFirst} : null\n }\n {regularCopySecond ? <>{regularCopySecond}{' '} : null}\n {\n boldCopySecond ? {boldCopySecond} : null\n }\n \n \n \n \n {regularCopyFirst ? <>{regularCopyFirst}{' '} : null}\n {\n boldCopyFirst ? {boldCopyFirst} : null\n }\n {regularCopySecond ? <>{regularCopySecond}{' '} : null}\n {\n boldCopySecond ? {boldCopySecond} : null\n }\n \n \n \n )}\n \n );\n};\n","import React from 'react';\nimport {\n CTA,\n styled\n} from '@volkswagen-onehub/components-core';\n\nexport type CTAThankYou = {\n emphasis?: string;\n label: string;\n url?: string;\n}\n\ninterface CTAThankYouPageProps {\n firstCTA: CTAThankYou;\n secondCTA?: boolean;\n secondCTACopies?: CTAThankYou;\n}\n\nconst CtasWrapper = styled.div`\n display: flex;\n flex-direction: column;\n gap: 32px;\n align-items: flex-start;\n @media all and (min-width: 560px) {\n flex-direction: row;\n gap: 44px;\n }\n button {\n align-self: flex-start;\n }\n`;\n\nexport const CTAThankYouPage = (props: CTAThankYouPageProps) => {\n const { firstCTA, secondCTA, secondCTACopies } = props;\n\n return (\n \n \n {firstCTA.label}\n \n {\n secondCTA ? (\n \n {secondCTACopies.label}\n \n ) : null\n }\n \n \n );\n};\n","import React from 'react';\nimport {\n Breakpoints,\n Container,\n ContainerPadding,\n Layout,\n Text,\n TextAlignment,\n ContainerGutter,\n TokenTextAppearance\n} from '@volkswagen-onehub/components-core';\nimport { CTAThankYouPage, CTAThankYou, CTAThankYouPageAction, CTAAction, LeadsCTAs } from '.';\nimport { OneFormState } from 'src/types';\nimport { useSelector } from 'react-redux';\n\n\ninterface FieldProps {\n copyBook?: any;\n copyBookSecond?: any;\n notALayer?: boolean;\n CTAFields?: boolean;\n firstCTA?: CTAThankYou;\n secondCTA?: boolean;\n secondCTACopies?: CTAThankYou;\n CTAAction?: CTAAction;\n ctaFunction?: any;\n ctaUrl?: string;\n}\n\nexport const ThankYouFields = (props: FieldProps) => {\n const{ \n notALayer , \n copyBook, \n CTAFields, \n copyBookSecond, \n firstCTA, \n secondCTA, \n secondCTACopies, \n CTAAction,\n ctaFunction,\n ctaUrl\n } = props;\n const { formData } = useSelector((state: OneFormState) => state);\n const { formName } = formData.fields;\n\n return (\n <>\n {\n notALayer ? (\n \n
\n \n \n {copyBook}\n \n {\n copyBookSecond ? (\n \n {copyBookSecond}\n \n ) : null\n }\n \n {\n CTAFields ? : null\n }\n {\n CTAAction? : null\n }\n {\n formName && formName === 'lead-oferta' || formName === 'lead-match' ? ( \n \n ) : null\n }\n
\n \n\n ) : (\n \n
\n \n \n {copyBook}\n \n {\n copyBookSecond ? (\n \n {copyBookSecond}\n \n ) : null\n }\n \n {\n CTAFields ? : null\n }\n {\n CTAAction? : null\n }\n {\n formName && formName === 'lead-oferta' || formName === 'lead-match' ? ( \n \n ) : null\n }\n
\n \n )}\n \n );\n};\n","import React from 'react';\nimport {\n CTA,\n} from '@volkswagen-onehub/components-core';\n\nexport type CTAAction = {\n label: string,\n emphasis: string,\n}\n\ninterface CTAThankYouPageActionProps {\n ctaInfo: CTAAction;\n ctaFunction: any;\n}\n\nexport const CTAThankYouPageAction = (props: CTAThankYouPageActionProps) => {\n const { ctaInfo, ctaFunction } = props;\n\n return (\n {\n e.preventDefault();\n ctaFunction();\n }}\n >\n {ctaInfo.label}\n \n );\n};\n","import {\n Container,\n ContainerGutter,\n ContainerPadding,\n CTA,\n} from '@volkswagen-onehub/components-core';\nimport React from 'react';\nimport { useOneFormContext } from 'src/feature-app';\n\ninterface CTAFieldsProps {\n url: string;\n}\n\nexport const LeadsCTAs = (props: CTAFieldsProps) => {\n const { url } = props;\n const { closeLayer } = useOneFormContext();\n\n \n return (\n \n \n Conócelo\n \n {\n e.preventDefault();\n closeLayer();\n }}\n >\n Seguir navegando\n \n \n );\n};\n","import React, { useState, useEffect, useRef } from 'react';\nimport { styled, Text, TextInput, Layout, Breakpoints, Container, ContainerGutter, TokenTextAppearance } from '@volkswagen-onehub/components-core';\nimport { useSelector } from 'react-redux';\nimport { OneFormState } from 'src/types';\nimport { useDispatch } from 'react-redux';\nimport { useFeatureServices, useOneFormContext } from 'src/feature-app';\nimport { Info } from '@volkswagen-onehub/icons-core';\nimport { CloseHandleV2, FocusLayerSizeV2, LayerManagerV2 } from '@volkswagen-onehub/layer-manager';\nimport { Close } from '@volkswagen-onehub/icons-core';\n\n\ntype WrapperProps = {\n disabled?: boolean;\n themeColor?: string;\n};\n\nconst SVGSize = styled.div`\n position: relative;\n top: 41px;\n width: 100%;\n display: flex;\n justify-content: flex-end;\n z-index: 1000;\n\n \n @media all and (min-width: 560px) {\n width: 303px;\n }\n @media all and (min-width: 960px) {\n width: 320px;\n }\n div{\n cursor:pointer;\n }\n svg {\n height: 20px;\n width: auto;\n }\n`;\n\n\n\nconst SelectWrapper = styled.div`\n & span::before {\n display: none;\n }\n svg {\n fill: ${(props) => (props.themeColor === 'main' ? '#001E50' : '#ffffff')};\n }\n\n label {\n color: ${(props) => (props.themeColor === 'main' ? '#001E50' : '#ffffff')};\n\n option {\n color: #001e50;\n padding-left: 12px;\n }\n }\n input{\n cursor: default;\n }\n`;\ninterface SelectProps {\n name: string;\n value?: any;\n defaultValue?: string;\n isFloating?: boolean;\n required?: boolean;\n disabled?: boolean;\n error?: boolean;\n getDealers?: (provincia: string) => void;\n setFormValue?: (selValueIndex: number) => void;\n onClick?: (e?: any) => void;\n changeModel?: any;\n setOption?: any;\n updateFields?: boolean;\n isRequired: boolean;\n innerRef?: any;\n}\n\nexport const IDBuzzFakeInput = React.forwardRef((props: SelectProps, ref: React.Ref) => {\n const [selItem, setSelItem] = useState(null);\n const [showOptions, setShowOptions] = useState(false);\n const layerManager = useFeatureServices()['layer-manager'] as LayerManagerV2;\n const { handlePreviousStep } = useOneFormContext();\n const [keyValuePair, setKeyValuePair] = useState();\n const { name, updateFields, value, changeModel, setOption } = props;\n const wrapperRef = useRef(null);\n const dispatch = useDispatch();\n const { formInfo } = useSelector((state: OneFormState) => state);\n const handleClickOutside = (e: any) => {\n if (!wrapperRef.current.contains(e.target)) {\n setShowOptions(false);\n }\n };\n\n const Content = styled.div`\n background-color: white;\n padding: 44px 31px;\n flex: auto;\n text-align: center;\n width: 100%;\n @media screen and (min-width: 560px) {\n padding: 52px 46px;\n }\n @media screen and (min-width: 960px) {\n padding: var(--size-grid001);\n }\n p{\n background-color: none;\n }\n`;\n\n const CloseDiv = styled.div`\n position: absolute;\n top: var(--size-dynamic0050);\n right: var(--size-dynamic0050);\n cursor: pointer;\n`;\n\n const CTAWrapper = styled.div`\n display: flex;\n flex-direction: column;\n width: 100%;\n align-items: center;\n p{\n text-decoration: underline #001E50;\n text-underline-offset: 8px;\n padding-bottom: 8px;\n color: #001E50;\n cursor: pointer;\n :hover{\n background-color: rgb(194, 202, 207);\n }\n }\n`;\n\n const renderIDBuzzInfo = (state: any, close: CloseHandleV2) => {\n return (\n \n close({}, {}, {})}\n >\n \n \n \n \n \n Este taller ofrece servicios en\n exclusiva para el ID. Buzz\n \n {\n e.preventDefault();\n handlePreviousStep(e);\n close({}, {}, {});\n }}>\n

Haz clic aquí para cambiar de instalación.

\n
\n
\n \n
\n );\n };\n\n const handleIdBuzzInfo = () => {\n layerManager.openFocusLayer(renderIDBuzzInfo, {}, { size: FocusLayerSizeV2.A, userCloseable: true })\n }\n\n useEffect(()=>{\n setSelItem('ID. Buzz')\n changeModel('ID. Buzz')\n setOption('ID. Buzz')\n },[])\n\n useEffect(() => {\n document.addEventListener('mousedown', handleClickOutside);\n // función que se llama cuando la componente se desmonta\n return () => {\n document.removeEventListener('mousedown', handleClickOutside);\n };\n }, [wrapperRef.current]);\n\n useEffect(() => {\n updateFields\n ? dispatch({ type: 'UPDATE_FIELDS', payload: { [name]: keyValuePair ? keyValuePair : value } })\n : undefined;\n }, [keyValuePair, value]);\n\n useEffect(() => {\n if (value) {\n setTimeout(() => {\n setSelItem(value);\n }, 0);\n }\n }, [value]);\n\n return (\n \n \n
{\n handleIdBuzzInfo()\n }}>\n \n
\n
\n \n \n );\n});\n","/* eslint-disable @typescript-eslint/explicit-function-return-type */\nimport React, { useState, useEffect } from 'react';\nimport { styled } from '@volkswagen-onehub/components-core';\n\nconst SectionWrapper = styled.div`\n position: relative;\n height: 100%;\n\n @media all and (min-width: 960px) {\n height: max-content;\n min-height: calc(100vh - 164px);\n width: var(--size-grid012);\n display: flex;\n align-items: center;\n margin-top: 0;\n }\n @media all and (min-width: 1600px) {\n min-height: calc(100vh - 180px);\n }\n`;\n\ninterface ImageWrapperProps {\n noMargins?: boolean;\n}\n\nconst ImageWrapper = styled.div`\n img {\n width: var(--size-grid024);\n margin: auto;\n margin-top: ${(props) => props.noMargins ? '-32px' : '0'};\n height: auto;\n @media all and (min-width: 560px) {\n width: var(--size-grid024);\n }\n @media all and (min-width: 960px) {\n margin: auto;\n width: var(--size-grid012);\n }\n @media all and (min-width: 1920px) {\n width: var(--size-grid011);\n }\n }\n`;\n\ninterface ImageProps {\n image: string;\n modelName: string;\n noMargins?: boolean;\n}\nexport const ImageCarNoColorBG = (props: ImageProps) => {\n const { image, modelName } = props;\n\n return (\n \n \n {modelName}\n \n \n );\n};\n","import { CTA } from '@volkswagen-onehub/components-core';\nimport { CTAButtonProps } from '@volkswagen-onehub/components-core/dist/call-to-action';\nimport React, { useEffect, useState } from 'react';\nimport { Controller, useFormContext } from 'react-hook-form';\nimport { useSelector } from 'react-redux';\nimport { useTrackingManager } from 'src/feature-app/hooks/use-tracking-manager';\nimport { OneFormState } from 'src/types';\n\ndeclare type Emphasis = 'primary' | 'secondary' | 'tertiary';\ndeclare type Size = 'small' | 'large';\n\ninterface InputButtonProps extends CTAButtonProps {\n innerRef?: any;\n name: string;\n key: string | number;\n label: string;\n selectedValue?: string;\n size?: Size;\n ignoreHandleClick?: boolean;\n disabled?: boolean;\n}\n\nexport function InputButton(props: InputButtonProps) {\n const trackingManager = useTrackingManager();\n\n const { innerRef, title, key, selectedValue, label, name, onClick, size, ignoreHandleClick, disabled } = props;\n const { formData } = useSelector((state: OneFormState) => state);\n\n const { control, register, setValue } = useFormContext();\n const [apparence, setApparence] = useState('secondary');\n\n const handleClick = () => {\n apparence === 'secondary' ? setApparence('primary') : setApparence('secondary');\n setValue(name, label);\n };\n\n useEffect(() => {\n selectedValue === label ? setApparence('primary') : setApparence('secondary');\n const value = formData.fields[name];\n if (value && value === label) {\n setApparence('primary');\n }\n }, [selectedValue]);\n\n return (\n {\n e.preventDefault();\n trackingManager.trackFormButtonClick({\n contentId: label,\n });\n // if (onClick) onClick(e);\n // else handleClick();\n if (!ignoreHandleClick) {\n handleClick();\n }\n if (onClick) {\n onClick(e);\n }\n }}\n size={size ? size : 'large'}\n disabled={disabled}\n >\n {label}\n \n }\n key={key}\n name={name}\n control={control}\n />\n );\n}\n","import React, { Ref, SyntheticEvent, useEffect, useState } from 'react';\nimport { TextInput, InputAppearance, TextInputProps } from '@volkswagen-onehub/components-core';\nimport { useFormContext } from 'react-hook-form';\nimport { useFeatureServices, useOneFormContext, useTrackingManager } from 'src/feature-app';\nimport { FieldType } from 'src/feature-service/es-oneform-core-feature-service/types';\nimport { useSelector } from 'react-redux';\nimport { OneFormState } from 'src/types';\n\nexport interface TextInputExtendedProps extends TextInputProps {\n name: FieldType;\n innerRef?: Ref;\n /**\n * En caso de que el input esté junto con un CTA, se debe de pasar el label del CTA para en caso de que se seleccione el CTA no se refleje en el input.\n */\n alternateCTAText?: string;\n type?: string;\n disabled?: boolean;\n // errors: any;\n}\n\nexport function TextInputExtended(props: TextInputExtendedProps) {\n const { innerRef, name, onBlur, required, alternateCTAText, onChange, label, type, onFocus, disabled } = props;\n const { errors, register, setValue } = useFormContext();\n const { handleNextStep } = useOneFormContext();\n const trackingManager = useTrackingManager();\n\n const oneFormFeatureService = useFeatureServices()['es:oneform-core'];\n const { formData } = useSelector((state: OneFormState) => state);\n const [currentValue, setCurrentValue] = useState('');\n\n useEffect(() => {\n const value = formData.fields[name];\n\n if (value && value !== alternateCTAText && value != 'null' && value != 'false' && value != '0') {\n setCurrentValue(value);\n }\n }, []);\n\n const centerInputInMobile = (target: EventTarget & HTMLInputElement) => {\n if (target && window.innerWidth < 959) {\n target.scrollIntoView({ block: 'center' });\n }\n };\n\n return (\n ) => {\n setCurrentValue(e.currentTarget.value);\n if (onChange) {\n onChange(e);\n }\n }}\n onBlur={(e: SyntheticEvent) => {\n if (onBlur) onBlur(e);\n setValue(name, e.currentTarget.value);\n oneFormFeatureService.setField(name, e.currentTarget.value);\n }}\n onFocus={(e: any) => {\n centerInputInMobile(e.target);\n trackingManager.trackFormFieldClick(\n {\n contentId: label,\n },\n {\n FormFieldName: name,\n }\n );\n if (onFocus) {\n onFocus(e);\n }\n }}\n type={type ? type : 'text'}\n isFloating={!currentValue ? true : false}\n value={currentValue}\n />\n );\n}\n","import React, { useEffect, useState } from 'react';\nimport { useFormContext } from 'react-hook-form';\nimport { InputError } from 'src/components';\nimport { TextInputExtended } from './TextInputExtended';\nimport { useOnlyLettersControl } from './use-only-letters-control';\nimport { useDispatch } from 'react-redux';\n\ninterface ApellidoProps {\n name?: 'surname' | 'secondSurname';\n label?: string;\n required?: boolean;\n setFieldValue?: boolean;\n}\n\nexport function Apellido(props: ApellidoProps) {\n const { register, errors } = useFormContext();\n const { name, label, required, setFieldValue } = props;\n const [inputValue, setInputValue] = useState('');\n const [pristine, setPristine] = useState(true);\n const { error, regExp } = useOnlyLettersControl(pristine, inputValue);\n const dispatch = useDispatch();\n\n const innerRef = required\n ? register({\n required: {\n value: true,\n message: 'Requerido',\n },\n pattern: {\n value: regExp,\n message: 'Solo se aceptan letras',\n },\n })\n : register;\n\n const handleChange = (e: any) => {\n if (setFieldValue && !error) {\n dispatch({ type: 'UPDATE_FIELDS', payload: { [name]: e.target.value } });\n }\n setInputValue(e.target.value);\n setPristine(false);\n };\n\n return (\n
\n handleChange(e)}\n required={required}\n />\n {error && Solo se aceptan letras}\n
\n );\n}\n","import React, { useEffect, useRef, useState } from 'react';\nimport { useFormContext } from 'react-hook-form';\nimport { useDispatch } from 'react-redux';\nimport { InputError } from 'src/components';\nimport { TextInputExtended } from 'src/components';\nimport { GeneralInputWidthWrapper } from 'src/components';\nimport { useOneFormContext } from 'src/feature-app/OneForm';\n\ninterface emailProps {\n paginaConfirmacion?: boolean;\n ignoreValidation?: boolean;\n required?: boolean;\n notALayer?: boolean;\n name?: string;\n label?: string;\n disabled?: boolean;\n paddingTop?: string;\n setEmail?: (email: string) => void;\n setShowError?: (showError: boolean) => void;\n setEmailField?: boolean;\n}\n\nexport function Email(props: emailProps) {\n const { paginaConfirmacion, ignoreValidation, required, notALayer, name, label, disabled, paddingTop, setEmail, setShowError, setEmailField } = props;\n\n const { register, errors } = useFormContext();\n const [inputValue, setInputValue] = useState('');\n const [pristine, setPristine] = useState(true);\n const [emailError, setEmailError] = useState(false);\n const regExp =\n /^(([^<>()[\\]\\.,;:\\s@\\\"]+(\\.[^<>()[\\]\\.,;:\\s@\\\"]+)*)|(\\\".+\\\"))@(([^<>()[\\]\\.,;:\\s@\\\"]+\\.)+[^<>()[\\]\\.,;:\\s@\\\"]{2,})$/i;\n const { error, setError } = useOneFormContext();\n const dispatch = useDispatch();\n\n const checkEmailError = (value: string) => !pristine && !regExp.test(value) && value?.length > 2;\n const handleChange = (e: any) => {\n setInputValue(e.target.value);\n setPristine(false);\n };\n\n useEffect(() => {\n if (checkEmailError(inputValue)) {\n setEmailError(true);\n if(setShowError) setShowError(true);\n } else {\n if (setEmail && !error){ \n setEmail(inputValue)\n setShowError(false);\n };\n if (setEmailField && !error) {\n dispatch({ type: 'UPDATE_FIELDS', payload: { email: inputValue } });\n }\n setEmailError(false);\n setError(false);\n }\n }, [inputValue, pristine]);\n\n useEffect(() => {\n if ((!inputValue && error) || (error && checkEmailError(inputValue))) {\n setEmailError(true);\n } else {\n setEmailError(false);\n }\n }, [error]);\n\n return (\n \n handleChange(e)}\n required={required}\n disabled={disabled}\n />\n {emailError && Ejemplo: nombre@email.com}\n \n );\n}\n","import { styled } from '@volkswagen-onehub/components-core';\n\ntype InputErrorProps = {\n relative?: boolean;\n maxWidth?: string;\n};\n\nexport const InputError = styled.p`\n position: relative;\n margin-top: 6px;\n background-color: #e4002c;\n color: #FFFFFF;\n /* width: max-content; */\n width: 100%;\n max-width: ${(props) => props.maxWidth ? props.maxWidth : '280px'};\n padding: 4px 8px;\n min-height: 24px;\n border-radius: 4px;\n font-size: 12px;\n text-align: left;\n @media all and (min-width: 560px) {\n max-width: ${(props) => props.maxWidth ? props.maxWidth : '303px'};\n }\n @media all and (min-width: 960px) {\n max-width: ${(props) => props.maxWidth ? props.maxWidth : '320px'};\n }\n`;\n","import React, { useState } from 'react';\nimport { useFormContext } from 'react-hook-form';\nimport { InputError, TextInputExtended } from 'src/components';\nimport { useOnlyLettersControl } from './use-only-letters-control';\nimport { useDispatch } from 'react-redux';\nimport { IdPerson } from 'src/types';\n\ninterface NombreProps {\n setFieldValue?: boolean;\n idPerson?: IdPerson;\n}\n\nexport function Nombre(props: NombreProps) {\n const { setFieldValue } = props;\n const dispatch = useDispatch();\n const { register } = useFormContext();\n const [inputValue, setInputValue] = useState('');\n const [pristine, setPristine] = useState(true);\n const { error, regExp } = useOnlyLettersControl(pristine, inputValue);\n\n const handleChange = (e: any) => {\n if (setFieldValue && !error) {\n dispatch({ type: 'UPDATE_FIELDS', payload: { ['name']: e.target.value } });\n }\n\n setInputValue(e.target.value);\n setPristine(false);\n };\n\n return (\n
\n handleChange(e)}\n required\n />\n {error && Solo se aceptan letras}\n
\n );\n}\n","// Importing from a \".js\" file is a workaround for Node.js \"ES Modules\"\r\n// importing system which is even uncapable of importing \"*.json\" files.\r\nimport metadata from '../../metadata.min.json.js'\r\n\r\nimport { Metadata as _Metadata } from '../../core/index.js'\r\n\r\nexport function Metadata() {\r\n\treturn _Metadata.call(this, metadata)\r\n}\r\n\r\nMetadata.prototype = Object.create(_Metadata.prototype, {})\r\nMetadata.prototype.constructor = Metadata","// This \"state\" object simply holds the state of the \"AsYouType\" parser:\r\n//\r\n// * `country?: string`\r\n// * `callingCode?: string`\r\n// * `digits: string`\r\n// * `international: boolean`\r\n// * `missingPlus: boolean`\r\n// * `IDDPrefix?: string`\r\n// * `carrierCode?: string`\r\n// * `nationalPrefix?: string`\r\n// * `nationalSignificantNumber?: string`\r\n// * `nationalSignificantNumberMatchesInput: boolean`\r\n// * `complexPrefixBeforeNationalSignificantNumber?: string`\r\n//\r\n// `state.country` and `state.callingCode` aren't required to be in sync.\r\n// For example, `state.country` could be `\"AR\"` and `state.callingCode` could be `undefined`.\r\n// So `state.country` and `state.callingCode` are totally independent.\r\n//\r\nexport default class AsYouTypeState {\r\n\tconstructor({ onCountryChange, onCallingCodeChange }) {\r\n\t\tthis.onCountryChange = onCountryChange\r\n\t\tthis.onCallingCodeChange = onCallingCodeChange\r\n\t}\r\n\r\n\treset({ country, callingCode }) {\r\n\t\tthis.international = false\r\n\t\tthis.missingPlus = false\r\n\t\tthis.IDDPrefix = undefined\r\n\t\tthis.callingCode = undefined\r\n\t\tthis.digits = ''\r\n\t\tthis.resetNationalSignificantNumber()\r\n\t\tthis.initCountryAndCallingCode(country, callingCode)\r\n\t}\r\n\r\n\tresetNationalSignificantNumber() {\r\n\t\tthis.nationalSignificantNumber = this.getNationalDigits()\r\n\t\tthis.nationalSignificantNumberMatchesInput = true\r\n\t\tthis.nationalPrefix = undefined\r\n\t\tthis.carrierCode = undefined\r\n\t\tthis.complexPrefixBeforeNationalSignificantNumber = undefined\r\n\t}\r\n\r\n\tupdate(properties) {\r\n\t\tfor (const key of Object.keys(properties)) {\r\n\t\t\tthis[key] = properties[key]\r\n\t\t}\r\n\t}\r\n\r\n\tinitCountryAndCallingCode(country, callingCode) {\r\n\t\tthis.setCountry(country)\r\n\t\tthis.setCallingCode(callingCode)\r\n\t}\r\n\r\n\tsetCountry(country) {\r\n\t\tthis.country = country\r\n\t\tthis.onCountryChange(country)\r\n\t}\r\n\r\n\tsetCallingCode(callingCode) {\r\n\t\tthis.callingCode = callingCode\r\n\t\tthis.onCallingCodeChange(callingCode, this.country)\r\n\t}\r\n\r\n\tstartInternationalNumber(country, callingCode) {\r\n\t\t// Prepend the `+` to parsed input.\r\n\t\tthis.international = true\r\n\t\t// If a default country was set then reset it\r\n\t\t// because an explicitly international phone\r\n\t\t// number is being entered.\r\n\t\tthis.initCountryAndCallingCode(country, callingCode)\r\n\t}\r\n\r\n\tappendDigits(nextDigits) {\r\n\t\tthis.digits += nextDigits\r\n\t}\r\n\r\n\tappendNationalSignificantNumberDigits(nextDigits) {\r\n\t\tthis.nationalSignificantNumber += nextDigits\r\n\t}\r\n\r\n\t/**\r\n\t * Returns the part of `this.digits` that corresponds to the national number.\r\n\t * Basically, all digits that have been input by the user, except for the\r\n\t * international prefix and the country calling code part\r\n\t * (if the number is an international one).\r\n\t * @return {string}\r\n\t */\r\n\tgetNationalDigits() {\r\n\t\tif (this.international) {\r\n\t\t\treturn this.digits.slice(\r\n\t\t\t\t(this.IDDPrefix ? this.IDDPrefix.length : 0) +\r\n\t\t\t\t(this.callingCode ? this.callingCode.length : 0)\r\n\t\t\t)\r\n\t\t}\r\n\t\treturn this.digits\r\n\t}\r\n\r\n\tgetDigitsWithoutInternationalPrefix() {\r\n\t\tif (this.international) {\r\n\t\t\tif (this.IDDPrefix) {\r\n\t\t\t\treturn this.digits.slice(this.IDDPrefix.length)\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn this.digits\r\n\t}\r\n}","// Should be the same as `DIGIT_PLACEHOLDER` in `libphonenumber-metadata-generator`.\r\nexport const DIGIT_PLACEHOLDER = 'x' // '\\u2008' (punctuation space)\r\nconst DIGIT_PLACEHOLDER_MATCHER = new RegExp(DIGIT_PLACEHOLDER)\r\n\r\n// Counts all occurences of a symbol in a string.\r\n// Unicode-unsafe (because using `.split()`).\r\nexport function countOccurences(symbol, string) {\r\n\tlet count = 0\r\n\t// Using `.split('')` to iterate through a string here\r\n\t// to avoid requiring `Symbol.iterator` polyfill.\r\n\t// `.split('')` is generally not safe for Unicode,\r\n\t// but in this particular case for counting brackets it is safe.\r\n\t// for (const character of string)\r\n\tfor (const character of string.split('')) {\r\n\t\tif (character === symbol) {\r\n\t\t\tcount++\r\n\t\t}\r\n\t}\r\n\treturn count\r\n}\r\n\r\n// Repeats a string (or a symbol) N times.\r\n// http://stackoverflow.com/questions/202605/repeat-string-javascript\r\nexport function repeat(string, times) {\r\n\tif (times < 1) {\r\n\t\treturn ''\r\n\t}\r\n\tlet result = ''\r\n\twhile (times > 1) {\r\n\t\tif (times & 1) {\r\n\t\t\tresult += string\r\n\t\t}\r\n\t\ttimes >>= 1\r\n\t\tstring += string\r\n\t}\r\n\treturn result + string\r\n}\r\n\r\nexport function cutAndStripNonPairedParens(string, cutBeforeIndex) {\r\n\tif (string[cutBeforeIndex] === ')') {\r\n\t\tcutBeforeIndex++\r\n\t}\r\n\treturn stripNonPairedParens(string.slice(0, cutBeforeIndex))\r\n}\r\n\r\nexport function closeNonPairedParens(template, cut_before) {\r\n\tconst retained_template = template.slice(0, cut_before)\r\n\tconst opening_braces = countOccurences('(', retained_template)\r\n\tconst closing_braces = countOccurences(')', retained_template)\r\n\tlet dangling_braces = opening_braces - closing_braces\r\n\twhile (dangling_braces > 0 && cut_before < template.length) {\r\n\t\tif (template[cut_before] === ')') {\r\n\t\t\tdangling_braces--\r\n\t\t}\r\n\t\tcut_before++\r\n\t}\r\n\treturn template.slice(0, cut_before)\r\n}\r\n\r\nexport function stripNonPairedParens(string) {\r\n\tconst dangling_braces =[]\r\n\tlet i = 0\r\n\twhile (i < string.length) {\r\n\t\tif (string[i] === '(') {\r\n\t\t\tdangling_braces.push(i)\r\n\t\t}\r\n\t\telse if (string[i] === ')') {\r\n\t\t\tdangling_braces.pop()\r\n\t\t}\r\n\t\ti++\r\n\t}\r\n\tlet start = 0\r\n\tlet cleared_string = ''\r\n\tdangling_braces.push(string.length)\r\n\tfor (const index of dangling_braces) {\r\n\t\tcleared_string += string.slice(start, index)\r\n\t\tstart = index + 1\r\n\t}\r\n\treturn cleared_string\r\n}\r\n\r\nexport function populateTemplateWithDigits(template, position, digits) {\r\n\t// Using `.split('')` to iterate through a string here\r\n\t// to avoid requiring `Symbol.iterator` polyfill.\r\n\t// `.split('')` is generally not safe for Unicode,\r\n\t// but in this particular case for `digits` it is safe.\r\n\t// for (const digit of digits)\r\n\tfor (const digit of digits.split('')) {\r\n\t\t// If there is room for more digits in current `template`,\r\n\t\t// then set the next digit in the `template`,\r\n\t\t// and return the formatted digits so far.\r\n\t\t// If more digits are entered than the current format could handle.\r\n\t\tif (template.slice(position + 1).search(DIGIT_PLACEHOLDER_MATCHER) < 0) {\r\n\t\t\treturn\r\n\t\t}\r\n\t\tposition = template.search(DIGIT_PLACEHOLDER_MATCHER)\r\n\t\ttemplate = template.replace(DIGIT_PLACEHOLDER_MATCHER, digit)\r\n\t}\r\n\treturn [template, position]\r\n}","import checkNumberLength from './helpers/checkNumberLength.js'\r\nimport parseDigits from './helpers/parseDigits.js'\r\nimport formatNationalNumberUsingFormat from './helpers/formatNationalNumberUsingFormat.js'\r\n\r\nexport default function formatCompleteNumber(state, format, {\r\n\tmetadata,\r\n\tshouldTryNationalPrefixFormattingRule,\r\n\tgetSeparatorAfterNationalPrefix\r\n}) {\r\n\tconst matcher = new RegExp(`^(?:${format.pattern()})$`)\r\n\tif (matcher.test(state.nationalSignificantNumber)) {\r\n\t\treturn formatNationalNumberWithAndWithoutNationalPrefixFormattingRule(\r\n\t\t\tstate,\r\n\t\t\tformat,\r\n\t\t\t{\r\n\t\t\t\tmetadata,\r\n\t\t\t\tshouldTryNationalPrefixFormattingRule,\r\n\t\t\t\tgetSeparatorAfterNationalPrefix\r\n\t\t\t}\r\n\t\t)\r\n\t}\r\n}\r\n\r\nexport function canFormatCompleteNumber(nationalSignificantNumber, metadata) {\r\n\treturn checkNumberLength(nationalSignificantNumber, metadata) === 'IS_POSSIBLE'\r\n}\r\n\r\nfunction formatNationalNumberWithAndWithoutNationalPrefixFormattingRule(state, format, {\r\n\tmetadata,\r\n\tshouldTryNationalPrefixFormattingRule,\r\n\tgetSeparatorAfterNationalPrefix\r\n}) {\r\n\t// `format` has already been checked for `nationalPrefix` requirement.\r\n\r\n\tconst {\r\n\t\tnationalSignificantNumber,\r\n\t\tinternational,\r\n\t\tnationalPrefix,\r\n\t\tcarrierCode\r\n\t} = state\r\n\r\n\t// Format the number with using `national_prefix_formatting_rule`.\r\n\t// If the resulting formatted number is a valid formatted number, then return it.\r\n\t//\r\n\t// Google's AsYouType formatter is different in a way that it doesn't try\r\n\t// to format using the \"national prefix formatting rule\", and instead it\r\n\t// simply prepends a national prefix followed by a \" \" character.\r\n\t// This code does that too, but as a fallback.\r\n\t// The reason is that \"national prefix formatting rule\" may use parentheses,\r\n\t// which wouldn't be included has it used the simpler Google's way.\r\n\t//\r\n\tif (shouldTryNationalPrefixFormattingRule(format)) {\r\n\t\tconst formattedNumber = formatNationalNumber(state, format, {\r\n\t\t\tuseNationalPrefixFormattingRule: true,\r\n\t\t\tgetSeparatorAfterNationalPrefix,\r\n\t\t\tmetadata\r\n\t\t})\r\n\t\tif (formattedNumber) {\r\n\t\t\treturn formattedNumber\r\n\t\t}\r\n\t}\r\n\r\n\t// Format the number without using `national_prefix_formatting_rule`.\r\n\treturn formatNationalNumber(state, format, {\r\n\t\tuseNationalPrefixFormattingRule: false,\r\n\t\tgetSeparatorAfterNationalPrefix,\r\n\t\tmetadata\r\n\t})\r\n}\r\n\r\nfunction formatNationalNumber(state, format, {\r\n\tmetadata,\r\n\tuseNationalPrefixFormattingRule,\r\n\tgetSeparatorAfterNationalPrefix\r\n}) {\r\n\tlet formattedNationalNumber = formatNationalNumberUsingFormat(\r\n\t\tstate.nationalSignificantNumber,\r\n\t\tformat,\r\n\t\t{\r\n\t\t\tcarrierCode: state.carrierCode,\r\n\t\t\tuseInternationalFormat: state.international,\r\n\t\t\twithNationalPrefix: useNationalPrefixFormattingRule,\r\n\t\t\tmetadata\r\n\t\t}\r\n\t)\r\n\tif (!useNationalPrefixFormattingRule) {\r\n\t\tif (state.nationalPrefix) {\r\n\t\t\t// If a national prefix was extracted, then just prepend it,\r\n\t\t\t// followed by a \" \" character.\r\n\t\t\tformattedNationalNumber = state.nationalPrefix +\r\n\t\t\t\tgetSeparatorAfterNationalPrefix(format) +\r\n\t\t\t\tformattedNationalNumber\r\n\t\t} else if (state.complexPrefixBeforeNationalSignificantNumber) {\r\n\t\t\tformattedNationalNumber = state.complexPrefixBeforeNationalSignificantNumber +\r\n\t\t\t\t' ' +\r\n\t\t\t\tformattedNationalNumber\r\n\t\t}\r\n\t}\r\n\tif (isValidFormattedNationalNumber(formattedNationalNumber, state)) {\r\n\t\treturn formattedNationalNumber\r\n\t}\r\n}\r\n\r\n// Check that the formatted phone number contains exactly\r\n// the same digits that have been input by the user.\r\n// For example, when \"0111523456789\" is input for `AR` country,\r\n// the extracted `this.nationalSignificantNumber` is \"91123456789\",\r\n// which means that the national part of `this.digits` isn't simply equal to\r\n// `this.nationalPrefix` + `this.nationalSignificantNumber`.\r\n//\r\n// Also, a `format` can add extra digits to the `this.nationalSignificantNumber`\r\n// being formatted via `metadata[country].national_prefix_transform_rule`.\r\n// For example, for `VI` country, it prepends `340` to the national number,\r\n// and if this check hasn't been implemented, then there would be a bug\r\n// when `340` \"area coude\" is \"duplicated\" during input for `VI` country:\r\n// https://github.com/catamphetamine/libphonenumber-js/issues/318\r\n//\r\n// So, all these \"gotchas\" are filtered out.\r\n//\r\n// In the original Google's code, the comments say:\r\n// \"Check that we didn't remove nor add any extra digits when we matched\r\n// this formatting pattern. This usually happens after we entered the last\r\n// digit during AYTF. Eg: In case of MX, we swallow mobile token (1) when\r\n// formatted but AYTF should retain all the number entered and not change\r\n// in order to match a format (of same leading digits and length) display\r\n// in that way.\"\r\n// \"If it's the same (i.e entered number and format is same), then it's\r\n// safe to return this in formatted number as nothing is lost / added.\"\r\n// Otherwise, don't use this format.\r\n// https://github.com/google/libphonenumber/commit/3e7c1f04f5e7200f87fb131e6f85c6e99d60f510#diff-9149457fa9f5d608a11bb975c6ef4bc5\r\n// https://github.com/google/libphonenumber/commit/3ac88c7106e7dcb553bcc794b15f19185928a1c6#diff-2dcb77e833422ee304da348b905cde0b\r\n//\r\nfunction isValidFormattedNationalNumber(formattedNationalNumber, state) {\r\n\treturn parseDigits(formattedNationalNumber) === state.getNationalDigits()\r\n}","export default class PatternParser {\r\n\tparse(pattern) {\r\n\t\tthis.context = [{\r\n\t\t\tor: true,\r\n\t\t\tinstructions: []\r\n\t\t}]\r\n\r\n\t\tthis.parsePattern(pattern)\r\n\r\n\t\tif (this.context.length !== 1) {\r\n\t\t\tthrow new Error('Non-finalized contexts left when pattern parse ended')\r\n\t\t}\r\n\r\n\t\tconst { branches, instructions } = this.context[0]\r\n\r\n\t\tif (branches) {\r\n\t\t\treturn {\r\n\t\t\t\top: '|',\r\n\t\t\t\targs: branches.concat([\r\n\t\t\t\t\texpandSingleElementArray(instructions)\r\n\t\t\t\t])\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t/* istanbul ignore if */\r\n\t\tif (instructions.length === 0) {\r\n\t\t\tthrow new Error('Pattern is required')\r\n\t\t}\r\n\r\n\t\tif (instructions.length === 1) {\r\n\t\t\treturn instructions[0]\r\n\t\t}\r\n\r\n\t\treturn instructions\r\n\t}\r\n\r\n\tstartContext(context) {\r\n\t\tthis.context.push(context)\r\n\t}\r\n\r\n\tendContext() {\r\n\t\tthis.context.pop()\r\n\t}\r\n\r\n\tgetContext() {\r\n\t\treturn this.context[this.context.length - 1]\r\n\t}\r\n\r\n\tparsePattern(pattern) {\r\n\t\tif (!pattern) {\r\n\t\t\tthrow new Error('Pattern is required')\r\n\t\t}\r\n\r\n\t\tconst match = pattern.match(OPERATOR)\r\n\t\tif (!match) {\r\n\t\t\tif (ILLEGAL_CHARACTER_REGEXP.test(pattern)) {\r\n\t\t\t\tthrow new Error(`Illegal characters found in a pattern: ${pattern}`)\r\n\t\t\t}\r\n\t\t\tthis.getContext().instructions = this.getContext().instructions.concat(\r\n\t\t\t\tpattern.split('')\r\n\t\t\t)\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\tconst operator = match[1]\r\n\t\tconst before = pattern.slice(0, match.index)\r\n\t\tconst rightPart = pattern.slice(match.index + operator.length)\r\n\r\n\t\tswitch (operator) {\r\n\t\t\tcase '(?:':\r\n\t\t\t\tif (before) {\r\n\t\t\t\t\tthis.parsePattern(before)\r\n\t\t\t\t}\r\n\t\t\t\tthis.startContext({\r\n\t\t\t\t\tor: true,\r\n\t\t\t\t\tinstructions: [],\r\n\t\t\t\t\tbranches: []\r\n\t\t\t\t})\r\n\t\t\t\tbreak\r\n\r\n\t\t\tcase ')':\r\n\t\t\t\tif (!this.getContext().or) {\r\n\t\t\t\t\tthrow new Error('\")\" operator must be preceded by \"(?:\" operator')\r\n\t\t\t\t}\r\n\t\t\t\tif (before) {\r\n\t\t\t\t\tthis.parsePattern(before)\r\n\t\t\t\t}\r\n\t\t\t\tif (this.getContext().instructions.length === 0) {\r\n\t\t\t\t\tthrow new Error('No instructions found after \"|\" operator in an \"or\" group')\r\n\t\t\t\t}\r\n\t\t\t\tconst { branches } = this.getContext()\r\n\t\t\t\tbranches.push(\r\n\t\t\t\t\texpandSingleElementArray(\r\n\t\t\t\t\t\tthis.getContext().instructions\r\n\t\t\t\t\t)\r\n\t\t\t\t)\r\n\t\t\t\tthis.endContext()\r\n\t\t\t\tthis.getContext().instructions.push({\r\n\t\t\t\t\top: '|',\r\n\t\t\t\t\targs: branches\r\n\t\t\t\t})\r\n\t\t\t\tbreak\r\n\r\n\t\t\tcase '|':\r\n\t\t\t\tif (!this.getContext().or) {\r\n\t\t\t\t\tthrow new Error('\"|\" operator can only be used inside \"or\" groups')\r\n\t\t\t\t}\r\n\t\t\t\tif (before) {\r\n\t\t\t\t\tthis.parsePattern(before)\r\n\t\t\t\t}\r\n\t\t\t\t// The top-level is an implicit \"or\" group, if required.\r\n\t\t\t\tif (!this.getContext().branches) {\r\n\t\t\t\t\t// `branches` are not defined only for the root implicit \"or\" operator.\r\n\t\t\t\t\t/* istanbul ignore else */\r\n\t\t\t\t\tif (this.context.length === 1) {\r\n\t\t\t\t\t\tthis.getContext().branches = []\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tthrow new Error('\"branches\" not found in an \"or\" group context')\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tthis.getContext().branches.push(\r\n\t\t\t\t\texpandSingleElementArray(\r\n\t\t\t\t\t\tthis.getContext().instructions\r\n\t\t\t\t\t)\r\n\t\t\t\t)\r\n\t\t\t\tthis.getContext().instructions = []\r\n\t\t\t\tbreak\r\n\r\n\t\t\tcase '[':\r\n\t\t\t\tif (before) {\r\n\t\t\t\t\tthis.parsePattern(before)\r\n\t\t\t\t}\r\n\t\t\t\tthis.startContext({\r\n\t\t\t\t\toneOfSet: true\r\n\t\t\t\t})\r\n\t\t\t\tbreak\r\n\r\n\t\t\tcase ']':\r\n\t\t\t\tif (!this.getContext().oneOfSet) {\r\n\t\t\t\t\tthrow new Error('\"]\" operator must be preceded by \"[\" operator')\r\n\t\t\t\t}\r\n\t\t\t\tthis.endContext()\r\n\t\t\t\tthis.getContext().instructions.push({\r\n\t\t\t\t\top: '[]',\r\n\t\t\t\t\targs: parseOneOfSet(before)\r\n\t\t\t\t})\r\n\t\t\t\tbreak\r\n\r\n\t\t\t/* istanbul ignore next */\r\n\t\t\tdefault:\r\n\t\t\t\tthrow new Error(`Unknown operator: ${operator}`)\r\n\t\t}\r\n\r\n\t\tif (rightPart) {\r\n\t\t\tthis.parsePattern(rightPart)\r\n\t\t}\r\n\t}\r\n}\r\n\r\nfunction parseOneOfSet(pattern) {\r\n\tconst values = []\r\n\tlet i = 0\r\n\twhile (i < pattern.length) {\r\n\t\tif (pattern[i] === '-') {\r\n\t\t\tif (i === 0 || i === pattern.length - 1) {\r\n\t\t\t\tthrow new Error(`Couldn't parse a one-of set pattern: ${pattern}`)\r\n\t\t\t}\r\n\t\t\tconst prevValue = pattern[i - 1].charCodeAt(0) + 1\r\n\t\t\tconst nextValue = pattern[i + 1].charCodeAt(0) - 1\r\n\t\t\tlet value = prevValue\r\n\t\t\twhile (value <= nextValue) {\r\n\t\t\t\tvalues.push(String.fromCharCode(value))\r\n\t\t\t\tvalue++\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tvalues.push(pattern[i])\r\n\t\t}\r\n\t\ti++\r\n\t}\r\n\treturn values\r\n}\r\n\r\nconst ILLEGAL_CHARACTER_REGEXP = /[\\(\\)\\[\\]\\?\\:\\|]/\r\n\r\nconst OPERATOR = new RegExp(\r\n\t// any of:\r\n\t'(' +\r\n\t\t// or operator\r\n\t\t'\\\\|' +\r\n\t\t// or\r\n\t\t'|' +\r\n\t\t// or group start\r\n\t\t'\\\\(\\\\?\\\\:' +\r\n\t\t// or\r\n\t\t'|' +\r\n\t\t// or group end\r\n\t\t'\\\\)' +\r\n\t\t// or\r\n\t\t'|' +\r\n\t\t// one-of set start\r\n\t\t'\\\\[' +\r\n\t\t// or\r\n\t\t'|' +\r\n\t\t// one-of set end\r\n\t\t'\\\\]' +\r\n\t')'\r\n)\r\n\r\nfunction expandSingleElementArray(array) {\r\n\tif (array.length === 1) {\r\n\t\treturn array[0]\r\n\t}\r\n\treturn array\r\n}","import PatternParser from './AsYouTypeFormatter.PatternParser.js'\r\n\r\nexport default class PatternMatcher {\r\n\tconstructor(pattern) {\r\n\t\tthis.matchTree = new PatternParser().parse(pattern)\r\n\t}\r\n\r\n\tmatch(string, { allowOverflow } = {}) {\r\n\t\tif (!string) {\r\n\t\t\tthrow new Error('String is required')\r\n\t\t}\r\n\t\tconst result = match(string.split(''), this.matchTree, true)\r\n\t\tif (result && result.match) {\r\n\t\t\tdelete result.matchedChars\r\n\t\t}\r\n\t\tif (result && result.overflow) {\r\n\t\t\tif (!allowOverflow) {\r\n\t\t\t\treturn\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn result\r\n\t}\r\n}\r\n\r\n/**\r\n * Matches `characters` against a pattern compiled into a `tree`.\r\n * @param {string[]} characters\r\n * @param {Tree} tree — A pattern compiled into a `tree`. See the `*.d.ts` file for the description of the `tree` structure.\r\n * @param {boolean} last — Whether it's the last (rightmost) subtree on its level of the match tree.\r\n * @return {object} See the `*.d.ts` file for the description of the result object.\r\n */\r\nfunction match(characters, tree, last) {\r\n\t// If `tree` is a string, then `tree` is a single character.\r\n\t// That's because when a pattern is parsed, multi-character-string parts\r\n\t// of a pattern are compiled into arrays of single characters.\r\n\t// I still wrote this piece of code for a \"general\" hypothetical case\r\n\t// when `tree` could be a string of several characters, even though\r\n\t// such case is not possible with the current implementation.\r\n\tif (typeof tree === 'string') {\r\n\t\tconst characterString = characters.join('')\r\n\t\tif (tree.indexOf(characterString) === 0) {\r\n\t\t\t// `tree` is always a single character.\r\n\t\t\t// If `tree.indexOf(characterString) === 0`\r\n\t\t\t// then `characters.length === tree.length`.\r\n\t\t\t/* istanbul ignore else */\r\n\t\t\tif (characters.length === tree.length) {\r\n\t\t\t\treturn {\r\n\t\t\t\t\tmatch: true,\r\n\t\t\t\t\tmatchedChars: characters\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t// `tree` is always a single character.\r\n\t\t\t// If `tree.indexOf(characterString) === 0`\r\n\t\t\t// then `characters.length === tree.length`.\r\n\t\t\t/* istanbul ignore next */\r\n\t\t\treturn {\r\n\t\t\t\tpartialMatch: true,\r\n\t\t\t\t// matchedChars: characters\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (characterString.indexOf(tree) === 0) {\r\n\t\t\tif (last) {\r\n\t\t\t\t// The `else` path is not possible because `tree` is always a single character.\r\n\t\t\t\t// The `else` case for `characters.length > tree.length` would be\r\n\t\t\t\t// `characters.length <= tree.length` which means `characters.length <= 1`.\r\n\t\t\t\t// `characters` array can't be empty, so that means `characters === [tree]`,\r\n\t\t\t\t// which would also mean `tree.indexOf(characterString) === 0` and that'd mean\r\n\t\t\t\t// that the `if (tree.indexOf(characterString) === 0)` condition before this\r\n\t\t\t\t// `if` condition would be entered, and returned from there, not reaching this code.\r\n\t\t\t\t/* istanbul ignore else */\r\n\t\t\t\tif (characters.length > tree.length) {\r\n\t\t\t\t\treturn {\r\n\t\t\t\t\t\toverflow: true\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn {\r\n\t\t\t\tmatch: true,\r\n\t\t\t\tmatchedChars: characters.slice(0, tree.length)\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn\r\n\t}\r\n\r\n\tif (Array.isArray(tree)) {\r\n\t\tlet restCharacters = characters.slice()\r\n\t\tlet i = 0\r\n\t\twhile (i < tree.length) {\r\n\t\t\tconst subtree = tree[i]\r\n\t\t\tconst result = match(restCharacters, subtree, last && (i === tree.length - 1))\r\n\t\t\tif (!result) {\r\n\t\t\t\treturn\r\n\t\t\t} else if (result.overflow) {\r\n\t\t\t\treturn result\r\n\t\t\t} else if (result.match) {\r\n\t\t\t\t// Continue with the next subtree with the rest of the characters.\r\n\t\t\t\trestCharacters = restCharacters.slice(result.matchedChars.length)\r\n\t\t\t\tif (restCharacters.length === 0) {\r\n\t\t\t\t\tif (i === tree.length - 1) {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\tmatch: true,\r\n\t\t\t\t\t\t\tmatchedChars: characters\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\tpartialMatch: true,\r\n\t\t\t\t\t\t\t// matchedChars: characters\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\t/* istanbul ignore else */\r\n\t\t\t\tif (result.partialMatch) {\r\n\t\t\t\t\treturn {\r\n\t\t\t\t\t\tpartialMatch: true,\r\n\t\t\t\t\t\t// matchedChars: characters\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthrow new Error(`Unsupported match result:\\n${JSON.stringify(result, null, 2)}`)\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\ti++\r\n\t\t}\r\n\t\t// If `last` then overflow has already been checked\r\n\t\t// by the last element of the `tree` array.\r\n\t\t/* istanbul ignore if */\r\n\t\tif (last) {\r\n\t\t\treturn {\r\n\t\t\t\toverflow: true\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn {\r\n\t\t\tmatch: true,\r\n\t\t\tmatchedChars: characters.slice(0, characters.length - restCharacters.length)\r\n\t\t}\r\n\t}\r\n\r\n\tswitch (tree.op) {\r\n\t\tcase '|':\r\n\t\t\tlet partialMatch\r\n\t\t\tfor (const branch of tree.args) {\r\n\t\t\t\tconst result = match(characters, branch, last)\r\n\t\t\t\tif (result) {\r\n\t\t\t\t\tif (result.overflow) {\r\n\t\t\t\t\t\treturn result\r\n\t\t\t\t\t} else if (result.match) {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\tmatch: true,\r\n\t\t\t\t\t\t\tmatchedChars: result.matchedChars\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t/* istanbul ignore else */\r\n\t\t\t\t\t\tif (result.partialMatch) {\r\n\t\t\t\t\t\t\tpartialMatch = true\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tthrow new Error(`Unsupported match result:\\n${JSON.stringify(result, null, 2)}`)\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif (partialMatch) {\r\n\t\t\t\treturn {\r\n\t\t\t\t\tpartialMatch: true,\r\n\t\t\t\t\t// matchedChars: ...\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t// Not even a partial match.\r\n\t\t\treturn\r\n\r\n\t\tcase '[]':\r\n\t\t\tfor (const char of tree.args) {\r\n\t\t\t\tif (characters[0] === char) {\r\n\t\t\t\t\tif (characters.length === 1) {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\tmatch: true,\r\n\t\t\t\t\t\t\tmatchedChars: characters\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (last) {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\toverflow: true\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn {\r\n\t\t\t\t\t\tmatch: true,\r\n\t\t\t\t\t\tmatchedChars: [char]\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t// No character matches.\r\n\t\t\treturn\r\n\r\n\t\t/* istanbul ignore next */\r\n\t\tdefault:\r\n\t\t\tthrow new Error(`Unsupported instruction tree: ${tree}`)\r\n\t}\r\n}","import {\r\n\tDIGIT_PLACEHOLDER,\r\n\tcountOccurences,\r\n\trepeat,\r\n\tcutAndStripNonPairedParens,\r\n\tcloseNonPairedParens,\r\n\tstripNonPairedParens,\r\n\tpopulateTemplateWithDigits\r\n} from './AsYouTypeFormatter.util.js'\r\n\r\nimport formatCompleteNumber, {\r\n\tcanFormatCompleteNumber\r\n} from './AsYouTypeFormatter.complete.js'\r\n\r\nimport PatternMatcher from './AsYouTypeFormatter.PatternMatcher.js'\r\n\r\nimport parseDigits from './helpers/parseDigits.js'\r\nexport { DIGIT_PLACEHOLDER } from './AsYouTypeFormatter.util.js'\r\nimport { FIRST_GROUP_PATTERN } from './helpers/formatNationalNumberUsingFormat.js'\r\nimport { VALID_PUNCTUATION } from './constants.js'\r\nimport applyInternationalSeparatorStyle from './helpers/applyInternationalSeparatorStyle.js'\r\n\r\n// Used in phone number format template creation.\r\n// Could be any digit, I guess.\r\nconst DUMMY_DIGIT = '9'\r\n// I don't know why is it exactly `15`\r\nconst LONGEST_NATIONAL_PHONE_NUMBER_LENGTH = 15\r\n// Create a phone number consisting only of the digit 9 that matches the\r\n// `number_pattern` by applying the pattern to the \"longest phone number\" string.\r\nconst LONGEST_DUMMY_PHONE_NUMBER = repeat(DUMMY_DIGIT, LONGEST_NATIONAL_PHONE_NUMBER_LENGTH)\r\n\r\n// A set of characters that, if found in a national prefix formatting rules, are an indicator to\r\n// us that we should separate the national prefix from the number when formatting.\r\nconst NATIONAL_PREFIX_SEPARATORS_PATTERN = /[- ]/\r\n\r\n// Deprecated: Google has removed some formatting pattern related code from their repo.\r\n// https://github.com/googlei18n/libphonenumber/commit/a395b4fef3caf57c4bc5f082e1152a4d2bd0ba4c\r\n// \"We no longer have numbers in formatting matching patterns, only \\d.\"\r\n// Because this library supports generating custom metadata\r\n// some users may still be using old metadata so the relevant\r\n// code seems to stay until some next major version update.\r\nconst SUPPORT_LEGACY_FORMATTING_PATTERNS = true\r\n\r\n// A pattern that is used to match character classes in regular expressions.\r\n// An example of a character class is \"[1-4]\".\r\nconst CREATE_CHARACTER_CLASS_PATTERN = SUPPORT_LEGACY_FORMATTING_PATTERNS && (() => /\\[([^\\[\\]])*\\]/g)\r\n\r\n// Any digit in a regular expression that actually denotes a digit. For\r\n// example, in the regular expression \"80[0-2]\\d{6,10}\", the first 2 digits\r\n// (8 and 0) are standalone digits, but the rest are not.\r\n// Two look-aheads are needed because the number following \\\\d could be a\r\n// two-digit number, since the phone number can be as long as 15 digits.\r\nconst CREATE_STANDALONE_DIGIT_PATTERN = SUPPORT_LEGACY_FORMATTING_PATTERNS && (() => /\\d(?=[^,}][^,}])/g)\r\n\r\n// A regular expression that is used to determine if a `format` is\r\n// suitable to be used in the \"as you type formatter\".\r\n// A `format` is suitable when the resulting formatted number has\r\n// the same digits as the user has entered.\r\n//\r\n// In the simplest case, that would mean that the format\r\n// doesn't add any additional digits when formatting a number.\r\n// Google says that it also shouldn't add \"star\" (`*`) characters,\r\n// like it does in some Israeli formats.\r\n// Such basic format would only contain \"valid punctuation\"\r\n// and \"captured group\" identifiers ($1, $2, etc).\r\n//\r\n// An example of a format that adds additional digits:\r\n//\r\n// Country: `AR` (Argentina).\r\n// Format:\r\n// {\r\n// \"pattern\": \"(\\\\d)(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\r\n// \"leading_digits_patterns\": [\"91\"],\r\n// \"national_prefix_formatting_rule\": \"0$1\",\r\n// \"format\": \"$2 15-$3-$4\",\r\n// \"international_format\": \"$1 $2 $3-$4\"\r\n// }\r\n//\r\n// In the format above, the `format` adds `15` to the digits when formatting a number.\r\n// A sidenote: this format actually is suitable because `national_prefix_for_parsing`\r\n// has previously removed `15` from a national number, so re-adding `15` in `format`\r\n// doesn't actually result in any extra digits added to user's input.\r\n// But verifying that would be a complex procedure, so the code chooses a simpler path:\r\n// it simply filters out all `format`s that contain anything but \"captured group\" ids.\r\n//\r\n// This regular expression is called `ELIGIBLE_FORMAT_PATTERN` in Google's\r\n// `libphonenumber` code.\r\n//\r\nconst NON_ALTERING_FORMAT_REG_EXP = new RegExp(\r\n\t'[' + VALID_PUNCTUATION + ']*' +\r\n\t// Google developers say:\r\n\t// \"We require that the first matching group is present in the\r\n\t// output pattern to ensure no data is lost while formatting.\"\r\n\t'\\\\$1' +\r\n\t'[' + VALID_PUNCTUATION + ']*' +\r\n\t'(\\\\$\\\\d[' + VALID_PUNCTUATION + ']*)*' +\r\n\t'$'\r\n)\r\n\r\n// This is the minimum length of the leading digits of a phone number\r\n// to guarantee the first \"leading digits pattern\" for a phone number format\r\n// to be preemptive.\r\nconst MIN_LEADING_DIGITS_LENGTH = 3\r\n\r\nexport default class AsYouTypeFormatter {\r\n\tconstructor({\r\n\t\tstate,\r\n\t\tmetadata\r\n\t}) {\r\n\t\tthis.metadata = metadata\r\n\t\tthis.resetFormat()\r\n\t}\r\n\r\n\tresetFormat() {\r\n\t\tthis.chosenFormat = undefined\r\n\t\tthis.template = undefined\r\n\t\tthis.nationalNumberTemplate = undefined\r\n\t\tthis.populatedNationalNumberTemplate = undefined\r\n\t\tthis.populatedNationalNumberTemplatePosition = -1\r\n\t}\r\n\r\n\treset(numberingPlan, state) {\r\n\t\tthis.resetFormat()\r\n\t\tif (numberingPlan) {\r\n\t\t\tthis.isNANP = numberingPlan.callingCode() === '1'\r\n\t\t\tthis.matchingFormats = numberingPlan.formats()\r\n\t\t\tif (state.nationalSignificantNumber) {\r\n\t\t\t\tthis.narrowDownMatchingFormats(state)\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tthis.isNANP = undefined\r\n\t\t\tthis.matchingFormats = []\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Formats an updated phone number.\r\n\t * @param {string} nextDigits — Additional phone number digits.\r\n\t * @param {object} state — `AsYouType` state.\r\n\t * @return {[string]} Returns undefined if the updated phone number can't be formatted using any of the available formats.\r\n\t */\r\n\tformat(nextDigits, state) {\r\n\t\t// See if the phone number digits can be formatted as a complete phone number.\r\n\t\t// If not, use the results from `formatNationalNumberWithNextDigits()`,\r\n\t\t// which formats based on the chosen formatting pattern.\r\n\t\t//\r\n\t\t// Attempting to format complete phone number first is how it's done\r\n\t\t// in Google's `libphonenumber`, so this library just follows it.\r\n\t\t// Google's `libphonenumber` code doesn't explain in detail why does it\r\n\t\t// attempt to format digits as a complete phone number\r\n\t\t// instead of just going with a previoulsy (or newly) chosen `format`:\r\n\t\t//\r\n\t\t// \"Checks to see if there is an exact pattern match for these digits.\r\n\t\t// If so, we should use this instead of any other formatting template\r\n\t\t// whose leadingDigitsPattern also matches the input.\"\r\n\t\t//\r\n\t\tif (canFormatCompleteNumber(state.nationalSignificantNumber, this.metadata)) {\r\n\t\t\tfor (const format of this.matchingFormats) {\r\n\t\t\t\tconst formattedCompleteNumber = formatCompleteNumber(\r\n\t\t\t\t\tstate,\r\n\t\t\t\t\tformat,\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tmetadata: this.metadata,\r\n\t\t\t\t\t\tshouldTryNationalPrefixFormattingRule: (format) => this.shouldTryNationalPrefixFormattingRule(format, {\r\n\t\t\t\t\t\t\tinternational: state.international,\r\n\t\t\t\t\t\t\tnationalPrefix: state.nationalPrefix\r\n\t\t\t\t\t\t}),\r\n\t\t\t\t\t\tgetSeparatorAfterNationalPrefix: (format) => this.getSeparatorAfterNationalPrefix(format)\r\n\t\t\t\t\t}\r\n\t\t\t\t)\r\n\t\t\t\tif (formattedCompleteNumber) {\r\n\t\t\t\t\tthis.resetFormat()\r\n\t\t\t\t\tthis.chosenFormat = format\r\n\t\t\t\t\tthis.setNationalNumberTemplate(formattedCompleteNumber.replace(/\\d/g, DIGIT_PLACEHOLDER), state)\r\n\t\t\t\t\tthis.populatedNationalNumberTemplate = formattedCompleteNumber\r\n\t\t\t\t\t// With a new formatting template, the matched position\r\n\t\t\t\t\t// using the old template needs to be reset.\r\n\t\t\t\t\tthis.populatedNationalNumberTemplatePosition = this.template.lastIndexOf(DIGIT_PLACEHOLDER)\r\n\t\t\t\t\treturn formattedCompleteNumber\r\n\t\t\t\t}\r\n\r\n\t\t\t}\r\n\t\t}\r\n\t\t// Format the digits as a partial (incomplete) phone number\r\n\t\t// using the previously chosen formatting pattern (or a newly chosen one).\r\n\t\treturn this.formatNationalNumberWithNextDigits(nextDigits, state)\r\n\t}\r\n\r\n\t// Formats the next phone number digits.\r\n\tformatNationalNumberWithNextDigits(nextDigits, state) {\r\n\t\tconst previouslyChosenFormat = this.chosenFormat\r\n\r\n\t\t// Choose a format from the list of matching ones.\r\n\t\tconst newlyChosenFormat = this.chooseFormat(state)\r\n\r\n\t\tif (newlyChosenFormat) {\r\n\t\t\tif (newlyChosenFormat === previouslyChosenFormat) {\r\n\t\t\t\t// If it can format the next (current) digits\r\n\t\t\t\t// using the previously chosen phone number format\r\n\t\t\t\t// then return the updated formatted number.\r\n\t\t\t\treturn this.formatNextNationalNumberDigits(nextDigits)\r\n\t\t\t} else {\r\n\t\t\t\t// If a more appropriate phone number format\r\n\t\t\t\t// has been chosen for these \"leading digits\",\r\n\t\t\t\t// then re-format the national phone number part\r\n\t\t\t\t// using the newly selected format.\r\n\t\t\t\treturn this.formatNextNationalNumberDigits(state.getNationalDigits())\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tnarrowDownMatchingFormats({\r\n\t\tnationalSignificantNumber,\r\n\t\tnationalPrefix,\r\n\t\tinternational\r\n\t}) {\r\n\t\tconst leadingDigits = nationalSignificantNumber\r\n\r\n\t\t// \"leading digits\" pattern list starts with a\r\n\t\t// \"leading digits\" pattern fitting a maximum of 3 leading digits.\r\n\t\t// So, after a user inputs 3 digits of a national (significant) phone number\r\n\t\t// this national (significant) number can already be formatted.\r\n\t\t// The next \"leading digits\" pattern is for 4 leading digits max,\r\n\t\t// and the \"leading digits\" pattern after it is for 5 leading digits max, etc.\r\n\r\n\t\t// This implementation is different from Google's\r\n\t\t// in that it searches for a fitting format\r\n\t\t// even if the user has entered less than\r\n\t\t// `MIN_LEADING_DIGITS_LENGTH` digits of a national number.\r\n\t\t// Because some leading digit patterns already match for a single first digit.\r\n\t\tlet leadingDigitsPatternIndex = leadingDigits.length - MIN_LEADING_DIGITS_LENGTH\r\n\t\tif (leadingDigitsPatternIndex < 0) {\r\n\t\t\tleadingDigitsPatternIndex = 0\r\n\t\t}\r\n\r\n\t\tthis.matchingFormats = this.matchingFormats.filter(\r\n\t\t\tformat => this.formatSuits(format, international, nationalPrefix)\r\n\t\t\t\t&& this.formatMatches(format, leadingDigits, leadingDigitsPatternIndex)\r\n\t\t)\r\n\r\n\t\t// If there was a phone number format chosen\r\n\t\t// and it no longer holds given the new leading digits then reset it.\r\n\t\t// The test for this `if` condition is marked as:\r\n\t\t// \"Reset a chosen format when it no longer holds given the new leading digits\".\r\n\t\t// To construct a valid test case for this one can find a country\r\n\t\t// in `PhoneNumberMetadata.xml` yielding one format for 3 ``\r\n\t\t// and yielding another format for 4 `` (Australia in this case).\r\n\t\tif (this.chosenFormat && this.matchingFormats.indexOf(this.chosenFormat) === -1) {\r\n\t\t\tthis.resetFormat()\r\n\t\t}\r\n\t}\r\n\r\n\tformatSuits(format, international, nationalPrefix) {\r\n\t\t// When a prefix before a national (significant) number is\r\n\t\t// simply a national prefix, then it's parsed as `this.nationalPrefix`.\r\n\t\t// In more complex cases, a prefix before national (significant) number\r\n\t\t// could include a national prefix as well as some \"capturing groups\",\r\n\t\t// and in that case there's no info whether a national prefix has been parsed.\r\n\t\t// If national prefix is not used when formatting a phone number\r\n\t\t// using this format, but a national prefix has been entered by the user,\r\n\t\t// and was extracted, then discard such phone number format.\r\n\t\t// In Google's \"AsYouType\" formatter code, the equivalent would be this part:\r\n\t\t// https://github.com/google/libphonenumber/blob/0a45cfd96e71cad8edb0e162a70fcc8bd9728933/java/libphonenumber/src/com/google/i18n/phonenumbers/AsYouTypeFormatter.java#L175-L184\r\n\t\tif (nationalPrefix &&\r\n\t\t\t!format.usesNationalPrefix() &&\r\n\t\t\t// !format.domesticCarrierCodeFormattingRule() &&\r\n\t\t\t!format.nationalPrefixIsOptionalWhenFormattingInNationalFormat()) {\r\n\t\t\treturn false\r\n\t\t}\r\n\t\t// If national prefix is mandatory for this phone number format\r\n\t\t// and there're no guarantees that a national prefix is present in user input\r\n\t\t// then discard this phone number format as not suitable.\r\n\t\t// In Google's \"AsYouType\" formatter code, the equivalent would be this part:\r\n\t\t// https://github.com/google/libphonenumber/blob/0a45cfd96e71cad8edb0e162a70fcc8bd9728933/java/libphonenumber/src/com/google/i18n/phonenumbers/AsYouTypeFormatter.java#L185-L193\r\n\t\tif (!international &&\r\n\t\t\t!nationalPrefix &&\r\n\t\t\tformat.nationalPrefixIsMandatoryWhenFormattingInNationalFormat()) {\r\n\t\t\treturn false\r\n\t\t}\r\n\t\treturn true\r\n\t}\r\n\r\n\tformatMatches(format, leadingDigits, leadingDigitsPatternIndex) {\r\n\t\tconst leadingDigitsPatternsCount = format.leadingDigitsPatterns().length\r\n\r\n\t\t// If this format is not restricted to a certain\r\n\t\t// leading digits pattern then it fits.\r\n\t\t// The test case could be found by searching for \"leadingDigitsPatternsCount === 0\".\r\n\t\tif (leadingDigitsPatternsCount === 0) {\r\n\t\t\treturn true\r\n\t\t}\r\n\r\n\t\t// Start narrowing down the list of possible formats based on the leading digits.\r\n\t\t// (only previously matched formats take part in the narrowing down process)\r\n\r\n\t\t// `leading_digits_patterns` start with 3 digits min\r\n\t\t// and then go up from there one digit at a time.\r\n\t\tleadingDigitsPatternIndex = Math.min(leadingDigitsPatternIndex, leadingDigitsPatternsCount - 1)\r\n\t\tconst leadingDigitsPattern = format.leadingDigitsPatterns()[leadingDigitsPatternIndex]\r\n\r\n\t\t// Google imposes a requirement on the leading digits\r\n\t\t// to be minimum 3 digits long in order to be eligible\r\n\t\t// for checking those with a leading digits pattern.\r\n\t\t//\r\n\t\t// Since `leading_digits_patterns` start with 3 digits min,\r\n\t\t// Google's original `libphonenumber` library only starts\r\n\t\t// excluding any non-matching formats only when the\r\n\t\t// national number entered so far is at least 3 digits long,\r\n\t\t// otherwise format matching would give false negatives.\r\n\t\t//\r\n\t\t// For example, when the digits entered so far are `2`\r\n\t\t// and the leading digits pattern is `21` –\r\n\t\t// it's quite obvious in this case that the format could be the one\r\n\t\t// but due to the absence of further digits it would give false negative.\r\n\t\t//\r\n\t\t// Also, `leading_digits_patterns` doesn't always correspond to a single\r\n\t\t// digits count. For example, `60|8` pattern would already match `8`\r\n\t\t// but the `60` part would require having at least two leading digits,\r\n\t\t// so the whole pattern would require inputting two digits first in order to\r\n\t\t// decide on whether it matches the input, even when the input is \"80\".\r\n\t\t//\r\n\t\t// This library — `libphonenumber-js` — allows filtering by `leading_digits_patterns`\r\n\t\t// even when there's only 1 or 2 digits of the national (significant) number.\r\n\t\t// To do that, it uses a non-strict pattern matcher written specifically for that.\r\n\t\t//\r\n\t\tif (leadingDigits.length < MIN_LEADING_DIGITS_LENGTH) {\r\n\t\t\t// Before leading digits < 3 matching was implemented:\r\n\t\t\t// return true\r\n\t\t\t//\r\n\t\t\t// After leading digits < 3 matching was implemented:\r\n\t\t\ttry {\r\n\t\t\t\treturn new PatternMatcher(leadingDigitsPattern).match(leadingDigits, { allowOverflow: true }) !== undefined\r\n\t\t\t} catch (error) /* istanbul ignore next */ {\r\n\t\t\t\t// There's a slight possibility that there could be some undiscovered bug\r\n\t\t\t\t// in the pattern matcher code. Since the \"leading digits < 3 matching\"\r\n\t\t\t\t// feature is not \"essential\" for operation, it can fall back to the old way\r\n\t\t\t\t// in case of any issues rather than halting the application's execution.\r\n\t\t\t\tconsole.error(error)\r\n\t\t\t\treturn true\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// If at least `MIN_LEADING_DIGITS_LENGTH` digits of a national number are\r\n\t\t// available then use the usual regular expression matching.\r\n\t\t//\r\n\t\t// The whole pattern is wrapped in round brackets (`()`) because\r\n\t\t// the pattern can use \"or\" operator (`|`) at the top level of the pattern.\r\n\t\t//\r\n\t\treturn new RegExp(`^(${leadingDigitsPattern})`).test(leadingDigits)\r\n\t}\r\n\r\n\tgetFormatFormat(format, international) {\r\n\t\treturn international ? format.internationalFormat() : format.format()\r\n\t}\r\n\r\n\tchooseFormat(state) {\r\n\t\t// When there are multiple available formats, the formatter uses the first\r\n\t\t// format where a formatting template could be created.\r\n\t\t//\r\n\t\t// For some weird reason, `istanbul` says \"else path not taken\"\r\n\t\t// for the `for of` line below. Supposedly that means that\r\n\t\t// the loop doesn't ever go over the last element in the list.\r\n\t\t// That's true because there always is `this.chosenFormat`\r\n\t\t// when `this.matchingFormats` is non-empty.\r\n\t\t// And, for some weird reason, it doesn't think that the case\r\n\t\t// with empty `this.matchingFormats` qualifies for a valid \"else\" path.\r\n\t\t// So simply muting this `istanbul` warning.\r\n\t\t// It doesn't skip the contents of the `for of` loop,\r\n\t\t// it just skips the `for of` line.\r\n\t\t//\r\n\t\t/* istanbul ignore next */\r\n\t\tfor (const format of this.matchingFormats.slice()) {\r\n\t\t\t// If this format is currently being used\r\n\t\t\t// and is still suitable, then stick to it.\r\n\t\t\tif (this.chosenFormat === format) {\r\n\t\t\t\tbreak\r\n\t\t\t}\r\n\t\t\t// Sometimes, a formatting rule inserts additional digits in a phone number,\r\n\t\t\t// and \"as you type\" formatter can't do that: it should only use the digits\r\n\t\t\t// that the user has input.\r\n\t\t\t//\r\n\t\t\t// For example, in Argentina, there's a format for mobile phone numbers:\r\n\t\t\t//\r\n\t\t\t// {\r\n\t\t\t// \"pattern\": \"(\\\\d)(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\r\n\t\t\t// \"leading_digits_patterns\": [\"91\"],\r\n\t\t\t// \"national_prefix_formatting_rule\": \"0$1\",\r\n\t\t\t// \"format\": \"$2 15-$3-$4\",\r\n\t\t\t// \"international_format\": \"$1 $2 $3-$4\"\r\n\t\t\t// }\r\n\t\t\t//\r\n\t\t\t// In that format, `international_format` is used instead of `format`\r\n\t\t\t// because `format` inserts `15` in the formatted number,\r\n\t\t\t// and `AsYouType` formatter should only use the digits\r\n\t\t\t// the user has actually input, without adding any extra digits.\r\n\t\t\t// In this case, it wouldn't make a difference, because the `15`\r\n\t\t\t// is first stripped when applying `national_prefix_for_parsing`\r\n\t\t\t// and then re-added when using `format`, so in reality it doesn't\r\n\t\t\t// add any new digits to the number, but to detect that, the code\r\n\t\t\t// would have to be more complex: it would have to try formatting\r\n\t\t\t// the digits using the format and then see if any digits have\r\n\t\t\t// actually been added or removed, and then, every time a new digit\r\n\t\t\t// is input, it should re-check whether the chosen format doesn't\r\n\t\t\t// alter the digits.\r\n\t\t\t//\r\n\t\t\t// Google's code doesn't go that far, and so does this library:\r\n\t\t\t// it simply requires that a `format` doesn't add any additonal\r\n\t\t\t// digits to user's input.\r\n\t\t\t//\r\n\t\t\t// Also, people in general should move from inputting phone numbers\r\n\t\t\t// in national format (possibly with national prefixes)\r\n\t\t\t// and use international phone number format instead:\r\n\t\t\t// it's a logical thing in the modern age of mobile phones,\r\n\t\t\t// globalization and the internet.\r\n\t\t\t//\r\n\t\t\t/* istanbul ignore if */\r\n\t\t\tif (!NON_ALTERING_FORMAT_REG_EXP.test(this.getFormatFormat(format, state.international))) {\r\n\t\t\t\tcontinue\r\n\t\t\t}\r\n\t\t\tif (!this.createTemplateForFormat(format, state)) {\r\n\t\t\t\t// Remove the format if it can't generate a template.\r\n\t\t\t\tthis.matchingFormats = this.matchingFormats.filter(_ => _ !== format)\r\n\t\t\t\tcontinue\r\n\t\t\t}\r\n\t\t\tthis.chosenFormat = format\r\n\t\t\tbreak\r\n\t\t}\r\n\t\tif (!this.chosenFormat) {\r\n\t\t\t// No format matches the national (significant) phone number.\r\n\t\t\tthis.resetFormat()\r\n\t\t}\r\n\t\treturn this.chosenFormat\r\n\t}\r\n\r\n\tcreateTemplateForFormat(format, state) {\r\n\t\t// The formatter doesn't format numbers when numberPattern contains '|', e.g.\r\n\t\t// (20|3)\\d{4}. In those cases we quickly return.\r\n\t\t// (Though there's no such format in current metadata)\r\n\t\t/* istanbul ignore if */\r\n\t\tif (SUPPORT_LEGACY_FORMATTING_PATTERNS && format.pattern().indexOf('|') >= 0) {\r\n\t\t\treturn\r\n\t\t}\r\n\t\t// Get formatting template for this phone number format\r\n\t\tconst template = this.getTemplateForFormat(format, state)\r\n\t\t// If the national number entered is too long\r\n\t\t// for any phone number format, then abort.\r\n\t\tif (template) {\r\n\t\t\tthis.setNationalNumberTemplate(template, state)\r\n\t\t\treturn true\r\n\t\t}\r\n\t}\r\n\r\n\tgetSeparatorAfterNationalPrefix(format) {\r\n\t\t// `US` metadata doesn't have a `national_prefix_formatting_rule`,\r\n\t\t// so the `if` condition below doesn't apply to `US`,\r\n\t\t// but in reality there shoudl be a separator\r\n\t\t// between a national prefix and a national (significant) number.\r\n\t\t// So `US` national prefix separator is a \"special\" \"hardcoded\" case.\r\n\t\tif (this.isNANP) {\r\n\t\t\treturn ' '\r\n\t\t}\r\n\t\t// If a `format` has a `national_prefix_formatting_rule`\r\n\t\t// and that rule has a separator after a national prefix,\r\n\t\t// then it means that there should be a separator\r\n\t\t// between a national prefix and a national (significant) number.\r\n\t\tif (format &&\r\n\t\t\tformat.nationalPrefixFormattingRule() &&\r\n\t\t\tNATIONAL_PREFIX_SEPARATORS_PATTERN.test(format.nationalPrefixFormattingRule())) {\r\n\t\t\treturn ' '\r\n\t\t}\r\n\t\t// At this point, there seems to be no clear evidence that\r\n\t\t// there should be a separator between a national prefix\r\n\t\t// and a national (significant) number. So don't insert one.\r\n\t\treturn ''\r\n\t}\r\n\r\n\tgetInternationalPrefixBeforeCountryCallingCode({ IDDPrefix, missingPlus }, options) {\r\n\t\tif (IDDPrefix) {\r\n\t\t\treturn options && options.spacing === false ? IDDPrefix : IDDPrefix + ' '\r\n\t\t}\r\n\t\tif (missingPlus) {\r\n\t\t\treturn ''\r\n\t\t}\r\n\t\treturn '+'\r\n\t}\r\n\r\n\tgetTemplate(state) {\r\n\t\tif (!this.template) {\r\n\t\t\treturn\r\n\t\t}\r\n\t\t// `this.template` holds the template for a \"complete\" phone number.\r\n\t\t// The currently entered phone number is most likely not \"complete\",\r\n\t\t// so trim all non-populated digits.\r\n\t\tlet index = -1\r\n\t\tlet i = 0\r\n\t\tconst internationalPrefix = state.international ? this.getInternationalPrefixBeforeCountryCallingCode(state, { spacing: false }) : ''\r\n\t\twhile (i < internationalPrefix.length + state.getDigitsWithoutInternationalPrefix().length) {\r\n\t\t\tindex = this.template.indexOf(DIGIT_PLACEHOLDER, index + 1)\r\n\t\t\ti++\r\n\t\t}\r\n\t\treturn cutAndStripNonPairedParens(this.template, index + 1)\r\n\t}\r\n\r\n\tsetNationalNumberTemplate(template, state) {\r\n\t\tthis.nationalNumberTemplate = template\r\n\t\tthis.populatedNationalNumberTemplate = template\r\n\t\t// With a new formatting template, the matched position\r\n\t\t// using the old template needs to be reset.\r\n\t\tthis.populatedNationalNumberTemplatePosition = -1\r\n\t\t// For convenience, the public `.template` property\r\n\t\t// contains the whole international number\r\n\t\t// if the phone number being input is international:\r\n\t\t// 'x' for the '+' sign, 'x'es for the country phone code,\r\n\t\t// a spacebar and then the template for the formatted national number.\r\n\t\tif (state.international) {\r\n\t\t\tthis.template =\r\n\t\t\t\tthis.getInternationalPrefixBeforeCountryCallingCode(state).replace(/[\\d\\+]/g, DIGIT_PLACEHOLDER) +\r\n\t\t\t\trepeat(DIGIT_PLACEHOLDER, state.callingCode.length) +\r\n\t\t\t\t' ' +\r\n\t\t\t\ttemplate\r\n\t\t} else {\r\n\t\t\tthis.template = template\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Generates formatting template for a national phone number,\r\n\t * optionally containing a national prefix, for a format.\r\n\t * @param {Format} format\r\n\t * @param {string} nationalPrefix\r\n\t * @return {string}\r\n\t */\r\n\tgetTemplateForFormat(format, {\r\n\t\tnationalSignificantNumber,\r\n\t\tinternational,\r\n\t\tnationalPrefix,\r\n\t\tcomplexPrefixBeforeNationalSignificantNumber\r\n\t}) {\r\n\t\tlet pattern = format.pattern()\r\n\r\n\t\t/* istanbul ignore else */\r\n\t\tif (SUPPORT_LEGACY_FORMATTING_PATTERNS) {\r\n\t\t\tpattern = pattern\r\n\t\t\t\t// Replace anything in the form of [..] with \\d\r\n\t\t\t\t.replace(CREATE_CHARACTER_CLASS_PATTERN(), '\\\\d')\r\n\t\t\t\t// Replace any standalone digit (not the one in `{}`) with \\d\r\n\t\t\t\t.replace(CREATE_STANDALONE_DIGIT_PATTERN(), '\\\\d')\r\n\t\t}\r\n\r\n\t\t// Generate a dummy national number (consisting of `9`s)\r\n\t\t// that fits this format's `pattern`.\r\n\t\t//\r\n\t\t// This match will always succeed,\r\n\t\t// because the \"longest dummy phone number\"\r\n\t\t// has enough length to accomodate any possible\r\n\t\t// national phone number format pattern.\r\n\t\t//\r\n\t\tlet digits = LONGEST_DUMMY_PHONE_NUMBER.match(pattern)[0]\r\n\r\n\t\t// If the national number entered is too long\r\n\t\t// for any phone number format, then abort.\r\n\t\tif (nationalSignificantNumber.length > digits.length) {\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\t// Get a formatting template which can be used to efficiently format\r\n\t\t// a partial number where digits are added one by one.\r\n\r\n\t\t// Below `strictPattern` is used for the\r\n\t\t// regular expression (with `^` and `$`).\r\n\t\t// This wasn't originally in Google's `libphonenumber`\r\n\t\t// and I guess they don't really need it\r\n\t\t// because they're not using \"templates\" to format phone numbers\r\n\t\t// but I added `strictPattern` after encountering\r\n\t\t// South Korean phone number formatting bug.\r\n\t\t//\r\n\t\t// Non-strict regular expression bug demonstration:\r\n\t\t//\r\n\t\t// this.nationalSignificantNumber : `111111111` (9 digits)\r\n\t\t//\r\n\t\t// pattern : (\\d{2})(\\d{3,4})(\\d{4})\r\n\t\t// format : `$1 $2 $3`\r\n\t\t// digits : `9999999999` (10 digits)\r\n\t\t//\r\n\t\t// '9999999999'.replace(new RegExp(/(\\d{2})(\\d{3,4})(\\d{4})/g), '$1 $2 $3') = \"99 9999 9999\"\r\n\t\t//\r\n\t\t// template : xx xxxx xxxx\r\n\t\t//\r\n\t\t// But the correct template in this case is `xx xxx xxxx`.\r\n\t\t// The template was generated incorrectly because of the\r\n\t\t// `{3,4}` variability in the `pattern`.\r\n\t\t//\r\n\t\t// The fix is, if `this.nationalSignificantNumber` has already sufficient length\r\n\t\t// to satisfy the `pattern` completely then `this.nationalSignificantNumber`\r\n\t\t// is used instead of `digits`.\r\n\r\n\t\tconst strictPattern = new RegExp('^' + pattern + '$')\r\n\t\tconst nationalNumberDummyDigits = nationalSignificantNumber.replace(/\\d/g, DUMMY_DIGIT)\r\n\r\n\t\t// If `this.nationalSignificantNumber` has already sufficient length\r\n\t\t// to satisfy the `pattern` completely then use it\r\n\t\t// instead of `digits`.\r\n\t\tif (strictPattern.test(nationalNumberDummyDigits)) {\r\n\t\t\tdigits = nationalNumberDummyDigits\r\n\t\t}\r\n\r\n\t\tlet numberFormat = this.getFormatFormat(format, international)\r\n\t\tlet nationalPrefixIncludedInTemplate\r\n\r\n\t\t// If a user did input a national prefix (and that's guaranteed),\r\n\t\t// and if a `format` does have a national prefix formatting rule,\r\n\t\t// then see if that national prefix formatting rule\r\n\t\t// prepends exactly the same national prefix the user has input.\r\n\t\t// If that's the case, then use the `format` with the national prefix formatting rule.\r\n\t\t// Otherwise, use the `format` without the national prefix formatting rule,\r\n\t\t// and prepend a national prefix manually to it.\r\n\t\tif (this.shouldTryNationalPrefixFormattingRule(format, { international, nationalPrefix })) {\r\n\t\t\tconst numberFormatWithNationalPrefix = numberFormat.replace(\r\n\t\t\t\tFIRST_GROUP_PATTERN,\r\n\t\t\t\tformat.nationalPrefixFormattingRule()\r\n\t\t\t)\r\n\t\t\t// If `national_prefix_formatting_rule` of a `format` simply prepends\r\n\t\t\t// national prefix at the start of a national (significant) number,\r\n\t\t\t// then such formatting can be used with `AsYouType` formatter.\r\n\t\t\t// There seems to be no `else` case: everywhere in metadata,\r\n\t\t\t// national prefix formatting rule is national prefix + $1,\r\n\t\t\t// or `($1)`, in which case such format isn't even considered\r\n\t\t\t// when the user has input a national prefix.\r\n\t\t\t/* istanbul ignore else */\r\n\t\t\tif (parseDigits(format.nationalPrefixFormattingRule()) === (nationalPrefix || '') + parseDigits('$1')) {\r\n\t\t\t\tnumberFormat = numberFormatWithNationalPrefix\r\n\t\t\t\tnationalPrefixIncludedInTemplate = true\r\n\t\t\t\t// Replace all digits of the national prefix in the formatting template\r\n\t\t\t\t// with `DIGIT_PLACEHOLDER`s.\r\n\t\t\t\tif (nationalPrefix) {\r\n\t\t\t\t\tlet i = nationalPrefix.length\r\n\t\t\t\t\twhile (i > 0) {\r\n\t\t\t\t\t\tnumberFormat = numberFormat.replace(/\\d/, DIGIT_PLACEHOLDER)\r\n\t\t\t\t\t\ti--\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// Generate formatting template for this phone number format.\r\n\t\tlet template = digits\r\n\t\t\t// Format the dummy phone number according to the format.\r\n\t\t\t.replace(new RegExp(pattern), numberFormat)\r\n\t\t\t// Replace each dummy digit with a DIGIT_PLACEHOLDER.\r\n\t\t\t.replace(new RegExp(DUMMY_DIGIT, 'g'), DIGIT_PLACEHOLDER)\r\n\r\n\t\t// If a prefix of a national (significant) number is not as simple\r\n\t\t// as just a basic national prefix, then just prepend such prefix\r\n\t\t// before the national (significant) number, optionally spacing\r\n\t\t// the two with a whitespace.\r\n\t\tif (!nationalPrefixIncludedInTemplate) {\r\n\t\t\tif (complexPrefixBeforeNationalSignificantNumber) {\r\n\t\t\t\t// Prepend the prefix to the template manually.\r\n\t\t\t\ttemplate = repeat(DIGIT_PLACEHOLDER, complexPrefixBeforeNationalSignificantNumber.length) +\r\n\t\t\t\t\t' ' +\r\n\t\t\t\t\ttemplate\r\n\t\t\t} else if (nationalPrefix) {\r\n\t\t\t\t// Prepend national prefix to the template manually.\r\n\t\t\t\ttemplate = repeat(DIGIT_PLACEHOLDER, nationalPrefix.length) +\r\n\t\t\t\t\tthis.getSeparatorAfterNationalPrefix(format) +\r\n\t\t\t\t\ttemplate\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (international) {\r\n\t\t\ttemplate = applyInternationalSeparatorStyle(template)\r\n\t\t}\r\n\r\n\t\treturn template\r\n\t}\r\n\r\n\tformatNextNationalNumberDigits(digits) {\r\n\t\tconst result = populateTemplateWithDigits(\r\n\t\t\tthis.populatedNationalNumberTemplate,\r\n\t\t\tthis.populatedNationalNumberTemplatePosition,\r\n\t\t\tdigits\r\n\t\t)\r\n\r\n\t\tif (!result) {\r\n\t\t\t// Reset the format.\r\n\t\t\tthis.resetFormat()\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\tthis.populatedNationalNumberTemplate = result[0]\r\n\t\tthis.populatedNationalNumberTemplatePosition = result[1]\r\n\r\n\t\t// Return the formatted phone number so far.\r\n\t\treturn cutAndStripNonPairedParens(this.populatedNationalNumberTemplate, this.populatedNationalNumberTemplatePosition + 1)\r\n\r\n\t\t// The old way which was good for `input-format` but is not so good\r\n\t\t// for `react-phone-number-input`'s default input (`InputBasic`).\r\n\t\t// return closeNonPairedParens(this.populatedNationalNumberTemplate, this.populatedNationalNumberTemplatePosition + 1)\r\n\t\t// \t.replace(new RegExp(DIGIT_PLACEHOLDER, 'g'), ' ')\r\n\t}\r\n\r\n\tshouldTryNationalPrefixFormattingRule(format, { international, nationalPrefix }) {\r\n\t\tif (format.nationalPrefixFormattingRule()) {\r\n\t\t\t// In some countries, `national_prefix_formatting_rule` is `($1)`,\r\n\t\t\t// so it applies even if the user hasn't input a national prefix.\r\n\t\t\t// `format.usesNationalPrefix()` detects such cases.\r\n\t\t\tconst usesNationalPrefix = format.usesNationalPrefix()\r\n\t\t\tif ((usesNationalPrefix && nationalPrefix) ||\r\n\t\t\t\t(!usesNationalPrefix && !international)) {\r\n\t\t\t\treturn true\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}","import extractCountryCallingCode from './helpers/extractCountryCallingCode.js'\r\nimport extractCountryCallingCodeFromInternationalNumberWithoutPlusSign from './helpers/extractCountryCallingCodeFromInternationalNumberWithoutPlusSign.js'\r\nimport extractNationalNumberFromPossiblyIncompleteNumber from './helpers/extractNationalNumberFromPossiblyIncompleteNumber.js'\r\nimport stripIddPrefix from './helpers/stripIddPrefix.js'\r\nimport parseDigits from './helpers/parseDigits.js'\r\n\r\nimport {\r\n\tVALID_DIGITS,\r\n\tVALID_PUNCTUATION,\r\n\tPLUS_CHARS\r\n} from './constants.js'\r\n\r\nconst VALID_FORMATTED_PHONE_NUMBER_DIGITS_PART =\r\n\t'[' +\r\n\t\tVALID_PUNCTUATION +\r\n\t\tVALID_DIGITS +\r\n\t']+'\r\n\r\nconst VALID_FORMATTED_PHONE_NUMBER_DIGITS_PART_PATTERN = new RegExp('^' + VALID_FORMATTED_PHONE_NUMBER_DIGITS_PART + '$', 'i')\r\n\r\nconst VALID_FORMATTED_PHONE_NUMBER_PART =\r\n\t'(?:' +\r\n\t\t'[' + PLUS_CHARS + ']' +\r\n\t\t'[' +\r\n\t\t\tVALID_PUNCTUATION +\r\n\t\t\tVALID_DIGITS +\r\n\t\t']*' +\r\n\t\t'|' +\r\n\t\t'[' +\r\n\t\t\tVALID_PUNCTUATION +\r\n\t\t\tVALID_DIGITS +\r\n\t\t']+' +\r\n\t')'\r\n\r\nconst AFTER_PHONE_NUMBER_DIGITS_END_PATTERN = new RegExp(\r\n\t'[^' +\r\n\t\tVALID_PUNCTUATION +\r\n\t\tVALID_DIGITS +\r\n\t']+' +\r\n\t'.*' +\r\n\t'$'\r\n)\r\n\r\n// Tests whether `national_prefix_for_parsing` could match\r\n// different national prefixes.\r\n// Matches anything that's not a digit or a square bracket.\r\nconst COMPLEX_NATIONAL_PREFIX = /[^\\d\\[\\]]/\r\n\r\nexport default class AsYouTypeParser {\r\n\tconstructor({\r\n\t\tdefaultCountry,\r\n\t\tdefaultCallingCode,\r\n\t\tmetadata,\r\n\t\tonNationalSignificantNumberChange\r\n\t}) {\r\n\t\tthis.defaultCountry = defaultCountry\r\n\t\tthis.defaultCallingCode = defaultCallingCode\r\n\t\tthis.metadata = metadata\r\n\t\tthis.onNationalSignificantNumberChange = onNationalSignificantNumberChange\r\n\t}\r\n\r\n\tinput(text, state) {\r\n\t\tconst [formattedDigits, hasPlus] = extractFormattedDigitsAndPlus(text)\r\n\t\tconst digits = parseDigits(formattedDigits)\r\n\t\t// Checks for a special case: just a leading `+` has been entered.\r\n\t\tlet justLeadingPlus\r\n\t\tif (hasPlus) {\r\n\t\t\tif (!state.digits) {\r\n\t\t\t\tstate.startInternationalNumber()\r\n\t\t\t\tif (!digits) {\r\n\t\t\t\t\tjustLeadingPlus = true\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (digits) {\r\n\t\t\tthis.inputDigits(digits, state)\r\n\t\t}\r\n\t\treturn {\r\n\t\t\tdigits,\r\n\t\t\tjustLeadingPlus\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Inputs \"next\" phone number digits.\r\n\t * @param {string} digits\r\n\t * @return {string} [formattedNumber] Formatted national phone number (if it can be formatted at this stage). Returning `undefined` means \"don't format the national phone number at this stage\".\r\n\t */\r\n\tinputDigits(nextDigits, state) {\r\n\t\tconst { digits } = state\r\n\t\tconst hasReceivedThreeLeadingDigits = digits.length < 3 && digits.length + nextDigits.length >= 3\r\n\r\n\t\t// Append phone number digits.\r\n\t\tstate.appendDigits(nextDigits)\r\n\r\n\t\t// Attempt to extract IDD prefix:\r\n\t\t// Some users input their phone number in international format,\r\n\t\t// but in an \"out-of-country\" dialing format instead of using the leading `+`.\r\n\t\t// https://github.com/catamphetamine/libphonenumber-js/issues/185\r\n\t\t// Detect such numbers as soon as there're at least 3 digits.\r\n\t\t// Google's library attempts to extract IDD prefix at 3 digits,\r\n\t\t// so this library just copies that behavior.\r\n\t\t// I guess that's because the most commot IDD prefixes are\r\n\t\t// `00` (Europe) and `011` (US).\r\n\t\t// There exist really long IDD prefixes too:\r\n\t\t// for example, in Australia the default IDD prefix is `0011`,\r\n\t\t// and it could even be as long as `14880011`.\r\n\t\t// An IDD prefix is extracted here, and then every time when\r\n\t\t// there's a new digit and the number couldn't be formatted.\r\n\t\tif (hasReceivedThreeLeadingDigits) {\r\n\t\t\tthis.extractIddPrefix(state)\r\n\t\t}\r\n\r\n\t\tif (this.isWaitingForCountryCallingCode(state)) {\r\n\t\t\tif (!this.extractCountryCallingCode(state)) {\r\n\t\t\t\treturn\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tstate.appendNationalSignificantNumberDigits(nextDigits)\r\n\t\t}\r\n\r\n\t\t// If a phone number is being input in international format,\r\n\t\t// then it's not valid for it to have a national prefix.\r\n\t\t// Still, some people incorrectly input such numbers with a national prefix.\r\n\t\t// In such cases, only attempt to strip a national prefix if the number becomes too long.\r\n\t\t// (but that is done later, not here)\r\n\t\tif (!state.international) {\r\n\t\t\tif (!this.hasExtractedNationalSignificantNumber) {\r\n\t\t\t\tthis.extractNationalSignificantNumber(\r\n\t\t\t\t\tstate.getNationalDigits(),\r\n\t\t\t\t\t(stateUpdate) => state.update(stateUpdate)\r\n\t\t\t\t)\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tisWaitingForCountryCallingCode({ international, callingCode }) {\r\n\t\treturn international && !callingCode\r\n\t}\r\n\r\n\t// Extracts a country calling code from a number\r\n\t// being entered in internatonal format.\r\n\textractCountryCallingCode(state) {\r\n\t\tconst { countryCallingCode, number } = extractCountryCallingCode(\r\n\t\t\t'+' + state.getDigitsWithoutInternationalPrefix(),\r\n\t\t\tthis.defaultCountry,\r\n\t\t\tthis.defaultCallingCode,\r\n\t\t\tthis.metadata.metadata\r\n\t\t)\r\n\t\tif (countryCallingCode) {\r\n\t\t\tstate.setCallingCode(countryCallingCode)\r\n\t\t\tstate.update({\r\n\t\t\t\tnationalSignificantNumber: number\r\n\t\t\t})\r\n\t\t\treturn true\r\n\t\t}\r\n\t}\r\n\r\n\treset(numberingPlan) {\r\n\t\tif (numberingPlan) {\r\n\t\t\tthis.hasSelectedNumberingPlan = true\r\n\t\t\tconst nationalPrefixForParsing = numberingPlan._nationalPrefixForParsing()\r\n\t\t\tthis.couldPossiblyExtractAnotherNationalSignificantNumber = nationalPrefixForParsing && COMPLEX_NATIONAL_PREFIX.test(nationalPrefixForParsing)\r\n\t\t} else {\r\n\t\t\tthis.hasSelectedNumberingPlan = undefined\r\n\t\t\tthis.couldPossiblyExtractAnotherNationalSignificantNumber = undefined\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Extracts a national (significant) number from user input.\r\n\t * Google's library is different in that it only applies `national_prefix_for_parsing`\r\n\t * and doesn't apply `national_prefix_transform_rule` after that.\r\n\t * https://github.com/google/libphonenumber/blob/a3d70b0487875475e6ad659af404943211d26456/java/libphonenumber/src/com/google/i18n/phonenumbers/AsYouTypeFormatter.java#L539\r\n\t * @return {boolean} [extracted]\r\n\t */\r\n\textractNationalSignificantNumber(nationalDigits, setState) {\r\n\t\tif (!this.hasSelectedNumberingPlan) {\r\n\t\t\treturn\r\n\t\t}\r\n\t\tconst {\r\n\t\t\tnationalPrefix,\r\n\t\t\tnationalNumber,\r\n\t\t\tcarrierCode\r\n\t\t} = extractNationalNumberFromPossiblyIncompleteNumber(\r\n\t\t\tnationalDigits,\r\n\t\t\tthis.metadata\r\n\t\t)\r\n\t\tif (nationalNumber === nationalDigits) {\r\n\t\t\treturn\r\n\t\t}\r\n\t\tthis.onExtractedNationalNumber(\r\n\t\t\tnationalPrefix,\r\n\t\t\tcarrierCode,\r\n\t\t\tnationalNumber,\r\n\t\t\tnationalDigits,\r\n\t\t\tsetState\r\n\t\t)\r\n\t\treturn true\r\n\t}\r\n\r\n\t/**\r\n\t * In Google's code this function is called \"attempt to extract longer NDD\".\r\n\t * \"Some national prefixes are a substring of others\", they say.\r\n\t * @return {boolean} [result] — Returns `true` if extracting a national prefix produced different results from what they were.\r\n\t */\r\n\textractAnotherNationalSignificantNumber(nationalDigits, prevNationalSignificantNumber, setState) {\r\n\t\tif (!this.hasExtractedNationalSignificantNumber) {\r\n\t\t\treturn this.extractNationalSignificantNumber(nationalDigits, setState)\r\n\t\t}\r\n\t\tif (!this.couldPossiblyExtractAnotherNationalSignificantNumber) {\r\n\t\t\treturn\r\n\t\t}\r\n\t\tconst {\r\n\t\t\tnationalPrefix,\r\n\t\t\tnationalNumber,\r\n\t\t\tcarrierCode\r\n\t\t} = extractNationalNumberFromPossiblyIncompleteNumber(\r\n\t\t\tnationalDigits,\r\n\t\t\tthis.metadata\r\n\t\t)\r\n\t\t// If a national prefix has been extracted previously,\r\n\t\t// then it's always extracted as additional digits are added.\r\n\t\t// That's assuming `extractNationalNumberFromPossiblyIncompleteNumber()`\r\n\t\t// doesn't do anything different from what it currently does.\r\n\t\t// So, just in case, here's this check, though it doesn't occur.\r\n\t\t/* istanbul ignore if */\r\n\t\tif (nationalNumber === prevNationalSignificantNumber) {\r\n\t\t\treturn\r\n\t\t}\r\n\t\tthis.onExtractedNationalNumber(\r\n\t\t\tnationalPrefix,\r\n\t\t\tcarrierCode,\r\n\t\t\tnationalNumber,\r\n\t\t\tnationalDigits,\r\n\t\t\tsetState\r\n\t\t)\r\n\t\treturn true\r\n\t}\r\n\r\n\tonExtractedNationalNumber(\r\n\t\tnationalPrefix,\r\n\t\tcarrierCode,\r\n\t\tnationalSignificantNumber,\r\n\t\tnationalDigits,\r\n\t\tsetState\r\n\t) {\r\n\t\tlet complexPrefixBeforeNationalSignificantNumber\r\n\t\tlet nationalSignificantNumberMatchesInput\r\n\t\t// This check also works with empty `this.nationalSignificantNumber`.\r\n\t\tconst nationalSignificantNumberIndex = nationalDigits.lastIndexOf(nationalSignificantNumber)\r\n\t\t// If the extracted national (significant) number is the\r\n\t\t// last substring of the `digits`, then it means that it hasn't been altered:\r\n\t\t// no digits have been removed from the national (significant) number\r\n\t\t// while applying `national_prefix_transform_rule`.\r\n\t\t// https://gitlab.com/catamphetamine/libphonenumber-js/-/blob/master/METADATA.md#national_prefix_for_parsing--national_prefix_transform_rule\r\n\t\tif (nationalSignificantNumberIndex >= 0 &&\r\n\t\t\tnationalSignificantNumberIndex === nationalDigits.length - nationalSignificantNumber.length) {\r\n\t\t\tnationalSignificantNumberMatchesInput = true\r\n\t\t\t// If a prefix of a national (significant) number is not as simple\r\n\t\t\t// as just a basic national prefix, then such prefix is stored in\r\n\t\t\t// `this.complexPrefixBeforeNationalSignificantNumber` property and will be\r\n\t\t\t// prepended \"as is\" to the national (significant) number to produce\r\n\t\t\t// a formatted result.\r\n\t\t\tconst prefixBeforeNationalNumber = nationalDigits.slice(0, nationalSignificantNumberIndex)\r\n\t\t\t// `prefixBeforeNationalNumber` is always non-empty,\r\n\t\t\t// because `onExtractedNationalNumber()` isn't called\r\n\t\t\t// when a national (significant) number hasn't been actually \"extracted\":\r\n\t\t\t// when a national (significant) number is equal to the national part of `digits`,\r\n\t\t\t// then `onExtractedNationalNumber()` doesn't get called.\r\n\t\t\tif (prefixBeforeNationalNumber !== nationalPrefix) {\r\n\t\t\t\tcomplexPrefixBeforeNationalSignificantNumber = prefixBeforeNationalNumber\r\n\t\t\t}\r\n\t\t}\r\n\t\tsetState({\r\n\t\t\tnationalPrefix,\r\n\t\t\tcarrierCode,\r\n\t\t\tnationalSignificantNumber,\r\n\t\t\tnationalSignificantNumberMatchesInput,\r\n\t\t\tcomplexPrefixBeforeNationalSignificantNumber\r\n\t\t})\r\n\t\t// `onExtractedNationalNumber()` is only called when\r\n\t\t// the national (significant) number actually did change.\r\n\t\tthis.hasExtractedNationalSignificantNumber = true\r\n\t\tthis.onNationalSignificantNumberChange()\r\n\t}\r\n\r\n\treExtractNationalSignificantNumber(state) {\r\n\t\t// Attempt to extract a national prefix.\r\n\t\t//\r\n\t\t// Some people incorrectly input national prefix\r\n\t\t// in an international phone number.\r\n\t\t// For example, some people write British phone numbers as `+44(0)...`.\r\n\t\t//\r\n\t\t// Also, in some rare cases, it is valid for a national prefix\r\n\t\t// to be a part of an international phone number.\r\n\t\t// For example, mobile phone numbers in Mexico are supposed to be\r\n\t\t// dialled internationally using a `1` national prefix,\r\n\t\t// so the national prefix will be part of an international number.\r\n\t\t//\r\n\t\t// Quote from:\r\n\t\t// https://www.mexperience.com/dialing-cell-phones-in-mexico/\r\n\t\t//\r\n\t\t// \"Dialing a Mexican cell phone from abroad\r\n\t\t// When you are calling a cell phone number in Mexico from outside Mexico,\r\n\t\t// it’s necessary to dial an additional “1” after Mexico’s country code\r\n\t\t// (which is “52”) and before the area code.\r\n\t\t// You also ignore the 045, and simply dial the area code and the\r\n\t\t// cell phone’s number.\r\n\t\t//\r\n\t\t// If you don’t add the “1”, you’ll receive a recorded announcement\r\n\t\t// asking you to redial using it.\r\n\t\t//\r\n\t\t// For example, if you are calling from the USA to a cell phone\r\n\t\t// in Mexico City, you would dial +52 – 1 – 55 – 1234 5678.\r\n\t\t// (Note that this is different to calling a land line in Mexico City\r\n\t\t// from abroad, where the number dialed would be +52 – 55 – 1234 5678)\".\r\n\t\t//\r\n\t\t// Google's demo output:\r\n\t\t// https://libphonenumber.appspot.com/phonenumberparser?number=%2b5215512345678&country=MX\r\n\t\t//\r\n\t\tif (this.extractAnotherNationalSignificantNumber(\r\n\t\t\tstate.getNationalDigits(),\r\n\t\t\tstate.nationalSignificantNumber,\r\n\t\t\t(stateUpdate) => state.update(stateUpdate)\r\n\t\t)) {\r\n\t\t\treturn true\r\n\t\t}\r\n\t\t// If no format matches the phone number, then it could be\r\n\t\t// \"a really long IDD\" (quote from a comment in Google's library).\r\n\t\t// An IDD prefix is first extracted when the user has entered at least 3 digits,\r\n\t\t// and then here — every time when there's a new digit and the number\r\n\t\t// couldn't be formatted.\r\n\t\t// For example, in Australia the default IDD prefix is `0011`,\r\n\t\t// and it could even be as long as `14880011`.\r\n\t\t//\r\n\t\t// Could also check `!hasReceivedThreeLeadingDigits` here\r\n\t\t// to filter out the case when this check duplicates the one\r\n\t\t// already performed when there're 3 leading digits,\r\n\t\t// but it's not a big deal, and in most cases there\r\n\t\t// will be a suitable `format` when there're 3 leading digits.\r\n\t\t//\r\n\t\tif (this.extractIddPrefix(state)) {\r\n\t\t\tthis.extractCallingCodeAndNationalSignificantNumber(state)\r\n\t\t\treturn true\r\n\t\t}\r\n\t\t// Google's AsYouType formatter supports sort of an \"autocorrection\" feature\r\n\t\t// when it \"autocorrects\" numbers that have been input for a country\r\n\t\t// with that country's calling code.\r\n\t\t// Such \"autocorrection\" feature looks weird, but different people have been requesting it:\r\n\t\t// https://github.com/catamphetamine/libphonenumber-js/issues/376\r\n\t\t// https://github.com/catamphetamine/libphonenumber-js/issues/375\r\n\t\t// https://github.com/catamphetamine/libphonenumber-js/issues/316\r\n\t\tif (this.fixMissingPlus(state)) {\r\n\t\t\tthis.extractCallingCodeAndNationalSignificantNumber(state)\r\n\t\t\treturn true\r\n\t\t}\r\n\t}\r\n\r\n\textractIddPrefix(state) {\r\n\t\t// An IDD prefix can't be present in a number written with a `+`.\r\n\t\t// Also, don't re-extract an IDD prefix if has already been extracted.\r\n\t\tconst {\r\n\t\t\tinternational,\r\n\t\t\tIDDPrefix,\r\n\t\t\tdigits,\r\n\t\t\tnationalSignificantNumber\r\n\t\t} = state\r\n\t\tif (international || IDDPrefix) {\r\n\t\t\treturn\r\n\t\t}\r\n\t\t// Some users input their phone number in \"out-of-country\"\r\n\t\t// dialing format instead of using the leading `+`.\r\n\t\t// https://github.com/catamphetamine/libphonenumber-js/issues/185\r\n\t\t// Detect such numbers.\r\n\t\tconst numberWithoutIDD = stripIddPrefix(\r\n\t\t\tdigits,\r\n\t\t\tthis.defaultCountry,\r\n\t\t\tthis.defaultCallingCode,\r\n\t\t\tthis.metadata.metadata\r\n\t\t)\r\n\t\tif (numberWithoutIDD !== undefined && numberWithoutIDD !== digits) {\r\n\t\t\t// If an IDD prefix was stripped then convert the IDD-prefixed number\r\n\t\t\t// to international number for subsequent parsing.\r\n\t\t\tstate.update({\r\n\t\t\t\tIDDPrefix: digits.slice(0, digits.length - numberWithoutIDD.length)\r\n\t\t\t})\r\n\t\t\tthis.startInternationalNumber(state, {\r\n\t\t\t\tcountry: undefined,\r\n\t\t\t\tcallingCode: undefined\r\n\t\t\t})\r\n\t\t\treturn true\r\n\t\t}\r\n\t}\r\n\r\n\tfixMissingPlus(state) {\r\n\t\tif (!state.international) {\r\n\t\t\tconst {\r\n\t\t\t\tcountryCallingCode: newCallingCode,\r\n\t\t\t\tnumber\r\n\t\t\t} = extractCountryCallingCodeFromInternationalNumberWithoutPlusSign(\r\n\t\t\t\tstate.digits,\r\n\t\t\t\tthis.defaultCountry,\r\n\t\t\t\tthis.defaultCallingCode,\r\n\t\t\t\tthis.metadata.metadata\r\n\t\t\t)\r\n\t\t\tif (newCallingCode) {\r\n\t\t\t\tstate.update({\r\n\t\t\t\t\tmissingPlus: true\r\n\t\t\t\t})\r\n\t\t\t\tthis.startInternationalNumber(state, {\r\n\t\t\t\t\tcountry: state.country,\r\n\t\t\t\t\tcallingCode: newCallingCode\r\n\t\t\t\t})\r\n\t\t\t\treturn true\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tstartInternationalNumber(state, { country, callingCode }) {\r\n\t\tstate.startInternationalNumber(country, callingCode)\r\n\t\t// If a national (significant) number has been extracted before, reset it.\r\n\t\tif (state.nationalSignificantNumber) {\r\n\t\t\tstate.resetNationalSignificantNumber()\r\n\t\t\tthis.onNationalSignificantNumberChange()\r\n\t\t\tthis.hasExtractedNationalSignificantNumber = undefined\r\n\t\t}\r\n\t}\r\n\r\n\textractCallingCodeAndNationalSignificantNumber(state) {\r\n\t\tif (this.extractCountryCallingCode(state)) {\r\n\t\t\t// `this.extractCallingCode()` is currently called when the number\r\n\t\t\t// couldn't be formatted during the standard procedure.\r\n\t\t\t// Normally, the national prefix would be re-extracted\r\n\t\t\t// for an international number if such number couldn't be formatted,\r\n\t\t\t// but since it's already not able to be formatted,\r\n\t\t\t// there won't be yet another retry, so also extract national prefix here.\r\n\t\t\tthis.extractNationalSignificantNumber(\r\n\t\t\t\tstate.getNationalDigits(),\r\n\t\t\t\t(stateUpdate) => state.update(stateUpdate)\r\n\t\t\t)\r\n\t\t}\r\n\t}\r\n}\r\n\r\n/**\r\n * Extracts formatted phone number from text (if there's any).\r\n * @param {string} text\r\n * @return {string} [formattedPhoneNumber]\r\n */\r\nfunction extractFormattedPhoneNumber(text) {\r\n\t// Attempt to extract a possible number from the string passed in.\r\n\tconst startsAt = text.search(VALID_FORMATTED_PHONE_NUMBER_PART)\r\n\tif (startsAt < 0) {\r\n\t\treturn\r\n\t}\r\n\t// Trim everything to the left of the phone number.\r\n\ttext = text.slice(startsAt)\r\n\t// Trim the `+`.\r\n\tlet hasPlus\r\n\tif (text[0] === '+') {\r\n\t\thasPlus = true\r\n\t\ttext = text.slice('+'.length)\r\n\t}\r\n\t// Trim everything to the right of the phone number.\r\n\ttext = text.replace(AFTER_PHONE_NUMBER_DIGITS_END_PATTERN, '')\r\n\t// Re-add the previously trimmed `+`.\r\n\tif (hasPlus) {\r\n\t\ttext = '+' + text\r\n\t}\r\n\treturn text\r\n}\r\n\r\n/**\r\n * Extracts formatted phone number digits (and a `+`) from text (if there're any).\r\n * @param {string} text\r\n * @return {any[]}\r\n */\r\nfunction _extractFormattedDigitsAndPlus(text) {\r\n\t// Extract a formatted phone number part from text.\r\n\tconst extractedNumber = extractFormattedPhoneNumber(text) || ''\r\n\t// Trim a `+`.\r\n\tif (extractedNumber[0] === '+') {\r\n\t\treturn [extractedNumber.slice('+'.length), true]\r\n\t}\r\n\treturn [extractedNumber]\r\n}\r\n\r\n/**\r\n * Extracts formatted phone number digits (and a `+`) from text (if there're any).\r\n * @param {string} text\r\n * @return {any[]}\r\n */\r\nexport function extractFormattedDigitsAndPlus(text) {\r\n\tlet [formattedDigits, hasPlus] = _extractFormattedDigitsAndPlus(text)\r\n\t// If the extracted phone number part\r\n\t// can possibly be a part of some valid phone number\r\n\t// then parse phone number characters from a formatted phone number.\r\n\tif (!VALID_FORMATTED_PHONE_NUMBER_DIGITS_PART_PATTERN.test(formattedDigits)) {\r\n\t\tformattedDigits = ''\r\n\t}\r\n\treturn [formattedDigits, hasPlus]\r\n}","import Metadata from './metadata.js'\r\nimport PhoneNumber from './PhoneNumber.js'\r\nimport AsYouTypeState from './AsYouTypeState.js'\r\nimport AsYouTypeFormatter, { DIGIT_PLACEHOLDER } from './AsYouTypeFormatter.js'\r\nimport AsYouTypeParser, { extractFormattedDigitsAndPlus } from './AsYouTypeParser.js'\r\nimport getCountryByCallingCode from './helpers/getCountryByCallingCode.js'\r\nimport getCountryByNationalNumber from './helpers/getCountryByNationalNumber.js'\r\nimport isObject from './helpers/isObject.js'\r\n\r\nconst USE_NON_GEOGRAPHIC_COUNTRY_CODE = false\r\n\r\nexport default class AsYouType {\r\n\t/**\r\n\t * @param {(string|object)?} [optionsOrDefaultCountry] - The default country used for parsing non-international phone numbers. Can also be an `options` object.\r\n\t * @param {Object} metadata\r\n\t */\r\n\tconstructor(optionsOrDefaultCountry, metadata) {\r\n\t\tthis.metadata = new Metadata(metadata)\r\n\t\tconst [defaultCountry, defaultCallingCode] = this.getCountryAndCallingCode(optionsOrDefaultCountry)\r\n\t\t// `this.defaultCountry` and `this.defaultCallingCode` aren't required to be in sync.\r\n\t\t// For example, `this.defaultCountry` could be `\"AR\"` and `this.defaultCallingCode` could be `undefined`.\r\n\t\t// So `this.defaultCountry` and `this.defaultCallingCode` are totally independent.\r\n\t\tthis.defaultCountry = defaultCountry\r\n\t\tthis.defaultCallingCode = defaultCallingCode\r\n\t\tthis.reset()\r\n\t}\r\n\r\n\tgetCountryAndCallingCode(optionsOrDefaultCountry) {\r\n\t\t// Set `defaultCountry` and `defaultCallingCode` options.\r\n\t\tlet defaultCountry\r\n\t\tlet defaultCallingCode\r\n\t\t// Turns out `null` also has type \"object\". Weird.\r\n\t\tif (optionsOrDefaultCountry) {\r\n\t\t\tif (isObject(optionsOrDefaultCountry)) {\r\n\t\t\t\tdefaultCountry = optionsOrDefaultCountry.defaultCountry\r\n\t\t\t\tdefaultCallingCode = optionsOrDefaultCountry.defaultCallingCode\r\n\t\t\t} else {\r\n\t\t\t\tdefaultCountry = optionsOrDefaultCountry\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (defaultCountry && !this.metadata.hasCountry(defaultCountry)) {\r\n\t\t\tdefaultCountry = undefined\r\n\t\t}\r\n\t\tif (defaultCallingCode) {\r\n\t\t\t/* istanbul ignore if */\r\n\t\t\tif (USE_NON_GEOGRAPHIC_COUNTRY_CODE) {\r\n\t\t\t\tif (this.metadata.isNonGeographicCallingCode(defaultCallingCode)) {\r\n\t\t\t\t\tdefaultCountry = '001'\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn [defaultCountry, defaultCallingCode]\r\n\t}\r\n\r\n\t/**\r\n\t * Inputs \"next\" phone number characters.\r\n\t * @param {string} text\r\n\t * @return {string} Formatted phone number characters that have been input so far.\r\n\t */\r\n\tinput(text) {\r\n\t\tconst {\r\n\t\t\tdigits,\r\n\t\t\tjustLeadingPlus\r\n\t\t} = this.parser.input(text, this.state)\r\n\t\tif (justLeadingPlus) {\r\n\t\t\tthis.formattedOutput = '+'\r\n\t\t} else if (digits) {\r\n\t\t\tthis.determineTheCountryIfNeeded()\r\n\t\t\t// Match the available formats by the currently available leading digits.\r\n\t\t\tif (this.state.nationalSignificantNumber) {\r\n\t\t\t\tthis.formatter.narrowDownMatchingFormats(this.state)\r\n\t\t\t}\r\n\t\t\tlet formattedNationalNumber\r\n\t\t\tif (this.metadata.hasSelectedNumberingPlan()) {\r\n\t\t\t\tformattedNationalNumber = this.formatter.format(digits, this.state)\r\n\t\t\t}\r\n\t\t\tif (formattedNationalNumber === undefined) {\r\n\t\t\t\t// See if another national (significant) number could be re-extracted.\r\n\t\t\t\tif (this.parser.reExtractNationalSignificantNumber(this.state)) {\r\n\t\t\t\t\tthis.determineTheCountryIfNeeded()\r\n\t\t\t\t\t// If it could, then re-try formatting the new national (significant) number.\r\n\t\t\t\t\tconst nationalDigits = this.state.getNationalDigits()\r\n\t\t\t\t\tif (nationalDigits) {\r\n\t\t\t\t\t\tformattedNationalNumber = this.formatter.format(nationalDigits, this.state)\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tthis.formattedOutput = formattedNationalNumber\r\n\t\t\t\t? this.getFullNumber(formattedNationalNumber)\r\n\t\t\t\t: this.getNonFormattedNumber()\r\n\t\t}\r\n\t\treturn this.formattedOutput\r\n\t}\r\n\r\n\treset() {\r\n\t\tthis.state = new AsYouTypeState({\r\n\t\t\tonCountryChange: (country) => {\r\n\t\t\t\t// Before version `1.6.0`, the official `AsYouType` formatter API\r\n\t\t\t\t// included the `.country` property of an `AsYouType` instance.\r\n\t\t\t\t// Since that property (along with the others) have been moved to\r\n\t\t\t\t// `this.state`, `this.country` property is emulated for compatibility\r\n\t\t\t\t// with the old versions.\r\n\t\t\t\tthis.country = country\r\n\t\t\t},\r\n\t\t\tonCallingCodeChange: (callingCode, country) => {\r\n\t\t\t\tthis.metadata.selectNumberingPlan(country, callingCode)\r\n\t\t\t\tthis.formatter.reset(this.metadata.numberingPlan, this.state)\r\n\t\t\t\tthis.parser.reset(this.metadata.numberingPlan)\r\n\t\t\t}\r\n\t\t})\r\n\t\tthis.formatter = new AsYouTypeFormatter({\r\n\t\t\tstate: this.state,\r\n\t\t\tmetadata: this.metadata\r\n\t\t})\r\n\t\tthis.parser = new AsYouTypeParser({\r\n\t\t\tdefaultCountry: this.defaultCountry,\r\n\t\t\tdefaultCallingCode: this.defaultCallingCode,\r\n\t\t\tmetadata: this.metadata,\r\n\t\t\tstate: this.state,\r\n\t\t\tonNationalSignificantNumberChange: () => {\r\n\t\t\t\tthis.determineTheCountryIfNeeded()\r\n\t\t\t\tthis.formatter.reset(this.metadata.numberingPlan, this.state)\r\n\t\t\t}\r\n\t\t})\r\n\t\tthis.state.reset({\r\n\t\t\tcountry: this.defaultCountry,\r\n\t\t\tcallingCode: this.defaultCallingCode\r\n\t\t})\r\n\t\tthis.formattedOutput = ''\r\n\t\treturn this\r\n\t}\r\n\r\n\t/**\r\n\t * Returns `true` if the phone number is being input in international format.\r\n\t * In other words, returns `true` if and only if the parsed phone number starts with a `\"+\"`.\r\n\t * @return {boolean}\r\n\t */\r\n\tisInternational() {\r\n\t\treturn this.state.international\r\n\t}\r\n\r\n\t/**\r\n\t * Returns the \"calling code\" part of the phone number when it's being input\r\n\t * in an international format.\r\n\t * If no valid calling code has been entered so far, returns `undefined`.\r\n\t * @return {string} [callingCode]\r\n\t */\r\n\tgetCallingCode() {\r\n\t\t // If the number is being input in national format and some \"default calling code\"\r\n\t\t // has been passed to `AsYouType` constructor, then `this.state.callingCode`\r\n\t\t // is equal to that \"default calling code\".\r\n\t\t //\r\n\t\t // If the number is being input in national format and no \"default calling code\"\r\n\t\t // has been passed to `AsYouType` constructor, then returns `undefined`,\r\n\t\t // even if a \"default country\" has been passed to `AsYouType` constructor.\r\n\t\t //\r\n\t\tif (this.isInternational()) {\r\n\t\t\treturn this.state.callingCode\r\n\t\t}\r\n\t}\r\n\r\n\t// A legacy alias.\r\n\tgetCountryCallingCode() {\r\n\t\treturn this.getCallingCode()\r\n\t}\r\n\r\n\t/**\r\n\t * Returns a two-letter country code of the phone number.\r\n\t * Returns `undefined` for \"non-geographic\" phone numbering plans.\r\n\t * Returns `undefined` if no phone number has been input yet.\r\n\t * @return {string} [country]\r\n\t */\r\n\tgetCountry() {\r\n\t\tconst { digits } = this.state\r\n\t\t// Return `undefined` if no digits have been input yet.\r\n\t\tif (digits) {\r\n\t\t\treturn this._getCountry()\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Returns a two-letter country code of the phone number.\r\n\t * Returns `undefined` for \"non-geographic\" phone numbering plans.\r\n\t * @return {string} [country]\r\n\t */\r\n\t_getCountry() {\r\n\t\tconst { country } = this.state\r\n\t\t/* istanbul ignore if */\r\n\t\tif (USE_NON_GEOGRAPHIC_COUNTRY_CODE) {\r\n\t\t\t// `AsYouType.getCountry()` returns `undefined`\r\n\t\t\t// for \"non-geographic\" phone numbering plans.\r\n\t\t\tif (country === '001') {\r\n\t\t\t\treturn\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn country\r\n\t}\r\n\r\n\tdetermineTheCountryIfNeeded() {\r\n\t\t// Suppose a user enters a phone number in international format,\r\n\t\t// and there're several countries corresponding to that country calling code,\r\n\t\t// and a country has been derived from the number, and then\r\n\t\t// a user enters one more digit and the number is no longer\r\n\t\t// valid for the derived country, so the country should be re-derived\r\n\t\t// on every new digit in those cases.\r\n\t\t//\r\n\t\t// If the phone number is being input in national format,\r\n\t\t// then it could be a case when `defaultCountry` wasn't specified\r\n\t\t// when creating `AsYouType` instance, and just `defaultCallingCode` was specified,\r\n\t\t// and that \"calling code\" could correspond to a \"non-geographic entity\",\r\n\t\t// or there could be several countries corresponding to that country calling code.\r\n\t\t// In those cases, `this.country` is `undefined` and should be derived\r\n\t\t// from the number. Again, if country calling code is ambiguous, then\r\n\t\t// `this.country` should be re-derived with each new digit.\r\n\t\t//\r\n\t\tif (!this.state.country || this.isCountryCallingCodeAmbiguous()) {\r\n\t\t\tthis.determineTheCountry()\r\n\t\t}\r\n\t}\r\n\r\n\t// Prepends `+CountryCode ` in case of an international phone number\r\n\tgetFullNumber(formattedNationalNumber) {\r\n\t\tif (this.isInternational()) {\r\n\t\t\tconst prefix = (text) => this.formatter.getInternationalPrefixBeforeCountryCallingCode(this.state, {\r\n\t\t\t\tspacing: text ? true : false\r\n\t\t\t}) + text\r\n\t\t\tconst { callingCode } = this.state\r\n\t\t\tif (!callingCode) {\r\n\t\t\t\treturn prefix(`${this.state.getDigitsWithoutInternationalPrefix()}`)\r\n\t\t\t}\r\n\t\t\tif (!formattedNationalNumber) {\r\n\t\t\t\treturn prefix(callingCode)\r\n\t\t\t}\r\n\t\t\treturn prefix(`${callingCode} ${formattedNationalNumber}`)\r\n\t\t}\r\n\t\treturn formattedNationalNumber\r\n\t}\r\n\r\n\tgetNonFormattedNationalNumberWithPrefix() {\r\n\t\tconst {\r\n\t\t\tnationalSignificantNumber,\r\n\t\t\tcomplexPrefixBeforeNationalSignificantNumber,\r\n\t\t\tnationalPrefix\r\n\t\t} = this.state\r\n\t\tlet number = nationalSignificantNumber\r\n\t\tconst prefix = complexPrefixBeforeNationalSignificantNumber || nationalPrefix\r\n\t\tif (prefix) {\r\n\t\t\tnumber = prefix + number\r\n\t\t}\r\n\t\treturn number\r\n\t}\r\n\r\n\tgetNonFormattedNumber() {\r\n\t\tconst { nationalSignificantNumberMatchesInput } = this.state\r\n\t\treturn this.getFullNumber(\r\n\t\t\tnationalSignificantNumberMatchesInput\r\n\t\t\t\t? this.getNonFormattedNationalNumberWithPrefix()\r\n\t\t\t\t: this.state.getNationalDigits()\r\n\t\t)\r\n\t}\r\n\r\n\tgetNonFormattedTemplate() {\r\n\t\tconst number = this.getNonFormattedNumber()\r\n\t\tif (number) {\r\n\t\t\treturn number.replace(/[\\+\\d]/g, DIGIT_PLACEHOLDER)\r\n\t\t}\r\n\t}\r\n\r\n\tisCountryCallingCodeAmbiguous() {\r\n\t\tconst { callingCode } = this.state\r\n\t\tconst countryCodes = this.metadata.getCountryCodesForCallingCode(callingCode)\r\n\t\treturn countryCodes && countryCodes.length > 1\r\n\t}\r\n\r\n\t// Determines the country of the phone number\r\n\t// entered so far based on the country phone code\r\n\t// and the national phone number.\r\n\tdetermineTheCountry() {\r\n\t\tthis.state.setCountry(getCountryByCallingCode(\r\n\t\t\tthis.isInternational() ? this.state.callingCode : this.defaultCallingCode,\r\n\t\t\t{\r\n\t\t\t\tnationalNumber: this.state.nationalSignificantNumber,\r\n\t\t\t\tdefaultCountry: this.defaultCountry,\r\n\t\t\t\tmetadata: this.metadata\r\n\t\t\t}\r\n\t\t))\r\n\t}\r\n\r\n\t/**\r\n\t * Returns a E.164 phone number value for the user's input.\r\n\t *\r\n\t * For example, for country `\"US\"` and input `\"(222) 333-4444\"`\r\n\t * it will return `\"+12223334444\"`.\r\n\t *\r\n\t * For international phone number input, it will also auto-correct\r\n\t * some minor errors such as using a national prefix when writing\r\n\t * an international phone number. For example, if the user inputs\r\n\t * `\"+44 0 7400 000000\"` then it will return an auto-corrected\r\n\t * `\"+447400000000\"` phone number value.\r\n\t *\r\n\t * Will return `undefined` if no digits have been input,\r\n\t * or when inputting a phone number in national format and no\r\n\t * default country or default \"country calling code\" have been set.\r\n\t *\r\n\t * @return {string} [value]\r\n\t */\r\n\tgetNumberValue() {\r\n\t\tconst {\r\n\t\t\tdigits,\r\n\t\t\tcallingCode,\r\n\t\t\tcountry,\r\n\t\t\tnationalSignificantNumber\r\n\t\t} = this.state\r\n\r\n\t \t// Will return `undefined` if no digits have been input.\r\n\t\tif (!digits) {\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\tif (this.isInternational()) {\r\n\t\t\tif (callingCode) {\r\n\t\t\t\treturn '+' + callingCode + nationalSignificantNumber\r\n\t\t\t} else {\r\n\t\t\t\treturn '+' + digits\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tif (country || callingCode) {\r\n\t\t\t\tconst callingCode_ = country ? this.metadata.countryCallingCode() : callingCode\r\n\t\t\t\treturn '+' + callingCode_ + nationalSignificantNumber\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Returns an instance of `PhoneNumber` class.\r\n\t * Will return `undefined` if no national (significant) number\r\n\t * digits have been entered so far, or if no `defaultCountry` has been\r\n\t * set and the user enters a phone number not in international format.\r\n\t */\r\n\tgetNumber() {\r\n\t\tconst {\r\n\t\t\tnationalSignificantNumber,\r\n\t\t\tcarrierCode,\r\n\t\t\tcallingCode\r\n\t\t} = this.state\r\n\r\n\t\t// `this._getCountry()` is basically same as `this.state.country`\r\n\t\t// with the only change that it return `undefined` in case of a\r\n\t\t// \"non-geographic\" numbering plan instead of `\"001\"` \"internal use\" value.\r\n\t\tlet country = this._getCountry()\r\n\r\n\t\tif (!nationalSignificantNumber) {\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\t// `state.country` and `state.callingCode` aren't required to be in sync.\r\n\t\t// For example, `country` could be `\"AR\"` and `callingCode` could be `undefined`.\r\n\t\t// So `country` and `callingCode` are totally independent.\r\n\r\n\t\tif (!country && !callingCode) {\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\t// By default, if `defaultCountry` parameter was passed when\r\n\t\t// creating `AsYouType` instance, `state.country` is gonna be\r\n\t\t// that `defaultCountry`, which doesn't entirely conform with\r\n\t\t// `parsePhoneNumber()`'s behavior where it attempts to determine\r\n\t\t// the country more precisely in cases when multiple countries\r\n\t\t// could correspond to the same `countryCallingCode`.\r\n\t\t// https://gitlab.com/catamphetamine/libphonenumber-js/-/issues/103#note_1417192969\r\n\t\t//\r\n\t\t// Because `AsYouType.getNumber()` method is supposed to be a 1:1\r\n\t\t// equivalent for `parsePhoneNumber(AsYouType.getNumberValue())`,\r\n\t\t// then it should also behave accordingly in cases of `country` ambiguity.\r\n\t\t// That's how users of this library would expect it to behave anyway.\r\n\t\t//\r\n\t\tif (country) {\r\n\t\t\tif (country === this.defaultCountry) {\r\n\t\t\t\t// `state.country` and `state.callingCode` aren't required to be in sync.\r\n\t\t\t\t// For example, `state.country` could be `\"AR\"` and `state.callingCode` could be `undefined`.\r\n\t\t\t\t// So `state.country` and `state.callingCode` are totally independent.\r\n\t\t\t\tconst metadata = new Metadata(this.metadata.metadata)\r\n\t\t\t\tmetadata.selectNumberingPlan(country)\r\n\t\t\t\tconst callingCode = metadata.numberingPlan.callingCode()\r\n\t\t\t\tconst ambiguousCountries = this.metadata.getCountryCodesForCallingCode(callingCode)\r\n\t\t\t\tif (ambiguousCountries.length > 1) {\r\n\t\t\t\t\tconst exactCountry = getCountryByNationalNumber(nationalSignificantNumber, {\r\n\t\t\t\t\t\tcountries: ambiguousCountries,\r\n\t\t\t\t\t\tdefaultCountry: this.defaultCountry,\r\n\t\t\t\t\t\tmetadata: this.metadata.metadata\r\n\t\t\t\t\t})\r\n\t\t\t\t\tif (exactCountry) {\r\n\t\t\t\t\t\tcountry = exactCountry\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tconst phoneNumber = new PhoneNumber(\r\n\t\t\tcountry || callingCode,\r\n\t\t\tnationalSignificantNumber,\r\n\t\t\tthis.metadata.metadata\r\n\t\t)\r\n\t\tif (carrierCode) {\r\n\t\t\tphoneNumber.carrierCode = carrierCode\r\n\t\t}\r\n\t\t// Phone number extensions are not supported by \"As You Type\" formatter.\r\n\t\treturn phoneNumber\r\n\t}\r\n\r\n\t/**\r\n\t * Returns `true` if the phone number is \"possible\".\r\n\t * Is just a shortcut for `PhoneNumber.isPossible()`.\r\n\t * @return {boolean}\r\n\t */\r\n\tisPossible() {\r\n\t\tconst phoneNumber = this.getNumber()\r\n\t\tif (!phoneNumber) {\r\n\t\t\treturn false\r\n\t\t}\r\n\t\treturn phoneNumber.isPossible()\r\n\t}\r\n\r\n\t/**\r\n\t * Returns `true` if the phone number is \"valid\".\r\n\t * Is just a shortcut for `PhoneNumber.isValid()`.\r\n\t * @return {boolean}\r\n\t */\r\n\tisValid() {\r\n\t\tconst phoneNumber = this.getNumber()\r\n\t\tif (!phoneNumber) {\r\n\t\t\treturn false\r\n\t\t}\r\n\t\treturn phoneNumber.isValid()\r\n\t}\r\n\r\n\t/**\r\n\t * @deprecated\r\n\t * This method is used in `react-phone-number-input/source/input-control.js`\r\n\t * in versions before `3.0.16`.\r\n\t */\r\n\tgetNationalNumber() {\r\n\t\treturn this.state.nationalSignificantNumber\r\n\t}\r\n\r\n\t/**\r\n\t * Returns the phone number characters entered by the user.\r\n\t * @return {string}\r\n\t */\r\n\tgetChars() {\r\n\t\treturn (this.state.international ? '+' : '') + this.state.digits\r\n\t}\r\n\r\n\t/**\r\n\t * Returns the template for the formatted phone number.\r\n\t * @return {string}\r\n\t */\r\n\tgetTemplate() {\r\n\t\treturn this.formatter.getTemplate(this.state) || this.getNonFormattedTemplate() || ''\r\n\t}\r\n}","// Importing from a \".js\" file is a workaround for Node.js \"ES Modules\"\r\n// importing system which is even uncapable of importing \"*.json\" files.\r\nimport metadata from '../../metadata.min.json.js'\r\n\r\nimport { AsYouType as _AsYouType } from '../../core/index.js'\r\n\r\nexport function AsYouType(country) {\r\n\treturn _AsYouType.call(this, country, metadata)\r\n}\r\n\r\nAsYouType.prototype = Object.create(_AsYouType.prototype, {})\r\nAsYouType.prototype.constructor = AsYouType","import normalizeArguments from './normalizeArguments.js'\r\nimport parsePhoneNumberWithError from './parsePhoneNumberWithError_.js'\r\nimport ParseError from './ParseError.js'\r\nimport Metadata from './metadata.js'\r\nimport checkNumberLength from './helpers/checkNumberLength.js'\r\n\r\nexport default function validatePhoneNumberLength() {\r\n\tlet { text, options, metadata } = normalizeArguments(arguments)\r\n\toptions = {\r\n\t\t...options,\r\n\t\textract: false\r\n\t}\r\n\r\n\t// Parse phone number.\r\n\ttry {\r\n\t\tconst phoneNumber = parsePhoneNumberWithError(text, options, metadata)\r\n\t\tmetadata = new Metadata(metadata)\r\n\t\tmetadata.selectNumberingPlan(phoneNumber.countryCallingCode)\r\n\t\tconst result = checkNumberLength(phoneNumber.nationalNumber, metadata)\r\n\t\tif (result !== 'IS_POSSIBLE') {\r\n\t\t\treturn result\r\n\t\t}\r\n\t} catch (error) {\r\n\t\t/* istanbul ignore else */\r\n\t\tif (error instanceof ParseError) {\r\n\t\t\treturn error.message\r\n\t\t} else {\r\n\t\t\tthrow error\r\n\t\t}\r\n\t}\r\n}","import withMetadataArgument from './withMetadataArgument.js'\r\nimport { validatePhoneNumberLength as _validatePhoneNumberLength } from '../../core/index.js'\r\n\r\nexport function validatePhoneNumberLength() {\r\n\treturn withMetadataArgument(_validatePhoneNumberLength, arguments)\r\n}","import { styled } from '@volkswagen-onehub/components-core';\nimport React, { useEffect, useState } from 'react';\nimport { useFormContext } from 'react-hook-form';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { TextInputExtended, SelectExtended, PaddingWrapper, InputWidthWrapper } from 'src/components';\nimport { OneFormState } from 'src/types';\nimport { useOneFormContext } from 'src/feature-app/OneForm';\nimport { InputError } from './InputError';\nimport { callingCountriesOwn } from './';\nimport {\n isPossiblePhoneNumber,\n isValidPhoneNumber,\n validatePhoneNumberLength,\n Metadata,\n AsYouType,\n} from 'libphonenumber-js';\nimport parsePhoneNumber from 'libphonenumber-js';\n\ninterface TelefonoProps {\n paginaConfirmacion?: boolean;\n ignoreValidation?: boolean;\n required?: boolean;\n notALayer?: boolean;\n onFocusHandler?: () => void;\n onChangeHandler?: () => void;\n hidePrefijo?: boolean;\n name?: string;\n}\n\nconst DisplayWrapper = styled.div`\n display: flex;\n`;\n\nconst PrefWrapper = styled.div`\n label {\n width: 109px;\n @media screen and (min-width: 560px) {\n width: ${(props) => (props.notALayer ? 'var(--size-grid005)' : '116px')};\n }\n @media screen and (min-width: 960px) {\n width: ${(props) => (props.notALayer ? 'var(--size-grid003)' : '120px')};\n }\n @media all and (min-width: 1280px) {\n width: ${(props) => (props.notALayer ? 'var(--size-grid002)' : '120px')};\n }\n @media screen and (min-width: 1600px) {\n /* padding-top: 0px; */\n }\n @media all and (min-width: 1920px) {\n width: ${(props) => (props.notALayer ? 'var(--size-grid002)' : '120px')};\n }\n @media all and (min-width: 2560px) {\n width: ${(props) => (props.notALayer ? 'var(--size-grid001)' : '120px')};\n }\n }\n`;\nconst TelfWrapper = styled.div`\n width: 100%;\n padding-left: ${(props) => (props.notALayer ? '20px' : '24px')};\n @media screen and (min-width: 560px) {\n width: ${(props) => (props.notALayer ? 'var(--size-grid008)' : '192px')};\n padding-left: ${(props) => (props.hidePrefijo ? '0px' : props.notALayer ? '24px' : '20px')};\n }\n @media screen and (min-width: 960px) {\n width: ${(props) => (props.notALayer ? 'var(--size-grid005)' : '212px')};\n }\n @media all and (min-width: 1280px) {\n width: ${(props) => (props.notALayer ? 'var(--size-grid004)' : '212px')};\n }\n @media all and (min-width: 1600px) {\n padding-left: ${(props) => (props.hidePrefijo ? '0px' : props.notALayer ? '28px' : '20px')};\n }\n @media all and (min-width: 1920px) {\n width: ${(props) => (props.notALayer ? 'var(--size-grid003)' : '212px')};\n }\n @media all and (min-width: 2560px) {\n width: ${(props) => (props.notALayer ? 'var(--size-grid003)' : '212px')};\n }\n`;\n\nconst TelefonoFlex = styled.div`\n display: flex;\n flex-wrap: wrap;\n flex-direction: column;\n`;\n\nconst regExpNonDigit = /\\D/;\nexport const cellphoneIsInvalid = (value: string) =>\n regExpNonDigit.test(value) || !/[6|7|8|9][0-9]{8}/gi.test(value) || (value.length > 1 && value.length < 8);\n// Uso la regexp porque por alguna razón si la saco del componente y la exporto para otros componentes da error y no lo reconoce correctamente.\nexport const TelefonoInput = ({ ignoreValidation, required, onFocusHandler, onChangeHandler, name }: TelefonoProps) => {\n const { cellphone, prefix, raceCellphone, formName } = useSelector((state: OneFormState) => state.formData.fields);\n const [telefonoError, setTelefonoError] = useState(false);\n const [pristine, setPristine] = useState(true);\n const [telephone, setTelephone] = useState(null);\n const { error, setError } = useOneFormContext();\n const [minLength, setMinLength] = useState(9);\n const [maxLength, setMaxLength] = useState(9);\n const { register, errors, setError: setErrorForm, clearError } = useFormContext();\n const regExp = /[6|7|8|9][0-9]{8}/gi;\n const dispatch = useDispatch();\n\n const [inputName, setInputName ] = useState('cellphone');\n\n useEffect(()=> {\n if(name) {\n setInputName(name);\n }\n }, [name]);\n\n const handleChange = (e: any) => {\n setTelephone(e.target.value);\n dispatch({ type: 'UPDATE_FIELDS', payload: { [inputName]: e.target.value } });\n\n if (isValidPhoneNumber(`${prefix}${e.target.value}`)) {\n setTelefonoError(false);\n } else {\n setTelefonoError(true);\n }\n setPristine(false);\n };\n\n useEffect(() => {\n if ((error && !pristine) || (error && !telephone)) {\n setTelefonoError(true);\n } else {\n setTelefonoError(false);\n }\n }, [error]);\n\n useEffect(() => {\n const metadata = new Metadata();\n const asYouType = new AsYouType();\n asYouType.reset();\n asYouType.input(prefix ? prefix : '+34');\n const possibleLengths = metadata.selectNumberingPlan(asYouType.country).possibleLengths();\n const maxLength = Math.max(...possibleLengths);\n const minLength = Math.min(...possibleLengths);\n setMaxLength(maxLength);\n setMinLength(minLength);\n handleChange({ target: { value: telephone } });\n }, [prefix]);\n\n useEffect(() => {\n if(formName === 'race' && raceCellphone) {\n setTelephone(raceCellphone);\n } else {\n if (cellphone) {\n setTelephone(cellphone);\n }\n }\n \n if (!prefix) {\n // En comerciales da error si no hay prefijo, por lo que lo seteamos directamente como +34 para que se pueda validar correctamente.\n dispatch({ type: 'UPDATE_FIELDS', payload: { prefix: '+34' } });\n }\n }, []);\n\n return (\n \n isValidPhoneNumber(`${prefix}${value}`),\n // pattern: {\n // value: regExp,\n // message: 'Solo se aceptan números',\n // },\n })}\n onChange={(e) => {\n handleChange(e);\n if (onChangeHandler) {\n onChangeHandler();\n }\n }}\n onFocus={() => {\n if (onFocusHandler) {\n onFocusHandler();\n }\n }}\n required={required}\n />\n\n {telephone && telephone.length > 1 && telefonoError && !isValidPhoneNumber(`${prefix}${telephone}`) ? (\n \n {validatePhoneNumberLength(`${prefix}${telephone}`) === 'TOO_LONG'\n ? `Máximo ${maxLength} dígitos`\n : validatePhoneNumberLength(`${prefix}${telephone}`) === 'TOO_SHORT'\n ? 'Faltan números'\n : validatePhoneNumberLength(`${prefix}${telephone}`) === 'NOT_A_NUMBER'\n ? 'Solo se aceptan números'\n : isValidPhoneNumber(`${prefix}${telephone}`)\n ? null\n : 'Número no válido'}\n \n ) : null}\n \n );\n};\n\nexport const PrefijoInput = ({ required, name }: TelefonoProps) => {\n const { prefix : prefixFromData, racePrefix: racePrefixFromData, formName} = useSelector((state: OneFormState) => state.formData.fields);\n const [prefix, setPrefix] = useState(null);\n const [prefixData, setPrefixData] = useState([]);\n const dispatch = useDispatch();\n\n const [inputName, setInputName ] = useState('prefix');\n\n useEffect(()=> {\n if(name) {\n setInputName(name);\n }\n }, [name]);\n\n useEffect(() => {\n if (prefix) {\n dispatch({ type: 'UPDATE_FIELDS', payload: { prefix } });\n }\n }, [prefix]);\n\n useEffect(() => {\n if(formName === 'race' && racePrefixFromData) {\n setPrefix(racePrefixFromData);\n } else if (prefixFromData) {\n setPrefix(prefixFromData);\n } else {\n setPrefix('+34');\n dispatch({ type: 'UPDATE_FIELDS', payload: { [inputName]: '+34' } });\n }\n\n const merged = [].concat(...callingCountriesOwn);\n const prefixData = merged\n .map((code) => code.replace(/ |\\+/g, ''))\n .filter((elem, index, self) => index === self.indexOf(elem))\n .sort((a: any, b: any) => a - b)\n .map((code) => `+${code}`);\n\n setPrefixData(prefixData);\n }, []);\n\n function handleChangePrefix(event: any) {\n const newPrefix = event.currentTarget.value;\n setPrefix(newPrefix);\n }\n\n return (\n null}\n updateFields\n setOption={setPrefix}\n isRequired={required}\n />\n );\n};\n\nexport function TelefonoPrefijo(props: TelefonoProps) {\n return (\n <>\n {props.hidePrefijo ? null : (\n \n \n \n )}\n \n \n \n \n );\n}\n\nexport function Telefono(props: TelefonoProps) {\n return (\n \n \n \n \n \n \n \n );\n}\n","import React, { Ref, useEffect, useState } from 'react';\nimport { TextArea, TextAreaProps } from '@volkswagen-onehub/components-core';\nimport { useFormContext } from 'react-hook-form';\nimport { useFeatureServices } from 'src/feature-app';\nimport { FieldType } from 'src/feature-service/es-oneform-core-feature-service/types';\nimport { useSelector } from 'react-redux';\nimport { OneFormState } from 'src/types';\nimport { useTrackingManager } from 'src/feature-app/hooks';\nimport { useOneFormContext } from 'src/feature-app';\n\nexport interface TextAreaExtendedProps extends TextAreaProps {\n name: FieldType;\n innerRef?: Ref;\n /**\n * En caso de que el input esté junto con un CTA, se debe de pasar el label del CTA para en caso de que se seleccione el CTA no se refleje en el input.\n */\n alternateCTAText?: string;\n rows?: number;\n required?: boolean;\n maxLength?: number;\n}\n\nexport function TextAreaExtended(props: TextAreaExtendedProps) {\n const { innerRef, name, onBlur, alternateCTAText, onChange, label, rows, required, maxLength } = props;\n const { setValue } = useFormContext();\n const { error, setError } = useOneFormContext();\n const trackingManager = useTrackingManager();\n const oneFormFeatureService = useFeatureServices()['es:oneform-core'];\n const { formData } = useSelector((state: OneFormState) => state);\n const [currentValue, setCurrentValue] = useState('');\n\n const addMaxLength = () => {\n const aux = document.getElementsByTagName('textarea');\n aux[0].setAttribute('maxlength', maxLength.toString());\n };\n\n useEffect(() => {\n if (maxLength) addMaxLength();\n const value = formData.fields[name];\n\n if (value && value !== alternateCTAText) {\n setCurrentValue(value);\n }\n\n }, []);\n\n return (\n <>\n {\n setCurrentValue(e.currentTarget.value);\n if(e.currentTarget.value.length > 3){\n setError(false);\n }\n if (onChange) {\n onChange(e);\n }\n }}\n onBlur={(e: any) => {\n if (onBlur) onBlur(e);\n setValue(name, e.currentTarget.value);\n oneFormFeatureService.setField(name, e.currentTarget.value);\n }}\n onFocus={() => {\n trackingManager.trackFormFieldClick(\n {\n contentId: label,\n },\n {\n FormFieldName: name,\n }\n );\n }}\n value={currentValue}\n rows={rows ? rows : 3}\n required={required ? required : false}\n maxLength={maxLength}\n />\n \n \n );\n}\n","export const callingCountriesOwn = [\n ['+247'],\n ['+376'],\n ['+971'],\n ['+93'],\n ['+1 268'],\n ['+1 264'],\n ['+355'],\n ['+374'],\n ['+244'],\n ['+672'],\n ['+54'],\n ['+1 684'],\n ['+43'],\n ['+61'],\n ['+297'],\n ['+358'],\n ['+994'],\n ['+387'],\n ['+1 246'],\n ['+880'],\n ['+32'],\n ['+226'],\n ['+359'],\n ['+973'],\n ['+257'],\n ['+229'],\n ['+590'],\n ['+1 441'],\n ['+673'],\n ['+591'],\n ['+599'],\n ['+55'],\n ['+1 242'],\n ['+975'],\n ['+267'],\n ['+375'],\n ['+501'],\n ['+1'],\n ['+61'],\n ['+243'],\n ['+236'],\n ['+242'],\n ['+41'],\n ['+225'],\n ['+682'],\n ['+56'],\n ['+237'],\n ['+86'],\n ['+57'],\n ['+506'],\n ['+53'],\n ['+238'],\n ['+599'],\n ['+61'],\n ['+357'],\n ['+420'],\n ['+49'],\n ['+253'],\n ['+45'],\n ['+1 767'],\n ['+1 809', '+1 829', '+1 849'],\n ['+213'],\n ['+593'],\n ['+372'],\n ['+20'],\n ['+212'],\n ['+291'],\n ['+34'],\n ['+251'],\n ['+388'],\n ['+358'],\n ['+679'],\n ['+500'],\n ['+691'],\n ['+298'],\n ['+33'],\n ['+241'],\n ['+241'],\n ['+44'],\n ['+473'],\n ['+995'],\n ['+594'],\n ['+44'],\n ['+233'],\n ['+350'],\n ['+299'],\n ['+220'],\n ['+224'],\n ['+590'],\n ['+240'],\n ['+30'],\n ['+502'],\n ['+1 671'],\n ['+245'],\n ['+592'],\n ['+852'],\n ['+504'],\n ['+385'],\n ['+509'],\n ['+36'],\n ['+62'],\n ['+353'],\n ['+972'],\n ['+44'],\n ['+91'],\n ['+246'],\n ['+964'],\n ['+98'],\n ['+354'],\n ['+39'],\n ['+44'],\n ['+1 876'],\n ['+962'],\n ['+81'],\n ['+254'],\n ['+996'],\n ['+855'],\n ['+686'],\n ['+269'],\n ['+1 869'],\n ['+850'],\n ['+82'],\n ['+965'],\n ['+1 345'],\n ['+7', '+7 6', '+7 7'],\n ['+856'],\n ['+961'],\n ['+1 758'],\n ['+423'],\n ['+94'],\n ['+231'],\n ['+266'],\n ['+370'],\n ['+352'],\n ['+371'],\n ['+218'],\n ['+212'],\n ['+377'],\n ['+373'],\n ['+382'],\n ['+590'],\n ['+261'],\n ['+692'],\n ['+389'],\n ['+223'],\n ['+95'],\n ['+976'],\n ['+853'],\n ['+1 670'],\n ['+596'],\n ['+222'],\n ['+1 664'],\n ['+356'],\n ['+230'],\n ['+960'],\n ['+265'],\n ['+52'],\n ['+60'],\n ['+258'],\n ['+264'],\n ['+687'],\n ['+227'],\n ['+672'],\n ['+234'],\n ['+505'],\n ['+31'],\n ['+47'],\n ['+977'],\n ['+674'],\n ['+683'],\n ['+64'],\n ['+968'],\n ['+507'],\n ['+51'],\n ['+689'],\n ['+675'],\n ['+63'],\n ['+92'],\n ['+48'],\n ['+508'],\n ['+872'],\n ['+1 787', '+1 939'],\n ['+970'],\n ['+351'],\n ['+680'],\n ['+595'],\n ['+974'],\n ['+262'],\n ['+40'],\n ['+381'],\n ['+7', '+7 3', '+7 4', '+7 8'],\n ['+250'],\n ['+966'],\n ['+677'],\n ['+248'],\n ['+249'],\n ['+46'],\n ['+65'],\n ['+290'],\n ['+386'],\n ['+47'],\n ['+421'],\n ['+232'],\n ['+378'],\n ['+221'],\n ['+252'],\n ['+597'],\n ['+211'],\n ['+239'],\n ['+503'],\n ['+1 721'],\n ['+963'],\n ['+268'],\n ['+290'],\n ['+1 649'],\n ['+235'],\n ['+228'],\n ['+66'],\n ['+992'],\n ['+690'],\n ['+670'],\n ['+993'],\n ['+216'],\n ['+676'],\n ['+90'],\n ['+1 868'],\n ['+688'],\n ['+886'],\n ['+255'],\n ['+380'],\n ['+256'],\n ['+1'],\n ['+1'],\n ['+598'],\n ['+998'],\n ['+379', '+39'],\n ['+1 784'],\n ['+58'],\n ['+1 284'],\n ['+1 340'],\n ['+84'],\n ['+678'],\n ['+681'],\n ['+685'],\n ['+383'],\n ['+967'],\n ['+262'],\n ['+27'],\n ['+260'],\n ['+263'],\n];\n","import React from 'react';\nimport { Text, styled, TextAlignment, TokenTextAppearance, TokenTextColor } from '@volkswagen-onehub/components-core';\n\nconst Mark = styled.span`\n display: inline-block;\n position: relative;\n border: 1px solid #001e50;\n width: 24px;\n height: 24px;\n left: 0;\n border-radius: 50%;\n margin-right: 12px;\n vertical-align: middle;\n &::after {\n content: '';\n display: block;\n width: 0;\n height: 0;\n border-radius: 50%;\n background-color: #001e50;\n opacity: 0;\n left: 50%;\n top: 50%;\n position: absolute;\n transition: all 110ms;\n }\n`;\n\nconst RadioButtonWrapper = styled.label`\n display: flex;\n justify-content: center;\n cursor: pointer;\n position: relative;\n color: #001e50;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n\n input {\n position: absolute;\n visibility: hidden;\n display: none;\n &:checked + ${Mark} {\n &::after {\n width: 12px;\n height: 12px;\n opacity: 1;\n left: 50%;\n top: 50%;\n transform: translate(-50%, -50%);\n }\n }\n }\n`;\n\ninterface radioButtonProps {\n onClick?: any;\n inputName?: string;\n inputValue?: string;\n checked?: boolean;\n}\n\nexport const CustomRadioButton = (props: radioButtonProps) => {\n return (\n \n \n \n \n {props.inputValue}\n \n \n );\n};\n","import React, { useState, useEffect, useRef } from 'react';\nimport { styled, Text, TokenTextAppearance } from '@volkswagen-onehub/components-core';\nimport { ChevronDown, ChevronUp, Checkmark } from 'src/icons-core-imports';\n\nimport { useDispatch } from 'react-redux';\n\ntype WrapperProps = {\n disabled?: boolean;\n};\ntype DropwDownProps = {\n showOptions: boolean;\n itemWidth: number;\n disabled?: boolean;\n error?: boolean;\n selectY?: number;\n atTheBottom?: boolean;\n};\ntype LabelProps = {\n disabled: boolean;\n isActive: boolean;\n};\n\nconst SelectWrapper = styled.div`\n position: relative;\n margin: 0;\n padding: 0;\n box-sizing: border-box;\n width: 100%;\n cursor: ${(props) => (props.disabled ? 'not-allowed' : 'pointer')};\n text-align: left;\n`;\nconst DropDown = styled.div`\n width: ${(props) => (props.itemWidth ? `${props.itemWidth}px` : '100%')};\n display: flex;\n justify-content: space-between;\n align-items: flex-end;\n border-bottom: 1px solid ${(props) => (props.error ? '#E4002C' : '#DFE4E8')};\n padding: 8px 0 5px;\n color: ${(props) => (props.disabled ? '#DFE4E8' : '#FFFFFF')};\n .sel-item {\n margin: 0;\n div {\n margin: 0;\n }\n @media screen and (min-width: 560px) {\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n width: 85%;\n * {\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n width: 85%;\n }\n }\n }\n`;\nconst OptionsList = styled.ul`\n display: ${(props) => (props.showOptions ? 'block' : 'none')};\n width: ${(props) => (props.itemWidth ? `${props.itemWidth}px` : 'auto')};\n background-color: white;\n z-index: 100;\n height: auto;\n /* max-height: ${(props) => (props.selectY ? `calc(100vh - ${props.selectY}px)` : '256px')}; */\n max-height: 256px;\n overflow-y: auto;\n position: ${(props) => (props.atTheBottom ? null : 'absolute')};\n padding-left: 0;\n margin-top: 0;\n li:last-child {\n padding-bottom: ${(props) => (props.atTheBottom ? '0' : '31px')};\n }\n`;\nconst Option = styled.li`\n position: relative;\n display: flex;\n box-sizing: border-box;\n border-bottom: 1px solid #dfe4e8;\n padding-left: 40px;\n color: #001e50;\n svg {\n position: absolute;\n left: 6px;\n top: 10px;\n }\n &:hover {\n transition: 0.3s;\n background-color: #f6f6f6;\n }\n &.selected {\n border-bottom: 1px solid #001e50 !important;\n }\n`;\nconst Label = styled.label`\n position: absolute;\n width: 100%;\n transform: ${(props) => (props.isActive ? 'translate(0, -20px)' : 'translate(0, 4px)')};\n @media all and (min-width: 1600px) {\n transform: ${(props) => (props.isActive ? 'translate(0, -20px)' : 'translate(0, -1px)')};\n }\n letter-spacing: ${(props) => (props.isActive ? '0.00938em' : 'inherit')};\n transform-origin: top left;\n transition: all 150ms ease-in;\n color: ${(props) => (props.disabled ? '#DFE4E8' : '#001E50')};\n cursor: ${(props) => (props.disabled ? 'not-allowed' : 'pointer')};\n > div {\n margin: 0;\n }\n`;\n\ninterface SelectProps {\n options: Array | Array;\n name: string;\n label: string;\n value?: any;\n required?: boolean;\n disabled?: boolean;\n error?: boolean;\n getDealers?: (provincia: string) => void;\n setFormValue?: (selValueIndex: number) => void;\n onClick?: (e?: any) => void;\n setOption?: React.Dispatch>;\n updateFields?: boolean;\n atTheBottom: boolean;\n}\n\nexport const CustomSelect = React.forwardRef((props: SelectProps, ref: React.Ref) => {\n const [selItem, setSelItem] = useState(null);\n const [showOptions, setShowOptions] = useState(false);\n const [selectWidth, setSelectWitdh] = useState(null);\n const [selectY, setSelectY] = useState(null);\n const [keyValuePair, setKeyValuePair] = useState();\n const { name, options, setOption, updateFields, value, atTheBottom } = props;\n const wrapperRef = useRef(null);\n const dispatch = useDispatch();\n\n const optionsToggle = () => {\n if (!props.disabled) {\n setShowOptions(!showOptions);\n }\n };\n\n const handleClickOutside = (e: any) => {\n if (!wrapperRef.current.contains(e.target)) {\n setShowOptions(false);\n }\n };\n\n const setItem = (option: any, index: number) => {\n if (!props.disabled) {\n if (typeof option !== 'object') {\n setSelItem(option);\n if (setOption) setOption(option);\n // if (props.name === 'provincia') props.getDealers(option);\n } else {\n const dealerName = option.props.children[0].props.children;\n setSelItem(dealerName);\n }\n if (props.setFormValue) props.setFormValue(index);\n setShowOptions(false);\n }\n };\n\n useEffect(() => {\n setSelItem(null);\n }, [props.options]);\n\n useEffect(() => {\n const width = wrapperRef.current ? wrapperRef.current.offsetWidth : 0;\n const height = wrapperRef.current ? wrapperRef.current.offsetTop : 0;\n setSelectWitdh(width);\n setSelectY(height);\n document.addEventListener('mousedown', handleClickOutside);\n // función que se llama cuando la componente se desmonta\n return () => {\n document.removeEventListener('mousedown', handleClickOutside);\n };\n }, [wrapperRef.current]);\n\n useEffect(() => {\n updateFields\n ? dispatch({ type: 'UPDATE_FIELDS', payload: { [name]: keyValuePair ? keyValuePair : value } })\n : undefined;\n }, [keyValuePair, value]);\n\n useEffect(() => {\n if (value) {\n setTimeout(() => {\n setSelItem(value);\n }, 0);\n }\n }, [value]);\n\n //Adaptación max-height ul según viewrport\n\n return (\n \n optionsToggle()}\n isActive={selItem !== null ? true : false}\n disabled={props.disabled}\n className=\"select-label\"\n >\n \n {props.label}\n {/* {props.required ? * : null} */}\n \n \n {\n optionsToggle();\n props.onClick();\n }}\n defaultValue={value}\n showOptions={showOptions}\n itemWidth={selectWidth}\n disabled={props.disabled}\n error={props.error}\n className=\"drop-down\"\n >\n

\n {selItem}\n

\n {showOptions ? : }\n \n \n {options.map((option: any, index: number) => {\n if (typeof option === 'string') {\n return (\n {\n setItem(option, index);\n }}\n key={index}\n className={selItem == option ? 'selected' : 'option'}\n >\n {selItem == option ? : null}\n

{option}

\n \n );\n } else {\n return (\n {\n setItem(option.name, index);\n setKeyValuePair(option.code);\n }}\n key={index}\n className={selItem == option.name ? 'selected' : 'option'}\n >\n {selItem == option.name ? : null}\n

{option.name}

\n \n );\n }\n })}\n \n \n
\n );\n});\n","import { styled } from '@volkswagen-onehub/components-core';\nimport React, { useEffect, useRef, useState } from 'react';\nimport { useFormContext } from 'react-hook-form';\nimport { useStore, useSelector, useDispatch } from 'react-redux';\nimport { InputButton } from '.';\nimport { OneFormState } from 'src/types';\nimport { useOneFormContext } from 'src/feature-app/OneForm';\n\ntype CTAWrapperProps = {\n ctaWidth?: string;\n wrapperWidth?: string;\n};\n\nconst CTAWrapper = styled.div`\n text-align: left;\n margin: -10px;\n margin-top: 32px;\n max-width: ${(props) => (props.wrapperWidth ? props.wrapperWidth : null)};\n\n @media all and (max-height: 624px) {\n margin-top: 24px;\n }\n & > button {\n margin: 12px;\n width: ${(props) => (props.ctaWidth ? `${props.ctaWidth}px` : 'auto')};\n }\n`;\n\ninterface CTAValues {\n value?: string;\n label: string;\n}\n\ninterface MultipleOptionCTAsProps {\n ctaValues: CTAValues[];\n name: string;\n minSelected?: number;\n maxSelected?: number;\n ignoreHandleClick?: boolean;\n wrapperWidth?: string;\n exclusiveCTA?: boolean;\n exclusiveCTAValues?: CTAValues[];\n}\n\ninterface CTAsRef {\n [ctaName: string]: HTMLButtonElement;\n}\n\nexport function MultipleOptionCTAs(props: MultipleOptionCTAsProps) {\n const dispatch = useDispatch();\n const { \n ctaValues, \n ignoreHandleClick, \n name, \n maxSelected = ctaValues.length, \n minSelected = 1, \n wrapperWidth,\n exclusiveCTA,\n exclusiveCTAValues\n } = props;\n const { formData } = useSelector((state: OneFormState) => state);\n\n const { register, setValue } = useFormContext();\n const [selectedValue, setSelectedValue] = useState(null);\n const [selectedLabel, setSelectedLabel] = useState(null);\n const [ disabledAll, setDisabledAll ] = useState(false);\n const [ disabledExclusiveCTA, setDisabledExclusiveCTA ] = useState(false);\n const [aux, setAux] = useState(null);\n const ctaRefs = useRef({});\n\n useEffect(() => {\n if (formData.fields[name]) {\n const aux = formData.fields[name].split(',');\n let selectedVal = [];\n let selectedLabel = [];\n for (let i = 0; i < aux.length; i++) {\n const auxDos = ctaValues.find((e) => aux[i] === e.value);\n if (auxDos) {\n selectedVal.push(auxDos.value);\n selectedLabel.push(auxDos.label);\n }\n }\n setSelectedLabel(selectedLabel);\n setSelectedValue(selectedVal);\n }\n }, []);\n\n const handleOnClick = (cta: CTAValues) => {\n if (ctaRefs.current) {\n const ref = ctaRefs.current[cta.label];\n if (ref) {\n ref.blur();\n }\n }\n dispatch({ type: 'UPDATE_LITERAL_FIELDS_STEPS', payload: { [name] : '' }});\n if (selectedValue === null) {\n setSelectedValue([cta.value]);\n setSelectedLabel([cta.label]);\n dispatch({ type: 'UPDATE_LITERAL_FIELDS_STEPS', payload: { [name] : [cta.label] }});\n } else if (!selectedLabel.includes(cta.label)) { \n if (selectedLabel.length < maxSelected) {\n const aux = selectedValue.concat([cta.value]);\n const auxTwo = selectedLabel.concat([cta.label]);\n setSelectedValue(aux);\n setSelectedLabel(auxTwo);\n dispatch({ type: 'UPDATE_LITERAL_FIELDS_STEPS', payload: { [name] : auxTwo.join(', ') }});\n }\n } else if (selectedLabel.includes(cta.label)) {\n const aux = selectedValue.filter((a) => a !== cta.value);\n const auxTwo = selectedLabel.filter((a) => a !== cta.label);\n if (aux === []) {\n setSelectedValue(null);\n setSelectedLabel(null);\n } else {\n setSelectedValue(aux);\n setSelectedLabel(auxTwo);\n dispatch({ type: 'UPDATE_LITERAL_FIELDS_STEPS', payload: { [name] : auxTwo.join(', ') }});\n }\n } else {\n setSelectedValue(null);\n setSelectedLabel(null);\n setValue(name, null);\n dispatch({ type: 'UPDATE_FIELDS', payload: { [name]: null } });\n }\n };\n\n useEffect(()=>{\n if(exclusiveCTA && selectedValue) {\n if(selectedValue.length === 0) {\n setDisabledAll(false);\n setDisabledExclusiveCTA(false);\n } else if(selectedValue.includes(exclusiveCTAValues[0].value)) {\n setDisabledAll(true);\n setDisabledExclusiveCTA(false);\n } else {\n setDisabledAll(false);\n setDisabledExclusiveCTA(true);\n }\n }\n }, [selectedValue]);\n\n useEffect(() => {\n if (selectedValue) {\n if (selectedLabel.length >= minSelected && selectedLabel.length <= maxSelected) {\n setValue(name, selectedValue);\n setAux(selectedValue);\n } else {\n setValue(name, null);\n }\n } else {\n setValue(name, null);\n }\n }),\n [selectedValue];\n\n return (\n \n {ctaValues.map((cta: CTAValues, index: number) => (\n {\n register(ref, {\n required: true,\n });\n if (!ctaRefs.current || !ctaRefs.current[cta.label]) {\n ctaRefs.current[cta.label] = ref;\n }\n }}\n ignoreHandleClick={ignoreHandleClick}\n selectedValue={\n selectedLabel === null\n ? ''\n : selectedLabel.find((e) => e === cta.label)\n ? selectedLabel.find((e) => e === cta.label)\n : ''\n }\n size={'small'}\n key={index}\n onClick={(e) => {\n e.preventDefault();\n handleOnClick(cta);\n }}\n disabled={disabledAll}\n />\n ))}\n {\n exclusiveCTA ? (\n <>\n {\n exclusiveCTAValues.map((cta: CTAValues, index: number) => (\n {\n register(ref, {\n required: true,\n });\n if (!ctaRefs.current || !ctaRefs.current[cta.label]) {\n ctaRefs.current[cta.label] = ref;\n }\n }}\n ignoreHandleClick={ignoreHandleClick}\n selectedValue={\n selectedLabel === null\n ? ''\n : selectedLabel.find((e) => e === cta.label)\n ? selectedLabel.find((e) => e === cta.label)\n : ''\n }\n size={'small'}\n key={index}\n onClick={(e) => {\n e.preventDefault();\n handleOnClick(cta);\n }}\n disabled={disabledExclusiveCTA}\n />\n ))\n }\n \n ) : null\n }\n \n \n );\n}\n","import { styled } from '@volkswagen-onehub/components-core';\nimport React, { useEffect, useState } from 'react';\nimport { useFormContext } from 'react-hook-form';\nimport { useStore, useSelector, useDispatch } from 'react-redux';\nimport { InputButton } from '.';\nimport { OneFormState } from 'src/types';\nimport { useOneFormContext } from 'src/feature-app/OneForm';\n\ntype CTAWrapperProps = {\n ctaWidth?: string;\n color?: string;\n marginTop?: string;\n wrapperWidth?: string;\n marginRight?: string;\n};\n\nconst CTAWrapper = styled.div`\n text-align: left;\n margin: -10px;\n margin-top: ${(props) => props.marginTop ? props.marginTop : '32px'};\n max-width: ${(props) => props.wrapperWidth ? props.wrapperWidth : null};\n\n @media all and (max-height: 624px) {\n margin-top: ${(props) => props.marginTop ? props.marginTop : '24px'};\n }\n \n & > button {\n margin: 12px;\n ${(props) => props.marginRight ?\n `&:first-of-type {margin-right: ${props.marginRight}px}` : null};\n width: ${(props) => props.ctaWidth ? `${props.ctaWidth}px` : 'auto'};\n color: ${(props) => props.color ? props.color : null};\n border-color: ${(props) => props.color ? props.color : null};\n }\n`;\n\nexport interface CTAValues {\n value?: string | boolean;\n label: string;\n}\n\ninterface MultipleCTASelectionProps {\n ctaValues: CTAValues[];\n name: string;\n nextOnClick?: boolean;\n ctaWidth?: string;\n preSelectedValue?: string;\n color?: string;\n marginTop?: string;\n wrapperWidth?: string;\n marginRight?: string;\n exclusiveCTA?: boolean;\n exclusiveCTAValues?: CTAValues[];\n}\n\nexport function MultipleCTASelection(props: MultipleCTASelectionProps) {\n const store = useStore();\n const dispatch = useDispatch();\n const {\n ctaValues,\n name,\n nextOnClick,\n ctaWidth,\n preSelectedValue,\n color,\n marginTop,\n wrapperWidth,\n marginRight,\n exclusiveCTA,\n exclusiveCTAValues\n } = props;\n const { formData } = useSelector((state: OneFormState) => state);\n\n const { register, errors, control, setValue } = useFormContext();\n const { handleNextStep } = useOneFormContext();\n const [selectedValue, setSelectedValue] = useState(null);\n\n useEffect(() => {\n const value = preSelectedValue || formData.fields[name];\n\n if (value) {\n const selectedCtaValue = ctaValues.find((cta) => cta.value === value);\n if (selectedCtaValue) {\n setSelectedValue(selectedCtaValue.label);\n setValue(name, selectedCtaValue.value);\n } else {\n setSelectedValue(value);\n setValue(name, value);\n }\n }\n }, [preSelectedValue]);\n\n return (\n \n {ctaValues.map((cta: CTAValues, index: number) => (\n {\n if (cta.label !== selectedValue) {\n setSelectedValue(cta.label);\n setValue(name, cta.value !== null ? cta.value : cta.label);\n dispatch({ type: 'UPDATE_LITERAL_FIELDS_STEPS', payload: { [name]: cta.label } });\n dispatch({ type: 'UPDATE_FIELDS', payload: { [name]: cta.value !== null ? cta.value : cta.label } });\n\n if (nextOnClick) {\n handleNextStep(e);\n }\n } else {\n setSelectedValue(null);\n setValue(name, null);\n dispatch({ type: 'UPDATE_LITERAL_FIELDS_STEPS', payload: { [name]: '' } });\n dispatch({ type: 'UPDATE_FIELDS', payload: { [name]: null } });\n }\n }}\n />\n ))}\n {\n exclusiveCTA ? (\n <>\n {\n exclusiveCTAValues.map((cta: CTAValues, index: number) => (\n {\n if (cta.label !== selectedValue) {\n setSelectedValue(cta.label);\n setValue(name, cta.value !== null ? cta.value : cta.label);\n dispatch({ type: 'UPDATE_LITERAL_FIELDS_STEPS', payload: { [name]: cta.label } });\n dispatch({ type: 'UPDATE_FIELDS', payload: { [name]: cta.value !== null ? cta.value : cta.label } });\n \n if (nextOnClick) {\n handleNextStep(e);\n }\n } else {\n setSelectedValue(null);\n setValue(name, null);\n dispatch({ type: 'UPDATE_LITERAL_FIELDS_STEPS', payload: { [name]: '' } });\n dispatch({ type: 'UPDATE_FIELDS', payload: { [name]: null } });\n }\n }}\n />\n ))\n } \n \n ) : null\n }\n \n \n );\n}\n","import {\n Text,\n styled,\n Container,\n ContainerPadding,\n Breakpoints,\n BreakpointWrapper,\n TokenTextAppearance\n} from '@volkswagen-onehub/components-core';\nimport React, { useEffect, useState } from 'react';\nimport { StarFilled, StarOutline } from 'src/icons-core-imports';\nimport { useOneFormContext } from 'src/feature-app/OneForm';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { useFormContext } from 'react-hook-form';\nimport { OneFormState } from 'src/types';\nimport { InputButton } from 'src/components';\n\nconst StarWrapper = styled.div<{ isPrevStep?: boolean; textUnderStars?: boolean }>`\n\n padding-right: ${(props) => (props.isPrevStep ? '20px' : '32px')};\n padding-right: ${(props) => (props.textUnderStars && '0px')};\n padding-left: ${(props) => (props.textUnderStars ? '32px' : '0px')};\n padding-top: ${(props) => (props.textUnderStars ? '32px' : '0px')};\n\n cursor: ${(props) => (props.isPrevStep ? null : 'pointer')};\n \n svg {\n width: 32px;\n height: 32px;\n \n @media all and (min-width: 560px) {\n width: ${(props) => (props.isPrevStep ? '20px' : '40px')};\n height: ${(props) => (props.isPrevStep ? '20px' : '40px')};\n }\n @media all and (min-width: 1600px) {\n width: ${(props) => (props.isPrevStep ? '20px' : '48px')};\n height: ${(props) => (props.isPrevStep ? '20px' : '48px')};\n }\n }\n \n @media all and (max-width: 400px) {\n padding-left: ${(props) => (props.textUnderStars ? '7%' : '2vw')};\n padding-right: ${(props) => (props.textUnderStars ? '0px' : '2vw')};\n\n svg{\n width: ${(props) => (props.isPrevStep ? '10px' : '30px')};\n height: ${(props) => (props.isPrevStep ? '10px' : '30px')};\n }\n }\n\n &.filled {\n color: #ffd100;\n }\n\n &.outline {\n color: #6a767d;\n }\n`;\n\nconst StarText = styled.div`\n display: flex;\n justify-content: center;\n div{\n position: absolute;\n }\n`;\n\nconst TextMini = styled.div`\n color: rgb(0, 0, 0);\n font-size: 3vw;\n margin-top: 2px;\n @media all and (min-width: 400px){\n font-size: 12px;\n margin-top: 0;\n }\n`;\n\ninterface RatingStarsProps {\n name?: string;\n nextOnClick?: boolean;\n preSelectedRate?: number;\n stars?: number;\n noRequired?: boolean;\n isPrevStep?: boolean;\n textBad?: string;\n textGood?: string;\n textUnderStars?: boolean;\n starsText?: string[];\n CTASinRespuesta?: boolean;\n}\n\nexport const RatingStars = (props: RatingStarsProps) => {\n const {\n name,\n nextOnClick,\n stars,\n noRequired,\n isPrevStep,\n preSelectedRate,\n textBad,\n textGood,\n textUnderStars,\n starsText,\n CTASinRespuesta\n } = props;\n const { handleNextStep } = useOneFormContext();\n const { register, setValue } = useFormContext();\n const [ rateValue, setRateValue ] = useState(preSelectedRate ? preSelectedRate : null);\n const dispatch = useDispatch();\n const { formData } = useSelector((state: OneFormState) => state);\n \n const numberOfStars = stars ? stars : 5;\n const valueSinRespuesta = -1;\n const labelSinRespuesta = \"Sin respuesta\";\n\n const handleField = () => {\n // Hack para solucionar el problema que se da en el caso de elegir Sin respuesta y volver hacia atrás.\n if (formData.fields[name]) {\n if (formData.fields[name] == valueSinRespuesta) {\n setTimeout(() => {\n setValue(name, labelSinRespuesta);\n }, 100);\n setRateValue(valueSinRespuesta);\n } else {\n setRateValue(Number(formData.fields[name]));\n }\n }\n };\n\n useEffect(() => {\n handleField();\n }, []);\n\n const handleClick = (rateValue: number, e: any) => {\n setRateValue(rateValue);\n dispatch({ type: 'UPDATE_FIELDS', payload: { [name]: rateValue } });\n\n if (nextOnClick) {\n setTimeout(() => {\n handleNextStep(e);\n }, 0);\n }\n };\n\n const renderStarsText = (starsText, index: number) => {\n if (starsText[index] === undefined) {\n return
\n }\n else return (\n \n \n {starsText[index]}\n \n \n {starsText[index]}\n \n \n );\n };\n\n const renderStars = (rateValue: number) => {\n const stars = [];\n for (let i = 0; i < numberOfStars; i++) {\n stars.push(\n i ? 'filled' : 'outline' }\n key={i}\n onClick={(e: any) => {\n e.preventDefault();\n if (isPrevStep) {\n return;\n } else {\n handleClick(i + 1, e);\n }\n }}\n isPrevStep={isPrevStep}\n textUnderStars={textUnderStars}\n >\n { rateValue > i ? : }\n {textUnderStars &&\n (\n renderStarsText(starsText, i)\n )\n }\n \n );\n }\n\n return stars;\n };\n\n return (\n
\n {isPrevStep || textUnderStars ? null : (\n \n \n Valora del 1 al 5, siendo 1 {textBad} y 5 totalmente{' '}\n \n {textGood}\n *.\n \n \n \n )}\n
\n { renderStars(rateValue) }\n
\n {isPrevStep ? null : (\n \n )}\n {CTASinRespuesta ? (\n
\n {\n if (isPrevStep) {\n return;\n } else {\n handleClick(valueSinRespuesta, e);\n }\n }}\n />\n
\n ) : null}\n
\n );\n};\n","import React from 'react';\nimport { styled, Text, TextAlignment, TokenTextAppearance } from '@volkswagen-onehub/components-core';\n\nconst CustomInputRange = styled.input<{ numberOfSteps: number }>`\n width: 100%;\n height: 24px;\n background: transparent;\n font-size: 1em;\n cursor: pointer;\n -webkit-appearance: none;\n\n &::-webkit-slider-runnable-track,\n &::-webkit-slider-thumb {\n -webkit-appearance: none;\n }\n &::-webkit-slider-runnable-track {\n position: relative;\n width: 100%;\n height: 1px;\n background: #00b0f0;\n }\n &::-moz-range-track {\n width: 100%;\n height: 1px;\n background: #00b0f0;\n }\n &::-ms-track {\n border: none;\n width: 100%;\n height: 1px;\n background: #00b0f0;\n color: transparent;\n }\n &::-ms-fill-lower {\n display: none;\n }\n &::-webkit-slider-thumb {\n margin-top: -4px;\n box-sizing: border-box;\n width: calc(100% / ${(props) => props.numberOfSteps});\n height: 8px;\n border-radius: 4px;\n background: #ffffff;\n }\n &::-moz-range-thumb {\n box-sizing: border-box;\n width: calc(100% / ${(props) => props.numberOfSteps});\n height: 8px;\n border-radius: 4px;\n background: #ffffff;\n }\n &::-ms-thumb {\n box-sizing: border-box;\n width: calc(100% / ${(props) => props.numberOfSteps});\n height: 8px;\n border-radius: 4px;\n background: #ffffff;\n }\n &::-webkit-slider-runnable-track:before,\n &::-webkit-slider-runnable-track:after,\n & /deep/ #track:before,\n &/deep/ #track:after {\n position: absolute;\n bottom: 100%;\n color: #2c2c2b;\n font: 700 0.875em / 2 arial, sans-serif;\n background: #ffffff;\n }\n &::-webkit-slider-runnable-track:before,\n & /deep/ #track:before {\n left: 0.8125em;\n word-spacing: 1.4375em;\n content: '1 2 3 4 5 6 7 8 9';\n }\n &::-webkit-slider-runnable-track:after,\n & /deep/ #track:after {\n right: 0.625em;\n word-spacing: 0.875em;\n content: '10 11 12 13 14 15 16';\n }\n &:focus {\n outline: none;\n }\n`;\nconst Mark = styled.div`\n height: 9px;\n width: 1px;\n background-color: #ffffff;\n`;\nconst MarksPosition = styled.div`\n display: flex;\n display: -webkit-flex;\n width: 100%;\n justify-content: space-between;\n align-items: center;\n margin-bottom: -16.5px;\n z-index: 3;\n margin-left: 7px;\n @media screen and (min-width: 960px) {\n margin-left: 4px;\n }\n`;\nconst SliderPosition = styled.div`\n width: 100%;\n display: flex;\n justify-content: center;\n margin-left: 7px;\n @media screen and (min-width: 960px) {\n margin-left: 4px;\n }\n`;\nconst SlideLabelsPosition = styled.div`\n width: 100%;\n display: flex;\n justify-content: space-between;\n align-items: center;\n`;\nconst SliderAndMarksPosition = styled.div`\n width: 96%;\n padding-right: 20px;\n @media all and (min-width: 960px) {\n width: 97%;\n }\n`;\ninterface CustomSliderProps {\n handleInputChange: any;\n value: number;\n formatNumber?: (num: number | number[]) => string;\n maxValue: number;\n numberOfSteps: number;\n}\n\nexport const CustomSlider = ({\n value,\n handleInputChange,\n numberOfSteps,\n formatNumber,\n maxValue,\n}: CustomSliderProps) => {\n const sliderMarks = [];\n\n for (let i = 0; i < numberOfSteps + 1; i++) {\n sliderMarks.push();\n }\n\n document.documentElement.classList.add('js');\n\n return (\n <>\n \n {sliderMarks ? sliderMarks : null}\n \n handleInputChange(e)}\n value={value}\n />\n \n \n \n \n 0km\n \n \n {'+'}\n {formatNumber(maxValue)}km\n \n \n \n );\n};\n","import React,{ useState } from 'react';\nimport { Switch } from '@volkswagen-onehub/components-core';\ninterface CustomSwitch {\n setSelected?: any;\n isSelected?: boolean;\n toggle?: any;\n}\n\nexport const CustomSwitch = (props: CustomSwitch) => { \n const { setSelected, isSelected } = props;\n const [toggle, setToggle] = useState(false);\n\n return (\n {\n setToggle(!toggle);\n setSelected(!isSelected);\n }}/>\n );\n};\n","import React, { useEffect, useState } from 'react';\n\nexport function useOnlyLettersControl(pristine: boolean, input: string) {\n const [error, setError] = useState(false);\n // const regExp = /^[ña-zÑA-Z\\s]*$/;\n // const regExp = /^[A-Za-zÁÉÍÓÚáéíóúñÑ]+$/g;\n const regExp = /^[a-zA-ZÀ-ÿ\\u00f1\\u00d1]+(\\s*[a-zA-ZÀ-ÿ\\u00f1\\u00d1]*)*[a-zA-ZÀ-ÿ\\u00f1\\u00d1\\s+]+$/;\n\n useEffect(() => {\n if (input && !pristine && !regExp.test(input)) {\n setError(true);\n } else {\n setError(false);\n }\n }, [input, pristine]);\n\n return { error, regExp };\n}\n","import {\n Container,\n ContainerGutter,\n CTA,\n styled,\n Text,\n TextAlignment,\n TokenTextAppearance,\n} from '@volkswagen-onehub/components-core';\nimport { Alert } from 'src/icons-core-imports';\nimport { CloseHandleV2 } from '@volkswagen-onehub/layer-manager';\nimport React from 'react';\n\nconst Content = styled.div`\n background-color: white;\n padding: 44px 31px;\n flex: auto;\n text-align: center;\n width: 100%;\n @media screen and (min-width: 560px) {\n padding: 52px 46px;\n }\n @media screen and (min-width: 960px) {\n padding: var(--size-grid001);\n }\n`;\n\ninterface LayerComponentProps {\n closeLayerCallback?: CloseHandleV2;\n}\n\nexport function AvailabilityErrorLayer(props: LayerComponentProps) {\n return (\n \n \n \n );\n}\n\ninterface SlotHorario {\n from: number;\n to: number;\n}\n\nfunction AvailabilityError(props: LayerComponentProps) {\n const { closeLayerCallback } = props;\n\n return (\n \n
\n \n
\n \n Uy, algo ha pasado\n \n \n \n No hemos podido cargar los datos que nos pides. ¿Lo intentamos de nuevo en un rato?\n \n {\n e.preventDefault();\n closeLayerCallback({}, {}, {});\n }}\n >\n Cerrar\n \n \n \n );\n}\n","export const removeConfigurationHash = () => history.pushState('', document.title, window.location.pathname + window.location.search);\n","import React, { useEffect, useState } from 'react';\nimport {\n Container,\n ContainerGutter,\n ContainerPadding,\n CTA,\n styled,\n Text,\n TextAlignment,\n BreakpointWrapper,\n Breakpoints,\n TokenTextAppearance,\n} from '@volkswagen-onehub/components-core';\nimport { CloseHandleV2 } from '@volkswagen-onehub/layer-manager';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { useTrackingManager, useFeatureAppConfig, useFeatureAppEnvironment } from 'src/feature-app';\nimport { OneFormState } from 'src/types';\nimport { removeConfigurationHash } from 'src/feature-app/remove-configuration-hash';\n\nconst Content = styled.div`\n background-color: white;\n padding: 44px 28px;\n flex: auto;\n text-align: center;\n width: 100%;\n @media screen and (min-width: 560px) {\n padding: 52px 46px;\n }\n @media screen and (min-width: 960px) {\n padding: var(--size-grid001);\n }\n`;\n\nconst copys = [\n {\n name: 'isCloseLayer',\n pregunta: '¿Seguro que quieres salir?',\n bodyCopy: 'Si lo haces, no se enviará el formulario.',\n },\n {\n name: 'isMotivoLayer',\n pregunta: '¿Seguro que quieres cambiar el motivo de tu visita?',\n bodyCopy: 'Si lo cambias, puede que tengas elegir un taller distinto. ',\n },\n {\n name: 'isTallerLayer',\n pregunta: '¿Seguro que quieres cambiar el taller para tu visita?',\n bodyCopy: 'Si lo cambias, puede que tengas que elegir una hora distinta.',\n },\n {\n name: 'isTimeLayer',\n pregunta: '¿Seguro que quieres cambiar la hora de tu visita?',\n bodyCopy: 'Si la cambias, puede que tengas que elegir un taller distinto.',\n },\n];\n\ninterface AreYouSureProps {\n layerName: string;\n closeLayerCallback?: CloseHandleV2;\n closeOneForm?: CloseHandleV2;\n onClickProp: () => void;\n}\n\nexport const AreYouSureLayer = (props: AreYouSureProps) => {\n const { layerName, closeLayerCallback, closeOneForm, onClickProp } = props;\n const dispatch = useDispatch();\n const [layerInfo, setLayerInfo] = useState(null);\n const trackingManager = useTrackingManager();\n const { screenIndex } = useSelector((state: OneFormState) => state.formInfo);\n const config = useFeatureAppConfig();\n const env = useFeatureAppEnvironment();\n\n useEffect(() => {\n const aux = copys.filter((a) => a.name === layerName);\n setLayerInfo(aux);\n }, []);\n\n return (\n \n {layerInfo ? (\n <>\n \n {layerInfo[0].pregunta}\n \n \n {\n config.trigger === 'cita-posventa-dealer' && layerName !== 'isCloseLayer' ? null : (\n {layerInfo[0].bodyCopy}\n )\n }\n \n {layerName === 'isCloseLayer' ? (\n <>\n \n \n {\n e.preventDefault();\n closeLayerCallback({}, {}, {});\n }}\n stretchContent\n >\n No, quiero seguir\n \n {\n e.preventDefault();\n dispatch({ type: 'RESET_STATE' });\n closeLayerCallback({}, {}, {});\n closeOneForm({}, {}, {});\n if (config.trigger === 'lead-configurador') {\n removeConfigurationHash();\n }\n if (env.done) {\n env.done();\n }\n }}\n stretchContent\n >\n Sí, estoy seguro\n \n \n \n \n \n
\n {\n e.preventDefault();\n closeLayerCallback({}, {}, {});\n }}\n >\n No, quiero seguir\n \n
\n {\n e.preventDefault();\n trackingManager.trackFormCloseClick(\n {\n contentId: 'Cerrar',\n },\n { FormStart: screenIndex === 0 ? true : false }\n );\n dispatch({ type: 'RESET_STATE' });\n closeLayerCallback({}, {}, {});\n closeOneForm({}, {}, {});\n if (config.trigger === 'lead-configurador') {\n removeConfigurationHash();\n }\n if (env.done) {\n env.done();\n }\n }}\n >\n Sí, estoy seguro\n \n \n
\n \n ) : (\n <>\n \n \n {\n e.preventDefault();\n onClickProp();\n closeLayerCallback({}, {}, {});\n if (config.trigger === 'lead-configurador') {\n removeConfigurationHash();\n }\n if (env.done) {\n env.done();\n }\n }}\n stretchContent\n >\n Sí, estoy seguro\n \n {\n e.preventDefault();\n closeLayerCallback({}, {}, {});\n }}\n stretchContent\n >\n No, quiero seguir en esta página\n \n \n \n \n \n
\n {\n e.preventDefault();\n onClickProp();\n closeLayerCallback({}, {}, {});\n if (config.trigger === 'lead-configurador') {\n removeConfigurationHash();\n }\n }}\n >\n Sí, estoy seguro\n \n
\n {\n e.preventDefault();\n closeLayerCallback({}, {}, {});\n }}\n >\n No, quiero seguir en esta página\n \n \n
\n \n )}\n \n ) : null}\n
\n );\n};\n","import {\n Container,\n ContainerGutter,\n CTA,\n styled,\n Text,\n TextAlignment,\n TokenTextAppearance,\n} from '@volkswagen-onehub/components-core';\nimport { Alert } from 'src/icons-core-imports';\n\nimport { CloseHandleV2 } from '@volkswagen-onehub/layer-manager';\nimport React, { useRef, useEffect, useState } from 'react';\nimport { useDispatch } from 'react-redux';\n\ninterface contentProps {\n notALayer?: boolean;\n formHeight?: string;\n}\n\nconst Content = styled.div`\n background-color: white;\n padding: ${(props) => (props.notALayer ? '0 var(--size-grid002)' : '44px 31px')};\n flex: auto;\n text-align: ${(props) => (props.notALayer ? 'left' : 'center')};\n width: 100%;\n display: ${(props) => (props.notALayer ? 'flex' : null)};\n align-items: ${(props) => (props.notALayer ? 'center' : null)};\n height: ${(props) => (props.notALayer ? 'calc(100vh - 84px)' : '100%')};\n @media all and (min-width: 560px) {\n padding: ${(props) => (props.notALayer ? '0 var(--size-grid002)' : '52px 46px')};\n height: ${(props) => (props.notALayer ? 'calc(100vh - 92px)' : '100%')};\n }\n @media all and (min-width: 960px) {\n padding: ${(props) => (props.notALayer ? '0 var(--size-grid003)' : 'var(--size-grid001)')};\n height: ${(props) => (props.notALayer ? 'calc(100vh - 100px)' : '100%')};\n }\n @media all and (min-width: 1280px) {\n padding: ${(props) => (props.notALayer ? '0 var(--size-grid005)' : 'var(--size-grid001)')};\n }\n @media all and (min-width: 1920px) {\n padding: ${(props) => (props.notALayer ? '0 var(--size-grid006)' : 'var(--size-grid001)')};\n height: ${(props) => (props.notALayer ? 'calc(100vh - 116px)' : '100%')};\n }\n @media all and (min-width: 2560px) {\n padding: ${(props) => (props.notALayer ? '0 var(--size-grid007)' : 'var(--size-grid001)')};\n }\n`;\n\ninterface LayerComponentProps {\n closeLayerCallback?: CloseHandleV2;\n closeOneForm?: CloseHandleV2;\n bodycopy?: string;\n title?: string;\n icon?: boolean;\n onClick?: any;\n ctaLayer?: string;\n notALayer?: boolean;\n notShowCTA?: boolean;\n ctaType?: 'a' | 'button';\n urlHref?: string;\n ctaTextAlign?: 'left' | 'center';\n secondCta?: JSX.Element;\n}\n\n//admite formato, title, bodycopy, si debe mostrar o no el icono de alert\n//así como la siguiente info del CTA: si mostarlo o no, el texto del layer y la funciona de onClick\n\nexport function GenericErrorLayer(props: LayerComponentProps) {\n const {\n closeLayerCallback,\n closeOneForm,\n bodycopy,\n title,\n icon,\n onClick,\n ctaLayer,\n notALayer,\n notShowCTA,\n ctaType,\n urlHref,\n ctaTextAlign,\n secondCta,\n } = props;\n const dispatch = useDispatch();\n\n const handleCloseLayers = () => {\n closeLayerCallback({}, {}, {});\n closeOneForm({}, {}, {});\n dispatch({ type: 'UPDATE_GENERIC_ERROR', payload: false });\n };\n\n //calc height stuff\n const content = useRef(null);\n const viewportHeight = window.innerHeight;\n const [formHeight, setFormHeight] = useState('100%');\n\n useEffect(() => {\n if (!notALayer) {\n return;\n }\n\n if (content.current) {\n const minHeight = viewportHeight - 252;\n const contentHeight = content.current.clientHeight;\n if (minHeight > contentHeight) {\n setFormHeight(`${minHeight}px`);\n } else {\n setFormHeight(`${contentHeight}px`);\n }\n }\n }, []);\n\n return (\n \n \n {icon ? (\n
\n \n
\n ) : null}\n <>\n \n {title ? title : 'Uy, algo ha pasado'}\n \n \n \n \n {bodycopy\n ? bodycopy\n : 'Parece que no podemos seguir con el proceso de cita en este momento. ¿Lo intentamos de nuevo más tarde?'}\n \n \n {notShowCTA ? null : (\n <>\n {ctaType === 'a' ? (\n
\n \n {ctaLayer ? <>{ctaLayer} : <>Cerrar}\n \n
\n ) : (\n
\n {\n if (onClick) {\n e.preventDefault();\n onClick();\n } else {\n e.preventDefault();\n handleCloseLayers();\n }\n }}\n >\n {ctaLayer ? <>{ctaLayer} : <>Cerrar}\n \n
\n )}\n \n )}\n {secondCta ?
{secondCta}
: null}\n \n \n \n
\n );\n}\n","import { compose } from 'redux';\nfunction extensionComposeStub() {\n for (var _len = arguments.length, funcs = new Array(_len), _key = 0; _key < _len; _key++) {\n funcs[_key] = arguments[_key];\n }\n if (funcs.length === 0) return undefined;\n if (typeof funcs[0] === 'object') return compose;\n return compose(...funcs);\n}\nexport const composeWithDevTools = typeof window !== 'undefined' && window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ ? window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ : extensionComposeStub;\nexport const devToolsEnhancer = typeof window !== 'undefined' && window.__REDUX_DEVTOOLS_EXTENSION__ ? window.__REDUX_DEVTOOLS_EXTENSION__ : function () {\n return function (noop) {\n return noop;\n };\n};\nexport { composeWithDevTools as composeWithDevToolsDevelopmentOnly, devToolsEnhancer as devToolsEnhancerDevelopmentOnly } from './developmentOnly';\nexport { composeWithDevTools as composeWithDevToolsLogOnly, devToolsEnhancer as devToolsEnhancerLogOnly } from './logOnly';\nexport { composeWithDevTools as composeWithDevToolsLogOnlyInProduction, devToolsEnhancer as devToolsEnhancerLogOnlyInProduction } from './logOnlyInProduction';","import React, { useEffect, useState } from 'react';\nimport { Provider } from 'react-redux';\nimport { createStore, Store } from 'redux';\nimport { OneFormTrigger } from 'src/triggers';\nimport { OneFormState } from 'src/types';\nimport { useIsDevStage, useFeatureAppConfig, useFaContent, useFeatureServices } from 'src/feature-app';\nimport { initialState, oneFormReducer } from './redux';\nimport { composeWithDevTools } from '@redux-devtools/extension';\n\ndeclare global {\n var s: { persCmp?: string };\n}\n\nexport const store: Store = createStore(oneFormReducer, initialState, composeWithDevTools());\nexport default function App() {\n const [loading, setLoading] = useState(true);\n const oneFormService = useFeatureServices()['es:oneform-core'];\n const faContent = useFaContent();\n const config = useFeatureAppConfig();\n const isDevStage = useIsDevStage();\n useEffect(() => {\n const useBff = faContent && faContent.encuesta && ['LEM', 'NO COMPRA', 'NO RENOVACIÓN', 'SAC', 'NEWSLETTER'].includes(faContent.encuesta);\n \n oneFormService.initializeService(true, useBff); // Necesario para saltarse la comprobación del login en los formularios en los que no sea necesario.\n\n const oneFormCoreDpsIsLoaded = oneFormService.getLoadedState();\n\n oneFormCoreDpsIsLoaded.subscribe({\n next(value) {},\n error(err) {},\n complete() {\n // One Form no se inicializa hasta que no se han cargado todos los datos.\n const { person } = oneFormService.get();\n\n if (person) {\n store.dispatch({ type: 'UPDATE_FIELDS', payload: { ...person } });\n store.dispatch({\n type: 'SET_FORM_INFO',\n payload: { userIsAuthenticated: person.userIsAuthenticated === 'true' ? true : false },\n });\n }\n // setObjectValues(person, methods.setValue);\n if (isDevStage) {\n console.log('%cOneForm Version:', 'font-weight: 700', process.env.VERSION);\n console.log('%cOneForm Feature App Content:', 'font-weight: 700', faContent);\n console.log('%cOneForm Feature App Config:', 'font-weight: 700', config);\n const params = Object.fromEntries(Array.from(new URLSearchParams(window.location.search).entries()));\n console.log('%cOneForm Params:', 'font-weight: 700', params);\n }\n setLoading(false);\n },\n });\n }, []);\n return {loading ? null : };\n}\n","import { styled } from '@volkswagen-onehub/components-core';\n\nexport const Background = styled.div<{ calendarIsStep: boolean }>`\n background-color: #ffffff;\n width: 100%;\n min-height: ${(props)=>(props.calendarIsStep ? '100vh' : 'calc(100vh - 52px)')};\n display: flex;\n flex-direction: column;\n justify-content: center;\n margin-top: -2px;\n`;\nexport const AllContentWrapper = styled.div`\n display: flex;\n align-items: center; \n`;\nexport const DealerInfoWrapper = styled.div`\n width: 83vw;\n @media screen and (min-width: 960px) {\n width: 660px;\n }\n`;\nexport const GoBackWrapper = styled.div`\n padding-left: 20px;\n padding-top: 24px;\n padding-bottom: 3px;\n background-color: #ffffff;\n`;\nexport const GreyText = styled.span`\n color: '#6A767D';\n`;\nexport const CalendarHandlerWrapper = styled.div`\n width: 100%;\n display: flex;\n padding: 44px 4% 32px;\n justify-content: space-between;\n align-items: center;\n @media screen and (min-width: 560px) {\n padding: 44px 11% 32px;\n }\n @media screen and (min-width: 960px) {\n padding: 44px 11% 32px;\n }\n`;\nexport const AllDaysWrapper = styled.div`\n width: 100%;\n margin: auto;\n align-self: center;\n justify-self: center;\n margin-bottom: 44px;\n @media screen and (min-width: 560px) {\n width: 89%;\n }\n @media screen and (min-width: 960px) {\n width: 96%;\n margin-left: 32px;\n margin-rigth: 0;\n }\n`;\nexport const TabsWitdh = styled.div`\n width: 83vw;\n @media all and (min-width: 960px) {\n width: 660px;\n }\n`;\nexport const DividerC = styled.div`\n height: 1px;\n width: 100%;\n background-color: #dfe4e8;\n`;\nexport const DayPositionWrapper = styled.div`\n display: flex;\n justify-content: center;\n align-items: center;\n width: 100%;\n`;\ninterface DayWrapperProps {\n active?: any;\n presentDay?: any;\n disabled?: boolean;\n}\nexport const DayWrapper = styled.div`\n display: flex;\n justify-content: center;\n align-items: center;\n color: ${(props) => (props.active ? '#FFFFFF' : props.disabled ? '#dfe4e8' : '#001E50')};\n font-size: ${(props) => (props.presentDay ? '700' : null)};\n background-color: ${(props) => (props.active ? '#001E50' : null)};\n width: 40px;\n height: 40px;\n border-radius: 50%;\n cursor: ${(props) => (props.disabled ? 'default' : 'pointer')};\n\n @media screen and (min-width: 960px) {\n width: 44px;\n height: 44px;\n }\n`;\n\ninterface CapitalizeWrapperProps {\n hasTitle?: boolean;\n isDisabled: boolean;\n}\nexport const Capitalize = styled.span`\n text-transform: capitalize;\n color: ${(props) => (props.isDisabled ? '#E8DFE4' : '#001e50')};\n padding: ${(props) => (props.hasTitle ? null : '0 32px')};\n padding-top: ${(props) => (props.hasTitle ? null : '2px')};\n cursor: ${(props) => (props.isDisabled ? 'default' : 'pointer')};\n`;\n","import {\n Breakpoints,\n BreakpointWrapper,\n Container,\n ContainerPadding,\n CTA,\n Layout,\n LayoutRowGap,\n Text,\n TextAlignment,\n ThemeProvider,\n TokenTextAppearance,\n TokenTextColor,\n} from '@volkswagen-onehub/components-core';\nimport dayjs from 'dayjs';\nimport React, { useEffect, useRef, useState } from 'react';\nimport { useSelector } from 'react-redux';\nimport { AnteriorCTA } from 'src/components';\nimport {\n getActualMonth,\n getActualMonthNumber,\n getActualYearNumber,\n getNextActualMonth,\n getPreviousActualMonth,\n getYYYYMMDD,\n useFeatureAppConfig,\n year_MonthNumber_DayNumber,\n useTrackingManager,\n} from 'src/feature-app';\nimport { ArrowLeft, ChevronLeft, ChevronRight } from 'src/icons-core-imports';\nimport { Availability, Calendar, CalendarSlot, Day, DealersData, Horario, OneFormState, Points } from 'src/types';\nimport {\n checkIfEvening,\n checkIfMidDay,\n checkIfMorning,\n getDistanceFromLatLngCenter,\n getNormalizedDate,\n} from '../NewMap';\nimport { CloseInDealerCalendar, FranjaHoraria, getFirstAndLastDayOfMonth, TabsHorario } from './';\nimport {\n AllContentWrapper,\n AllDaysWrapper,\n Background,\n CalendarHandlerWrapper,\n Capitalize,\n DayPositionWrapper,\n DayWrapper,\n DealerInfoWrapper,\n DividerC,\n GoBackWrapper,\n GreyText,\n TabsWitdh,\n} from './CalandarioStyles';\n\nexport interface SlotsHorarios {\n manana: CalendarSlot[];\n mediodia: CalendarSlot[];\n tarde: CalendarSlot[];\n}\n\ninterface CalendarioCitaProps {\n selectedPoint: Points;\n availability: Availability;\n getAvailability: (dealer: DealersData, start: number, end: number) => Promise;\n selectedSlot: any;\n setSelectedSlot: React.Dispatch;\n handleDmsMapExit: (slot: CalendarSlot, point: Points) => void;\n handleNoDmsMapExit: (franjaHoraria: string, day: string, point: Points) => void;\n center: google.maps.LatLng;\n horario: Horario;\n handleHideCalendarOnClick: () => void;\n userIsGeoLocated?: boolean;\n /**\n * Flag para cuando el calendario es un step y no forma parte del mapa, cambian los estilos y es fullscreen;\n */\n calendarIsStep?: boolean;\n}\n\nconst checkDmsAvailableInAvailability = (availability: Availability) => availability?.content?.dealer?.dmsAvailable;\nconst delerHasError = (availability: Availability) => availability?.content?.dealer.hasOwnProperty('error');\n\nexport function CalendarioCita(props: CalendarioCitaProps) {\n const {\n selectedPoint,\n availability,\n getAvailability,\n selectedSlot,\n setSelectedSlot,\n handleDmsMapExit,\n handleNoDmsMapExit,\n center,\n horario,\n handleHideCalendarOnClick,\n userIsGeoLocated,\n calendarIsStep,\n } = props;\n\n const { formName } = useSelector((state: OneFormState) => state.formData.fields);\n\n let name, address, city, zipCode, dealer, distanceFromCenter;\n if (selectedPoint.properties?.dealer?.markerInfo?.dealerInfo) {\n name = selectedPoint.properties.dealer.markerInfo.dealerInfo.name;\n address = selectedPoint.properties.dealer.markerInfo.dealerInfo.address;\n city = selectedPoint.properties.dealer.markerInfo.dealerInfo.city;\n zipCode = selectedPoint.properties.dealer.markerInfo.dealerInfo.zipCode;\n dealer = selectedPoint.properties.dealer;\n distanceFromCenter = selectedPoint.properties.distanceFromCenter;\n } else {\n name = '';\n address = '';\n city = '';\n zipCode = '';\n dealer = {};\n distanceFromCenter = 0;\n }\n // const { dealer } = selectedPoint.properties;\n // const { dmsInfo } = dealer;\n // const { distanceFromCenter } = selectedPoint.properties;\n\n const [preselectedDealerForm, setPreselectedDealerForm] = useState(false);\n const [isCalculadoraFirstStep, setIsCalculadoraFirstStep] = useState(false);\n const config = useFeatureAppConfig();\n\n useEffect(() => {\n if (formName === 'cita-posventa-calculadora') {\n setIsCalculadoraFirstStep(true);\n }\n if (config.trigger === 'cita-posventa-dealer' || formName === 'cita-posventa-calculadora') {\n setPreselectedDealerForm(true);\n } else {\n setPreselectedDealerForm(false);\n }\n }, []);\n\n const daysOfTheWeek = ['Lun', 'Mar', 'Mié', 'Jue', 'Vie', 'Sáb', 'Dom'];\n const [loading, setLoading] = useState(false);\n const [month, setMonth] = useState(getActualMonth());\n const [nextMonth, setNextMonth] = useState(getNextActualMonth());\n const [previousMonth, setPreviousMonth] = useState(getPreviousActualMonth());\n const [monthNumber, setMonthNumber] = useState(getActualMonthNumber());\n const [monthOffset, setMonthOffset] = useState(0);\n const [monthDays, setMonthDays] = useState(null);\n const [yearNumber, setYearNumber] = useState(getActualYearNumber());\n const [selectedDay, setSelectedDay] = useState(null);\n const [selectedFranjaHoraria, setSelectedFranjaHoraria] = useState(null);\n const [pastMonthBlocked, setPastMonthBlocked] = useState(false); // En el caso de que el mes actual no tenga fechas disponibles no se debería poder volver atrás.\n const [calendar, setCalendar] = useState(null);\n const [horarios, setHorarios] = useState(null);\n const tabsRef = useRef(null);\n const availabilityRef = useRef(null);\n const [dmsAvailable, setDmsAvailable] = useState(null);\n const trackingManager = useTrackingManager();\n \n useEffect(() => {\n trackingManager.trackFormStepLoad(\n {},\n {\n FormStart: false,\n },\n { StepName: 'MapSlot' }\n );\n handleChangeOfMonth(0); // Primera carga del calendario.\n }, []);\n\n const handleChangeOfMonth = async (newMonthOffset: number): Promise => {\n const { currentMonthNumber, currentMonth, yearNumber, nextMonth } = getDates(newMonthOffset);\n const { firstDayOfMonth, lastDayOfMonth } = getFirstAndLastDayOfMonth(currentMonthNumber, yearNumber);\n\n const availability = await getAvailability(dealer, firstDayOfMonth, lastDayOfMonth);\n\n if (\n checkDmsAvailableInAvailability(availability) &&\n availability.content?.calendar &&\n calendarHasNoProblems(availability) &&\n !delerHasError(availability)\n ) {\n setDmsAvailable(true);\n } else if (\n checkDmsAvailableInAvailability(availability) &&\n calendarHasNoProblems(availability) &&\n !availability.content.calendar\n ) {\n if (newMonthOffset === 2) {\n setDmsAvailable(false);\n } else {\n setPastMonthBlocked(true);\n handleChangeOfMonth(monthOffset + 1);\n }\n return;\n } else {\n setDmsAvailable(false);\n }\n availabilityRef.current = availability;\n\n const { updatedMonthDays, selectedDay } = buildCalendar(currentMonthNumber, yearNumber, availability);\n\n if (selectedDay) {\n setMonthDays(updatedMonthDays);\n setSelectedDay(selectedDay);\n setVariables(newMonthOffset, currentMonth, currentMonthNumber, nextMonth, yearNumber);\n } else {\n setPastMonthBlocked(true);\n handleChangeOfMonth(monthOffset + 1);\n }\n };\n\n const buildCalendar = (monthNumber: string, yearNumber: string, availability: Availability) => {\n // 1. Crear los días del mes.\n const days = createMonthDays(monthNumber, yearNumber);\n // 2. Con el availability, desactivar todos los días que no son necesarios.\n const updatedDays = getDisabledDays(days, availability);\n // 3. Buscar el primer día activo.\n const firstAvailableDay = getFirstAvailableDay(updatedDays, availability);\n // 3.1 En caso de que no encuentre un día en el mes en curso, devolvemos null para que handleChangeOfMonth se\n // ocupe de cargar el siguiente mes.\n if (!firstAvailableDay) {\n return { updatedMonthDays: null, selectedDay: null };\n }\n // 4. Cambiar el estado del primer dia activo\n const { updatedMonthDays, selectedDay } = handleChangeActiveDay(updatedDays, firstAvailableDay);\n // 5. Carga de los horarios del dia seleccionado\n handleChangeInSelectedDay(firstAvailableDay);\n\n return { updatedMonthDays, selectedDay };\n };\n\n /**\n * Genera los dias del calendario para el mes y año seleccionado.\n * @param monthNumber\n * @param yearNumber\n */\n const createMonthDays = (monthNumber: string, yearNumber: string): Day[] => {\n const firstDayOfMonth = dayjs()\n .year(Number(yearNumber))\n .month(Number(monthNumber) - 1)\n .date(1);\n\n const daysInMonth = dayjs()\n .year(Number(yearNumber))\n .month(Number(monthNumber) - 1)\n .daysInMonth();\n\n const firstDayInweek = firstDayOfMonth.format('d'); // The day of the week, with Sunday as 0\n\n let days: Day[] = [];\n\n // Se genera una array con espacios vacios para rellenar la primera fila del calendario. Ej: Si el primer día\n // del mes cae en domingo, se genera una array con 6 espacios vacios, donde el 7º día será el domingo.\n if (firstDayInweek === '0') {\n days = new Array(6).fill('');\n } else {\n days = new Array(parseInt(firstDayInweek) - 1).fill('');\n }\n\n let day = firstDayOfMonth;\n\n for (let i = 1; i <= daysInMonth; i++) {\n let date = getYYYYMMDD(`${yearNumber}-${monthNumber}-${day.format('D')}`); // YYYY - MM - DD\n const dayNumber = day.format('D'); // 1 - 31\n const dayOfTheWeek = day.format('d'); // 0 - 6\n let newDay: Day = {\n dayNumber,\n dayOfTheWeek,\n date,\n disabled: null,\n active: false,\n };\n days.push(newDay);\n day = day.add(1, 'day');\n newDay = null;\n date = null;\n }\n return days;\n };\n\n /**\n * Devuelve los días generados con la propiedad disabled actualizada, según\n * si el día está disponible o no. Si el dealer tiene dms el día estará disponible\n * en caso de que también lo esté en el availability. Para el resto de casos se siguen las\n * normas de la función checkIfDayIsDisabled.\n *\n * @param days\n * @param availability\n */\n const getDisabledDays = (days: Day[], availability: Availability): Day[] => {\n let updatedDays: Day[];\n\n // FLUJO CON DMS\n if (availability && availability.content && availability.content.calendar && calendarHasNoProblems(availability)) {\n const availableDates = availability.content.calendar.map((calendarDay) => calendarDay.date);\n updatedDays = days.map((day) => {\n // Days contiene strings vacías.\n if (typeof day === 'object') {\n const foundDate = availableDates.find((date) => date === day.date);\n day.disabled = !foundDate || checkIfDayIsDisabled(day.date) ? true : false;\n return day;\n }\n return day;\n });\n } else {\n // FLUJO SIN DMS\n updatedDays = days.map((day) => {\n // Days contiene strings vacías.\n if (typeof day === 'object') {\n day.disabled = checkIfDayIsDisabled(day.date) ? true : false;\n }\n return day;\n });\n }\n return updatedDays;\n };\n\n /**\n *\n * Las reglas para desactivar un día son:\n * Si el día ya ha pasado o es el mismo día (no pueden ofrecer cita para el mismo día).\n * Si es domingo en todos los casos.\n * Si es sábado y no tiene DMS.\n *\n * @param date Se necesita la fecha en formato YYYY-MM-DD\n */\n const checkIfDayIsDisabled = (date: string): boolean => {\n const actualDay = year_MonthNumber_DayNumber();\n const dayOfTheWeek = dayjs(date).format('d');\n const isPastOrSameDate = dayjs(date).isSameOrBefore(actualDay);\n const disableSaturday = dayOfTheWeek === '6' && !dmsAvailable;\n const disableSunday = dayOfTheWeek === '0';\n\n if (isPastOrSameDate || disableSaturday || disableSunday) {\n return true;\n }\n return false;\n };\n\n /**\n * Función para comprobar si, aunque el calendario retorne una array con slots, estos son recientes.\n * En el caso de \"Binefar\" devuelve una array a fecha de 1/1/1970, por lo que comprobamos si las fechas son\n * anteriores a una fecha ya pasada aleatoria como el 1/1/2021 para eliminar estos casos.\n * @param availability\n */\n const calendarHasNoProblems = (availability: Availability): boolean => {\n const msForReference = dayjs('2021-01-01', 'YYYY-MM-DD').locale('es').utc().format('x');\n\n if (availability && availability.content && availability.content.calendar) {\n const badFormattedDay = availability.content.calendar.find((calendarDay) => {\n const dateInMs = dayjs(calendarDay.date, 'YYYY-MM-DD').locale('es').utc().format('x');\n if (msForReference > dateInMs) {\n return true;\n }\n });\n if (badFormattedDay) {\n return false;\n }\n }\n return true;\n };\n\n /**\n * Función para obtener el primer dia activo en el calendario.\n * En caso de que la concesión disponga de DMS se busca el primer día que tenga slots disponible en cualquiera de los turnos.\n * En caso de que no encuentre ninguno o no tenga DMS, fija el primer dia que no esté desactivado.\n *\n * @param monthDays\n * @param availability\n */\n const getFirstAvailableDay = (monthDays: Day[], availability: Availability): Day => {\n let firstDay: Day;\n\n //Flujo con DMS\n if (availability && availability.content && availability.content.calendar && calendarHasNoProblems(availability)) {\n for (const dayCalendar of availability.content.calendar) {\n const horarios = sortSlotsByHour(dayCalendar);\n\n if (horario === 'morning' && horarios.manana.length > 0) {\n firstDay = setFirstDay(monthDays, dayCalendar);\n break;\n } else if (horario === 'afternon' && horarios.mediodia.length > 0) {\n firstDay = setFirstDay(monthDays, dayCalendar);\n break;\n } else if (horario === 'evening' && horarios.tarde.length > 0) {\n firstDay = setFirstDay(monthDays, dayCalendar);\n break;\n }\n }\n }\n // Flujo sin DMS\n if (!firstDay) {\n firstDay = monthDays.find((day) => day.disabled === false);\n }\n\n return firstDay;\n };\n\n /**\n * Reparte los slots del calendario en mañana, mediodía y tarde, además de eliminar arrays vacías para evitar posibles errores.\n *\n * @param calendar\n */\n const sortSlotsByHour = (calendar: Calendar): SlotsHorarios => {\n // Se elige un dia aleatorio (1/1/1999) ya que se comparan horas del mismo dia y este es irrelevante.\n\n const manana = calendar.slots\n .filter((slot: CalendarSlot) => checkIfMorning(getNormalizedDate(slot.hour)))\n .sort((a, b) => a.from - b.from);\n const mediodia = calendar.slots\n .filter((slot: CalendarSlot) => checkIfMidDay(getNormalizedDate(slot.hour)))\n .sort((a, b) => a.from - b.from);\n const tarde = calendar.slots\n .filter((slot: CalendarSlot) => checkIfEvening(getNormalizedDate(slot.hour)))\n .sort((a, b) => a.from - b.from);\n return { manana, mediodia, tarde };\n };\n\n const setFirstDay = (monthDays: Day[], dayCalendar: Calendar) => {\n const monthDay = monthDays.find((day) => day.date === dayCalendar.date);\n\n if (monthDay && !monthDay.disabled) {\n return monthDay;\n }\n return null;\n };\n\n /**\n * Función que se encarga de cargar los horarios del availability según el dia seleccionado.\n * @param day\n * @param isClick es false en la carga del calendario, ya que no hace falta volver a llamar a la función handleChangeActiveDay.\n */\n const handleChangeInSelectedDay = (day: Day, isClick?: boolean) => {\n if (isClick) {\n const { updatedMonthDays } = handleChangeActiveDay(monthDays, day);\n setMonthDays(updatedMonthDays);\n setSelectedDay(day.date);\n }\n\n if (!availabilityRef.current || !availabilityRef.current.content || !availabilityRef.current.content.calendar) {\n return;\n }\n let calendar: Calendar = availabilityRef.current.content.calendar.find((calendarDate) => {\n return day.date === calendarDate.date;\n });\n\n if (calendar) {\n calendar.slots = calendar.slots.sort((a, b) => a.from - b.from);\n const horarios = sortSlotsByHour(calendar);\n const selectedSlot = getSelectedSlot(calendar, horarios);\n setCalendar(calendar);\n setHorarios(horarios);\n setSelectedSlot(selectedSlot);\n if (calendar.slots.length > 1) {\n // selectedCalendar.slots[0].map();\n }\n } else {\n setCalendar(null);\n setHorarios(null);\n setSelectedSlot(null);\n }\n };\n\n const getSelectedSlot = (selectedCalendar: Calendar, horarios: SlotsHorarios) => {\n if (horario === 'morning') {\n return horarios.manana[0];\n } else if (horario === 'afternon' && horarios.mediodia.length > 0) {\n return horarios.mediodia[0];\n } else if (horario === 'evening' && horarios.tarde.length > 0) {\n return horarios.tarde[0];\n }\n return selectedCalendar.slots[0];\n };\n\n const handleNextMonthYear = (e: any) => {\n e.preventDefault();\n if (monthOffset === 2) {\n return;\n }\n handleChangeOfMonth(monthOffset + 1);\n // setMonthOffset(monthOffset + 1);\n };\n\n const handlePreviousMonthYear = (e: any) => {\n e.preventDefault();\n\n if (monthOffset === 0) {\n return;\n }\n handleChangeOfMonth(monthOffset - 1);\n // setMonthOffset(monthOffset - 1);\n };\n\n const getDates = (monthOffset: number) => {\n const currentMonth = dayjs().add(monthOffset, 'month').locale('es').format('MMMM');\n const nextMonth = dayjs()\n .add(monthOffset + 1, 'month')\n .locale('es')\n .format('MMMM');\n const currentMonthNumber = dayjs().add(monthOffset, 'month').format('M');\n const yearNumber = dayjs().add(monthOffset, 'month').format('YYYY');\n\n return { currentMonth, nextMonth, currentMonthNumber, yearNumber };\n };\n\n useEffect(() => {\n let monthCapitalize = month.charAt(0).toUpperCase() + month.slice(1);\n switch (monthCapitalize) {\n case 'Enero':\n setPreviousMonth('Diciembre');\n break;\n case 'Febrero':\n setPreviousMonth('Enero');\n break;\n case 'Marzo':\n setPreviousMonth('Febrero');\n break;\n case 'Abril':\n setPreviousMonth('Marzo');\n break;\n case 'Mayo':\n setPreviousMonth('Abril');\n break;\n case 'Junio':\n setPreviousMonth('Mayo');\n break;\n case 'Julio':\n setPreviousMonth('Junio');\n break;\n case 'Agosto':\n setPreviousMonth('Julio');\n break;\n case 'Septiembre':\n setPreviousMonth('Agosto');\n break;\n case 'Octubre':\n setPreviousMonth('Septiembre');\n break;\n case 'Noviembre':\n setPreviousMonth('Octubre');\n break;\n case 'Diciembre':\n setPreviousMonth('Noviembre');\n break;\n }\n }, [month]);\n\n const setVariables = (\n monthOffset: number,\n currentMonth: string,\n currentMonthNumber: string,\n nextMonth: string,\n year: string\n ) => {\n setMonthOffset(monthOffset);\n setMonth(currentMonth);\n setMonthNumber(currentMonthNumber);\n setNextMonth(nextMonth);\n setYearNumber(year);\n };\n\n const handleSelectedSlot = (slot: CalendarSlot[]) => {\n setSelectedSlot(slot);\n };\n\n const handleFranjaHoraria = (franjaHoraria: string) => {\n setSelectedFranjaHoraria(franjaHoraria);\n };\n\n const handleChangeActiveDay = (monthDays: Day[], day: Day): { updatedMonthDays: Day[]; selectedDay: string } => {\n if (day) {\n const updatedMonthDays = monthDays.map((monthDay) => {\n if (monthDay.dayNumber === day.dayNumber && !day.active) {\n monthDay.active = true;\n } else if (monthDay.active && monthDay.dayNumber !== day.dayNumber) {\n monthDay.active = false;\n }\n return monthDay;\n });\n\n return { updatedMonthDays, selectedDay: day.date };\n } else {\n const tomorrow = dayjs().add(1, 'day').format('YYYY-MM-DD');\n\n return { updatedMonthDays: monthDays, selectedDay: tomorrow };\n }\n };\n\n return selectedPoint ? (\n <>\n {!isCalculadoraFirstStep && preselectedDealerForm ? : null}\n \n {isCalculadoraFirstStep ? (\n \n ) : preselectedDealerForm ? (\n \n \n \n \n
\n \n \n ) : (\n \n \n }\n onClick={(e) => {\n e.preventDefault();\n handleHideCalendarOnClick();\n // Hack para contabilizar en analítica los usuarios que vuelven desde el calendario al mapa.\n trackingManager.trackFormStepLoad(\n {},\n {\n FormStart: false,\n },\n { StepName: 'MapSearch' });\n }}\n >\n Ir al mapa\n \n \n \n )}\n\n \n \n \n
\n \n {preselectedDealerForm ? (\n \n \n \n ¿Cuándo prefieres pasar por el{' '}\n \n taller?*\n \n \n \n \n \n ¿Cuándo prefieres pasar por el{' '}\n \n taller?*\n \n \n \n {dmsAvailable ? (\n \n Selecciona la fecha y la hora de tu visita.\n \n ) : null}\n \n ) : (\n \n \n \n \n {name}\n \n {userIsGeoLocated ? (\n <>\n {getDistanceFromLatLngCenter(center, selectedPoint) === '0.0' ? null : (\n \n {distanceFromCenter\n ? distanceFromCenter\n : getDistanceFromLatLngCenter(center, selectedPoint)}\n km\n \n )}\n \n ) : null}\n \n \n {address}, {zipCode} {city}\n \n \n \n \n )}\n \n\n \n }\n />\n \n \n {previousMonth}\n \n \n \n \n {month} {yearNumber}\n \n \n \n \n {nextMonth}\n \n \n }\n />\n \n\n \n \n {daysOfTheWeek.map((day, index) => {\n if (index > 4) {\n return (\n \n \n \n {day}\n \n \n \n );\n } else {\n return (\n \n \n \n {day}\n \n \n \n );\n }\n })}\n {monthDays && !loading ? (\n monthDays.map((day, i) => {\n return (\n \n {\n e.preventDefault();\n\n if (!day.disabled) {\n if (tabsRef && tabsRef.current) {\n tabsRef.current.scrollIntoView({ behavior: 'smooth' });\n }\n // const { updatedMonthDays, selectedDay } = handleChangeActiveDay(monthDays, day);\n // setMonthDays(updatedMonthDays);\n // setSelectedDay(selectedDay);\n handleChangeInSelectedDay(day, true);\n }\n }}\n active={day.active}\n disabled={day.disabled}\n className=\"day-wrapper\"\n >\n \n {day.dayNumber}\n \n \n \n );\n })\n ) : (\n \n loading...\n \n )}\n \n \n \n \n \n {dmsAvailable ? (\n \n ) : (\n \n )}\n \n \n \n {\n e.preventDefault();\n dmsAvailable\n ? handleDmsMapExit(selectedSlot, selectedPoint)\n : handleNoDmsMapExit(selectedFranjaHoraria, selectedDay, selectedPoint);\n }}\n ariaLabel=\"aria label\"\n >\n Seleccionar\n \n \n
\n
\n
\n
\n \n \n ) : null;\n}\n","import {\n Container,\n ContainerGutter,\n ContainerPadding,\n CTA,\n Text,\n TextAlignment,\n TokenTextAppearance,\n} from '@volkswagen-onehub/components-core';\n\nimport React, { useEffect } from 'react';\nimport { Horario } from 'src/types';\n\ninterface FranjaHorariaProps {\n selectedFranjaHoraria: string;\n handleFranjaHoraria: (s: string) => void;\n horario: Horario;\n}\n\nexport function FranjaHoraria(props: FranjaHorariaProps) {\n const { handleFranjaHoraria, selectedFranjaHoraria, horario } = props;\n\n useEffect(() => {\n if (horario === 'afternon') {\n handleFranjaHoraria('Mediodía');\n } else if (horario === 'evening') {\n handleFranjaHoraria('Tarde');\n } else {\n handleFranjaHoraria('Mañana');\n }\n }, []);\n\n return (\n \n \n Selecciona una franja horaria\n \n \n {\n e.preventDefault();\n handleFranjaHoraria('Mañana');\n }}\n >\n Mañana\n \n {\n e.preventDefault();\n handleFranjaHoraria('Mediodía');\n }}\n >\n Mediodía\n \n {\n e.preventDefault();\n handleFranjaHoraria('Tarde');\n }}\n >\n Tarde\n \n \n \n );\n}\n","import React from 'react';\nimport {\n Container,\n Text,\n ContainerGutter,\n TextAlignment,\n styled,\n TokenTextAppearance,\n TokenTextColor,\n} from '@volkswagen-onehub/components-core';\nimport { CalendarSlot } from 'src/types';\n\ninterface hourWrapperProps {\n selected: any;\n}\n\nconst HourWrapper = styled.div`\n width: 68px;\n height: 33px;\n border: ${(props) => (props.selected ? '1px solid #001E50' : '1px solid #DFE4E8')};\n background-color: ${(props) => (props.selected ? '#001E50' : null)};\n color: ${(props) => (props.selected ? '#FFFFFF' : '#001E50')};\n border-radius: 16px;\n cursor: pointer;\n display: flex;\n justify-content: center;\n align-items: center;\n`;\n\ninterface slotsHorarioProps {\n avaiableHours: CalendarSlot[];\n // selectedHourIndex: number;\n handleSelectedSlot: any;\n selectedSlot: CalendarSlot;\n}\n\nexport const SlotsHorario = (props: slotsHorarioProps) => {\n const { avaiableHours, handleSelectedSlot, selectedSlot } = props;\n\n const checkIfHourIsSelected = (slot: CalendarSlot) => {\n if (selectedSlot) {\n return slot.from === selectedSlot.from ? true : false;\n }\n return false;\n };\n\n return (\n \n {avaiableHours && avaiableHours.length > 0 ? (\n avaiableHours.map((slot: CalendarSlot, i) => {\n return (\n {\n e.preventDefault();\n handleSelectedSlot(slot, i);\n }}\n key={slot.from}\n selected={checkIfHourIsSelected(slot)}\n >\n \n {slot.hour.slice(0, 5)}\n \n \n );\n })\n ) : (\n \n No hay horas disponibles en esta franja.\n \n )}\n \n );\n};\n","import { Container, ContainerPadding, styled, Tabs, Text } from '@volkswagen-onehub/components-core';\nimport React, { useEffect, useState } from 'react';\nimport { SlotsHorarios } from './CalendarioCita';\nimport { CalendarSlot } from 'src/types';\nimport { SlotsHorario } from '.';\nimport { checkIfEvening, checkIfMidDay, checkIfMorning } from '../NewMap';\n\nconst TabsWrapper = styled.div`\n ul {\n margin: 5px;\n width: 86vw;\n\n @media screen and (min-width: 560px) {\n width: 76vw;\n }\n @media screen and (min-width: 960px) {\n width: 640px;\n }\n }\n`;\n\ninterface TabsHorariosProps {\n handleSelectedSlot: any;\n selectedSlot: CalendarSlot;\n horarios: SlotsHorarios;\n}\n\nexport function TabsHorario(props: TabsHorariosProps) {\n const { handleSelectedSlot, selectedSlot, horarios } = props;\n\n const [defaultIndex, setDefaultIndex] = useState(0);\n\n useEffect(() => {\n if (selectedSlot) {\n const defaultIndex = handleDefaultTabIndex(selectedSlot);\n setDefaultIndex(defaultIndex);\n }\n }, [selectedSlot]);\n\n const handleDefaultTabIndex = (slot: CalendarSlot) => {\n const slotHour = new Date(`1/1/1999 ${slot.hour}`);\n\n if (checkIfMorning(slotHour)) {\n return 0;\n } else if (checkIfMidDay(slotHour)) {\n return 1;\n } else if (checkIfEvening(slotHour)) {\n return 2;\n }\n return 0;\n };\n\n return (\n \n {e.preventDefault()}}>\n {\n setDefaultIndex(index);\n }}\n >\n {{\n title: Mañana,\n content: (\n \n \n \n ),\n key: 'a',\n }}\n {{\n title: Mediodía,\n content: (\n \n \n \n ),\n key: 'b',\n }}\n {{\n title: Tarde,\n content: (\n \n \n \n ),\n key: 'c',\n }}\n \n \n \n );\n}\n","import axios, { AxiosResponse } from 'axios';\nimport { Availability, DealersData } from 'src/types';\nimport { FeatureAppConfig } from 'src/feature-app';\nimport { getMolecularUrl } from 'src/bff';\nimport dayjs from 'dayjs';\nimport { useGetBrand } from 'src/feature-app/hooks';\n\nexport const getSlots = async (\n config: FeatureAppConfig,\n dealer: DealersData,\n start?: number,\n end?: number\n): Promise> => {\n const groupBrand = useGetBrand();\n const { firstDayOfMonth, lastDayOfMonth } = getFirstAndLastDayOfMonth();\n\n const from = start ? start : firstDayOfMonth;\n const to = end ? end : lastDayOfMonth;\n\n const MOLECULAR_URL = getMolecularUrl(); // Legacy\n\n const { kvps, codInstalacion } = dealer;\n const slots = await axios.get(\n `${MOLECULAR_URL}/request-eapi-availability.php?group_brand=${groupBrand}&kvps=${kvps}&cod_instalacion=${codInstalacion}×tamp_from=${from}×tamp_to=${to}&check_dealer=true`\n );\n\n return slots;\n};\n\nexport const getFirstAndLastDayOfMonth = (\n monthNumber?: string,\n yearNumber?: string\n): { firstDayOfMonth: number; lastDayOfMonth: number } => {\n let firstDayOfMonth;\n let lastDayOfMonth;\n\n if (yearNumber && monthNumber) {\n firstDayOfMonth = Number(\n dayjs()\n .locale('es')\n .utc()\n .month(Number(monthNumber) - 1) // Months are zero indexed, so January is month 0.\n .year(Number(yearNumber))\n .startOf('month')\n .format('x')\n );\n lastDayOfMonth = Number(\n dayjs()\n .locale('es')\n .utc()\n // .add(1, 'month')\n .month(Number(monthNumber) - 1)\n .year(Number(yearNumber))\n .endOf('month')\n .format('x')\n );\n } else {\n firstDayOfMonth = Number(dayjs().add(1, 'day').locale('es').utc().format('x'));\n lastDayOfMonth = Number(\n dayjs()\n .locale('es')\n .utc()\n // .add(1, 'month')\n .endOf('month')\n .format('x')\n );\n }\n\n return { firstDayOfMonth, lastDayOfMonth };\n};\n\nexport const getToAndFromForCheckCita = (citaTo: number): { from: number; to: number } => {\n const from = Number(dayjs().locale('es').utc().format('x'));\n const to = Number(dayjs(citaTo).locale('es').utc().format('x'));\n\n return { from, to };\n};\n","import { styled, BreakpointWrapper, Breakpoints, ThemeProvider } from '@volkswagen-onehub/components-core';\nimport { CloseButton, AnteriorCTA } from 'src/components';\nimport React from 'react';\n\n\nconst CloseDiv = styled.div`\n padding: 24px 20px 20px;\n color: #001E50;\n background-color: #FFFFFF;\n margin-bottom: -2px;\n display: flex;\n justify-content: space-between;\n @media all and (min-width: 560px) {\n padding: 24px 0 0;\n display: flex;\n justify-content: center;\n align-items: center;\n width: var(--size-grid002);\n position: fixed;\n top: 0;\n color: #FFFFFF;\n background-color: transparent;\n margin-bottom: 0;\n }\n @media all and (min-width: 960px) {\n width: 80px;\n }\n`;\n\n\nexport const CloseInDealerCalendar = () => {\n\n return (\n \n \n \n \n \n \n \n \n );\n};\n","import {\n Breakpoints,\n BreakpointWrapper,\n} from '@volkswagen-onehub/components-core';\nimport React from 'react';\n\nexport const CTAsSiNo = [\n { label: 'Sí', value: 'true' },\n { label: 'No', value: 'false' },\n];\n\nexport const contactoOptionsTurismos = [\n {\n value: 'Email',\n label: 'Email',\n },\n {\n value: 'Telefono',\n label: 'Teléfono',\n },\n {\n value: 'Videollamada',\n label: 'Videollamada',\n },\n];\n\nexport const contactoOptionsComerciales = [\n {\n value: 'Teléfono',\n label: 'Teléfono',\n },\n {\n value: 'Email',\n label: 'Email',\n },\n];\nexport const CTAsHorario = [\n { label: 'Por la mañana', value: 'morning' },\n { label: 'Al mediodía', value: 'afternon' },\n { label: 'Por la tarde', value: 'evening' },\n];\n\n//Cita posventa\n\nexport interface CTAsMotivoDef {\n label: string;\n value: string;\n detalles?: string | JSX.Element;\n detallesPrevStep?: string;\n}\n\nexport const CTAsMotivo: CTAsMotivoDef[] = [\n {\n label: 'Mantenimiento',\n value: 'MANTENIMIENTO',\n detalles: 'la revisión de mantenimiento',\n detallesPrevStep: 'Revisión de mantenimiento',\n },\n {\n label: 'Neumáticos',\n value: 'NEUMATICOS',\n detalles: 'el cambio de neumáticos',\n detallesPrevStep: 'Cambio de neumáticos',\n },\n { label: 'Avería', value: 'REPARACION', detalles: 'la avería', detallesPrevStep: 'Reparación de avería' },\n {\n label: 'Revisión pre-ITV',\n value: 'PREITV',\n detalles: (\n <>\n la revisión{' '}\n \n
\n
\n pre-ITV\n \n ),\n detallesPrevStep: 'Revisión pre-ITV',\n },\n {\n label: 'Chapa y pintura',\n value: 'CARROCERIA',\n detalles: 'la reparación de chapa y pintura',\n detallesPrevStep: 'Reparación de chapa y pintura',\n },\n {\n label: 'Accesorios',\n value: 'ACCESORIOS',\n detalles: 'la instalación de los accesorios',\n detallesPrevStep: 'Instalación de accesorios',\n },\n // { label: 'Chequeo', value: 'CHEQUEO', detalles: 'el chequeo de tu coche', detallesPrevStep: 'Chequeo' },\n {\n label: 'Actualización Software ID',\n value: 'OTROS',\n detalles: 'Actualización Software ID',\n detallesPrevStep: 'Actualización Software ID'\n },\n {\n label: 'Otros',\n value: 'OTROS',\n detalles: 'el motivo de tu visita',\n detallesPrevStep: 'Visita'\n },\n];\n\n\nexport const CTAsDudas = [\n { label: 'Los plazos de entrega', value: 'plazos' },\n { label: 'Tu visita al concesionario', value: 'experiencia' },\n { label: 'El precio del modelo', value: 'precio' },\n { label: 'El equipamiento y los asistentes adicionales', value: 'equipamiento' },\n { label: 'El consumo del modelo', value: 'consumo' },\n { label: 'La garantía del modelo', value: 'garantia' },\n { label: 'Las condiciones de financiación', value: 'financiación' },\n { label: 'La situación actual', value: 'situacion' },\n { label: 'Otros motivos', value: 'otros' },\n];\n\n//SAC\n\nexport const contactoOptionsSAC = [\n {\n value: 'EMAIL',\n label: 'Email',\n },\n {\n value: 'TELEFONO',\n label: 'Teléfono',\n },\n // {\n // value: 'POSTAL',\n // label: 'Correo postal',\n // },\n {\n value: 'WHATSAPP',\n label: 'Whatsapp',\n },\n];\n\n//CEM postenta y CEM venta\n\nexport const ctaTestDrive = [\n { label: 'Sí, y realicé la prueba', value: '1' },\n { label: 'Sí, pero no realicé la prueba', value: '2' },\n { label: 'No, pero estaba interesado/a ', value: '3' },\n { label: 'No, y no estaba interesado/a', value: '4' },\n { label: 'Sin respuesta', value: '9' },\n];\n\nexport const ctaDatosIncorrectos = [\n { label: 'Marca incorrecta', value: 'Marca' },\n { label: 'Modelo incorrecto', value: 'Modelo' },\n { label: 'Concesionario incorrecto', value: 'Instalación' },\n { label: 'Persona de contacto incorrecta', value: 'Contacto' },\n];\n\nexport const ctaDatosIncorrectosPosventa = [\n { label: 'Marca incorrecta', value: 'Marca' },\n { label: 'Modelo incorrecto', value: 'Modelo' },\n { label: 'Servicio Oficial', value: 'Instalación' },\n { label: 'Persona de contacto incorrecta', value: 'Contacto' },\n];\n\n\nexport const ctaAlternativaTransporte = [\n { label: 'Sí, un vehículo de sustitución', value: '1' },\n { label: 'Sí, otra alternativa (transporte público, taxi, shuttle, …)', value: '2' },\n { label: 'No, pero la hubiera necesitado', value: '3' },\n { label: 'No, y tampoco la necesitaba', value: '4' },\n { label: 'Sin respuesta', value: '9' },\n];\nexport const ctaContactoSatisfaccion = [\n { label: 'Sí', value: '1' },\n { label: 'No', value: '2' },\n { label: 'Sin respuesta', value: '9' },\n];\n\nexport const ctaTrabajosAdicionales = [\n {label: 'Sí', value: '1'},\n {label: 'No', value: '2'},\n {label: 'Sin respuesta', value: '9'},\n]\n\nexport const ctaMotivoVisita = [\n\n { label: 'Revisión pre-ITV', value: '2' },\n { label: 'Avería circulando con el coche (fue necesario remolcarlo)', value: '4' },\n { label: 'Medida de servicio (excluida la medida de servicio diésel)', value: '10' },\n { label: 'Chapa y pintura', value: '6' },\n { label: 'Cambio de neumáticos', value: '3' },\n { label: 'Actualización de software', value: '11' },\n { label: 'Instalación de accesorios', value: '7' },\n { label: 'Servicio rutinario / de mantenimiento', value: '1' },\n { label: 'Otra visita inesperada (el coche pudo seguir circulando y elegiste tu Sercicio Oficial favorito)', value: '5' },\n { label: 'Otras reparaciones o reclamaciones (por ejemplo, problemas electrónicos)', value: '8' },\n { label: 'Sin respuesta', value: '99' },\n];\n\n\nexport const ctaEnvioCEM = [\n {\n label:\n 'Sí, mis respuestas pueden ser publicadas sin mi nombre en la Web Oficial Volkswagen y en la de [Concesionario]',\n value: '1',\n },\n {\n label:\n 'No, mis respuestas no pueden ser publicadas en la Web Oficial Volkswagen y en la de [Concesionario]',\n value: '2',\n },\n];\n\n// CEM ONESHOP\n\nexport const ctaPruebaTCross = [\n { label: 'Sí', value: 'true' },\n { label: 'No', value: 'false' },\n { label: 'No, pero me lo ofrecieron', value: 'No, pero me lo ofrecieron' },\n]\n\n// No renovador\n\nexport const CTAsMotor = [\n {\n label: 'Gasolina',\n value: 'gasolina',\n },\n {\n label: 'Diesel',\n value: 'diesel',\n },\n {\n label: 'Híbrido',\n value: 'híbrido',\n },\n {\n label: 'Eléctrico',\n value: 'electrico',\n },\n];\nexport const CTAsMotivoRenovador = [\n {\n label: 'Los plazos de entrega',\n value: '1',\n },\n {\n label: 'El precio y las opciones de financiación',\n value: '2',\n },\n {\n label: 'El diseño del coche',\n value: '3',\n },\n {\n label: 'El equipamiento del coche',\n value: '4',\n },\n {\n label: 'Relación calidad/precio',\n value: '5',\n },\n {\n label: 'La poca variedad de modelos y tecnologías disponibles',\n value: '6',\n },\n {\n label: 'Mi experiencia con el concesionario de venta',\n value: '7',\n },\n {\n label: 'Por problemas con mi vehículo anterior',//Esta es nueva\n value: '14',\n },\n {\n label: 'Otros motivos',\n value: '13',\n },\n];\n\nexport const CTAsMotivoRenovadorProblemas = [\n {\n label: 'El consumo de combustible del vehículo anterior',\n value: '8',\n },\n {\n label: 'Los costes de mantenimiento del vehículo anterior',\n value: '9',\n },\n {\n label: 'Las averías sufridas con el vehículo anterior',\n value: '10',\n },\n {\n label: 'Mi experiencia previa con el servicio de posventa',\n value: '11',\n },\n {\n label: 'Otras experiencias con la marca',\n value: '12',\n },\n];\n\nexport const CTAsMotivoRenovadorNoTengoExclusivo = [\n {\n label: 'Nada',\n value: 'nada',\n },\n];\n\nexport const CTAsUsadoNuevo = [\n {\n label: 'He comprado un vehículo nuevo',\n value: '1',\n },\n {\n label: 'He comprado un vehículo de ocasión',\n value: '2',\n },\n];\n\nexport const CTAsLugarCompra = [\n {\n label: 'Concesionario oficial',\n value: '1',\n },\n {\n label: 'Concesionario no oficial',\n value: '2',\n },\n {\n label: 'Empresa de Renting/Leasing',\n value: '3',\n },\n {\n label: 'Compra-venta privada',\n value: '4',\n },\n];\n\nexport const CTAsNuevoOcasión = [\n {\n label: 'Uno nuevo',\n value: 'nuevo',\n },\n {\n label: 'Uno de ocasión',\n value: 'ocasión',\n },\n];\n\nexport const CTAsFormasMovilidad = [\n {\n label: 'Coche compartido (car sharing)',\n value: '1',\n },\n {\n label: 'Moto compartida (moto sharing)',\n value: '2',\n },\n {\n label: 'Transporte público',\n value: '3',\n },\n {\n label: 'Patinete',\n value: '4',\n },\n {\n label: 'Moto',\n value: '5',\n },\n {\n label: 'Bicicleta',\n value: '6',\n },\n {\n label: 'Otros',\n value: '8',\n },\n];\nexport const CTAsFormasMovilidadExclusive = [\n {\n label: 'No tengo necesidad de utilizar ningún medio de transporte para desplazarme',\n value: '7',\n },\n];\nexport const CTAsRazones = [\n {\n label: 'Económicas',\n value: '1',\n },\n {\n label: 'Medioambientales',\n value: '2',\n },\n {\n label: 'Ahorro de tiempo',\n value: '3',\n },\n {\n label: 'Otras razones',\n value: '4',\n },\n];\n\n//BAJA COMUNICACIONES\n\nexport const questionTwoOptions = [\n {\n label: 'Ya no me interesa el contenido',\n value: 'No Interés'\n },\n {\n label: 'Recibo demasiadas comunicaciones vuestras',\n value: 'Demasiadas Comunicaciones'\n },\n {\n label: 'Tengo otras razones',\n value: 'Otros Motivos'\n },\n];\n","import React from 'react';\n\n//Navidad 2021\n\nexport const CTAsDisfrutarID4 = [\n {\n label: 'Será mi primera experiencia eléctrica',\n value: 'PrimeraExperiencia',\n },\n {\n label: 'Comprobar la duración de la batería',\n value: 'DuraciónBateria',\n },\n {\n label: 'Valorar el consumo y la facilidad de carga',\n value: 'ConsumoCarga',\n },\n {\n label: 'Conducir un coche sostenible',\n value: 'Sostenibilidad',\n },\n {\n label: 'Otros',\n value: 'Otros',\n },\n];\n\n//LANZAMIENTO TAIGO\n\nexport const CTAsTienesVolkswagen = [\n {\n label: 'Sí, lo tengo',\n value: 'Sí, lo tengo',\n },\n {\n label: 'Sí, lo tuve',\n value: 'Sí, lo tuve',\n },\n {\n label: 'No, nunca he tenido un Volkswagen.',\n value: 'No, nunca he tenido un Volkswagen.',\n },\n];\n\nexport const CTAsDesplazamientoTaigo = [\n {\n label: 'En mi coche',\n value: 'mi coche',\n },\n {\n label: 'En transporte público',\n value: 'transporte público',\n },\n {\n label: 'Con carsharing',\n value: 'carsharing',\n },\n {\n label: 'Otro',\n value: 'otro',\n },\n];\n\nexport const CTAsMotivacionCompraTaigo = [\n {\n label: 'Su diseño deportivo e innovador',\n value: 'diseño',\n },\n {\n label: 'El alto nivel de equipamiento',\n value: 'equipamiento',\n },\n {\n label: 'Que además de SUV es coupé',\n value: 'suv/coupe',\n },\n {\n label: '¡Tengo otros motivos!',\n value: 'otro',\n },\n];\n\nexport const CTAsOtroModeloTaigo = [\n {\n label: 'Sí, tengo otros.',\n value: 'true',\n },\n {\n label: 'No, con ninguno.',\n value: 'false',\n },\n];\n","import React from 'react';\n\n//Cita posventa\n\nexport const kilometrosValues = [\n '0km - 30.000km',\n '30.000km - 60.000km',\n '60.000km - 90.000km',\n '90.000km - 120.000km',\n '120.000km - 150.000km',\n '150.000km - 180.000km',\n 'Más de 180.000km',\n 'No estoy seguro',\n];\n\nexport const kilometrosComercialesValues = [\n '0km - 50.000km',\n '50.000km - 100.000km',\n '100.000km - 150.000km',\n '150.000km - 200.000km',\n '200.000km - 250.000km',\n '250.000km - 300.000km',\n '300.000km - 350.000km',\n 'Más de 400.000km',\n 'No estoy seguro',\n];\n\nexport const millageValues = [\n [0, 30000],\n [30000, 60000],\n [60000, 90000],\n [90000, 120000],\n [120000, 150000],\n [150000, 180000],\n [180000, 210000],\n];\n\nexport const millageComercialesValues = [\n [0, 50000],\n [50000, 100000],\n [100000, 150000],\n [150000, 200000],\n [200000, 250000],\n [250000, 300000],\n [300000, 350000],\n [350000, 400000],\n];\n\nexport const getKilometrosInfo = (isComerciales: boolean) => {\n if (isComerciales) {\n return { kilometrosValues: kilometrosComercialesValues, millageValues: millageComercialesValues };\n }\n return { kilometrosValues, millageValues };\n};\n\nexport const franjaHoraria = [\n { code: 'MANANA', name: ' por la mañana' },\n { code: 'MEDIODIA', name: ' al mediodía' },\n { code: 'TARDE', name: ' por la tarde' },\n];\n\nexport const meses = [\n {\n name: 'Enero',\n number: '01',\n },\n {\n name: 'Febrero',\n number: '02',\n },\n {\n name: 'Marzo',\n number: '03',\n },\n {\n name: 'Abril',\n number: '04',\n },\n {\n name: 'Mayo',\n number: '05',\n },\n {\n name: 'Junio',\n number: '06',\n },\n {\n name: 'Julio',\n number: '07',\n },\n {\n name: 'Agosto',\n number: '08',\n },\n {\n name: 'Septiembre',\n number: '09',\n },\n {\n name: 'Octubre',\n number: '10',\n },\n {\n name: 'Noviembre',\n number: '11',\n },\n {\n name: 'Diciembre',\n number: '12',\n }\n];\n","import { FeatureAppEnvironment } from '@feature-hub/core';\nimport { ThemeName, ThemeProvider, styled, IntegratorRoot } from '@volkswagen-onehub/components-core';\nimport { CloseHandleV2 } from '@volkswagen-onehub/layer-manager';\nimport React from 'react';\nimport { Provider } from 'react-redux';\nimport { Store } from 'redux';\nimport { FeatureAppEnvironmentContext } from 'src/feature-app/hooks/use-feature-app-environment';\nimport { OneFormContext, OneFormProvider } from './OneForm';\nimport { getSentryHub } from './sentry';\nimport ErrorBoundary from './sentry/ErrorBoundary';\nimport withErrorBoundary from './sentry/withErrorBoundary';\n\ninterface LayerManagerWrapperProps {\n children: JSX.Element;\n theme?: ThemeName;\n store: Store;\n env: FeatureAppEnvironment;\n useOneFormContext?: any;\n close?: CloseHandleV2;\n}\n\nexport function LayerManagerWrapper({ children, theme, store, env, close }: LayerManagerWrapperProps) {\n const sentryHub = getSentryHub();\n\n return (\n \n \n \n \n \n {}} closeLayerCallback={() => {}}>\n {children}\n \n \n \n \n \n \n );\n}\n","import React, { useEffect, useState } from 'react';\nimport { Loader } from '@googlemaps/js-api-loader';\nimport { getGoogleApiKey } from 'src/bff';\n\nconst libraries = ['places'];\n\nexport default function LoadScriptInstance(props: any) {\n const [isLoaded, setIsLoaded] = useState(false);\n\n const loader = new Loader({\n apiKey: getGoogleApiKey(),\n libraries: ['places'],\n language: 'es',\n });\n\n useEffect(() => {\n const useLoader = async () => {\n const load = await loader.load();\n setIsLoaded(true);\n props.onMapLoad();\n };\n useLoader();\n }, []);\n\n return isLoaded ? props.children : null;\n}\n","import { BBox } from 'geojson';\nimport React, { useCallback, useEffect, useRef, useState } from 'react';\nimport { connect } from 'react-redux';\nimport { DealersData, Geometry, Installation, isDealerData, OneFormState, SelectedTab } from 'src/types';\nimport { Points } from 'src/types';\nimport { isGooglePlace, Suggestion } from 'src/feature-app/NewMap';\nimport { getGeometry, getPoints, getUserGeolocation, getUserSuggestion } from '../redux/selectors';\nimport { generateClusters } from 'src/feature-app/NewMap/generate-clusters';\nimport { getLocationOfDealerWithoutLoadInstance } from 'src/feature-app/NewMap/utils';\n\nexport const MapGeneralControllerContext = React.createContext(null);\nexport const useMapGeneralController = (): MapGeneralControllerMethods =>\n React.useContext(MapGeneralControllerContext) as MapGeneralControllerMethods;\n\ninterface MapGeneralControllerMethods {\n cardsDistanceRef: React.MutableRefObject;\n cardsTimeRef: React.MutableRefObject;\n centerInGeoLocatedCenter: () => void;\n centerMap: (newCenter: google.maps.LatLng) => void;\n centerToCalculateDistance: React.MutableRefObject;\n clusters: Points[];\n geoLocatedCenterRef: React.MutableRefObject;\n getNewClusters: () => void;\n handleApiLoaded: (map: google.maps.Map, maps: any) => void;\n handleChangeInMapZoom: (zoomIn: boolean) => void;\n handleClusterClick: (point: Points, isCluster?: boolean, recalculateClusters?: boolean) => void;\n handleHoverPoint: (p: Points) => void;\n handleMapMovement: () => void;\n handlePointClickAndCarouselMove: (p: Points, s?: boolean, preSelectedOrderValue?: SelectedTab) => void;\n handleSelectedPoint: (p: Points) => void;\n hoverPoint: Points;\n resetMap: () => void;\n mapHasMoved: boolean;\n mapMaxZoom: number;\n markerDimensions: MarkerDimensions;\n searchIsDealer: boolean;\n searchMoreDealers: () => void;\n moreDealersSearched: boolean;\n setMoreDealersSearched: React.Dispatch>;\n selectedPoint: Points;\n setSearchIsDealer: React.Dispatch>;\n superClusterRef: any;\n userIsGeoLocated: boolean;\n centerRef: React.MutableRefObject;\n}\nexport interface MarkerDimensions {\n width: number;\n height: number;\n}\n\nconst markerDimensions: MarkerDimensions = { width: 32, height: 44 };\nconst mapMaxZoom = 16;\n\nconst MapGeneralController = React.memo(\n (props: {\n children: JSX.Element;\n points: Points[];\n geometry: Geometry;\n userSuggestion: Suggestion;\n userGeolocation: Suggestion;\n dealer?: DealersData;\n skipMapMovementOnClick?: boolean;\n }) => {\n const { points, geometry, children, userSuggestion, userGeolocation, dealer, skipMapMovementOnClick } = props;\n // const { debug } = useOneFormContext(); // Causa de los rerenders\n const boundsRef = useRef(null);\n const zoomRef = useRef(null);\n const centerRef = useRef(null);\n const geoLocatedCenterRef = useRef(null);\n const centerToCalculateDistance = useRef(null);\n const mapRef = useRef(null);\n const mapsRef = useRef(null);\n const [selectedPoint, setSelectedPoint] = useState(null);\n const [hoverPoint, setHoverPoint] = useState(null);\n const [clusters, setClusters] = useState([]);\n const superClusterRef = useRef(null);\n const cardsTimeRef = useRef([]);\n const cardsDistanceRef = useRef([]);\n const [mapHasMoved, setMapHasMoved] = useState(false);\n const [searchIsDealer, setSearchIsDealer] = useState(null);\n const [userIsGeoLocated, setUserIsGeoLocated] = useState(null);\n const zoomListenerRef = useRef(null);\n const [moreDealersSearched, setMoreDealersSearched] = useState(null);\n const [mounted, setMounted] = useState(false);\n\n useEffect(() => {\n if (!userSuggestion) return;\n setMapHasMoved(false);\n if (isGooglePlace(userSuggestion)) {\n setSearchIsDealer(false);\n } else {\n setSearchIsDealer(true);\n\n // Hay que preseleccionar el dealer elegido\n if (points) {\n const selectedCluster = points.find((cluster) => { \n if (cluster.properties.dealer) {\n return (\n (!isGooglePlace(userSuggestion) && isDealerData(userSuggestion) &&\n cluster.properties.dealer.kvps === userSuggestion.kvps)\n ||\n (!isGooglePlace(userSuggestion) && !isDealerData(userSuggestion) &&\n cluster.properties.dealer.kvps === (userSuggestion as Installation).KVPSCode__c)\n );\n } else {\n return false;\n }\n });\n selectedCluster && handleSelectedPoint(selectedCluster);\n }\n\n }\n if (mapRef.current && mapsRef.current) {\n if (isGooglePlace(userSuggestion)) {\n initializeMapWithBounds(geometry.viewport);\n } else {\n if (geometry) {\n initalizeMapWithCenter(geometry.lat, geometry.lng);\n }\n }\n }\n }, [userSuggestion, points]);\n\n useEffect(() => {\n setMounted(true);\n return () => {\n mapRef.current = null;\n mapsRef.current = null;\n setMounted(false);\n };\n }, []);\n\n useEffect(() => {\n if (userGeolocation) {\n setUserIsGeoLocated(true);\n } else {\n setUserIsGeoLocated(false);\n geoLocatedCenterRef.current = null;\n }\n }, [userGeolocation]);\n\n const resetMap = () => {\n mapRef.current = null;\n mapsRef.current = null;\n };\n\n const handleApiLoaded = (map: google.maps.Map, maps: any) => {\n // En el caso de que se haya interactuado con el mapa y se oculte por alguna razón (calendario, filtros, etc),\n // se vuelve a crear una nueva instancia del mismo, perdiendo cualquier interacción creandose de nuevo el mapa\n // con la información inicial.\n if (!mapRef.current && !mapsRef.current) {\n mapRef.current = map;\n mapsRef.current = maps;\n\n window.map = map;\n window.maps = maps;\n setMapHasMoved(false);\n if (geometry && geometry.bounds) {\n // Caso de geolocalización o búsqueda de google\n initializeMapWithBounds(geometry.bounds);\n } else if (geometry && geometry.viewport) {\n // Caso de geolocalización o búsqueda de google\n initializeMapWithBounds(geometry.viewport);\n } else if (geometry && geometry.lat && geometry.lng) {\n // Caso dealer\n initalizeMapWithCenter(geometry.lat, geometry.lng);\n } else {\n // Caso Cita posventa Dealer. En este caso al no haber precargado el mapa anteriormente en el autosuggest no están las variables\n // de maps disponibles, por lo que se tienen que crear con el mapa que sea acaba de crear y sin usar LoadInstance.\n const { lat, lng } = getLocationOfDealerWithoutLoadInstance(dealer, maps);\n initalizeMapWithCenter(lat, lng);\n }\n setZoomListener(map, maps);\n } else {\n removeZoomListener(mapsRef.current);\n // Lógica para recrear el mapa antes de su ocultación.\n map.setCenter(centerRef.current);\n map.fitBounds(transformClusterBoundsToGoogleBounds(boundsRef.current));\n map.setZoom(zoomRef.current);\n\n mapRef.current = map;\n mapsRef.current = maps;\n setZoomListener(map, maps);\n }\n };\n\n const initializeMapWithBounds = (bounds: google.maps.LatLngBounds) => {\n handleSelectedPoint(null);\n // No debería ser necesario crear las siguientes variables, ya que con center y bounds funciona la primera carga.\n // Por alguna razón, después de seleccionar una cita y volver atrás da este error:\n // InvalidValueError: setCenter: not a LatLng or LatLngLiteral with finite coordinates: in property lat: not a number.\n // a pesar de que bounds es el mismo que en la primera carga y lat si que es un número.\n // Al calcular cada variable por separado no se produce este error.\n\n const { north, east, south, west } = getCardinalPoints(bounds);\n const sw = createLatLng(south, west);\n const ne = createLatLng(north, east);\n const newBounds = new mapsRef.current.LatLngBounds(sw, ne);\n const center = newBounds.getCenter();\n const lat = center.lat();\n const lng = center.lng();\n const latlng = createLatLng(lat, lng);\n\n mapRef.current.setCenter(latlng);\n mapRef.current.fitBounds(newBounds, 0);\n const clusterBounds: BBox = transformGoogleBoundsToClusterBounds(newBounds);\n if (isGooglePlace(userSuggestion) && userSuggestion.isGeoLocated) {\n geoLocatedCenterRef.current = center;\n }\n if (!geoLocatedCenterRef.current) {\n centerToCalculateDistance.current = center;\n } else {\n centerToCalculateDistance.current = geoLocatedCenterRef.current;\n }\n setTimeout(() => {\n mapRef.current.panTo(center);\n }, 0);\n setMapClusters(points, mapRef.current.getZoom(), clusterBounds, center);\n };\n\n const initalizeMapWithCenter = (lat: number, lng: number) => {\n const zoom = 16;\n const latlng = createLatLng(lat, lng);\n mapRef.current.setCenter(latlng);\n mapRef.current.setZoom(zoom);\n const bounds = getBounds();\n const clusterBounds = transformGoogleBoundsToClusterBounds(bounds);\n centerToCalculateDistance.current = latlng;\n setMapClusters(points, zoom, clusterBounds, latlng);\n };\n\n const setZoomListener = (map: google.maps.Map, maps: any) => {\n if (maps) {\n const listener = maps.event.addListener(map, 'zoom_changed', () => {\n const zoom = map.getZoom();\n // setMapClusters(points, zoom, boundsRef.current, centerRef.current);\n zoomRef.current = zoom;\n });\n zoomListenerRef.current = listener;\n }\n };\n\n const removeZoomListener = (maps: any) => {\n maps.event.removeListener(zoomListenerRef.current);\n };\n\n const setMapClusters = (\n points: Points[],\n zoom: number,\n bounds: BBox,\n center: google.maps.LatLng,\n param?: boolean\n ) => {\n // Solución al bug Uncaught RangeError: Maximum call stack size exceeded.\n\n if (zoom < 0) {\n return;\n }\n const { clusters, supercluster }: { clusters: Points[]; supercluster: any } = generateClusters(\n points,\n zoom,\n bounds\n );\n superClusterRef.current = supercluster;\n\n // En caso de que no encuentre dealers en la ubicación seleccionada en una búsqueda de google se hace zoom out\n // hasta que encuentre al menos 2. En caso de que sea una búsqueda de dealer, buscamos hasta encontrar 1.\n // Usamos isGooglePlace y no el flag the searchIsDealer porque en la primera carga no está disponible.\n let pointCount = getPointCount(clusters);\n\n if (pointCount > 1 && !isGooglePlace(userSuggestion)) {\n }\n\n if ((pointCount < 2 && isGooglePlace(userSuggestion)) || (pointCount === 0 && !isGooglePlace(userSuggestion))) {\n const { center, clusterBounds } = zoomOutMapForSearch(zoom);\n setMapClusters(points, zoom - 1, clusterBounds, center);\n return;\n }\n\n changeMapVariables(bounds, zoom, center);\n drawRectangle();\n\n if (userSuggestion && (!('isGooglePlace' in userSuggestion) || !userSuggestion.isGooglePlace) && searchIsDealer && !param) {\n const point = clusters.find((point) => {\n if (isDealerData(userSuggestion)) {\n return point.properties.dealer.kvps === (userSuggestion as DealersData).kvps;\n } else {\n return point.properties.dealer.kvps === (userSuggestion as Installation).KVPSCode__c;\n }\n });\n setClusters([point]);\n } else {\n setClusters(clusters);\n }\n };\n\n const getNewClusters = () => {\n resetCardReferences();\n const bounds = getBounds();\n const center = centerToCalculateDistance.current;\n const zoom = mapRef.current.getZoom();\n const clusterBounds = transformGoogleBoundsToClusterBounds(bounds);\n setSearchIsDealer(false);\n setMapClusters(points, zoom, clusterBounds, center, true);\n setMoreDealersSearched(true);\n setMapHasMoved(false);\n };\n\n /**\n * Función que hace zoom out, útil para realizar búsquedas de más talleres en caso de que los resultados no sean los deseados.\n * @param zoom\n */\n const zoomOutMapForSearch = (zoom: number) => {\n mapRef.current.setZoom(zoom);\n const bounds = mapRef.current.getBounds();\n const center = bounds.getCenter();\n const clusterBounds = transformGoogleBoundsToClusterBounds(bounds);\n return { bounds, center, clusterBounds };\n };\n\n /**\n * Devuelve el número de puntos que se encuentran dentro de los clusters.\n * @param clusters\n */\n const getPointCount = (clusters: Points[]): number => {\n return clusters.reduce((acc, cluster) => {\n if (cluster.properties.cluster) {\n return acc + cluster.properties.point_count;\n } else {\n return acc + 1;\n }\n }, 0);\n };\n\n /**\n * CTA Ver más talleres en la zona. Se hace un zoom out hasta que se encuentra mínimo un taller más\n */\n const searchMoreDealers = () => {\n setSearchIsDealer(false);\n setMapHasMoved(true);\n const { center, clusterBounds } = zoomOutMapForSearch(zoomRef.current);\n\n const { clusters } = generateClusters(points, zoomRef.current, clusterBounds);\n setMapClusters(points, zoomRef.current, clusterBounds, center, true);\n setMoreDealersSearched(true);\n let pointCount = getPointCount(clusters);\n\n if (pointCount === 1) {\n searchMoreDealers();\n }\n };\n\n /**\n * Las bounds de google maps van en referencia a SW y NE. No obstante las bounds necesarias para obtener los clusters van en referencia\n * NW y SE por lo que hay que obenter la equivalencia para que funcione correctamente.\n * @param googleBounds\n */\n const transformGoogleBoundsToClusterBounds = (googleBounds: google.maps.LatLngBounds): BBox => {\n const { north, east, south, west } = getCardinalPoints(googleBounds);\n\n return [west, south, east, north];\n };\n\n const transformClusterBoundsToGoogleBounds = (bounds: BBox): google.maps.LatLngBounds => {\n const sw = createLatLng(bounds[1], bounds[0]);\n const ne = createLatLng(bounds[3], bounds[2]);\n return new mapsRef.current.LatLngBounds(sw, ne);\n // const { north, east, south, west } = getCardinalPoints(bounds);\n\n // return [west, south, east, north];\n };\n\n const getCardinalPoints = (bounds: google.maps.LatLngBounds) => {\n const north = bounds.getNorthEast().lat();\n const east = bounds.getNorthEast().lng();\n const south = bounds.getSouthWest().lat();\n const west = bounds.getSouthWest().lng();\n\n return { north, east, south, west };\n };\n\n const getBounds = (): google.maps.LatLngBounds => mapRef.current.getBounds();\n\n /**\n * Transforma las coordenadas del point en coordenadas LatLng de Google Maps.\n * @param point\n */\n const getLatLngFromPoint = (point: Points): google.maps.LatLng =>\n createLatLng(point.geometry.coordinates[1], point.geometry.coordinates[0]);\n\n const createLatLng = (lat: number, lng: number): google.maps.LatLng => new mapsRef.current.LatLng(lat, lng);\n\n const changeMapVariables = (newBounds: BBox, zoom: number, center: google.maps.LatLng) => {\n // setBounds(newBounds);\n // mapRef.current.setZoom(zoom);\n boundsRef.current = newBounds;\n zoomRef.current = zoom;\n centerRef.current = center;\n if (isGooglePlace(userSuggestion) && !userGeolocation) {\n centerToCalculateDistance.current = center;\n }\n };\n\n const handleChangeInMapZoom = (zoomIn: boolean) => {\n const zoom = mapRef.current.getZoom();\n const newZoom = zoomIn ? zoom + 1 : zoom - 1;\n mapRef.current.setZoom(newZoom);\n\n handleMapMovement();\n };\n\n const handlePointClickAndCarouselMove = useCallback(\n (point: Points, scroll?: boolean, preSelectedOrderValue?: SelectedTab) => {\n handleSelectedPoint(point);\n\n if (scroll) {\n const cards = preSelectedOrderValue === 'horario' ? cardsTimeRef : cardsDistanceRef;\n const card = cards.current.find((el) => el.className.includes(point.properties.dealer.kvps));\n\n if (card) {\n // Añadir restriccion a solo desktop\n card.scrollIntoView({ block: 'center', behavior: 'smooth' });\n }\n }\n if (!skipMapMovementOnClick && checkIfPointIsInsideBounds(point)) {\n moveMapIfIsSlightlyOutBounds(point);\n } else {\n mapRef.current.panTo(getLatLngFromPoint(point));\n }\n },\n []\n );\n\n const handleSelectedPoint = useCallback((point: Points | null) => {\n setSelectedPoint(point);\n }, []);\n\n const handleHoverPoint = useCallback((point: Points | null) => {\n setHoverPoint(point);\n }, []);\n\n /**\n * Al clickar sobre un cluster se han de separar los dealers que contenga y hacer un zoom sobre la zona\n * sin perder los pines de la búsqueda anterior.\n * @param point\n * @param isCluster Este parámetro solo se usa cuando se clicka sobre una card para hacer el máximo zoom posible, ya\n * que si el pin se encuentra dentro de dos clusters no llega a mostrarlo correctamente con el expansion zoom.\n * @param recalculateClusters En mobile no funciona correctamente el recalculo de clusters ya que el mapa no está montado\n * y no se dispara el evento de zoom_changed por lo que necesitamos recalcular los clusters a mano para que al volver al mapa\n * estén los clusters correspondientes al nuevo zoom.\n */\n const handleClusterClick = (point: Points, isCluster?: boolean, recalculateClusters?: boolean) => {\n // breakCluster(clusterId);\n const parentCluster = clusters.find(\n (cluster) =>\n cluster.properties.cluster && (cluster.id === point.properties.parent_cluster_id || cluster.id === point.id)\n );\n if (parentCluster) {\n handleSelectedPoint(point);\n\n // Cálculo del zoom mínimo de exapansión + 1 para que se vean correctamente los nuevos pines en el mapa.\n const expansionZoom =\n isCluster && parentCluster.properties.point_count > 2\n ? mapMaxZoom - 3\n : Math.min(superClusterRef.current.getClusterExpansionZoom(parentCluster.id), mapMaxZoom);\n const center = createLatLng(point.geometry.coordinates[1], point.geometry.coordinates[0]);\n\n mapRef.current.setCenter(center);\n mapRef.current.setZoom(expansionZoom);\n zoomRef.current = expansionZoom;\n\n if (recalculateClusters || recalculateClusters === undefined) {\n setMapClusters(points, expansionZoom, boundsRef.current, center);\n }\n } else {\n handlePointClickAndCarouselMove(point, false);\n }\n };\n\n const resetCardReferences = () => {\n cardsDistanceRef.current = [];\n cardsTimeRef.current = [];\n };\n\n /**\n * Comprueba si el point se encuentra dentro o fuera de los límites para centrar el mapa en caso de que esté fuera.\n * @param point\n */\n const checkIfPointIsInsideBounds = (point: Points): boolean => {\n const bounds = getBounds();\n if (bounds.contains(getLatLngFromPoint(point))) {\n return true;\n } else {\n return false;\n }\n };\n\n /**\n * Si el pin se encuentra visualmente fuera de los límites del mapa hay que moverlo para que aparezca entero.\n */\n const moveMapIfIsSlightlyOutBounds = (point: Points) => {\n const lat = point.geometry.coordinates[1];\n const lng = point.geometry.coordinates[0];\n const { north, east, south, west } = getCardinalPoints(getBounds());\n const pointLatLng = getLatLngFromPoint(point);\n const northPoint = createLatLng(north, lng);\n const eastPoint = createLatLng(lat, east);\n const southPoint = createLatLng(south, lng);\n const westPoint = createLatLng(lat, west);\n\n const northDistance = distanceInPx(pointLatLng, northPoint);\n const eastDistance = distanceInPx(pointLatLng, eastPoint);\n const southDistance = distanceInPx(pointLatLng, southPoint);\n const westDistance = distanceInPx(pointLatLng, westPoint);\n\n let y = calculateY(northDistance, southDistance);\n let x = null;\n\n if (eastDistance < markerDimensions.width) {\n x = calculateEastDistance(eastDistance, southDistance);\n }\n if (westDistance < markerDimensions.width) {\n x = -markerDimensions.width;\n }\n if (x || y) {\n mapRef.current.panBy(x, y);\n }\n };\n\n const calculateY = (northDistance: number, southDistance: number) => {\n const south = calculateSouthDistance(southDistance);\n const north = -calculateNorthDistance(northDistance);\n\n if (south) {\n return south;\n }\n return north;\n };\n\n /**\n * Este cálculo se realiza por separado ya que en mobile está el carousel por encima y requiere más lógica.\n * @param southDistance\n */\n const calculateSouthDistance = (southDistance: number): number | null => {\n if (window.innerWidth < 960) {\n if (southDistance < markerDimensions.height + 220) {\n return markerDimensions.height + 220;\n }\n } else {\n if (southDistance < markerDimensions.height) {\n return markerDimensions.height;\n }\n }\n return 0;\n };\n\n const calculateNorthDistance = (northDistance: number): number | null => {\n if (window.innerWidth < 960) {\n if (northDistance < markerDimensions.height + 100) {\n return markerDimensions.height + 100;\n }\n } else {\n if (northDistance < markerDimensions.height + 56) {\n return markerDimensions.height + 56;\n } else {\n return 0;\n }\n }\n return 0;\n };\n\n const calculateEastDistance = (eastDistance: number, southDistance: number): number | null => {\n if (window.innerWidth < 959) {\n if (eastDistance < markerDimensions.width + 69 && southDistance < markerDimensions.height + 197) {\n return markerDimensions.width + 69;\n } else {\n return markerDimensions.height;\n }\n } else {\n return markerDimensions.width;\n }\n };\n /**\n * Devuelve la distancia en píxels entre dos puntos del mapa.\n *\n * @param position1\n * @param position2\n */\n const distanceInPx = (position1: google.maps.LatLng, position2: google.maps.LatLng) => {\n var p1 = mapRef.current.getProjection().fromLatLngToPoint(position1);\n var p2 = mapRef.current.getProjection().fromLatLngToPoint(position2);\n\n var pixelSize = Math.pow(2, -mapRef.current.getZoom());\n\n var d = Math.sqrt((p1.x - p2.x) * (p1.x - p2.x) + (p1.y - p2.y) * (p1.y - p2.y)) / pixelSize;\n\n return d;\n };\n\n /**\n * Dibuja las bounds en el mapa.\n * @param bounds\n */\n const drawRectangle = () => {\n new mapsRef.current.Rectangle({\n strokeColor: '#FF0000',\n strokeOpacity: 0, //debug ? 0.8 : 0,\n strokeWeight: 2,\n fillColor: '#FF0000',\n fillOpacity: 0, //debug ? 0.35 : 0,\n map: mapRef.current,\n bounds: getBounds(),\n });\n };\n\n const centerInGeoLocatedCenter = useCallback(() => {\n mapRef.current.setCenter(geoLocatedCenterRef.current);\n }, []);\n\n const centerMap = useCallback((newCenter: google.maps.LatLng) => {\n mapRef.current.setCenter(newCenter);\n }, []);\n\n const handleMapMovement = () => {\n if (!mapHasMoved) {\n setMapHasMoved(true);\n }\n };\n\n return (\n \n {children}\n \n );\n }\n);\n\nconst mapStateToProps = (state: OneFormState) => {\n return {\n points: getPoints(state),\n geometry: getGeometry(state),\n userSuggestion: getUserSuggestion(state),\n userGeolocation: getUserGeolocation(state),\n };\n};\n\nconst ConnectedComponent = connect(mapStateToProps)(MapGeneralController);\n\nexport { ConnectedComponent as MapGeneralController };\n","\nexport default function sortKD(ids, coords, nodeSize, left, right, depth) {\n if (right - left <= nodeSize) return;\n\n const m = (left + right) >> 1;\n\n select(ids, coords, m, left, right, depth % 2);\n\n sortKD(ids, coords, nodeSize, left, m - 1, depth + 1);\n sortKD(ids, coords, nodeSize, m + 1, right, depth + 1);\n}\n\nfunction select(ids, coords, k, left, right, inc) {\n\n while (right > left) {\n if (right - left > 600) {\n const n = right - left + 1;\n const m = k - left + 1;\n const z = Math.log(n);\n const s = 0.5 * Math.exp(2 * z / 3);\n const sd = 0.5 * Math.sqrt(z * s * (n - s) / n) * (m - n / 2 < 0 ? -1 : 1);\n const newLeft = Math.max(left, Math.floor(k - m * s / n + sd));\n const newRight = Math.min(right, Math.floor(k + (n - m) * s / n + sd));\n select(ids, coords, k, newLeft, newRight, inc);\n }\n\n const t = coords[2 * k + inc];\n let i = left;\n let j = right;\n\n swapItem(ids, coords, left, k);\n if (coords[2 * right + inc] > t) swapItem(ids, coords, left, right);\n\n while (i < j) {\n swapItem(ids, coords, i, j);\n i++;\n j--;\n while (coords[2 * i + inc] < t) i++;\n while (coords[2 * j + inc] > t) j--;\n }\n\n if (coords[2 * left + inc] === t) swapItem(ids, coords, left, j);\n else {\n j++;\n swapItem(ids, coords, j, right);\n }\n\n if (j <= k) left = j + 1;\n if (k <= j) right = j - 1;\n }\n}\n\nfunction swapItem(ids, coords, i, j) {\n swap(ids, i, j);\n swap(coords, 2 * i, 2 * j);\n swap(coords, 2 * i + 1, 2 * j + 1);\n}\n\nfunction swap(arr, i, j) {\n const tmp = arr[i];\n arr[i] = arr[j];\n arr[j] = tmp;\n}\n","\nexport default function within(ids, coords, qx, qy, r, nodeSize) {\n const stack = [0, ids.length - 1, 0];\n const result = [];\n const r2 = r * r;\n\n while (stack.length) {\n const axis = stack.pop();\n const right = stack.pop();\n const left = stack.pop();\n\n if (right - left <= nodeSize) {\n for (let i = left; i <= right; i++) {\n if (sqDist(coords[2 * i], coords[2 * i + 1], qx, qy) <= r2) result.push(ids[i]);\n }\n continue;\n }\n\n const m = Math.floor((left + right) / 2);\n\n const x = coords[2 * m];\n const y = coords[2 * m + 1];\n\n if (sqDist(x, y, qx, qy) <= r2) result.push(ids[m]);\n\n const nextAxis = (axis + 1) % 2;\n\n if (axis === 0 ? qx - r <= x : qy - r <= y) {\n stack.push(left);\n stack.push(m - 1);\n stack.push(nextAxis);\n }\n if (axis === 0 ? qx + r >= x : qy + r >= y) {\n stack.push(m + 1);\n stack.push(right);\n stack.push(nextAxis);\n }\n }\n\n return result;\n}\n\nfunction sqDist(ax, ay, bx, by) {\n const dx = ax - bx;\n const dy = ay - by;\n return dx * dx + dy * dy;\n}\n","\nimport sort from './sort';\nimport range from './range';\nimport within from './within';\n\nconst defaultGetX = p => p[0];\nconst defaultGetY = p => p[1];\n\nexport default class KDBush {\n constructor(points, getX = defaultGetX, getY = defaultGetY, nodeSize = 64, ArrayType = Float64Array) {\n this.nodeSize = nodeSize;\n this.points = points;\n\n const IndexArrayType = points.length < 65536 ? Uint16Array : Uint32Array;\n\n const ids = this.ids = new IndexArrayType(points.length);\n const coords = this.coords = new ArrayType(points.length * 2);\n\n for (let i = 0; i < points.length; i++) {\n ids[i] = i;\n coords[2 * i] = getX(points[i]);\n coords[2 * i + 1] = getY(points[i]);\n }\n\n sort(ids, coords, nodeSize, 0, ids.length - 1, 0);\n }\n\n range(minX, minY, maxX, maxY) {\n return range(this.ids, this.coords, minX, minY, maxX, maxY, this.nodeSize);\n }\n\n within(x, y, r) {\n return within(this.ids, this.coords, x, y, r, this.nodeSize);\n }\n}\n","\nexport default function range(ids, coords, minX, minY, maxX, maxY, nodeSize) {\n const stack = [0, ids.length - 1, 0];\n const result = [];\n let x, y;\n\n while (stack.length) {\n const axis = stack.pop();\n const right = stack.pop();\n const left = stack.pop();\n\n if (right - left <= nodeSize) {\n for (let i = left; i <= right; i++) {\n x = coords[2 * i];\n y = coords[2 * i + 1];\n if (x >= minX && x <= maxX && y >= minY && y <= maxY) result.push(ids[i]);\n }\n continue;\n }\n\n const m = Math.floor((left + right) / 2);\n\n x = coords[2 * m];\n y = coords[2 * m + 1];\n\n if (x >= minX && x <= maxX && y >= minY && y <= maxY) result.push(ids[m]);\n\n const nextAxis = (axis + 1) % 2;\n\n if (axis === 0 ? minX <= x : minY <= y) {\n stack.push(left);\n stack.push(m - 1);\n stack.push(nextAxis);\n }\n if (axis === 0 ? maxX >= x : maxY >= y) {\n stack.push(m + 1);\n stack.push(right);\n stack.push(nextAxis);\n }\n }\n\n return result;\n}\n","\nimport KDBush from 'kdbush';\n\nconst defaultOptions = {\n minZoom: 0, // min zoom to generate clusters on\n maxZoom: 16, // max zoom level to cluster the points on\n minPoints: 2, // minimum points to form a cluster\n radius: 40, // cluster radius in pixels\n extent: 512, // tile extent (radius is calculated relative to it)\n nodeSize: 64, // size of the KD-tree leaf node, affects performance\n log: false, // whether to log timing info\n\n // whether to generate numeric ids for input features (in vector tiles)\n generateId: false,\n\n // a reduce function for calculating custom cluster properties\n reduce: null, // (accumulated, props) => { accumulated.sum += props.sum; }\n\n // properties to use for individual points when running the reducer\n map: props => props // props => ({sum: props.my_value})\n};\n\nconst fround = Math.fround || (tmp => ((x) => { tmp[0] = +x; return tmp[0]; }))(new Float32Array(1));\n\nexport default class Supercluster {\n constructor(options) {\n this.options = extend(Object.create(defaultOptions), options);\n this.trees = new Array(this.options.maxZoom + 1);\n }\n\n load(points) {\n const {log, minZoom, maxZoom, nodeSize} = this.options;\n\n if (log) console.time('total time');\n\n const timerId = `prepare ${ points.length } points`;\n if (log) console.time(timerId);\n\n this.points = points;\n\n // generate a cluster object for each point and index input points into a KD-tree\n let clusters = [];\n for (let i = 0; i < points.length; i++) {\n if (!points[i].geometry) continue;\n clusters.push(createPointCluster(points[i], i));\n }\n this.trees[maxZoom + 1] = new KDBush(clusters, getX, getY, nodeSize, Float32Array);\n\n if (log) console.timeEnd(timerId);\n\n // cluster points on max zoom, then cluster the results on previous zoom, etc.;\n // results in a cluster hierarchy across zoom levels\n for (let z = maxZoom; z >= minZoom; z--) {\n const now = +Date.now();\n\n // create a new set of clusters for the zoom and index them with a KD-tree\n clusters = this._cluster(clusters, z);\n this.trees[z] = new KDBush(clusters, getX, getY, nodeSize, Float32Array);\n\n if (log) console.log('z%d: %d clusters in %dms', z, clusters.length, +Date.now() - now);\n }\n\n if (log) console.timeEnd('total time');\n\n return this;\n }\n\n getClusters(bbox, zoom) {\n let minLng = ((bbox[0] + 180) % 360 + 360) % 360 - 180;\n const minLat = Math.max(-90, Math.min(90, bbox[1]));\n let maxLng = bbox[2] === 180 ? 180 : ((bbox[2] + 180) % 360 + 360) % 360 - 180;\n const maxLat = Math.max(-90, Math.min(90, bbox[3]));\n\n if (bbox[2] - bbox[0] >= 360) {\n minLng = -180;\n maxLng = 180;\n } else if (minLng > maxLng) {\n const easternHem = this.getClusters([minLng, minLat, 180, maxLat], zoom);\n const westernHem = this.getClusters([-180, minLat, maxLng, maxLat], zoom);\n return easternHem.concat(westernHem);\n }\n\n const tree = this.trees[this._limitZoom(zoom)];\n const ids = tree.range(lngX(minLng), latY(maxLat), lngX(maxLng), latY(minLat));\n const clusters = [];\n for (const id of ids) {\n const c = tree.points[id];\n clusters.push(c.numPoints ? getClusterJSON(c) : this.points[c.index]);\n }\n return clusters;\n }\n\n getChildren(clusterId) {\n const originId = this._getOriginId(clusterId);\n const originZoom = this._getOriginZoom(clusterId);\n const errorMsg = 'No cluster with the specified id.';\n\n const index = this.trees[originZoom];\n if (!index) throw new Error(errorMsg);\n\n const origin = index.points[originId];\n if (!origin) throw new Error(errorMsg);\n\n const r = this.options.radius / (this.options.extent * Math.pow(2, originZoom - 1));\n const ids = index.within(origin.x, origin.y, r);\n const children = [];\n for (const id of ids) {\n const c = index.points[id];\n if (c.parentId === clusterId) {\n children.push(c.numPoints ? getClusterJSON(c) : this.points[c.index]);\n }\n }\n\n if (children.length === 0) throw new Error(errorMsg);\n\n return children;\n }\n\n getLeaves(clusterId, limit, offset) {\n limit = limit || 10;\n offset = offset || 0;\n\n const leaves = [];\n this._appendLeaves(leaves, clusterId, limit, offset, 0);\n\n return leaves;\n }\n\n getTile(z, x, y) {\n const tree = this.trees[this._limitZoom(z)];\n const z2 = Math.pow(2, z);\n const {extent, radius} = this.options;\n const p = radius / extent;\n const top = (y - p) / z2;\n const bottom = (y + 1 + p) / z2;\n\n const tile = {\n features: []\n };\n\n this._addTileFeatures(\n tree.range((x - p) / z2, top, (x + 1 + p) / z2, bottom),\n tree.points, x, y, z2, tile);\n\n if (x === 0) {\n this._addTileFeatures(\n tree.range(1 - p / z2, top, 1, bottom),\n tree.points, z2, y, z2, tile);\n }\n if (x === z2 - 1) {\n this._addTileFeatures(\n tree.range(0, top, p / z2, bottom),\n tree.points, -1, y, z2, tile);\n }\n\n return tile.features.length ? tile : null;\n }\n\n getClusterExpansionZoom(clusterId) {\n let expansionZoom = this._getOriginZoom(clusterId) - 1;\n while (expansionZoom <= this.options.maxZoom) {\n const children = this.getChildren(clusterId);\n expansionZoom++;\n if (children.length !== 1) break;\n clusterId = children[0].properties.cluster_id;\n }\n return expansionZoom;\n }\n\n _appendLeaves(result, clusterId, limit, offset, skipped) {\n const children = this.getChildren(clusterId);\n\n for (const child of children) {\n const props = child.properties;\n\n if (props && props.cluster) {\n if (skipped + props.point_count <= offset) {\n // skip the whole cluster\n skipped += props.point_count;\n } else {\n // enter the cluster\n skipped = this._appendLeaves(result, props.cluster_id, limit, offset, skipped);\n // exit the cluster\n }\n } else if (skipped < offset) {\n // skip a single point\n skipped++;\n } else {\n // add a single point\n result.push(child);\n }\n if (result.length === limit) break;\n }\n\n return skipped;\n }\n\n _addTileFeatures(ids, points, x, y, z2, tile) {\n for (const i of ids) {\n const c = points[i];\n const isCluster = c.numPoints;\n\n let tags, px, py;\n if (isCluster) {\n tags = getClusterProperties(c);\n px = c.x;\n py = c.y;\n } else {\n const p = this.points[c.index];\n tags = p.properties;\n px = lngX(p.geometry.coordinates[0]);\n py = latY(p.geometry.coordinates[1]);\n }\n\n const f = {\n type: 1,\n geometry: [[\n Math.round(this.options.extent * (px * z2 - x)),\n Math.round(this.options.extent * (py * z2 - y))\n ]],\n tags\n };\n\n // assign id\n let id;\n if (isCluster) {\n id = c.id;\n } else if (this.options.generateId) {\n // optionally generate id\n id = c.index;\n } else if (this.points[c.index].id) {\n // keep id if already assigned\n id = this.points[c.index].id;\n }\n\n if (id !== undefined) f.id = id;\n\n tile.features.push(f);\n }\n }\n\n _limitZoom(z) {\n return Math.max(this.options.minZoom, Math.min(Math.floor(+z), this.options.maxZoom + 1));\n }\n\n _cluster(points, zoom) {\n const clusters = [];\n const {radius, extent, reduce, minPoints} = this.options;\n const r = radius / (extent * Math.pow(2, zoom));\n\n // loop through each point\n for (let i = 0; i < points.length; i++) {\n const p = points[i];\n // if we've already visited the point at this zoom level, skip it\n if (p.zoom <= zoom) continue;\n p.zoom = zoom;\n\n // find all nearby points\n const tree = this.trees[zoom + 1];\n const neighborIds = tree.within(p.x, p.y, r);\n\n const numPointsOrigin = p.numPoints || 1;\n let numPoints = numPointsOrigin;\n\n // count the number of points in a potential cluster\n for (const neighborId of neighborIds) {\n const b = tree.points[neighborId];\n // filter out neighbors that are already processed\n if (b.zoom > zoom) numPoints += b.numPoints || 1;\n }\n\n // if there were neighbors to merge, and there are enough points to form a cluster\n if (numPoints > numPointsOrigin && numPoints >= minPoints) {\n let wx = p.x * numPointsOrigin;\n let wy = p.y * numPointsOrigin;\n\n let clusterProperties = reduce && numPointsOrigin > 1 ? this._map(p, true) : null;\n\n // encode both zoom and point index on which the cluster originated -- offset by total length of features\n const id = (i << 5) + (zoom + 1) + this.points.length;\n\n for (const neighborId of neighborIds) {\n const b = tree.points[neighborId];\n\n if (b.zoom <= zoom) continue;\n b.zoom = zoom; // save the zoom (so it doesn't get processed twice)\n\n const numPoints2 = b.numPoints || 1;\n wx += b.x * numPoints2; // accumulate coordinates for calculating weighted center\n wy += b.y * numPoints2;\n\n b.parentId = id;\n\n if (reduce) {\n if (!clusterProperties) clusterProperties = this._map(p, true);\n reduce(clusterProperties, this._map(b));\n }\n }\n\n p.parentId = id;\n clusters.push(createCluster(wx / numPoints, wy / numPoints, id, numPoints, clusterProperties));\n\n } else { // left points as unclustered\n clusters.push(p);\n\n if (numPoints > 1) {\n for (const neighborId of neighborIds) {\n const b = tree.points[neighborId];\n if (b.zoom <= zoom) continue;\n b.zoom = zoom;\n clusters.push(b);\n }\n }\n }\n }\n\n return clusters;\n }\n\n // get index of the point from which the cluster originated\n _getOriginId(clusterId) {\n return (clusterId - this.points.length) >> 5;\n }\n\n // get zoom of the point from which the cluster originated\n _getOriginZoom(clusterId) {\n return (clusterId - this.points.length) % 32;\n }\n\n _map(point, clone) {\n if (point.numPoints) {\n return clone ? extend({}, point.properties) : point.properties;\n }\n const original = this.points[point.index].properties;\n const result = this.options.map(original);\n return clone && result === original ? extend({}, result) : result;\n }\n}\n\nfunction createCluster(x, y, id, numPoints, properties) {\n return {\n x: fround(x), // weighted cluster center; round for consistency with Float32Array index\n y: fround(y),\n zoom: Infinity, // the last zoom the cluster was processed at\n id, // encodes index of the first child of the cluster and its zoom level\n parentId: -1, // parent cluster id\n numPoints,\n properties\n };\n}\n\nfunction createPointCluster(p, id) {\n const [x, y] = p.geometry.coordinates;\n return {\n x: fround(lngX(x)), // projected point coordinates\n y: fround(latY(y)),\n zoom: Infinity, // the last zoom the point was processed at\n index: id, // index of the source feature in the original input array,\n parentId: -1 // parent cluster id\n };\n}\n\nfunction getClusterJSON(cluster) {\n return {\n type: 'Feature',\n id: cluster.id,\n properties: getClusterProperties(cluster),\n geometry: {\n type: 'Point',\n coordinates: [xLng(cluster.x), yLat(cluster.y)]\n }\n };\n}\n\nfunction getClusterProperties(cluster) {\n const count = cluster.numPoints;\n const abbrev =\n count >= 10000 ? `${Math.round(count / 1000) }k` :\n count >= 1000 ? `${Math.round(count / 100) / 10 }k` : count;\n return extend(extend({}, cluster.properties), {\n cluster: true,\n cluster_id: cluster.id,\n point_count: count,\n point_count_abbreviated: abbrev\n });\n}\n\n// longitude/latitude to spherical mercator in [0..1] range\nfunction lngX(lng) {\n return lng / 360 + 0.5;\n}\nfunction latY(lat) {\n const sin = Math.sin(lat * Math.PI / 180);\n const y = (0.5 - 0.25 * Math.log((1 + sin) / (1 - sin)) / Math.PI);\n return y < 0 ? 0 : y > 1 ? 1 : y;\n}\n\n// spherical mercator to longitude/latitude\nfunction xLng(x) {\n return (x - 0.5) * 360;\n}\nfunction yLat(y) {\n const y2 = (180 - y * 360) * Math.PI / 180;\n return 360 * Math.atan(Math.exp(y2)) / Math.PI - 90;\n}\n\nfunction extend(dest, src) {\n for (const id in src) dest[id] = src[id];\n return dest;\n}\n\nfunction getX(p) {\n return p.x;\n}\nfunction getY(p) {\n return p.y;\n}\n","import { BBox } from 'geojson';\nimport Supercluster from 'supercluster';\n\nexport const generateClusters = (points: any[], zoom: number, bounds: BBox): { clusters: any; supercluster: any } => {\n const options = { radius: 40, maxZoom: 20 };\n\n // const superclusterRef = useRef>();\n let supercluster;\n\n // const pointsRef = useRef>>();\n const zoomInt = Math.round(zoom);\n\n if (!supercluster) {\n supercluster = new Supercluster(options);\n supercluster.load(points);\n }\n\n if (bounds) {\n const clusters = supercluster.getClusters(bounds, zoomInt);\n return { clusters, supercluster };\n }\n return { clusters: null, supercluster: null };\n};\n","import { getReverseGeocode } from 'src/feature-app';\nimport { Geometry } from 'src/types';\n\nfunction getCurrentPosition(options = { timeout: 10000 }): Promise {\n return new Promise((resolve, reject) => {\n navigator.geolocation.getCurrentPosition(resolve, reject, options);\n });\n}\n\nexport const handleLocation = async (): Promise<{ geometry: Geometry; name: string }> => {\n try {\n const { coords } = await getCurrentPosition();\n const { latitude, longitude } = coords;\n const { geometry, name } = await getReverseGeocode({ lat: latitude, lng: longitude });\n\n return { geometry, name };\n // Handle coordinates\n } catch (error) {\n // Handle error\n console.error(error);\n return { geometry: null, name: '' };\n }\n};\n","import { useEffect, useState } from 'react';\nimport { Points } from 'src/types';\n\nexport const usePinState = (selectedPoint: Points, hoverPoint: Points, point: Points) => {\n const [isActive, setIsActive] = useState(false);\n const [isHover, setIsHover] = useState(false);\n\n useEffect(() => {\n if (selectedPoint) {\n if (isCluster(point)) {\n sameClusterId(selectedPoint, point) ? setIsActive(true) : setIsActive(false);\n } else {\n sameKvps(selectedPoint, point) ? setIsActive(true) : setIsActive(false);\n }\n }\n\n if (hoverPoint) {\n if (window.innerWidth < 959) {\n // Hover solo se aplica a desktop\n setIsHover(false);\n } else {\n if (isCluster(point)) {\n sameClusterId(hoverPoint, point) ? setIsHover(true) : setIsHover(false);\n } else {\n sameKvps(hoverPoint, point) ? setIsHover(true) : setIsHover(false);\n }\n }\n }\n }, [selectedPoint, hoverPoint]);\n\n return { isActive, isHover };\n};\n\nconst isCluster = (point: Points) => point.properties.cluster;\n\nconst sameClusterId = (selectedPoint: Points, point: Points) => {\n if (selectedPoint.properties.parent_cluster_id && point.id) {\n return selectedPoint.properties.parent_cluster_id === point.id;\n }\n return false;\n};\nconst sameKvps = (selectedPoint: Points, point: Points) => {\n if (\n selectedPoint.properties &&\n selectedPoint.properties.dealer &&\n point.properties &&\n point.properties.dealer &&\n selectedPoint.properties.dealer.kvps === point.properties.dealer.kvps\n ) {\n return true;\n }\n return false;\n};\n","import { useCallback, useEffect, useRef, useState } from 'react';\nimport { debounce } from 'src/feature-app';\n\nexport function useAddressPredictions(input: string, selectedValue: boolean): any[] {\n\n \n const [predictions, setPredictions] = useState([]);\n\n const autocomplete = useRef();\n\n if (!autocomplete.current && window.google) {\n autocomplete.current = new window.google.maps.places.AutocompleteService();\n }\n\n async function getPlacePredictions(input: string) {\n await autocomplete.current.getPlacePredictions(\n { input, types: ['geocode'], componentRestrictions: { country: 'es' } },\n (predictions) => {\n // El type regions también devuelve como resultado el país, por lo que hay que filtrarlo.\n if (predictions) {\n predictions = predictions.filter((prediction) => !prediction.types.includes('country'));\n setPredictions(predictions.map((prediction) => prediction.description));\n }\n }\n );\n }\n\n const debouncedGetPlacePredictions = useCallback(debounce(getPlacePredictions, 500), []);\n\n useEffect(() => {\n if (!selectedValue && input.length > 2) {\n debouncedGetPlacePredictions(input);\n }\n }, [input]);\n\n return predictions;\n}\n","import { checkIfMidDay, checkIfMorning, getNormalizedDate } from 'src/feature-app/NewMap';\nimport {\n getYYYYMMDDx, \n hourAndMinute,\n} from 'src/feature-app';\n\nexport const getFranjaAndDayFrom = (from: number): { day: string; franjaHoraria: 'Mañana' | 'Mediodía' | 'Tarde' } => {\n const day = getYYYYMMDDx(Number(from));\n const hour = hourAndMinute(from);\n const normalizdedDate = getNormalizedDate(hour);\n const franjaHoraria = checkIfMorning(normalizdedDate)\n ? 'Mañana'\n : checkIfMidDay(normalizdedDate)\n ? 'Mediodía'\n : 'Tarde';\n\n return { day, franjaHoraria };\n};\n","import {\n Assessors,\n Slot,\n} from 'src/types';\nimport dayjs from 'dayjs';\n\n\nexport const createNoDmsSlotAndAssessor = (franjaHoraria: string, day: string): { slot: Slot; assessor: Assessors } => {\n const from = Number(dayjs.utc(`${day} 01:00`, 'YYYY-MM-DD HH:mm').format('x'));\n const to = Number(dayjs.utc(`${day} 23:59`, 'YYYY-MM-DD HH:mm').format('x'));\n const code = franjaHoraria === 'Mañana' ? 'MANANA' : franjaHoraria === 'Mediodía' ? 'MEDIODIA' : 'TARDE';\n const assessor: Assessors = { code: '0', name: 'Todos' };\n const slot: Slot = {\n from,\n to,\n replacementCarServiceAvailable: false,\n dayMoment: {\n code,\n name: franjaHoraria,\n },\n assessorCode: '0',\n };\n\n return { slot, assessor };\n};\n","import {\n Breakpoints,\n Container,\n ContainerPadding,\n CTA,\n Layout,\n styled,\n Text,\n TextAlignment,\n ThemeProvider,\n TokenTextAppearance,\n TokenTextColor\n} from '@volkswagen-onehub/components-core';\nimport { Calendar, FleetServicePrivate, CarPickupService } from 'src/icons-core-imports';\nimport React, { useEffect, useState } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { useMapGeneralController } from 'src/feature-app';\nimport { Points } from 'src/types';\nimport { Horario, OneFormState } from 'src/types';\nimport { getDistanceFromLatLngCenter } from 'src/feature-app/NewMap';\nimport { useTrackingManager } from 'src/feature-app/hooks/use-tracking-manager';\nimport { usePinState } from 'src/feature-app/NewMap/usePinState';\nimport { useIsComerciales } from 'src/feature-app';\n\ninterface BoxCardProps {\n selected?: boolean;\n isCarousel: boolean;\n isHover?: boolean;\n isFirstDesktop?: boolean;\n greyCard?: boolean;\n iDBuzzExclusive?: boolean;\n}\n\nconst BoxCard = styled.div`\n width: 100%;\n margin-top: ${(props) => (props.isCarousel || props.isFirstDesktop || props.iDBuzzExclusive ? '0' : '20px')};\n padding: ${(props) => (props.isCarousel ? '12px' : '20px')};\n border: ${(props) =>\n props.selected && props.greyCard && !props.isCarousel\n ? '2px solid #6A767D'\n : props.greyCard && !props.isCarousel\n ? '1px solid #6A767D'\n : props.selected && !props.isCarousel\n ? '2px solid #FFFFFF'\n : props.isCarousel\n ? 'none'\n : '1px solid rgba(255,255,255,0.44)'};\n :hover {\n border: ${(props) => (\n props.isCarousel\n ? 'none'\n : props.selected && props.greyCard\n ? '2px solid #6A767D'\n : props.greyCard\n ? '1px solid #6A767D'\n : props.selected\n ? '2px solid #FFFFFF'\n : '1px solid #4cc7f4')};\n }\n\n @media all and (min-width: 560px) {\n margin-top: ${(props) => (props.isCarousel || props.isFirstDesktop || props.iDBuzzExclusive ? '0' : '24px')};\n padding: 20px;\n }\n @media screen and (min-width: 960px) {\n .main {\n border: ${(props) =>\n props.isCarousel\n ? 'none'\n : props.selected\n ? '2px solid #001e50;'\n : props.isHover\n ? '1px solid #0040C5'\n : '1px solid #DFE4E8'};\n }\n .inverted {\n border: ${(props) =>\n props.isCarousel\n ? 'none'\n : props.selected\n ? '2px solid #FFFFFF'\n : props.isHover\n ? '1px solid #4cc7f4'\n : '1px solid rgba(255,255,255,0.44)'};\n }\n \n }\n @media all and (min-width: 1600px) {\n margin-top: ${(props) => (props.isCarousel || props.isFirstDesktop || props.iDBuzzExclusive ? '0' : '28px')};\n }\n`;\n\ninterface isCarouselProps {\n isCarousel: boolean;\n}\n\nconst CTAVerMasHorasWrapper = styled.div`\n button {\n color: #ffffff;\n font-size: ${(props) => (props.isCarousel ? '12px' : null)};\n svg {\n height: ${(props) => (props.isCarousel ? '10px' : null)};\n width: ${(props) => (props.isCarousel ? '10px' : null)};\n }\n }\n`;\n\nconst EllipsisTextWrapper = styled.p<{ greyCard?: boolean }>`\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n margin-top: 0px;\n margin-bottom: 0px;\n color: ${(props) => (props.greyCard ? '#6A767D' : '#FFFFFF')};\n`;\nconst GreyText = styled.span<{ greyCard?: boolean }>`\n color: ${(props) => (props.greyCard ? '#6A767D' : '#FFFFFF')};\n`;\nconst SVGSize = styled.div<{ greyCard: boolean }>`\n padding-left: 16px;\n svg {\n height: 20px;\n width: auto;\n color: ${(props) => props.greyCard ? '#6A767D' : '#FFFFFF'};\n }\n`;\nconst CustomCTA = styled.button<{ greyCard?: boolean }>`\n height: 32px;\n width: max-content;\n padding: 8px 16px;\n border: none;\n cursor: pointer;\n border-radius: 22px;\n display: flex;\n align-items: center;\n background-color: ${(props) => props.greyCard ? '#6A767D' : '#FFFFFF'};\n color: ${(props) => props.greyCard ? '#DFE4E8' : '#001E50'};\n :hover {\n background-color: ${(props) => props.greyCard ? '#6A767D' : 'rgba(255,255,255,0.90)'};\n }\n`;\nconst CustomTerciayCTA = styled.button<{ greyCard?: boolean }>`\n color: ${(props) => props.greyCard ? '#6A767D' : '#FFFFFF'};\n display: flex;\n border: none;\n cursor: pointer;\n background: none;\n align-items: center;\n padding:0 0 2px;\n border-bottom: ${(props) => props.greyCard ? '1px solid #6A767D' : '1px solid #FFFFFF'};\n :hover {\n background-color: ${(props) => props.greyCard ? '#6A767D' : 'rgba(255,255,255,0.90)'};\n }\n svg{\n color: ${(props) => props.greyCard ? '#6A767D' : '#FFFFFF'};\n }\n div {\n color: ${(props) => props.greyCard ? '#6A767D' : '#FFFFFF'};\n }\n`;\nconst ExclusiveIDBuzz = styled.span`\n align-items: center;\n background-color: #DFC526;\n border-radius: 20px;\n color: #001E50;\n display: flex;\n font-size: 10px;\n height: 21px;\n justify-content: center;\n position: relative;\n right: 10px;\n width: 116px;\n top:10.5px;\n @media all and (min-width: 560px) {\n right: 20px;\n }\n @media all and (min-width: 960px) {\n right: 0;\n }\n`\n\ninterface DealerCardProps {\n distanceFromCenter: string;\n handleSeleccionarOnClick?: any;\n handleShowCalendarOnClick?: any;\n // center?: Center,\n isCarousel: boolean;\n dealerInfo: any;\n point: Points;\n slots: any;\n handleShowSlots?: (point: Points) => string | null;\n isCitaPosventa?: boolean;\n isFirstDesktop?: boolean;\n carPickupSelected?: boolean;\n replacementCarSelected?: boolean;\n}\n\nexport const NewDealerCard = React.memo((props: DealerCardProps) => {\n const {\n distanceFromCenter,\n isCarousel,\n dealerInfo,\n point,\n handleShowSlots,\n isCitaPosventa,\n isFirstDesktop,\n carPickupSelected,\n replacementCarSelected\n } = props;\n const isComerciales = useIsComerciales();\n const { suggestionIsAddress } = useSelector((state: OneFormState) => state.formInfo);\n const dealerCompletAdress = `${dealerInfo.markerInfo.dealerInfo.address}, ${dealerInfo.markerInfo.dealerInfo.zipCode} ${dealerInfo.markerInfo.dealerInfo.city}`;\n const {\n centerToCalculateDistance,\n handlePointClickAndCarouselMove,\n handleHoverPoint,\n hoverPoint,\n selectedPoint,\n userIsGeoLocated,\n handleClusterClick,\n } = useMapGeneralController();\n const dispatch = useDispatch();\n // Las instalaciones con codInstalacion del array son excluusivas para IDBuzz\n const installationsIDBuzz = [\n '0300W',\n '03910',\n '03394',\n '0311Q',\n '0311X',\n '52VH1',\n '0321C',\n '30559',\n '03200',\n '53V50',\n '0310W',\n '03917',\n '30083'\n ]\n const { isActive, isHover } = usePinState(selectedPoint, hoverPoint, point);\n const [greyCard, setGreyCard] = useState(false);\n const codInstalacion = point.properties?.dealer?.codInstalacion;\n const iDBuzzExclusive = installationsIDBuzz.includes(codInstalacion) && isComerciales;\n\n const handleIDBuzzExclusive = () => {\n const iDBuzzExlusiveAndComerciales = isComerciales && iDBuzzExclusive\n dispatch({ type: 'UPDATE_FIELDS', payload: { idBuzzExclusive: iDBuzzExlusiveAndComerciales } });\n }\n\n useEffect(() => {\n if (point) {\n if (carPickupSelected && !point.properties.dealer.dmsInfo.pickupCarServiceAvailabe) {\n setGreyCard(true);\n } else if (replacementCarSelected && !point.properties.dealer.dmsInfo.replacementCarServiceAvailable) {\n setGreyCard(true);\n } else {\n setGreyCard(false);\n }\n }\n }, [carPickupSelected, replacementCarSelected, point]);\n\n return (\n <>\n {iDBuzzExclusive && isComerciales &&\n \n Exclusivo para ID.Buzz\n \n }\n {\n e.preventDefault();\n if (isComerciales) {\n handleIDBuzzExclusive()\n }\n if (point.properties.parent_cluster_id) {\n if (window.innerWidth <= 959) {\n handleClusterClick(point, true, true);\n } else {\n handleClusterClick(point, true);\n }\n } else {\n handlePointClickAndCarouselMove(point);\n }\n }}\n onMouseEnter={(e) => {\n if (!isCarousel) {\n e.preventDefault();\n handleHoverPoint(point);\n }\n }}\n onMouseLeave={(e) => {\n if (!isCarousel) {\n e.preventDefault();\n handleHoverPoint(null);\n }\n }}\n >\n
\n {isCarousel ? (\n <>\n {/*card para el carousel*/}\n \n
\n {\n userIsGeoLocated || suggestionIsAddress ? (\n \n \n {dealerInfo.name ? dealerInfo.name : null}\n \n\n \n \n {userIsGeoLocated || suggestionIsAddress\n ? distanceFromCenter\n ? `${distanceFromCenter}km`\n : `${getDistanceFromLatLngCenter(centerToCalculateDistance.current, point)}km`\n : null}\n \n \n \n ) : (\n \n {dealerInfo.name ? dealerInfo.name : null}\n \n )\n }\n
\n \n {!point.properties.dealer.dmsInfo || !point.properties.dealer.dmsInfo.dmsAvailable ? (\n

\n {dealerCompletAdress}\n

\n ) : (\n {dealerCompletAdress}\n )}\n
\n
\n\n {handleShowSlots && handleShowSlots(point) !== null ? (\n \n \n \n {handleShowSlots(point)}\n \n \n {\n point.properties.dealer.dmsInfo && point.properties.dealer.dmsInfo.replacementCarServiceAvailable\n || point.properties.dealer.dmsInfo && point.properties.dealer.dmsInfo.pickupCarServiceAvailabe\n ? (\n
\n {\n point.properties.dealer.dmsInfo.replacementCarServiceAvailable ? (\n \n \n \n ) : null\n }\n {\n point.properties.dealer.dmsInfo.pickupCarServiceAvailabe ? (\n \n \n \n ) : null\n }\n
\n ) : null\n }\n \n )\n : null\n }\n \n ) : (\n <>\n {/*card para los tabs, cualquier breakpoint*/}\n \n
\n {\n userIsGeoLocated || suggestionIsAddress ? (\n \n \n \n {dealerInfo.name ? dealerInfo.name : null}\n \n \n \n \n {userIsGeoLocated || suggestionIsAddress\n ? distanceFromCenter\n ? `${distanceFromCenter}km`\n : `${getDistanceFromLatLngCenter(centerToCalculateDistance.current, point)}km`\n : null}\n \n \n \n ) : (\n \n \n {dealerInfo.name ? dealerInfo.name : null}\n \n \n )\n }\n
\n \n

\n \n {dealerCompletAdress}\n \n

\n
\n
\n\n {handleShowSlots && handleShowSlots(point) !== null ? (\n \n \n \n {handleShowSlots(point)}\n \n \n {\n point.properties.dealer.dmsInfo ? (\n
\n {\n point.properties.dealer.dmsInfo.replacementCarServiceAvailable ? (\n \n \n \n ) : null\n }\n {\n point.properties.dealer.dmsInfo.pickupCarServiceAvailabe ? (\n \n \n \n ) : null\n }\n
\n ) : null\n }\n \n )\n : null\n }\n \n )}\n {isCitaPosventa ? () : }\n
\n \n \n );\n});\n\nconst CitaPosventaCTAs = (props: DealerCardProps) => {\n const {\n carPickupSelected,\n dealerInfo,\n handleSeleccionarOnClick,\n handleShowCalendarOnClick,\n handleShowSlots,\n isCarousel,\n point,\n replacementCarSelected,\n } = props;\n\n const trackingManager = useTrackingManager();\n\n const { formData } = useSelector((state: OneFormState) => state);\n const { horario }: { horario?: Horario } = formData.fields;\n\n const [greyCard, setGreyCard] = useState(false);\n\n useEffect(() => {\n if (point) {\n if (carPickupSelected && !point.properties.dealer.dmsInfo.pickupCarServiceAvailabe) {\n setGreyCard(true);\n } else if (replacementCarSelected && !point.properties.dealer.dmsInfo.replacementCarServiceAvailable) {\n setGreyCard(true);\n } else {\n setGreyCard(false);\n }\n }\n }, [carPickupSelected, replacementCarSelected, point]);\n return !dealerInfo.dmsInfo || !dealerInfo.dmsInfo.dmsAvailable || handleShowSlots && handleShowSlots(point) === null ? (\n \n {\n e.preventDefault();\n trackingManager.trackFormButtonClick(\n {\n contentId: 'Ver horario',\n },\n dealerInfo\n );\n\n handleShowCalendarOnClick(point);\n }}\n >\n \n Ver calendario\n \n \n {\n point.properties.dealer.dmsInfo ? (\n
\n {\n point.properties.dealer.dmsInfo.replacementCarServiceAvailable ? (\n \n \n \n ) : null\n }\n {\n point.properties.dealer.dmsInfo.pickupCarServiceAvailabe ? (\n \n \n \n ) : null\n }\n
\n ) : null\n }\n \n ) : (\n \n {\n e.preventDefault();\n trackingManager.trackFormButtonClick(\n {\n contentId: 'Seleccionar',\n },\n dealerInfo\n );\n\n handleSeleccionarOnClick(point);\n }}\n >\n \n Seleccionar\n \n \n \n {\n e.preventDefault();\n trackingManager.trackFormButtonClick(\n {\n contentId: 'Ver más horas',\n },\n dealerInfo\n );\n handleShowCalendarOnClick(point);\n }}\n >\n \n
\n \n Ver más horas\n \n
\n \n
\n \n );\n};\n\nconst LeadsCTAs = (props: DealerCardProps) => {\n const { handleSeleccionarOnClick, dealerInfo, point } = props;\n\n const trackingManager = useTrackingManager();\n\n return (\n \n \n {\n e.preventDefault();\n trackingManager.trackFormButtonClick(\n {\n contentId: 'Seleccionar',\n },\n dealerInfo\n );\n\n handleSeleccionarOnClick(point);\n }}\n >\n Seleccionar\n \n \n \n );\n};\n","import React, { useEffect, useState } from 'react';\nimport {\n styled,\n Layout,\n Breakpoints,\n} from '@volkswagen-onehub/components-core';\nimport { Points } from 'src/types';\nimport { useMapGeneralController } from 'src/feature-app';\nimport { SelectedTab } from 'src/types';\n\nconst TabsWrapper = styled.div`\n width: 100%;\n height: 100%;\n padding-left: 5px;\n padding-top: 5px;\n @media all and (min-width: 960px) {\n /* width: 380px; */\n /* Falta ver como se comporta este width: 100% con el scroll */\n width: 100%;\n }\n\n & > div {\n @media all and (min-width: 960px) {\n height: calc(100vh - 174px);\n overflow-y: auto;\n padding-bottom: 24px;\n }\n @media all and (min-width: 1600px) {\n height: calc(100vh - 200px);\n }\n }\n`;\n\nconst WidthWrapper = styled.div`\n width: 100vw;\n @media all and (min-width: 960px) {\n width: 100%;\n }\n`;\n\ninterface SeleccionDealerTabsProps {\n pointsByDistance?: Points[];\n pointsByTime?: Points[];\n isTimeSelected?: boolean;\n setIsTimeSelected?: React.Dispatch>;\n renderPoints: (points: Points[], isTime?: boolean) => JSX.Element[];\n setPreSelectedOrderValue?: React.Dispatch>;\n preSelectedOrderValue?: string;\n pointsToList: Points[];\n}\n\nexport function SeleccionDealerTabs(props: SeleccionDealerTabsProps) {\n const {\n pointsByDistance,\n pointsByTime,\n isTimeSelected,\n setIsTimeSelected,\n renderPoints,\n setPreSelectedOrderValue,\n preSelectedOrderValue,\n pointsToList,\n } = props;\n const { clusters } = useMapGeneralController();\n\n const [defaultIndex, setDefaultIndex] = useState(0);\n\n useEffect(() => {\n if (preSelectedOrderValue && preSelectedOrderValue === 'horario') {\n setDefaultIndex(1);\n } else {\n setDefaultIndex(0);\n }\n }, [preSelectedOrderValue]);\n\n return (\n \n \n {renderPoints(pointsToList, true)}\n\n {/* \n \n Ordenar por:\n \n */}\n\n {/* \n {\n setDefaultIndex(index);\n if (index === 0) {\n setPreSelectedOrderValue('ubicacion');\n } else {\n setPreSelectedOrderValue('horario');\n }\n }}\n defaultIndex={defaultIndex}\n >\n {{\n title: 'Ubicación',\n content: renderPoints(pointsToList, false),\n key: 'ubicacion',\n }}\n {{ title: 'Horario', content: renderPoints(pointsToList, true), key: 'horario' }}\n \n */}\n \n \n );\n}\n","import { styled } from '@volkswagen-onehub/components-core';\nimport { css } from 'styled-components';\n\ninterface styledWrapperProps { \n notALayer?: boolean;\n isFiltrosSuggest: boolean;\n isLocating?: boolean;\n inputFocus?: boolean;\n formTheme?: string;\n isModeloSuggest?: boolean;\n isFullScreen?: boolean;\n goUp?: boolean;\n autoWidth?: boolean;\n}\n\n\nexport const MagnifierLabel = styled.div`\n color: ${(props) => (props.isFiltrosSuggest || props.formTheme === 'main' ? '#001e50' : '#ffffff')};\n padding-right: 8px;\n display: flex;\n align-items: center;\n\n & svg {\n fill: ${(props) =>\n props.isLocating\n ? props.isFiltrosSuggest || props.formTheme === 'main'\n ? '#dfe4e8'\n : '#6A767D'\n : props.isFiltrosSuggest || props.formTheme === 'main'\n ? '#001e50'\n : '#ffffff'};\n }\n`;\nexport const CloseButton = styled.button`\n cursor: pointer;\n border: none;\n outline: none;\n background: transparent;\n padding-left: 8px;\n display: flex;\n align-items: center;\n\n & svg {\n fill: ${(props) =>\n props.isLocating\n ? props.isFiltrosSuggest || props.formTheme === 'main'\n ? '#dfe4e8'\n : '#6A767D'\n : props.isFiltrosSuggest || props.formTheme === 'main'\n ? '#001e50'\n : '#ffffff'};\n }\n`;\n\nexport const StyledWrapper = styled.div`\n display: flex;\n justify-content: flex-start;\n margin-top: ${(props) => (props.isFiltrosSuggest ? '24px' : null)};\n box-shadow: ${(props) =>\n props.isLocating\n ? props.isFiltrosSuggest || props.formTheme === 'main'\n ? '0px 1px 0px 0px #dfe4e8'\n : '0px 1px 0px 0px #6A767D'\n : props.inputFocus\n ? props.isFiltrosSuggest || props.formTheme === 'main'\n ? '0 2px 0 0 #001E50'\n : '0 2px 0 0 #00B0F0'\n : props.isFiltrosSuggest || props.formTheme === 'main'\n ? '0px 1px 0px 0px #001E50'\n : '0px 1px 0px 0px #ffffff'};\n\n & .react-autosuggest__container {\n width: 100%;\n }\n\n & .react-autosuggest__input {\n width: 100%;\n padding: 8px 0;\n border: none;\n background-color: ${(props) => (props.isFiltrosSuggest || props.formTheme === 'main' ? '#ffffff' : '#001e50')};\n color: ${(props) =>\n props.isLocating\n ? props.isFiltrosSuggest || props.formTheme === 'main'\n ? '#dfe4e8'\n : '#6A767D'\n : props.isFiltrosSuggest || props.formTheme === 'main'\n ? '#001e50'\n : '#ffffff'};\n /* Añadir puntos suspensivos para el placeholder en mobile */\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n /* WebKit, Edge */\n ::-webkit-input-placeholder {\n color: ${(props) =>\n props.isLocating\n ? props.isFiltrosSuggest || props.formTheme === 'main'\n ? '#dfe4e8'\n : '#6A767D'\n : props.isFiltrosSuggest || props.formTheme === 'main'\n ? '#001e50'\n : '#ffffff'};\n }\n /* Firefox 4-18 */\n :-moz-placeholder {\n color: ${(props) =>\n props.isLocating\n ? props.isFiltrosSuggest || props.formTheme === 'main'\n ? '#dfe4e8'\n : '#6A767D'\n : props.isFiltrosSuggest || props.formTheme === 'main'\n ? '#001e50'\n : '#ffffff'};\n opacity: 1;\n }\n /* Firefox 19+ */\n ::-moz-placeholder {\n color: ${(props) =>\n props.isLocating\n ? props.isFiltrosSuggest || props.formTheme === 'main'\n ? '#dfe4e8'\n : '#6A767D'\n : props.isFiltrosSuggest || props.formTheme === 'main'\n ? '#001e50'\n : '#ffffff'};\n opacity: 1;\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n }\n /* IE 10-11 */\n :-ms-input-placeholder {\n color: ${(props) =>\n props.isLocating\n ? props.isFiltrosSuggest || props.formTheme === 'main'\n ? '#dfe4e8'\n : '#6A767D'\n : props.isFiltrosSuggest || props.formTheme === 'main'\n ? '#001e50'\n : '#ffffff'};\n }\n /* Edge */\n ::-ms-input-placeholder {\n color: ${(props) =>\n props.isLocating\n ? props.isFiltrosSuggest || props.formTheme === 'main'\n ? '#dfe4e8'\n : '#6A767D'\n : props.isFiltrosSuggest || props.formTheme === 'main'\n ? '#001e50'\n : '#ffffff'};\n }\n /* MODERN BROWSER */\n ::placeholder {\n color: ${(props) =>\n props.isLocating\n ? props.isFiltrosSuggest || props.formTheme === 'main'\n ? '#dfe4e8'\n : '#6A767D'\n : props.isFiltrosSuggest || props.formTheme === 'main'\n ? '#001e50'\n : '#ffffff'};\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n }\n }\n\n & .react-autosuggest__input--focused {\n outline: none;\n }\n\n & .react-autosuggest__input--open {\n border-bottom-left-radius: 0;\n border-bottom-right-radius: 0;\n }\n\n & .react-autosuggest__suggestions-container {\n display: none;\n width: 100%;\n }\n\n & .react-autosuggest__suggestions-container--open {\n display: block;\n position: absolute;\n height: max-content;\n border: 1px solid #aaa;\n background-color: #fff; \n font-family: Helvetica, sans-serif;\n font-weight: 300;\n font-size: 16px;\n border-bottom-left-radius: 4px;\n border-bottom-right-radius: 4px;\n z-index: 1060;\n overflow: hidden;\n border: none;\n box-shadow: 0px 12px 24px 0px rgba(0, 0, 0, 0.12);\n\n left: 0;\n top: ${(props)=>props.goUp ? '0' : '36px'};\n transform: ${(props)=>props.goUp ? 'translateY(-100%)' : null};\n \n ${(props) =>\n props.isFiltrosSuggest\n ? css`\n width: calc( 100% + 68x); \n @media screen and (min-width: 960px) {\n width: 400px; \n }\n `\n : props.isModeloSuggest ?\n css`\n width: var(--size-grid020);\n @media all and (min-width: 560px) {\n width: ${(props) => (props.notALayer ? 'var(--size-grid013)' : '303px')};\n }\n @media all and (min-width: 960px) {\n width: ${(props) => (props.notALayer ? 'var(--size-grid008)' : '320px')};\n }\n @media all and (min-width: 1280px) {\n width: ${(props) => (props.notALayer ? 'var(--size-grid006)' : '320px')};\n }\n @media all and (min-width: 1920px) {\n width: ${(props) => (props.notALayer ? 'var(--size-grid005)' : '320px')};\n }\n @media all and (min-width: 2560px) {\n width: ${(props) => (props.notALayer ? 'var(--size-grid004)' : '320px')};\n } \n `\n : props.isFullScreen ? \n css`\n width: var(--size-grid020);\n @media all and (min-width: 960px) {\n width: ${(props) => (props.autoWidth ? '100%' : 'var(--size-grid013)')};\n }\n @media all and (min-width: 1280px) {\n width:${(props) => (props.autoWidth ? '100%' : 'var(--size-grid014)')};\n }\n @media all and (min-width: 1920px) {\n width: ${(props) => (props.autoWidth ? '100%' : 'var(--size-grid012)')};\n }\n @media all and (min-width: 2560px) {\n width: ${(props) => (props.autoWidth ? '100%' : 'var(--size-grid010)')};\n }\n `\n :css`\n width: calc( 100% + 68x); \n @media screen and (min-width: 960px) {\n width: 720px;\n }\n `}\n }\n\n & .react-autosuggest__suggestions-list {\n margin: 0;\n padding: 0;\n list-style-type: none;\n overflow: hidden scroll;\n height: max-content;\n max-height: 170px;\n @media all and (min-height: 500px) {\n max-height: 230px;\n }\n @media all and (min-height: 800px) {\n max-height: 300px;\n }\n @media all and (min-height: 800px) {\n max-height: 350px;\n }\n }\n\n & .react-autosuggest__suggestion {\n cursor: pointer;\n padding: 10px 20px;\n left: 0;\n :hover {\n * {\n color: #0040c5;\n }\n svg {\n fill: #0040c5;\n }\n }\n }\n\n & .react-autosuggest__suggestion--highlighted {\n /* background-color: #ddd; */\n }\n`;\n\nexport const SuggestionWrapper = styled.div`\n width: 100%;\n display: flex;\n align-items: flex-start;\n text-align: left;\n color: #001e50;\n`;\n","import React, { Component } from 'react';\n\nconst style = {\n width: '100%',\n height: '100%',\n left: 0,\n top: 0,\n margin: 0,\n padding: 0,\n position: 'absolute',\n};\n\nexport default class GoogleMapMap extends Component {\n shouldComponentUpdate() {\n return false; // disable react on this div\n }\n\n render() {\n const { registerChild } = this.props;\n return
;\n }\n}\n","import EventEmitter from 'eventemitter3';\n\nexport default class MarkerDispatcher extends EventEmitter {\n constructor(gmapInstance) {\n super();\n this.gmapInstance = gmapInstance;\n }\n\n getChildren() {\n return this.gmapInstance.props.children;\n }\n\n getMousePosition() {\n return this.gmapInstance.mouse_;\n }\n\n getUpdateCounter() {\n return this.gmapInstance.updateCounter_;\n }\n\n dispose() {\n this.gmapInstance = null;\n this.removeAllListeners();\n }\n}\n","// https://github.com/acdlite/recompose/blob/master/src/packages/recompose/utils/omit.js\nconst omit = (obj, keys) => {\n const { ...rest } = obj;\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n if (key in rest) {\n delete rest[key];\n }\n }\n return rest;\n};\n\nexport default omit;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @providesModule shallowEqual\n * @typechecks\n * @flow\n */\n\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\n\n/**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\nfunction is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n // Added the nonzero y check to make Flow happy, but it is redundant\n return x !== 0 || y !== 0 || 1 / x === 1 / y;\n }\n // Step 6.a: NaN == NaN\n // eslint-disable-next-line no-self-compare\n return x !== x && y !== y;\n}\n\n/**\n * Performs equality by iterating through keys on an object and returning false\n * when any key has values which are not strictly equal between the arguments.\n * Returns true when the values of all keys are strictly equal.\n */\nfunction shallowEqual(objA, objB) {\n if (is(objA, objB)) {\n return true;\n }\n\n if (\n typeof objA !== 'object' ||\n objA === null ||\n typeof objB !== 'object' ||\n objB === null\n ) {\n return false;\n }\n\n const keysA = Object.keys(objA);\n const keysB = Object.keys(objB);\n\n if (keysA.length !== keysB.length) {\n return false;\n }\n\n // Test for A's keys different from B.\n for (let i = 0; i < keysA.length; i++) {\n if (\n !hasOwnProperty.call(objB, keysA[i]) ||\n !is(objA[keysA[i]], objB[keysA[i]])\n ) {\n return false;\n }\n }\n\n return true;\n}\n\nexport default shallowEqual;\n/* src: https://github.com/facebook/fbjs/blob/master/packages/fbjs/src/core/shallowEqual.js */\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\n// utils\nimport omit from './utils/omit';\nimport shallowEqual from './utils/shallowEqual';\n\nconst mainStyle = {\n width: '100%',\n height: '100%',\n left: 0,\n top: 0,\n margin: 0,\n padding: 0,\n position: 'absolute',\n};\n\nconst style = {\n width: 0,\n height: 0,\n left: 0,\n top: 0,\n backgroundColor: 'transparent',\n position: 'absolute',\n};\n\nexport default class GoogleMapMarkers extends Component {\n /* eslint-disable react/forbid-prop-types */\n static propTypes = {\n geoService: PropTypes.any,\n style: PropTypes.any,\n distanceToMouse: PropTypes.func,\n dispatcher: PropTypes.any,\n onChildClick: PropTypes.func,\n onChildMouseDown: PropTypes.func,\n onChildMouseLeave: PropTypes.func,\n onChildMouseEnter: PropTypes.func,\n getHoverDistance: PropTypes.func,\n insideMapPanes: PropTypes.bool,\n prerender: PropTypes.bool,\n };\n /* eslint-enable react/forbid-prop-types */\n\n static defaultProps = {\n insideMapPanes: false,\n prerender: false,\n };\n\n constructor(props) {\n super(props);\n\n this.dimensionsCache_ = {};\n this.hoverKey_ = null;\n this.hoverChildProps_ = null;\n this.allowMouse_ = true;\n\n this.state = { ...this._getState(), hoverKey: null };\n }\n\n componentDidMount() {\n this.props.dispatcher.on('kON_CHANGE', this._onChangeHandler);\n this.props.dispatcher.on(\n 'kON_MOUSE_POSITION_CHANGE',\n this._onMouseChangeHandler\n );\n this.props.dispatcher.on('kON_CLICK', this._onChildClick);\n this.props.dispatcher.on('kON_MDOWN', this._onChildMouseDown);\n }\n\n shouldComponentUpdate(nextProps, nextState) {\n if (this.props.experimental === true) {\n return (\n !shallowEqual(this.props, nextProps) ||\n !shallowEqual(\n omit(this.state, ['hoverKey']),\n omit(nextState, ['hoverKey'])\n )\n );\n }\n\n return (\n !shallowEqual(this.props, nextProps) ||\n !shallowEqual(this.state, nextState)\n );\n }\n\n componentWillUnmount() {\n this.props.dispatcher.removeListener('kON_CHANGE', this._onChangeHandler);\n this.props.dispatcher.removeListener(\n 'kON_MOUSE_POSITION_CHANGE',\n this._onMouseChangeHandler\n );\n this.props.dispatcher.removeListener('kON_CLICK', this._onChildClick);\n this.props.dispatcher.removeListener('kON_MDOWN', this._onChildMouseDown);\n\n this.dimensionsCache_ = null;\n }\n\n _getState = () => ({\n children: this.props.dispatcher.getChildren(),\n updateCounter: this.props.dispatcher.getUpdateCounter(),\n });\n\n _onChangeHandler = () => {\n if (!this.dimensionsCache_) {\n return;\n }\n\n const prevChildCount = (this.state.children || []).length;\n const state = this._getState();\n\n this.setState(\n state,\n () =>\n (state.children || []).length !== prevChildCount &&\n this._onMouseChangeHandler()\n );\n };\n\n _onChildClick = () => {\n if (this.props.onChildClick) {\n if (this.hoverChildProps_) {\n const hoverKey = this.hoverKey_;\n const childProps = this.hoverChildProps_;\n // click works only on hovered item\n this.props.onChildClick(hoverKey, childProps);\n }\n }\n };\n\n _onChildMouseDown = () => {\n if (this.props.onChildMouseDown) {\n if (this.hoverChildProps_) {\n const hoverKey = this.hoverKey_;\n const childProps = this.hoverChildProps_;\n // works only on hovered item\n this.props.onChildMouseDown(hoverKey, childProps);\n }\n }\n };\n\n _onChildMouseEnter = (hoverKey, childProps) => {\n if (!this.dimensionsCache_) {\n return;\n }\n\n if (this.props.onChildMouseEnter) {\n this.props.onChildMouseEnter(hoverKey, childProps);\n }\n\n this.hoverChildProps_ = childProps;\n this.hoverKey_ = hoverKey;\n this.setState({ hoverKey });\n };\n\n _onChildMouseLeave = () => {\n if (!this.dimensionsCache_) {\n return;\n }\n\n const hoverKey = this.hoverKey_;\n const childProps = this.hoverChildProps_;\n\n if (hoverKey !== undefined && hoverKey !== null) {\n if (this.props.onChildMouseLeave) {\n this.props.onChildMouseLeave(hoverKey, childProps);\n }\n\n this.hoverKey_ = null;\n this.hoverChildProps_ = null;\n this.setState({ hoverKey: null });\n }\n };\n\n _onMouseAllow = (value) => {\n if (!value) {\n this._onChildMouseLeave();\n }\n\n this.allowMouse_ = value;\n };\n\n _onMouseChangeHandler = () => {\n if (this.allowMouse_) {\n this._onMouseChangeHandlerRaf();\n }\n };\n\n _onMouseChangeHandlerRaf = () => {\n if (!this.dimensionsCache_) {\n return;\n }\n\n const mp = this.props.dispatcher.getMousePosition();\n\n if (mp) {\n const distances = [];\n const hoverDistance = this.props.getHoverDistance();\n\n React.Children.forEach(this.state.children, (child, childIndex) => {\n if (!child) return;\n // layers\n if (\n child.props.latLng === undefined &&\n child.props.lat === undefined &&\n child.props.lng === undefined\n ) {\n return;\n }\n\n const childKey =\n child.key !== undefined && child.key !== null\n ? child.key\n : childIndex;\n const dist = this.props.distanceToMouse(\n this.dimensionsCache_[childKey],\n mp,\n child.props\n );\n if (dist < hoverDistance) {\n distances.push({\n key: childKey,\n dist,\n props: child.props,\n });\n }\n });\n\n if (distances.length) {\n distances.sort((a, b) => a.dist - b.dist);\n const hoverKey = distances[0].key;\n const childProps = distances[0].props;\n\n if (this.hoverKey_ !== hoverKey) {\n this._onChildMouseLeave();\n\n this._onChildMouseEnter(hoverKey, childProps);\n }\n } else {\n this._onChildMouseLeave();\n }\n } else {\n this._onChildMouseLeave();\n }\n };\n\n _getDimensions = (key) => {\n const childKey = key;\n return this.dimensionsCache_[childKey];\n };\n\n render() {\n const mainElementStyle = this.props.style || mainStyle;\n this.dimensionsCache_ = {};\n\n const markers = React.Children.map(\n this.state.children,\n (child, childIndex) => {\n if (!child) return undefined;\n if (\n child.props.latLng === undefined &&\n child.props.lat === undefined &&\n child.props.lng === undefined\n ) {\n return React.cloneElement(child, {\n $geoService: this.props.geoService,\n $onMouseAllow: this._onMouseAllow,\n $prerender: this.props.prerender,\n });\n }\n\n const latLng =\n child.props.latLng !== undefined\n ? child.props.latLng\n : { lat: child.props.lat, lng: child.props.lng };\n\n const pt = this.props.insideMapPanes\n ? this.props.geoService.fromLatLngToDivPixel(latLng)\n : this.props.geoService.fromLatLngToCenterPixel(latLng);\n\n const stylePtPos = {\n left: pt.x,\n top: pt.y,\n };\n\n // If the component has a southeast corner defined (either as a LatLng, or a separate\n // lat and lng pair), set the width and height based on the distance between the northwest\n // and the southeast corner to lock the overlay to the correct geographic bounds.\n if (\n child.props.seLatLng !== undefined ||\n (child.props.seLat !== undefined && child.props.seLng !== undefined)\n ) {\n const seLatLng =\n child.props.seLatLng !== undefined\n ? child.props.seLatLng\n : { lat: child.props.seLat, lng: child.props.seLng };\n\n const sePt = this.props.insideMapPanes\n ? this.props.geoService.fromLatLngToDivPixel(seLatLng)\n : this.props.geoService.fromLatLngToCenterPixel(seLatLng);\n\n stylePtPos.width = sePt.x - pt.x;\n stylePtPos.height = sePt.y - pt.y;\n }\n\n const containerPt = this.props.geoService.fromLatLngToContainerPixel(\n latLng\n );\n\n // to prevent rerender on child element i need to pass\n // const params $getDimensions and $dimensionKey instead of dimension object\n const childKey =\n child.key !== undefined && child.key !== null\n ? child.key\n : childIndex;\n\n this.dimensionsCache_[childKey] = {\n x: containerPt.x,\n y: containerPt.y,\n ...latLng,\n };\n\n return (\n \n {React.cloneElement(child, {\n $hover: childKey === this.state.hoverKey,\n $getDimensions: this._getDimensions,\n $dimensionKey: childKey,\n $geoService: this.props.geoService,\n $onMouseAllow: this._onMouseAllow,\n $prerender: this.props.prerender,\n })}\n
\n );\n }\n );\n\n return
{markers}
;\n }\n}\n","import React from 'react';\nimport GoogleMapMarkers from './google_map_markers';\n\nconst style = {\n width: '50%',\n height: '50%',\n left: '50%',\n top: '50%',\n // backgroundColor: 'red',\n margin: 0,\n padding: 0,\n position: 'absolute',\n // opacity: 0.3\n};\n\nexport default function (props) {\n return (\n
\n \n
\n );\n}\n","import { Loader } from '@googlemaps/js-api-loader';\n\nlet loader_;\nlet loadPromise_;\nlet resolveCustomPromise_;\n\nconst _customPromise = new Promise((resolve) => {\n resolveCustomPromise_ = resolve;\n});\n\n// TODO add libraries language and other map options\nexport default (bootstrapURLKeys, heatmapLibrary) => {\n // call from outside google-map-react\n // will be as soon as loadPromise resolved\n if (!bootstrapURLKeys) {\n return _customPromise;\n }\n\n // avoid api to be loaded multiple times\n if (loadPromise_) {\n return loadPromise_;\n }\n\n if (!bootstrapURLKeys.libraries) {\n bootstrapURLKeys.libraries = [];\n }\n\n const libraries = [...bootstrapURLKeys.libraries];\n\n // note: heatmapLibrary will be deprecated on next major\n if (heatmapLibrary) {\n // if heatmapLibrary is present\n // check if we need to add visualization library\n if (libraries.length === 0 || !libraries.includes('visualization')) {\n // if the array isEmpty or visualization is\n // not present, push the visualization library\n libraries.push('visualization');\n }\n console.warn(\n \"heatmapLibrary will be deprecated in the future. Please use { libraries: ['visualization'] } in bootstrapURLKeys property instead\"\n );\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if (Object.keys(bootstrapURLKeys).indexOf('callback') > -1) {\n const message = `\"callback\" key in bootstrapURLKeys is not allowed,\n use onGoogleApiLoaded property instead`;\n // eslint-disable-next-line no-console\n console.error(message);\n throw new Error(message);\n }\n }\n\n if (typeof window === 'undefined') {\n throw new Error('google map cannot be loaded outside browser env');\n }\n\n const { key, ...restKeys } = bootstrapURLKeys;\n\n // use single instance of Loader to avoid multiple api loads\n if (!loader_) {\n loader_ = new Loader({\n // need to keep key as a prop for backwards compatibility\n apiKey: key || '',\n ...restKeys,\n libraries,\n });\n }\n\n loadPromise_ = loader_.load().then(() => {\n resolveCustomPromise_(window.google.maps);\n return window.google.maps;\n });\n\n resolveCustomPromise_(loadPromise_);\n\n return loadPromise_;\n};\n","/* eslint-disable import/prefer-default-export */\n\nexport function wrap(n, min, max) {\n const d = max - min;\n return n === max ? n : ((((n - min) % d) + d) % d) + min;\n}\n","import { wrap } from './wrap';\n\nexport default class LatLng {\n static convert = (a) => {\n if (a instanceof LatLng) {\n return a;\n }\n\n if (Array.isArray(a)) {\n return new LatLng(a[0], a[1]);\n }\n\n if ('lng' in a && 'lat' in a) {\n return new LatLng(a.lat, a.lng);\n }\n\n return a;\n };\n\n constructor(lat, lng) {\n if (isNaN(lat) || isNaN(lng)) {\n throw new Error(`Invalid LatLng object: (${lat}, ${lng})`);\n }\n this.lat = +lat;\n this.lng = +lng;\n }\n\n wrap() {\n return new LatLng(this.lat, wrap(this.lng, -180, 180));\n }\n}\n","/* eslint-disable class-methods-use-this */\nimport Point from '@mapbox/point-geometry';\nimport LatLng from './lat_lng';\nimport { wrap } from './wrap';\n\n// A single transform, generally used for a single tile to be scaled, rotated, and zoomed.\nexport default class Transform {\n constructor(tileSize, minZoom, maxZoom) {\n this.tileSize = tileSize || 512; // constant\n\n this._minZoom = minZoom || 0;\n this._maxZoom = maxZoom || 52;\n\n this.latRange = [-85.05113, 85.05113];\n\n this.width = 0;\n this.height = 0;\n this.zoom = 0;\n this.center = new LatLng(0, 0);\n this.angle = 0;\n }\n\n get minZoom() {\n return this._minZoom;\n }\n\n set minZoom(zoom) {\n this._minZoom = zoom;\n this.zoom = Math.max(this.zoom, zoom);\n }\n\n get maxZoom() {\n return this._maxZoom;\n }\n\n set maxZoom(zoom) {\n this._maxZoom = zoom;\n this.zoom = Math.min(this.zoom, zoom);\n }\n\n get worldSize() {\n return this.tileSize * this.scale;\n }\n\n get centerPoint() {\n return new Point(0, 0); // this.size._div(2);\n }\n\n get size() {\n return new Point(this.width, this.height);\n }\n\n get bearing() {\n return (-this.angle / Math.PI) * 180;\n }\n\n set bearing(bearing) {\n this.angle = (-wrap(bearing, -180, 180) * Math.PI) / 180;\n }\n\n get zoom() {\n return this._zoom;\n }\n\n set zoom(zoom) {\n const zoomV = Math.min(Math.max(zoom, this.minZoom), this.maxZoom);\n this._zoom = zoomV;\n this.scale = this.zoomScale(zoomV);\n this.tileZoom = Math.floor(zoomV);\n this.zoomFraction = zoomV - this.tileZoom;\n }\n\n zoomScale(zoom) {\n return Math.pow(2, zoom);\n }\n\n scaleZoom(scale) {\n return Math.log(scale) / Math.LN2;\n }\n\n project(latlng, worldSize) {\n return new Point(\n this.lngX(latlng.lng, worldSize),\n this.latY(latlng.lat, worldSize)\n );\n }\n\n unproject(point, worldSize) {\n return new LatLng(\n this.yLat(point.y, worldSize),\n this.xLng(point.x, worldSize)\n );\n }\n\n get x() {\n return this.lngX(this.center.lng);\n }\n\n get y() {\n return this.latY(this.center.lat);\n }\n\n get point() {\n return new Point(this.x, this.y);\n }\n\n // lat/lon <-> absolute pixel coords convertion\n lngX(lon, worldSize) {\n return ((180 + lon) * (worldSize || this.worldSize)) / 360;\n }\n\n // latitude to absolute y coord\n latY(lat, worldSize) {\n const y =\n (180 / Math.PI) * Math.log(Math.tan(Math.PI / 4 + (lat * Math.PI) / 360));\n return ((180 - y) * (worldSize || this.worldSize)) / 360;\n }\n\n xLng(x, worldSize) {\n return (x * 360) / (worldSize || this.worldSize) - 180;\n }\n\n yLat(y, worldSize) {\n const y2 = 180 - (y * 360) / (worldSize || this.worldSize);\n return (360 / Math.PI) * Math.atan(Math.exp((y2 * Math.PI) / 180)) - 90;\n }\n\n locationPoint(latlng) {\n const p = this.project(latlng);\n return this.centerPoint._sub(this.point._sub(p)._rotate(this.angle));\n }\n\n pointLocation(p) {\n const p2 = this.centerPoint._sub(p)._rotate(-this.angle);\n return this.unproject(this.point.sub(p2));\n }\n}\n","import Point from '@mapbox/point-geometry';\n\nimport LatLng from './lat_lng';\nimport Transform from './transform';\n\nexport default class Geo {\n constructor(tileSize) {\n // left_top view пользует гугл\n // super();\n this.hasSize_ = false;\n this.hasView_ = false;\n this.transform_ = new Transform(tileSize || 512);\n }\n\n setView(center, zoom, bearing) {\n this.transform_.center = LatLng.convert(center);\n this.transform_.zoom = +zoom;\n this.transform_.bearing = +bearing;\n this.hasView_ = true;\n }\n\n setViewSize(width, height) {\n this.transform_.width = width;\n this.transform_.height = height;\n this.hasSize_ = true;\n }\n\n setMapCanvasProjection(maps, mapCanvasProjection) {\n this.maps_ = maps;\n this.mapCanvasProjection_ = mapCanvasProjection;\n }\n\n canProject() {\n return this.hasSize_ && this.hasView_;\n }\n\n hasSize() {\n return this.hasSize_;\n }\n\n /** Returns the pixel position relative to the map center. */\n fromLatLngToCenterPixel(ptLatLng) {\n return this.transform_.locationPoint(LatLng.convert(ptLatLng));\n }\n\n /**\n * Returns the pixel position relative to the map panes,\n * or relative to the map center if there are no panes.\n */\n fromLatLngToDivPixel(ptLatLng) {\n if (this.mapCanvasProjection_) {\n const latLng = new this.maps_.LatLng(ptLatLng.lat, ptLatLng.lng);\n return this.mapCanvasProjection_.fromLatLngToDivPixel(latLng);\n }\n return this.fromLatLngToCenterPixel(ptLatLng);\n }\n\n /** Returns the pixel position relative to the map top-left. */\n fromLatLngToContainerPixel(ptLatLng) {\n if (this.mapCanvasProjection_) {\n const latLng = new this.maps_.LatLng(ptLatLng.lat, ptLatLng.lng);\n return this.mapCanvasProjection_.fromLatLngToContainerPixel(latLng);\n }\n\n const pt = this.fromLatLngToCenterPixel(ptLatLng);\n pt.x -=\n this.transform_.worldSize * Math.round(pt.x / this.transform_.worldSize);\n\n pt.x += this.transform_.width / 2;\n pt.y += this.transform_.height / 2;\n\n return pt;\n }\n\n /** Returns the LatLng for the given offset from the map top-left. */\n fromContainerPixelToLatLng(ptXY) {\n if (this.mapCanvasProjection_) {\n const latLng = this.mapCanvasProjection_.fromContainerPixelToLatLng(ptXY);\n return { lat: latLng.lat(), lng: latLng.lng() };\n }\n\n const ptxy = { ...ptXY };\n ptxy.x -= this.transform_.width / 2;\n ptxy.y -= this.transform_.height / 2;\n const ptRes = this.transform_.pointLocation(Point.convert(ptxy));\n\n ptRes.lng -= 360 * Math.round(ptRes.lng / 360); // convert 2 google format\n return ptRes;\n }\n\n getWidth() {\n return this.transform_.width;\n }\n\n getHeight() {\n return this.transform_.height;\n }\n\n getZoom() {\n return this.transform_.zoom;\n }\n\n getCenter() {\n const ptRes = this.transform_.pointLocation({ x: 0, y: 0 });\n\n return ptRes;\n }\n\n getBounds(margins, roundFactor) {\n const bndT = (margins && margins[0]) || 0;\n const bndR = (margins && margins[1]) || 0;\n const bndB = (margins && margins[2]) || 0;\n const bndL = (margins && margins[3]) || 0;\n\n if (\n this.getWidth() - bndR - bndL > 0 &&\n this.getHeight() - bndT - bndB > 0\n ) {\n const topLeftCorner = this.transform_.pointLocation(\n Point.convert({\n x: bndL - this.getWidth() / 2,\n y: bndT - this.getHeight() / 2,\n })\n );\n const bottomRightCorner = this.transform_.pointLocation(\n Point.convert({\n x: this.getWidth() / 2 - bndR,\n y: this.getHeight() / 2 - bndB,\n })\n );\n\n let res = [\n topLeftCorner.lat,\n topLeftCorner.lng, // NW\n bottomRightCorner.lat,\n bottomRightCorner.lng, // SE\n bottomRightCorner.lat,\n topLeftCorner.lng, // SW\n topLeftCorner.lat,\n bottomRightCorner.lng, // NE\n ];\n\n if (roundFactor) {\n res = res.map((r) => Math.round(r * roundFactor) / roundFactor);\n }\n return res;\n }\n\n return [0, 0, 0, 0];\n }\n}\n","export default function raf(callback) {\n if (window.requestAnimationFrame) {\n return window.requestAnimationFrame(callback);\n }\n\n const nativeRaf =\n window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame;\n\n return nativeRaf\n ? nativeRaf(callback)\n : window.setTimeout(callback, 1e3 / 60);\n}\n","const log2 = Math.log2 ? Math.log2 : (x) => Math.log(x) / Math.LN2;\n\nexport default log2;\n","// source taken from https://github.com/rackt/redux/blob/master/src/utils/pick.js\n\nexport default function pick(obj, fn) {\n return Object.keys(obj).reduce((result, key) => {\n if (fn(obj[key])) {\n result[key] = obj[key]; // eslint-disable-line\n }\n return result;\n }, {});\n}\n","const isEmpty = (val) => {\n // check for empty object {}, array []\n if (val !== null && typeof val === 'object') {\n if (Object.keys(val).length === 0) {\n return true;\n }\n } else if (val === null || val === undefined || val === '') {\n // check for undefined, null and \"\"\n return true;\n }\n return false;\n};\n\nexport default isEmpty;\n","function isObjectLike(value) {\n return !!value && typeof value === 'object';\n}\n\nconst objectToString = Object.prototype.toString;\n\nexport default function isNumber(value) {\n const numberTag = '[object Number]';\n return (\n typeof value === 'number' ||\n (isObjectLike(value) && objectToString.call(value) === numberTag)\n );\n}\n","// http://stackoverflow.com/questions/5899783/detect-safari-chrome-ie-firefox-opera-with-user-agent\nlet detectBrowserResult_ = null;\n\nexport default function detectBrowser() {\n if (detectBrowserResult_) {\n return detectBrowserResult_;\n }\n\n if (typeof navigator !== 'undefined') {\n const isExplorer = navigator.userAgent.indexOf('MSIE') > -1;\n const isFirefox = navigator.userAgent.indexOf('Firefox') > -1;\n const isOpera = navigator.userAgent.toLowerCase().indexOf('op') > -1;\n\n let isChrome = navigator.userAgent.indexOf('Chrome') > -1;\n let isSafari = navigator.userAgent.indexOf('Safari') > -1;\n\n if (isChrome && isSafari) {\n isSafari = false;\n }\n\n if (isChrome && isOpera) {\n isChrome = false;\n }\n\n detectBrowserResult_ = {\n isExplorer,\n isFirefox,\n isOpera,\n isChrome,\n isSafari,\n };\n return detectBrowserResult_;\n }\n\n detectBrowserResult_ = {\n isChrome: true,\n isExplorer: false,\n isFirefox: false,\n isOpera: false,\n isSafari: false,\n };\n\n return detectBrowserResult_;\n}\n","// source taken from https://github.com/rackt/redux/blob/master/src/utils/isPlainObject.js\nconst fnToString = (fn) => Function.prototype.toString.call(fn);\n\n/**\n * @param {any} obj The object to inspect.\n * @returns {boolean} True if the argument appears to be a plain object.\n */\nexport default function isPlainObject(obj) {\n if (!obj || typeof obj !== 'object') {\n return false;\n }\n\n const proto =\n typeof obj.constructor === 'function'\n ? Object.getPrototypeOf(obj)\n : Object.prototype;\n\n if (proto === null) {\n return true;\n }\n\n const constructor = proto.constructor;\n\n return (\n typeof constructor === 'function' &&\n constructor instanceof constructor &&\n fnToString(constructor) === fnToString(Object)\n );\n}\n","// feature detection for passive support\n// see: https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener#Safely_detecting_option_support\nfunction hasPassiveSupport() {\n let passiveSupported = false;\n\n try {\n const options = Object.defineProperty({}, 'passive', {\n get() {\n passiveSupported = true;\n },\n });\n\n window.addEventListener('test', options, options);\n window.removeEventListener('test', options, options);\n } catch (err) {\n passiveSupported = false;\n }\n\n return passiveSupported;\n}\n\nexport default function addPassiveEventListener(\n element,\n eventName,\n func,\n capture\n) {\n element.addEventListener(\n eventName,\n func,\n hasPassiveSupport()\n ? {\n capture,\n passive: true,\n }\n : capture\n );\n}\n","/* eslint-disable */\n/**\n* Detect Element Resize.\n* Forked in order to guard against unsafe 'window' and 'document' references.\n*\n* https://github.com/sdecima/javascript-detect-element-resize\n* Sebastian Decima\n*\n* version: 0.5.3\n**/\n\nimport addPassiveEventListener from './passiveEvents';\n\n// Reliable `window` and `document` detection\nvar canUseDOM = !!(typeof window !== 'undefined' &&\n window.document &&\n window.document.createElement);\n\n// Check `document` and `window` in case of server-side rendering\nvar _window;\nif (canUseDOM) {\n _window = window;\n} else if (typeof self !== 'undefined') {\n _window = self;\n} else {\n _window = this;\n}\n\nvar attachEvent = typeof document !== 'undefined' && document.attachEvent;\nvar stylesCreated = false;\n\nif (canUseDOM && !attachEvent) {\n var requestFrame = (function () {\n var raf = _window.requestAnimationFrame ||\n _window.mozRequestAnimationFrame ||\n _window.webkitRequestAnimationFrame ||\n function (fn) {\n return _window.setTimeout(fn, 20);\n };\n return function (fn) {\n return raf(fn);\n };\n })();\n\n var cancelFrame = (function () {\n var cancel = _window.cancelAnimationFrame ||\n _window.mozCancelAnimationFrame ||\n _window.webkitCancelAnimationFrame ||\n _window.clearTimeout;\n return function (id) {\n return cancel(id);\n };\n })();\n\n var resetTriggers = function (element) {\n var triggers = element.__resizeTriggers__,\n expand = triggers.firstElementChild,\n contract = triggers.lastElementChild,\n expandChild = expand.firstElementChild;\n contract.scrollLeft = contract.scrollWidth;\n contract.scrollTop = contract.scrollHeight;\n expandChild.style.width = expand.offsetWidth + 1 + 'px';\n expandChild.style.height = expand.offsetHeight + 1 + 'px';\n expand.scrollLeft = expand.scrollWidth;\n expand.scrollTop = expand.scrollHeight;\n };\n\n var checkTriggers = function (element) {\n return element.offsetWidth != element.__resizeLast__.width ||\n element.offsetHeight != element.__resizeLast__.height;\n };\n\n var scrollListener = function (e) {\n var element = this;\n resetTriggers(this);\n if (this.__resizeRAF__) cancelFrame(this.__resizeRAF__);\n this.__resizeRAF__ = requestFrame(function () {\n if (checkTriggers(element)) {\n element.__resizeLast__.width = element.offsetWidth;\n element.__resizeLast__.height = element.offsetHeight;\n element.__resizeListeners__.forEach(function (fn) {\n fn.call(element, e);\n });\n }\n });\n };\n\n /* Detect CSS Animations support to detect element display/re-attach */\n var animation = false,\n animationstring = 'animation',\n keyframeprefix = '',\n animationstartevent = 'animationstart',\n domPrefixes = 'Webkit Moz O ms'.split(' '),\n startEvents = 'webkitAnimationStart animationstart oAnimationStart MSAnimationStart'.split(\n ' '\n ),\n pfx = '';\n\n if (canUseDOM) {\n var elm = document.createElement('fakeelement');\n if (elm.style.animationName !== undefined) {\n animation = true;\n }\n\n if (animation === false) {\n for (var i = 0; i < domPrefixes.length; i++) {\n if (elm.style[domPrefixes[i] + 'AnimationName'] !== undefined) {\n pfx = domPrefixes[i];\n animationstring = pfx + 'Animation';\n keyframeprefix = '-' + pfx.toLowerCase() + '-';\n animationstartevent = startEvents[i];\n animation = true;\n break;\n }\n }\n }\n }\n\n var animationName = 'resizeanim';\n var animationKeyframes = '@' +\n keyframeprefix +\n 'keyframes ' +\n animationName +\n ' { from { opacity: 0; } to { opacity: 0; } } ';\n var animationStyle = keyframeprefix +\n 'animation: 1ms ' +\n animationName +\n '; ';\n}\n\nvar createStyles = function () {\n if (!stylesCreated) {\n //opacity:0 works around a chrome bug https://code.google.com/p/chromium/issues/detail?id=286360\n var css = (animationKeyframes ? animationKeyframes : '') +\n '.resize-triggers { ' +\n (animationStyle ? animationStyle : '') +\n 'visibility: hidden; opacity: 0; } ' +\n '.resize-triggers, .resize-triggers > div, .contract-trigger:before { content: \" \"; display: block; position: absolute; top: 0; left: 0; height: 100%; width: 100%; overflow: hidden; } .resize-triggers > div { background: #eee; overflow: auto; } .contract-trigger:before { width: 200%; height: 200%; }',\n head = document.head || document.getElementsByTagName('head')[0],\n style = document.createElement('style');\n\n style.type = 'text/css';\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n\n head.appendChild(style);\n stylesCreated = true;\n }\n};\n\nvar addResizeListener = function (element, fn) {\n if (element.parentNode === undefined) {\n var tempParentDiv = document.createElement('div');\n element.parentNode = tempParentDiv;\n }\n element = element.parentNode;\n if (attachEvent)\n element.attachEvent('onresize', fn);\n else {\n if (!element.__resizeTriggers__) {\n if (getComputedStyle(element).position == 'static')\n element.style.position = 'relative';\n createStyles();\n element.__resizeLast__ = {};\n element.__resizeListeners__ = [];\n (element.__resizeTriggers__ = document.createElement(\n 'div'\n )).className = 'resize-triggers';\n element.__resizeTriggers__.innerHTML = '
' +\n '
';\n element.appendChild(element.__resizeTriggers__);\n resetTriggers(element);\n\n addPassiveEventListener(element, 'scroll', scrollListener, true);\n\n /* Listen for a css animation to detect element display/re-attach */\n animationstartevent &&\n element.__resizeTriggers__.addEventListener(\n animationstartevent,\n function (e) {\n if (e.animationName == animationName) resetTriggers(element);\n }\n );\n }\n element.__resizeListeners__.push(fn);\n }\n};\n\nvar removeResizeListener = function (element, fn) {\n element = element.parentNode;\n if (attachEvent)\n element.detachEvent('onresize', fn);\n else {\n element.__resizeListeners__.splice(\n element.__resizeListeners__.indexOf(fn),\n 1\n );\n if (!element.__resizeListeners__.length) {\n element.removeEventListener('scroll', scrollListener);\n element.__resizeTriggers__ = !element.removeChild(\n element.__resizeTriggers__\n );\n }\n }\n};\n\nexport {\n addResizeListener,\n removeResizeListener,\n};\n","/* eslint-disable import/no-extraneous-dependencies, react/forbid-prop-types, react/no-find-dom-node, no-console, no-undef */\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport ReactDOM from 'react-dom';\n\n// helpers\nimport GoogleMapMap from './google_map_map';\nimport MarkerDispatcher from './marker_dispatcher';\nimport GoogleMapMarkers from './google_map_markers';\nimport GoogleMapMarkersPrerender from './google_map_markers_prerender';\nimport { generateHeatmap, optionsHeatmap } from './google_heatmap';\n\n// loaders\nimport googleMapLoader from './loaders/google_map_loader';\n\n// lib\nimport Geo from './lib/geo';\n\n// tools\nimport raf from './utils/raf';\nimport log2 from './utils/log2';\nimport omit from './utils/omit';\nimport pick from './utils/pick';\nimport isEmpty from './utils/isEmpty';\nimport isNumber from './utils/isNumber';\nimport detectBrowser from './utils/detect';\nimport shallowEqual from './utils/shallowEqual';\nimport isPlainObject from './utils/isPlainObject';\nimport isArraysEqualEps from './utils/isArraysEqualEps';\nimport {\n addResizeListener,\n removeResizeListener,\n} from './utils/detectElementResize';\nimport addPassiveEventListener from './utils/passiveEvents';\n\n// consts\nconst kEPS = 0.00001;\nconst K_GOOGLE_TILE_SIZE = 256;\n// real minZoom calculated here _getMinZoom\nconst K_IDLE_TIMEOUT = 100;\nconst K_IDLE_CLICK_TIMEOUT = 300;\nconst DEFAULT_MIN_ZOOM = 3;\n// Starting with version 3.32, the maps API calls `draw()` each frame during\n// a zoom animation.\nconst DRAW_CALLED_DURING_ANIMATION_VERSION = 32;\nconst IS_REACT_16 = ReactDOM.createPortal !== undefined;\n\nconst createPortal = IS_REACT_16\n ? ReactDOM.createPortal\n : ReactDOM.unstable_renderSubtreeIntoContainer;\n\nfunction defaultOptions_(/* maps */) {\n return {\n overviewMapControl: false,\n streetViewControl: false,\n rotateControl: true,\n mapTypeControl: false,\n // disable poi\n styles: [\n {\n featureType: 'poi',\n elementType: 'labels',\n stylers: [{ visibility: 'off' }],\n },\n ],\n minZoom: DEFAULT_MIN_ZOOM, // dynamically recalculted if possible during init\n };\n}\n\nconst latLng2Obj = (latLng) =>\n isPlainObject(latLng) ? latLng : { lat: latLng[0], lng: latLng[1] };\n\nconst _checkMinZoom = (zoom, minZoom) => {\n if (process.env.NODE_ENV !== 'production') {\n if (zoom < minZoom) {\n console.warn(\n 'GoogleMap: ' + // eslint-disable-line\n 'minZoom option is less than recommended ' +\n 'minZoom option for your map sizes.\\n' +\n 'overrided to value ' +\n minZoom\n );\n }\n }\n\n if (minZoom < zoom) {\n return zoom;\n }\n return minZoom;\n};\n\nconst isFullScreen = () =>\n document.fullscreen ||\n document.webkitIsFullScreen ||\n document.mozFullScreen ||\n document.msFullscreenElement;\n\nclass GoogleMap extends Component {\n static propTypes = {\n apiKey: PropTypes.string,\n bootstrapURLKeys: PropTypes.any,\n\n defaultCenter: PropTypes.oneOfType([\n PropTypes.array,\n PropTypes.shape({\n lat: PropTypes.number,\n lng: PropTypes.number,\n }),\n ]),\n center: PropTypes.oneOfType([\n PropTypes.array,\n PropTypes.shape({\n lat: PropTypes.number,\n lng: PropTypes.number,\n }),\n ]),\n defaultZoom: PropTypes.number,\n zoom: PropTypes.number,\n onBoundsChange: PropTypes.func,\n onChange: PropTypes.func,\n onClick: PropTypes.func,\n onChildClick: PropTypes.func,\n onChildMouseDown: PropTypes.func,\n onChildMouseUp: PropTypes.func,\n onChildMouseMove: PropTypes.func,\n onChildMouseEnter: PropTypes.func,\n onChildMouseLeave: PropTypes.func,\n onZoomAnimationStart: PropTypes.func,\n onZoomAnimationEnd: PropTypes.func,\n onDrag: PropTypes.func,\n onDragEnd: PropTypes.func,\n onMapTypeIdChange: PropTypes.func,\n onTilesLoaded: PropTypes.func,\n options: PropTypes.any,\n distanceToMouse: PropTypes.func,\n hoverDistance: PropTypes.number,\n debounced: PropTypes.bool,\n margin: PropTypes.array,\n googleMapLoader: PropTypes.any,\n onGoogleApiLoaded: PropTypes.func,\n yesIWantToUseGoogleMapApiInternals: PropTypes.bool,\n draggable: PropTypes.bool,\n style: PropTypes.any,\n resetBoundsOnResize: PropTypes.bool,\n layerTypes: PropTypes.arrayOf(PropTypes.string), // ['TransitLayer', 'TrafficLayer']\n shouldUnregisterMapOnUnmount: PropTypes.bool,\n };\n\n static defaultProps = {\n distanceToMouse(pt, mousePos /* , markerProps */) {\n return Math.sqrt(\n (pt.x - mousePos.x) * (pt.x - mousePos.x) +\n (pt.y - mousePos.y) * (pt.y - mousePos.y)\n );\n },\n hoverDistance: 30,\n debounced: true,\n options: defaultOptions_,\n googleMapLoader,\n yesIWantToUseGoogleMapApiInternals: false,\n style: {\n width: '100%',\n height: '100%',\n margin: 0,\n padding: 0,\n position: 'relative',\n },\n layerTypes: [],\n heatmap: {},\n heatmapLibrary: false,\n shouldUnregisterMapOnUnmount: true,\n };\n\n static googleMapLoader = googleMapLoader; // eslint-disable-line\n\n constructor(props) {\n super(props);\n this.mounted_ = false;\n this.initialized_ = false;\n this.googleApiLoadedCalled_ = false;\n\n this.map_ = null;\n this.maps_ = null;\n this.prevBounds_ = null;\n this.heatmap = null;\n\n this.layers_ = {};\n\n this.mouse_ = null;\n this.mouseMoveTime_ = 0;\n this.boundingRect_ = null;\n this.mouseInMap_ = true;\n\n this.dragTime_ = 0;\n this.fireMouseEventOnIdle_ = false;\n this.updateCounter_ = 0;\n\n this.markersDispatcher_ = new MarkerDispatcher(this);\n this.geoService_ = new Geo(K_GOOGLE_TILE_SIZE);\n this.centerIsObject_ = isPlainObject(this.props.center);\n\n this.minZoom_ = DEFAULT_MIN_ZOOM;\n this.defaultDraggableOption_ = true;\n\n this.zoomControlClickTime_ = 0;\n\n this.childMouseDownArgs_ = null;\n this.childMouseUpTime_ = 0;\n\n this.googleMapDom_ = null;\n\n if (process.env.NODE_ENV !== 'production') {\n if (this.props.apiKey) {\n console.warn(\n 'GoogleMap: ' + // eslint-disable-line no-console\n 'apiKey is deprecated, use ' +\n 'bootstrapURLKeys={{key: YOUR_API_KEY}} instead.'\n );\n }\n\n if (this.props.onBoundsChange) {\n console.warn(\n 'GoogleMap: ' + // eslint-disable-line no-console\n 'onBoundsChange is deprecated, use ' +\n 'onChange({center, zoom, bounds, ...other}) instead.'\n );\n }\n\n if (isEmpty(this.props.center) && isEmpty(this.props.defaultCenter)) {\n console.warn(\n 'GoogleMap: center or defaultCenter property must be defined' // eslint-disable-line no-console\n );\n }\n\n if (isEmpty(this.props.zoom) && isEmpty(this.props.defaultZoom)) {\n console.warn(\n 'GoogleMap: zoom or defaultZoom property must be defined' // eslint-disable-line no-console\n );\n }\n }\n\n if (this._isCenterDefined(this.props.center || this.props.defaultCenter)) {\n const propsCenter = latLng2Obj(\n this.props.center || this.props.defaultCenter\n );\n this.geoService_.setView(\n propsCenter,\n this.props.zoom || this.props.defaultZoom,\n 0\n );\n }\n\n this.zoomAnimationInProgress_ = false;\n\n this.state = {\n overlay: null,\n };\n }\n\n componentDidMount() {\n this.mounted_ = true;\n this.markersDispatcher_ = new MarkerDispatcher(this);\n addPassiveEventListener(window, 'resize', this._onWindowResize, false);\n addPassiveEventListener(window, 'keydown', this._onKeyDownCapture, true);\n const mapDom = ReactDOM.findDOMNode(this.googleMapDom_);\n // gmap can't prevent map drag if mousedown event already occured\n // the only workaround I find is prevent mousedown native browser event\n\n if (mapDom) {\n addPassiveEventListener(\n mapDom,\n 'mousedown',\n this._onMapMouseDownNative,\n true\n );\n }\n\n addPassiveEventListener(window, 'mouseup', this._onChildMouseUp, false);\n const bootstrapURLKeys = {\n ...(this.props.apiKey && { key: this.props.apiKey }),\n ...this.props.bootstrapURLKeys,\n };\n\n this.props.googleMapLoader(bootstrapURLKeys, this.props.heatmapLibrary); // we can start load immediatly\n\n setTimeout(\n () => {\n // to detect size\n this._setViewSize();\n if (\n this._isCenterDefined(this.props.center || this.props.defaultCenter)\n ) {\n this._initMap();\n }\n },\n 0,\n this\n );\n if (this.props.resetBoundsOnResize) {\n const that = this;\n addResizeListener(mapDom, that._mapDomResizeCallback);\n }\n }\n\n shouldComponentUpdate(nextProps, nextState) {\n // draggable does not affect inner components\n return (\n !shallowEqual(\n omit(this.props, ['draggable']),\n omit(nextProps, ['draggable'])\n ) || !shallowEqual(this.state, nextState)\n );\n }\n\n componentDidUpdate(prevProps) {\n if (process.env.NODE_ENV !== 'production') {\n if (!shallowEqual(prevProps.defaultCenter, this.props.defaultCenter)) {\n console.warn(\n \"GoogleMap: defaultCenter prop changed. You can't change default props.\"\n );\n }\n\n if (!shallowEqual(prevProps.defaultZoom, this.props.defaultZoom)) {\n console.warn(\n \"GoogleMap: defaultZoom prop changed. You can't change default props.\"\n );\n }\n }\n\n if (\n !this._isCenterDefined(prevProps.center) &&\n this._isCenterDefined(this.props.center)\n ) {\n setTimeout(() => this._initMap(), 0);\n }\n\n if (this.map_) {\n const centerLatLng = this.geoService_.getCenter();\n if (this._isCenterDefined(this.props.center)) {\n const currentCenter = latLng2Obj(this.props.center);\n const prevCenter = this._isCenterDefined(prevProps.center)\n ? latLng2Obj(prevProps.center)\n : null;\n\n if (\n !prevCenter ||\n Math.abs(currentCenter.lat - prevCenter.lat) +\n Math.abs(currentCenter.lng - prevCenter.lng) >\n kEPS\n ) {\n if (\n Math.abs(currentCenter.lat - centerLatLng.lat) +\n Math.abs(currentCenter.lng - centerLatLng.lng) >\n kEPS\n ) {\n this.map_.panTo({\n lat: currentCenter.lat,\n lng: currentCenter.lng,\n });\n }\n }\n }\n\n if (!isEmpty(this.props.zoom)) {\n // if zoom chaged by user\n if (Math.abs(this.props.zoom - prevProps.zoom) > 0) {\n this.map_.setZoom(this.props.zoom);\n }\n }\n\n if (!isEmpty(prevProps.draggable) && isEmpty(this.props.draggable)) {\n // reset to default\n this.map_.setOptions({ draggable: this.defaultDraggableOption_ });\n } else if (!shallowEqual(prevProps.draggable, this.props.draggable)) {\n // also prevent this on window 'mousedown' event to prevent map move\n this.map_.setOptions({ draggable: this.props.draggable });\n }\n\n // use shallowEqual to try avoid calling map._setOptions if only the ref changes\n if (\n !isEmpty(this.props.options) &&\n !shallowEqual(prevProps.options, this.props.options)\n ) {\n const mapPlainObjects = pick(this.maps_, isPlainObject);\n let options =\n typeof this.props.options === 'function'\n ? this.props.options(mapPlainObjects)\n : this.props.options;\n // remove zoom, center and draggable options as these are managed by google-maps-react\n options = omit(options, ['zoom', 'center', 'draggable']);\n\n if ('minZoom' in options) {\n const minZoom = this._computeMinZoom(options.minZoom);\n options.minZoom = _checkMinZoom(options.minZoom, minZoom);\n }\n\n this.map_.setOptions(options);\n }\n\n if (!shallowEqual(this.props.layerTypes, prevProps.layerTypes)) {\n Object.keys(this.layers_).forEach((layerKey) => {\n this.layers_[layerKey].setMap(null);\n delete this.layers_[layerKey];\n });\n this._setLayers(this.props.layerTypes);\n }\n\n if (\n this.heatmap &&\n !shallowEqual(this.props.heatmap.positions, prevProps.heatmap.positions)\n ) {\n this.heatmap.setData(\n this.props.heatmap.positions.map((p) => ({\n location: new this.maps_.LatLng(p.lat, p.lng),\n weight: p.weight,\n }))\n );\n }\n if (\n this.heatmap &&\n !shallowEqual(this.props.heatmap.options, prevProps.heatmap.options)\n ) {\n Object.keys(this.props.heatmap.options).forEach((option) => {\n this.heatmap.set(option, this.props.heatmap.options[option]);\n });\n }\n }\n // emit actions\n this.markersDispatcher_.emit('kON_CHANGE');\n\n if (!shallowEqual(this.props.hoverDistance, prevProps.hoverDistance)) {\n this.markersDispatcher_.emit('kON_MOUSE_POSITION_CHANGE');\n }\n }\n\n componentWillUnmount() {\n this.mounted_ = false;\n const mapDom = ReactDOM.findDOMNode(this.googleMapDom_);\n if (mapDom) {\n mapDom.removeEventListener('mousedown', this._onMapMouseDownNative, true);\n }\n window.removeEventListener('resize', this._onWindowResize);\n window.removeEventListener('keydown', this._onKeyDownCapture);\n window.removeEventListener('mouseup', this._onChildMouseUp, false);\n if (this.props.resetBoundsOnResize) {\n removeResizeListener(mapDom, this._mapDomResizeCallback);\n }\n\n if (this.overlay_) {\n // this triggers overlay_.onRemove(), which will unmount the \n this.overlay_.setMap(null);\n }\n\n if (this.maps_ && this.map_ && this.props.shouldUnregisterMapOnUnmount) {\n // fix google, as otherwise listeners works even without map\n this.map_.setOptions({ scrollwheel: false });\n this.maps_.event.clearInstanceListeners(this.map_);\n }\n\n if (this.props.shouldUnregisterMapOnUnmount) {\n this.map_ = null;\n this.maps_ = null;\n }\n this.markersDispatcher_.dispose();\n\n this.resetSizeOnIdle_ = false;\n\n if (this.props.shouldUnregisterMapOnUnmount) {\n delete this.map_;\n delete this.markersDispatcher_;\n }\n }\n\n // calc minZoom if map size available\n // it's better to not set minZoom less than this calculation gives\n // otherwise there is no homeomorphism between screen coordinates and map\n // (one map coordinate can have different screen coordinates)\n _getMinZoom = () => {\n if (this.geoService_.getWidth() > 0 || this.geoService_.getHeight() > 0) {\n const tilesPerWidth =\n Math.ceil(this.geoService_.getWidth() / K_GOOGLE_TILE_SIZE) + 2;\n const tilesPerHeight =\n Math.ceil(this.geoService_.getHeight() / K_GOOGLE_TILE_SIZE) + 2;\n const maxTilesPerDim = Math.max(tilesPerWidth, tilesPerHeight);\n return Math.ceil(log2(maxTilesPerDim));\n }\n return DEFAULT_MIN_ZOOM;\n };\n\n _computeMinZoom = (minZoom) => {\n if (!isEmpty(minZoom)) {\n return minZoom;\n }\n return this._getMinZoom();\n };\n\n _mapDomResizeCallback = () => {\n this.resetSizeOnIdle_ = true;\n if (this.maps_) {\n const originalCenter = this.props.center || this.props.defaultCenter;\n const currentCenter = this.map_.getCenter();\n this.maps_.event.trigger(this.map_, 'resize');\n this.map_.setCenter(\n this.props.resetBoundsOnResize ? originalCenter : currentCenter\n );\n }\n };\n\n _setLayers = (layerTypes) => {\n layerTypes.forEach((layerType) => {\n this.layers_[layerType] = new this.maps_[layerType]();\n this.layers_[layerType].setMap(this.map_);\n });\n };\n\n _renderPortal = () => (\n \n );\n\n _initMap = () => {\n // only initialize the map once\n if (this.initialized_) {\n return;\n }\n this.initialized_ = true;\n\n const propsCenter = latLng2Obj(\n this.props.center || this.props.defaultCenter\n );\n this.geoService_.setView(\n propsCenter,\n this.props.zoom || this.props.defaultZoom,\n 0\n );\n\n this._onBoundsChanged(); // now we can calculate map bounds center etc...\n\n const bootstrapURLKeys = {\n ...(this.props.apiKey && { key: this.props.apiKey }),\n ...this.props.bootstrapURLKeys,\n };\n\n this.props\n .googleMapLoader(bootstrapURLKeys, this.props.heatmapLibrary)\n .then((maps) => {\n if (!this.mounted_) {\n return;\n }\n\n const centerLatLng = this.geoService_.getCenter();\n\n const propsOptions = {\n zoom: this.props.zoom || this.props.defaultZoom,\n center: new maps.LatLng(centerLatLng.lat, centerLatLng.lng),\n };\n\n // Start Heatmap\n if (this.props.heatmap.positions) {\n Object.assign(this, {\n heatmap: generateHeatmap(maps, this.props.heatmap),\n });\n optionsHeatmap(this.heatmap, this.props.heatmap);\n }\n // End Heatmap\n\n // prevent to exapose full api\n // next props must be exposed (console.log(Object.keys(pick(maps, isPlainObject))))\n // \"Animation\", \"ControlPosition\", \"MapTypeControlStyle\", \"MapTypeId\",\n // \"NavigationControlStyle\", \"ScaleControlStyle\", \"StrokePosition\",\n // \"SymbolPath\", \"ZoomControlStyle\",\n // \"event\", \"DirectionsStatus\", \"DirectionsTravelMode\", \"DirectionsUnitSystem\",\n // \"DistanceMatrixStatus\",\n // \"DistanceMatrixElementStatus\", \"ElevationStatus\", \"GeocoderLocationType\",\n // \"GeocoderStatus\", \"KmlLayerStatus\",\n // \"MaxZoomStatus\", \"StreetViewStatus\", \"TransitMode\", \"TransitRoutePreference\",\n // \"TravelMode\", \"UnitSystem\"\n const mapPlainObjects = pick(maps, isPlainObject);\n const options =\n typeof this.props.options === 'function'\n ? this.props.options(mapPlainObjects)\n : this.props.options;\n const defaultOptions = defaultOptions_(mapPlainObjects);\n\n const draggableOptions = !isEmpty(this.props.draggable) && {\n draggable: this.props.draggable,\n };\n\n const minZoom = this._computeMinZoom(options.minZoom);\n this.minZoom_ = minZoom;\n\n const preMapOptions = {\n ...defaultOptions,\n minZoom,\n ...options,\n ...propsOptions,\n };\n\n this.defaultDraggableOption_ = !isEmpty(preMapOptions.draggable)\n ? preMapOptions.draggable\n : this.defaultDraggableOption_;\n\n const mapOptions = {\n ...preMapOptions,\n ...draggableOptions,\n };\n\n mapOptions.minZoom = _checkMinZoom(mapOptions.minZoom, minZoom);\n\n const map = new maps.Map(\n ReactDOM.findDOMNode(this.googleMapDom_),\n mapOptions\n );\n\n this.map_ = map;\n this.maps_ = maps;\n\n this._setLayers(this.props.layerTypes);\n\n // Parse `google.maps.version` to capture the major version number.\n const versionMatch = maps.version.match(/^3\\.(\\d+)\\./);\n // The major version is the first (and only) captured group.\n const mapsVersion = versionMatch && Number(versionMatch[1]);\n\n // render in overlay\n const this_ = this;\n const overlay = Object.assign(new maps.OverlayView(), {\n onAdd() {\n const K_MAX_WIDTH =\n typeof screen !== 'undefined' ? `${screen.width}px` : '2000px';\n const K_MAX_HEIGHT =\n typeof screen !== 'undefined' ? `${screen.height}px` : '2000px';\n\n const div = document.createElement('div');\n div.style.backgroundColor = 'transparent';\n div.style.position = 'absolute';\n div.style.left = '0px';\n div.style.top = '0px';\n div.style.width = K_MAX_WIDTH; // prevents some chrome draw defects\n div.style.height = K_MAX_HEIGHT;\n\n if (this_.props.overlayViewDivStyle) {\n const { overlayViewDivStyle } = this_.props;\n if (typeof overlayViewDivStyle === 'object') {\n Object.keys(overlayViewDivStyle).forEach((property) => {\n div.style[property] = overlayViewDivStyle[property];\n });\n }\n }\n\n const panes = this.getPanes();\n panes.overlayMouseTarget.appendChild(div);\n this_.geoService_.setMapCanvasProjection(\n maps,\n overlay.getProjection()\n );\n\n if (!IS_REACT_16) {\n createPortal(\n this_,\n this_._renderPortal(),\n div,\n // remove prerendered markers\n () => this_.setState({ overlay: div })\n );\n } else {\n this_.setState({ overlay: div });\n }\n },\n\n onRemove() {\n const renderedOverlay = this_.state.overlay;\n if (renderedOverlay && !IS_REACT_16) {\n ReactDOM.unmountComponentAtNode(renderedOverlay);\n }\n this_.setState({ overlay: null });\n },\n\n draw() {\n this_.updateCounter_++;\n this_._onBoundsChanged(map, maps, !this_.props.debounced);\n\n if (!this_.googleApiLoadedCalled_) {\n this_._onGoogleApiLoaded({ map, maps, ref: this_.googleMapDom_ });\n this_.googleApiLoadedCalled_ = true;\n }\n\n if (this_.mouse_) {\n const latLng = this_.geoService_.fromContainerPixelToLatLng(\n this_.mouse_\n );\n this_.mouse_.lat = latLng.lat;\n this_.mouse_.lng = latLng.lng;\n }\n\n this_._onChildMouseMove();\n\n if (this_.markersDispatcher_) {\n this_.markersDispatcher_.emit('kON_CHANGE');\n if (this_.fireMouseEventOnIdle_) {\n this_.markersDispatcher_.emit('kON_MOUSE_POSITION_CHANGE');\n }\n }\n },\n });\n\n this.overlay_ = overlay;\n\n overlay.setMap(map);\n if (this.props.heatmap.positions) {\n this.heatmap.setMap(map);\n }\n\n if (this.props.onTilesLoaded) {\n maps.event.addListener(map, 'tilesloaded', () => {\n this_._onTilesLoaded();\n });\n }\n\n maps.event.addListener(map, 'zoom_changed', () => {\n // recalc position at zoom start\n if (this_.geoService_.getZoom() !== map.getZoom()) {\n if (!this_.zoomAnimationInProgress_) {\n this_.zoomAnimationInProgress_ = true;\n this_._onZoomAnimationStart(map.zoom);\n }\n\n // If draw() is not called each frame during a zoom animation,\n // simulate it.\n if (mapsVersion < DRAW_CALLED_DURING_ANIMATION_VERSION) {\n const TIMEOUT_ZOOM = 300;\n\n if (\n new Date().getTime() - this.zoomControlClickTime_ <\n TIMEOUT_ZOOM\n ) {\n // there is strange Google Map Api behavior in chrome when zoom animation of map\n // is started only on second raf call, if was click on zoom control\n // or +- keys pressed, so i wait for two rafs before change state\n\n // this does not fully prevent animation jump\n // but reduce it's occurence probability\n raf(() =>\n raf(() => {\n this_.updateCounter_++;\n this_._onBoundsChanged(map, maps);\n })\n );\n } else {\n this_.updateCounter_++;\n this_._onBoundsChanged(map, maps);\n }\n }\n }\n });\n\n maps.event.addListener(map, 'idle', () => {\n if (this.resetSizeOnIdle_) {\n this._setViewSize();\n const currMinZoom = this._computeMinZoom(options.minZoom);\n\n if (currMinZoom !== this.minZoom_) {\n this.minZoom_ = currMinZoom;\n map.setOptions({ minZoom: currMinZoom });\n }\n\n this.resetSizeOnIdle_ = false;\n }\n\n if (this_.zoomAnimationInProgress_) {\n this_.zoomAnimationInProgress_ = false;\n this_._onZoomAnimationEnd(map.zoom);\n }\n\n this_.updateCounter_++;\n this_._onBoundsChanged(map, maps);\n\n this_.dragTime_ = 0;\n\n if (this_.markersDispatcher_) {\n this_.markersDispatcher_.emit('kON_CHANGE');\n }\n });\n\n maps.event.addListener(map, 'mouseover', () => {\n // has advantage over div MouseLeave\n this_.mouseInMap_ = true;\n });\n\n // an alternative way to know the mouse is back within the map\n // This would not fire when clicking/interacting with google maps\n // own on-map countrols+markers. This handles an edge case for touch devices\n // + 'draggable:false' custom option. See #332 for more details.\n maps.event.addListener(map, 'click', () => {\n this_.mouseInMap_ = true;\n });\n\n maps.event.addListener(map, 'mouseout', () => {\n // has advantage over div MouseLeave\n this_.mouseInMap_ = false;\n this_.mouse_ = null;\n this_.markersDispatcher_.emit('kON_MOUSE_POSITION_CHANGE');\n });\n\n maps.event.addListener(map, 'drag', () => {\n this_.dragTime_ = new Date().getTime();\n this_._onDrag(map);\n });\n\n maps.event.addListener(map, 'dragend', () => {\n // 'dragend' fires on mouse release.\n // 'idle' listener waits until drag inertia ends before firing `onDragEnd`\n const idleListener = maps.event.addListener(map, 'idle', () => {\n maps.event.removeListener(idleListener);\n this_._onDragEnd(map);\n });\n });\n // user choosing satellite vs roads, etc\n maps.event.addListener(map, 'maptypeid_changed', () => {\n this_._onMapTypeIdChange(map.getMapTypeId());\n });\n })\n .catch((e) => {\n // notify callback of load failure\n this._onGoogleApiLoaded({\n map: null,\n maps: null,\n ref: this.googleMapDom_,\n });\n console.error(e); // eslint-disable-line no-console\n throw e;\n });\n };\n\n _onGoogleApiLoaded = (...args) => {\n if (this.props.onGoogleApiLoaded) {\n if (\n process.env.NODE_ENV !== 'production' &&\n this.props.yesIWantToUseGoogleMapApiInternals !== true\n ) {\n console.warn(\n 'GoogleMap: ' + // eslint-disable-line\n 'Usage of internal api objects is dangerous ' +\n 'and can cause a lot of issues.\\n' +\n 'To hide this warning add yesIWantToUseGoogleMapApiInternals={true} ' +\n 'to this.props.hoverDistance;\n\n _onDrag = (...args) => this.props.onDrag && this.props.onDrag(...args);\n\n _onDragEnd = (...args) =>\n this.props.onDragEnd && this.props.onDragEnd(...args);\n\n _onMapTypeIdChange = (...args) =>\n this.props.onMapTypeIdChange && this.props.onMapTypeIdChange(...args);\n\n _onZoomAnimationStart = (...args) =>\n this.props.onZoomAnimationStart && this.props.onZoomAnimationStart(...args);\n\n _onZoomAnimationEnd = (...args) =>\n this.props.onZoomAnimationEnd && this.props.onZoomAnimationEnd(...args);\n\n _onTilesLoaded = () => this.props.onTilesLoaded && this.props.onTilesLoaded();\n\n _onChildClick = (...args) => {\n if (this.props.onChildClick) {\n return this.props.onChildClick(...args);\n }\n return undefined;\n };\n\n _onChildMouseDown = (hoverKey, childProps) => {\n this.childMouseDownArgs_ = [hoverKey, childProps];\n if (this.props.onChildMouseDown) {\n this.props.onChildMouseDown(hoverKey, childProps, { ...this.mouse_ });\n }\n };\n\n // this method works only if this.props.onChildMouseDown was called\n _onChildMouseUp = () => {\n if (this.childMouseDownArgs_) {\n if (this.props.onChildMouseUp) {\n this.props.onChildMouseUp(...this.childMouseDownArgs_, {\n ...this.mouse_,\n });\n }\n this.childMouseDownArgs_ = null;\n this.childMouseUpTime_ = new Date().getTime();\n }\n };\n\n // this method works only if this.props.onChildMouseDown was called\n _onChildMouseMove = () => {\n if (this.childMouseDownArgs_) {\n if (this.props.onChildMouseMove) {\n this.props.onChildMouseMove(...this.childMouseDownArgs_, {\n ...this.mouse_,\n });\n }\n }\n };\n\n _onChildMouseEnter = (...args) => {\n if (this.props.onChildMouseEnter) {\n return this.props.onChildMouseEnter(...args);\n }\n return undefined;\n };\n\n _onChildMouseLeave = (...args) => {\n if (this.props.onChildMouseLeave) {\n return this.props.onChildMouseLeave(...args);\n }\n return undefined;\n };\n\n _setViewSize = () => {\n if (!this.mounted_) return;\n if (isFullScreen()) {\n this.geoService_.setViewSize(window.innerWidth, window.innerHeight);\n } else {\n const mapDom = ReactDOM.findDOMNode(this.googleMapDom_);\n this.geoService_.setViewSize(mapDom.clientWidth, mapDom.clientHeight);\n }\n this._onBoundsChanged();\n };\n\n _onWindowResize = () => {\n this.resetSizeOnIdle_ = true;\n };\n\n _onMapMouseMove = (e) => {\n if (!this.mouseInMap_) return;\n\n const currTime = new Date().getTime();\n const K_RECALC_CLIENT_RECT_MS = 50;\n\n if (currTime - this.mouseMoveTime_ > K_RECALC_CLIENT_RECT_MS) {\n this.boundingRect_ = e.currentTarget.getBoundingClientRect();\n }\n this.mouseMoveTime_ = currTime;\n\n const mousePosX = e.clientX - this.boundingRect_.left;\n const mousePosY = e.clientY - this.boundingRect_.top;\n\n if (!this.mouse_) {\n this.mouse_ = { x: 0, y: 0, lat: 0, lng: 0 };\n }\n\n this.mouse_.x = mousePosX;\n this.mouse_.y = mousePosY;\n\n const latLng = this.geoService_.fromContainerPixelToLatLng(this.mouse_);\n this.mouse_.lat = latLng.lat;\n this.mouse_.lng = latLng.lng;\n\n this._onChildMouseMove();\n\n if (currTime - this.dragTime_ < K_IDLE_TIMEOUT) {\n this.fireMouseEventOnIdle_ = true;\n } else {\n this.markersDispatcher_.emit('kON_MOUSE_POSITION_CHANGE');\n this.fireMouseEventOnIdle_ = false;\n }\n };\n\n // K_IDLE_CLICK_TIMEOUT - looks like 300 is enough\n _onClick = (...args) =>\n this.props.onClick &&\n !this.childMouseDownArgs_ &&\n new Date().getTime() - this.childMouseUpTime_ > K_IDLE_CLICK_TIMEOUT &&\n this.dragTime_ === 0 &&\n this.props.onClick(...args);\n\n _onMapClick = (event) => {\n if (this.markersDispatcher_) {\n // support touch events and recalculate mouse position on click\n this._onMapMouseMove(event);\n const currTime = new Date().getTime();\n if (currTime - this.dragTime_ > K_IDLE_TIMEOUT) {\n if (this.mouse_) {\n this._onClick({\n ...this.mouse_,\n event,\n });\n }\n\n this.markersDispatcher_.emit('kON_CLICK', event);\n }\n }\n };\n\n // gmap can't prevent map drag if mousedown event already occured\n // the only workaround I find is prevent mousedown native browser event\n _onMapMouseDownNative = (event) => {\n if (!this.mouseInMap_) return;\n\n this._onMapMouseDown(event);\n };\n\n _onMapMouseDown = (event) => {\n if (this.markersDispatcher_) {\n const currTime = new Date().getTime();\n if (currTime - this.dragTime_ > K_IDLE_TIMEOUT) {\n // Hovered marker detected at mouse move could be deleted at mouse down time\n // so it will be good to force hovered marker recalculation\n this._onMapMouseMove(event);\n this.markersDispatcher_.emit('kON_MDOWN', event);\n }\n }\n };\n\n _onMapMouseDownCapture = () => {\n if (detectBrowser().isChrome) {\n // to fix strange zoom in chrome\n this.zoomControlClickTime_ = new Date().getTime();\n }\n };\n\n _onKeyDownCapture = () => {\n if (detectBrowser().isChrome) {\n this.zoomControlClickTime_ = new Date().getTime();\n }\n };\n\n _isCenterDefined = (center) =>\n center &&\n ((isPlainObject(center) && isNumber(center.lat) && isNumber(center.lng)) ||\n (center.length === 2 && isNumber(center[0]) && isNumber(center[1])));\n\n _onBoundsChanged = (map, maps, callExtBoundsChange) => {\n if (map) {\n const gmC = map.getCenter();\n this.geoService_.setView([gmC.lat(), gmC.lng()], map.getZoom(), 0);\n }\n\n if (\n (this.props.onChange || this.props.onBoundsChange) &&\n this.geoService_.canProject()\n ) {\n const zoom = this.geoService_.getZoom();\n const bounds = this.geoService_.getBounds();\n const centerLatLng = this.geoService_.getCenter();\n\n if (!isArraysEqualEps(bounds, this.prevBounds_, kEPS)) {\n if (callExtBoundsChange !== false) {\n const marginBounds = this.geoService_.getBounds(this.props.margin);\n if (this.props.onBoundsChange) {\n this.props.onBoundsChange(\n this.centerIsObject_\n ? { ...centerLatLng }\n : [centerLatLng.lat, centerLatLng.lng],\n zoom,\n bounds,\n marginBounds\n );\n }\n\n if (this.props.onChange) {\n this.props.onChange({\n center: { ...centerLatLng },\n zoom,\n bounds: {\n nw: {\n lat: bounds[0],\n lng: bounds[1],\n },\n se: {\n lat: bounds[2],\n lng: bounds[3],\n },\n sw: {\n lat: bounds[4],\n lng: bounds[5],\n },\n ne: {\n lat: bounds[6],\n lng: bounds[7],\n },\n },\n marginBounds: {\n nw: {\n lat: marginBounds[0],\n lng: marginBounds[1],\n },\n se: {\n lat: marginBounds[2],\n lng: marginBounds[3],\n },\n sw: {\n lat: marginBounds[4],\n lng: marginBounds[5],\n },\n ne: {\n lat: marginBounds[6],\n lng: marginBounds[7],\n },\n },\n\n size: this.geoService_.hasSize()\n ? {\n width: this.geoService_.getWidth(),\n height: this.geoService_.getHeight(),\n }\n : {\n width: 0,\n height: 0,\n },\n });\n }\n\n this.prevBounds_ = bounds;\n }\n }\n }\n };\n\n _registerChild = (ref) => {\n this.googleMapDom_ = ref;\n };\n\n render() {\n const overlay = this.state.overlay;\n const mapMarkerPrerender = !overlay ? (\n \n ) : null;\n\n return (\n \n \n {IS_REACT_16 && overlay && createPortal(this._renderPortal(), overlay)}\n\n {/* render markers before map load done */}\n {mapMarkerPrerender}\n
\n );\n }\n}\n\nexport default GoogleMap;\n","export const generateHeatmap = (instance, { positions }) =>\n new instance.visualization.HeatmapLayer({\n data: positions.reduce((acc, { lat, lng, weight = 1 }) => {\n acc.push({\n location: new instance.LatLng(lat, lng),\n weight,\n });\n return acc;\n }, []),\n });\n\nexport const optionsHeatmap = (instance, { options = {} }) =>\n Object.keys(options).map((option) => instance.set(option, options[option]));\n","export default function isArraysEqualEps(arrayA, arrayB, eps) {\n if (arrayA && arrayB) {\n for (let i = 0; i !== arrayA.length; ++i) {\n if (Math.abs(arrayA[i] - arrayB[i]) > eps) {\n return false;\n }\n }\n return true;\n }\n return false;\n}\n","import {\n styled\n} from '@volkswagen-onehub/components-core';\nimport { keyframes } from 'styled-components';\nimport { MarkerDimensions } from 'src/feature-app/NewMap/MapGeneralController';\n\n\nconst beatKeyframe = keyframes`\n from {\n opacity: 1;\n transform: translate3d(50%, 50%, 0) scale(0);\n }\n to {\n opacity: 0;\n transform: translate3d(50%, 50%, 0) scale(1);\n }\n`;\n\nexport const Wrapper = styled.div<{ onTop?: boolean }>`\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate3d(-50%, -100%, 0);\n z-index: ${(props) => (props.onTop ? '3' : '2')};\n &.geoloc {\n transform: translate3d(-50%, -50%, 0);\n z-index: 1;\n }\n .circle-beat {\n animation: ${beatKeyframe} 2s ease 0s infinite normal none running;\n }\n`;\n\nexport const TextWrapper = styled(Wrapper as any)`\n /* https://github.com/microsoft/TypeScript/issues/37597#issuecomment-628089901 */\n top: 68%;\n color: #ffffff;\n & div {\n color: #ffffff;\n }\n`;\n\nexport const Img = styled.img<{ markerDimensions: MarkerDimensions }>`\n width: ${(props) => `${props.markerDimensions.width}px`};\n height: ${(props) => `${props.markerDimensions.height}px`};\n &.dealer-marker {\n margin-bottom: 4px;\n }\n`;\n","import React from 'react';\nimport { Wrapper } from 'src/feature-app/NewMap/components/CommonStyledComponents';\n\nexport const CenterMarker = React.memo((props: { lat: number; lng: number }) => {\n return (\n \n \n \n \n \n \n );\n});\n","import { Text } from '@volkswagen-onehub/components-core';\nimport React, { useState } from 'react';\nimport { Points } from 'src/types';\nimport { Img, TextWrapper, Wrapper } from 'src/feature-app/NewMap/components/CommonStyledComponents';\nimport { useMapGeneralController } from 'src/feature-app/NewMap/MapGeneralController';\n\ninterface ClusterMarkerProps {\n lat: number;\n lng: number;\n pointCount: number;\n onClick: any;\n isHover: boolean;\n}\n\nexport const sameClusterId = (selectedPoint: Points, point: Points) => {\n if (selectedPoint?.properties?.parent_cluster_id && point.id) {\n return selectedPoint.properties.parent_cluster_id === point.id;\n }\n return false;\n};\n\nexport const ClusterMarker = React.memo(({ onClick, pointCount, isHover }: ClusterMarkerProps) => {\n const { markerDimensions } = useMapGeneralController();\n const [mouseEntered, setMouseEntered] = useState(false);\n\n return (\n {\n e.preventDefault();\n onClick();\n }}\n onMouseEnter={(e) => {\n e.preventDefault();\n setMouseEntered(true);\n }}\n onMouseLeave={(e) => {\n e.preventDefault();\n setMouseEntered(false);\n }}\n >\n \n \n {pointCount}\n \n \n );\n});\n","import { styled } from '@volkswagen-onehub/components-core';\nimport React, { useState } from 'react';\nimport { Points } from 'src/types';\nimport { Img, Wrapper } from 'src/feature-app/NewMap/components/CommonStyledComponents';\nimport { useMapGeneralController } from 'src/feature-app/NewMap/MapGeneralController';\n\nconst Dot = styled.div<{ greyCard: boolean }>`\n height: 4px;\n width: 4px;\n background-color: ${(props) => (props.greyCard ? '#6A767D' : '#0040c5')};\n border-radius: 100%;\n display: inline;\n position: absolute;\n bottom: 0;\n left: 44%;\n`;\n\ninterface DealerMarkerProps {\n onClick: (event: React.MouseEvent) => void;\n lat: number;\n lng: number;\n isGrey: boolean;\n isActive: boolean;\n isHover: boolean;\n isFavouriteDealer: boolean;\n}\n\nexport const isDealerGrey = (carPickupSelected: boolean, replacementCarSelected: boolean, point: Points) =>\n pickupSelectedAndDealerHasIt(carPickupSelected, point) ||\n replacementCarSelectedAndDealerHasIt(replacementCarSelected, point);\n\nexport const isDealerActive = (selectedPoint: Points, point: Points) =>\n selectedPoint?.properties?.dealer?.kvps === point?.properties?.dealer?.kvps;\n\nexport const isDealerFavourite = (favouriteDealer: Points, point: Points) =>\nfavouriteDealer?.properties?.dealer?.kvps === point?.properties?.dealer?.kvps;\n\nexport const isDealerHovered = (hoverPoint: Points, point: Points) =>\nhoverPoint?.properties?.dealer?.kvps === point?.properties?.dealer?.kvps;\n\nconst pickupSelectedAndDealerHasIt = (carPickupSelected: boolean, point: Points) =>\n carPickupSelected && !point?.properties?.dealer?.dmsInfo?.pickupCarServiceAvailabe;\nconst replacementCarSelectedAndDealerHasIt = (replacementCarSelected: boolean, point: Points) =>\n replacementCarSelected && !point?.properties?.dealer?.dmsInfo?.replacementCarServiceAvailable;\n\nexport const DealerMarker = React.memo(\n ({\n onClick,\n isGrey,\n isActive,\n isHover,\n isFavouriteDealer\n }: DealerMarkerProps) => {\n const markerDimensions = useMapGeneralController().markerDimensions;\n const [mouseEntered, setMouseEntered] = useState(false);\n\n return (\n {\n e.preventDefault();\n setMouseEntered(true);\n }}\n onMouseLeave={(e) => {\n e.preventDefault();\n setMouseEntered(false);\n }}\n onTop={isActive || isHover ||mouseEntered ? true : false}\n >\n \n {isActive ? : null}\n \n );\n }\n);\n","import { Breakpoints, BreakpointWrapper, CTA, styled, ThemeProvider } from '@volkswagen-onehub/components-core';\nimport GoogleMapReact from 'google-map-react';\nimport React, { useEffect, useState } from 'react';\nimport { useSelector } from 'react-redux';\nimport { getGoogleApiKey } from 'src/bff';\nimport { useTrackingManager } from 'src/feature-app/hooks/use-tracking-manager';\nimport { Add, ContactDealer, Locate, Reload, Remove } from 'src/icons-core-imports';\nimport { OneFormState, Points, SelectedTab } from 'src/types';\nimport { mapStyles } from 'src/feature-app/NewMap';\nimport { CenterMarker } from 'src/feature-app/NewMap/components/CenterMarker';\nimport { ClusterMarker, sameClusterId } from 'src/feature-app/NewMap/components/ClusterMarker';\nimport { DealerMarker, isDealerGrey, isDealerActive, isDealerFavourite, isDealerHovered } from 'src/feature-app/NewMap/components/DealerMarker';\nimport { useMapGeneralController } from 'src/feature-app/NewMap/MapGeneralController';\n\nconst RecalcularWrapper = styled.div<{ isPosventa?: boolean }>`\n position: fixed;\n top: ${(props) => (props.isPosventa ? '96px' : '68px')};\n transform: translateX(-50%);\n left: 50%;\n background-color: #ffffff;\n border-radius: 500px;\n width: fit-content;\n @media all and (min-width: 960px) {\n top: 24px;\n transform: translateX(0);\n left: unset;\n right: 183px;\n }\n`;\n\nconst GoogleMaps = styled.div`\n & .gm-control-active[aria-label='Ampliar'] {\n display: none !important;\n }\n\n & .gm-control-active[aria-label='Reducir'] {\n display: none !important;\n }\n\n & .gmnoprint {\n display: none;\n }\n`;\n\ninterface MapHeightWrapperProps {\n isTrigger?: boolean;\n isWidget?: boolean;\n}\n\nconst MapHeigthWrapper = styled.div`\n width: 100%;\n height: ${(props) => (props.isWidget ? '85vh' : props.isTrigger ? 'var(--size-grid020)' : '100vh')};\n\n @media all and (min-width: 560px) {\n height: ${(props) => (props.isWidget ? '82vh' : props.isTrigger ? 'var(--size-grid010)' : '100vh')};\n }\n\n @media all and (min-width: 768px) {\n height: ${(props) => (props.isWidget ? '85vh' : props.isTrigger ? 'var(--size-grid010)' : '100vh')};\n }\n @media all and (min-width: 960px) {\n height: ${(props) => (props.isWidget ? '60vh' : props.isTrigger ? '636px' : '100vh')};\n }\n @media all and (min-width: 1600px) {\n height: ${(props) => (props.isWidget ? '70vh' : props.isTrigger ? '684px' : '100vh')};\n }\n`;\n\ninterface newMapProps {\n searchIsDealer?: boolean;\n setTranslateCarousel?: any;\n translateCarousel?: boolean;\n preSelectedOrderValue?: SelectedTab;\n isTrigger?: boolean;\n preselectedDealerForm?: boolean;\n replacementCarSelected?: boolean;\n carPickupSelected?: boolean;\n isPosventa?: boolean;\n isWidget?: boolean;\n}\n\nexport const NewMap = React.memo((props: newMapProps) => {\n const {\n centerRef,\n clusters,\n handleApiLoaded,\n geoLocatedCenterRef,\n getNewClusters,\n handlePointClickAndCarouselMove,\n selectedPoint,\n handleClusterClick,\n mapMaxZoom,\n searchMoreDealers,\n handleMapMovement,\n setSearchIsDealer,\n hoverPoint,\n handleHoverPoint,\n userIsGeoLocated,\n mapHasMoved,\n } = useMapGeneralController();\n const { dealersInfo, formInfo } = useSelector((state: OneFormState) => state);\n const { dealersOrInstallationsMode, favouriteDealer } = dealersInfo;\n const { suggestionIsAddress } = formInfo;\n const {\n searchIsDealer,\n setTranslateCarousel,\n preSelectedOrderValue,\n isTrigger,\n carPickupSelected,\n replacementCarSelected,\n isPosventa,\n isWidget,\n } = props;\n const trackingManager = useTrackingManager();\n\n const [gelocalizationActive, setGelocalizationActive] = useState(false);\n\n useEffect(() => {\n if (userIsGeoLocated) {\n setGelocalizationActive(true);\n } else {\n setGelocalizationActive(false);\n }\n }, [userIsGeoLocated]);\n\n return (\n // Important! Always set the container height explicitly\n \n \n {\n handleApiLoaded(map, maps);\n }}\n defaultCenter={{\n lat: 40.58869349456487,\n lng: -3.0047240000000075,\n }}\n yesIWantToUseGoogleMapApiInternals\n onDrag={() => {\n handleMapMovement();\n }}\n defaultZoom={5}\n options={{\n styles: mapStyles,\n clickableIcons: false,\n streetViewControl: false,\n fullscreenControl: false,\n mapTypeControl: false,\n maxZoom: mapMaxZoom,\n }}\n >\n {clusters\n ? clusters.map((point: Points) => {\n if (point.geometry) {\n const [longitude, latitude] = point.geometry.coordinates;\n return point.properties.cluster ? (\n {\n handleClusterClick(point);\n }}\n pointCount={point.properties.point_count}\n />\n ) : (\n {\n e.preventDefault();\n if (!searchIsDealer) {\n handlePointClickAndCarouselMove(point, true, preSelectedOrderValue);\n }\n }}\n />\n );\n }\n return null;\n })\n : null}\n {(geoLocatedCenterRef.current && gelocalizationActive) || (suggestionIsAddress && centerRef.current) ? (\n \n ) : null}\n \n {isTrigger ? (\n \n \n \n ) : (\n <>\n \n \n \n {clusters && mapHasMoved && !isWidget ? (\n searchIsDealer ? (\n \n \n {\n e.preventDefault();\n setSearchIsDealer(false);\n\n trackingManager.trackFormButtonClick({\n contentId:\n dealersOrInstallationsMode === 'dealers'\n ? 'Ver más talleres cerca'\n : 'Ver más puntos de venta cerca',\n });\n searchMoreDealers();\n if (setTranslateCarousel) {\n setTranslateCarousel(false);\n }\n e.stopPropagation();\n }}\n ariaLabel=\"aria label\"\n icon={}\n >\n {dealersOrInstallationsMode === 'dealers'\n ? 'Ver más talleres cerca'\n : 'Ver más puntos de venta cerca'}\n \n \n \n ) : (\n \n \n {\n e.preventDefault();\n trackingManager.trackFormButtonClick({\n contentId: 'Buscar en esta zona',\n });\n getNewClusters();\n {\n /*if (setTranslateCarousel) {\n setTranslateCarousel(false);\n }*/\n }\n e.stopPropagation();\n }}\n ariaLabel=\"aria label\"\n icon={}\n >\n Buscar en esta zona\n \n \n \n )\n ) : null}\n \n )}\n \n \n );\n});\n\n/* MAP CONTROLLLERS (!el botón de geolocaclización en versión mobile está en la propia vista.\n Estos controladores actualmente solo están visibles a partir de 960px)\n*/\nconst ControllerBackground = styled.div`\n border-radius: 100%;\n background-color: #ffffff;\n height: 44px;\n width: 44px;\n`;\n\ninterface ControllersWrapperProps {\n isTrigger?: boolean;\n}\n\nconst ControllersWrapper = styled.div`\n position: ${(props) => (props.isTrigger ? 'absolute' : 'absolute')};\n bottom: ${(props) => (props.isTrigger ? '24px' : '240px')};\n right: ${(props) => (props.isTrigger ? 'calc(var(--size-grid002) + 24px)' : '20px')};\n\n @media all and (min-width: 960px) {\n bottom: 24px;\n right: ${(props) => (props.isTrigger ? 'calc(var(--size-grid002) + 24px)' : '24px')};\n }\n @media all and (min-width: 1920px) {\n right: ${(props) => (props.isTrigger ? 'calc(var(--size-grid003) + 24px)' : '24px')};\n }\n @media all and (min-width: 2560px) {\n right: ${(props) => (props.isTrigger ? 'calc(var(--size-grid004) + 24px)' : '24px')};\n }\n`;\n\nconst ZoomWrapper = styled.div`\n display: flex;\n flex-direction: column;\n margin-top: 14px;\n\n & div {\n margin: 6px 0px;\n }\n`;\n\nconst IconLess = 'https://cdn.volkswagen.es/repository/app/vw-oneform/assets/icons/ic_less.svg';\nconst IconMore = 'https://cdn.volkswagen.es/repository/app/vw-oneform/assets/icons/ic_more.svg';\n\nconst Controllers = (props: { gelocalizationActive: boolean; suggestionIsAddress: boolean; isTrigger?: boolean }) => {\n const { handleChangeInMapZoom, centerInGeoLocatedCenter, centerRef, centerMap } = useMapGeneralController();\n\n const { gelocalizationActive, isTrigger, suggestionIsAddress } = props;\n\n return (\n \n \n {gelocalizationActive || (suggestionIsAddress && centerRef.current) ? (\n \n {\n e.preventDefault();\n if (suggestionIsAddress && centerRef.current) {\n centerMap(centerRef.current);\n } else {\n centerInGeoLocatedCenter();\n }\n }}\n ariaLabel=\"aria label\"\n icon={}\n />\n \n ) : null}\n \n \n {\n e.preventDefault();\n handleChangeInMapZoom(true);\n }}\n ariaLabel=\"aria label\"\n icon={}\n />\n \n \n {\n e.preventDefault();\n handleChangeInMapZoom(false);\n }}\n ariaLabel=\"aria label\"\n icon={}\n />\n \n \n \n \n );\n};\n","import { styled } from '@volkswagen-onehub/components-core';\nimport React, { ReactElement, useEffect, useRef } from 'react';\nimport Slider from 'react-slick';\nimport { NewDealerCard } from 'src/feature-app';\nimport { Points } from 'src/types';\nimport { useMapGeneralController } from 'src/feature-app/NewMap/MapGeneralController';\nimport { getDistanceFromLatLngCenter } from 'src/feature-app/NewMap/utils';\n\nconst CSSDiv = styled.div`\n /* Slider */\n .slick-slider {\n position: relative;\n\n display: block;\n box-sizing: border-box;\n\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n\n -webkit-touch-callout: none;\n -khtml-user-select: none;\n -ms-touch-action: pan-y;\n touch-action: pan-y;\n -webkit-tap-highlight-color: transparent;\n }\n\n .slick-list {\n position: relative;\n\n display: block;\n overflow: hidden;\n\n margin: 0;\n padding: 0;\n }\n .slick-list:focus {\n outline: none;\n }\n .slick-list.dragging {\n cursor: pointer;\n cursor: hand;\n }\n\n .slick-slider .slick-track,\n .slick-slider .slick-list {\n -webkit-transform: translate3d(0, 0, 0);\n -moz-transform: translate3d(0, 0, 0);\n -ms-transform: translate3d(0, 0, 0);\n -o-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n\n .slick-track {\n position: relative;\n top: 0;\n left: 0;\n\n display: block;\n }\n .slick-track:before,\n .slick-track:after {\n display: table;\n\n content: '';\n }\n .slick-track:after {\n clear: both;\n }\n .slick-loading .slick-track {\n visibility: hidden;\n }\n\n .slick-slide {\n display: none;\n float: left;\n\n height: 100%;\n min-height: 1px;\n }\n [dir='rtl'] .slick-slide {\n float: right;\n }\n .slick-slide img {\n display: block;\n }\n .slick-slide.slick-loading img {\n display: none;\n }\n .slick-slide.dragging img {\n pointer-events: none;\n }\n .slick-initialized .slick-slide {\n display: block;\n }\n .slick-loading .slick-slide {\n visibility: hidden;\n }\n .slick-vertical .slick-slide {\n display: block;\n\n height: auto;\n\n border: 1px solid transparent;\n }\n .slick-arrow.slick-hidden {\n display: none;\n }\n\n /* Slider */\n .slick-slider {\n position: relative;\n\n display: block;\n box-sizing: border-box;\n\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n\n -webkit-touch-callout: none;\n -khtml-user-select: none;\n -ms-touch-action: pan-y;\n touch-action: pan-y;\n -webkit-tap-highlight-color: transparent;\n }\n\n .slick-list {\n position: relative;\n\n display: block;\n overflow: hidden;\n\n margin: 0;\n padding: 0;\n }\n .slick-list:focus {\n outline: none;\n }\n .slick-list.dragging {\n cursor: pointer;\n cursor: hand;\n }\n\n .slick-slider .slick-track,\n .slick-slider .slick-list {\n -webkit-transform: translate3d(0, 0, 0);\n -moz-transform: translate3d(0, 0, 0);\n -ms-transform: translate3d(0, 0, 0);\n -o-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n\n .slick-track {\n position: relative;\n top: 0;\n left: 0;\n\n display: block;\n }\n .slick-track:before,\n .slick-track:after {\n display: table;\n\n content: '';\n }\n .slick-track:after {\n clear: both;\n }\n .slick-loading .slick-track {\n visibility: hidden;\n }\n\n .slick-slide {\n display: none;\n float: left;\n\n height: 100%;\n min-height: 1px;\n }\n [dir='rtl'] .slick-slide {\n float: right;\n }\n .slick-slide img {\n display: block;\n }\n .slick-slide.slick-loading img {\n display: none;\n }\n .slick-slide.dragging img {\n pointer-events: none;\n }\n .slick-initialized .slick-slide {\n display: block;\n }\n .slick-loading .slick-slide {\n visibility: hidden;\n }\n .slick-vertical .slick-slide {\n display: block;\n\n height: auto;\n\n border: 1px solid transparent;\n }\n .slick-arrow.slick-hidden {\n display: none;\n }\n`;\n\nconst BackgroundCard = styled.div`\n background-color: #001e50;\n margin: 0 4px;\n`;\n\ninterface CarouselCardsProps {\n handleShowCalendarOnClick?: any;\n handleSeleccionarOnClick: any;\n handleShowSlots?: (point: Points) => string | null;\n pointsToList: Points[];\n isCitaPosventa?: boolean;\n replacementCarSelected?: boolean;\n carPickupSelected?: boolean;\n}\n\nexport const Carousel = (props: CarouselCardsProps) => {\n const {\n clusters,\n handlePointClickAndCarouselMove,\n centerToCalculateDistance,\n handleSelectedPoint,\n handleClusterClick,\n selectedPoint,\n } = useMapGeneralController();\n const { \n handleSeleccionarOnClick, \n handleShowCalendarOnClick, \n handleShowSlots, \n pointsToList, \n isCitaPosventa,\n carPickupSelected,\n replacementCarSelected \n } = props;\n const sliderRef = useRef(null);\n const childrenRef = useRef(null);\n\n useEffect(() => {\n if (pointsToList.length) {\n const firstPoint = selectedPoint ? selectedPoint : pointsToList[0];\n // handleCarouselMovement(firstPoint);\n handleSelectedPoint(firstPoint);\n // handleSelectedCard(firstPoint);\n }\n }, [pointsToList]);\n\n useEffect(() => {\n // Movimiento del carousel en caso de que se haga click en un Dealer Marker.\n if (selectedPoint) {\n // handleSelectedCard(selectedPoint);\n handleCarouselMovement(selectedPoint);\n }\n }, [selectedPoint, pointsToList]);\n\n const handleSelectedCard = (point: Points) => {\n if (!point.properties.cluster) {\n const { kvps } = point.properties.dealer;\n\n const index = pointsToList.findIndex((dealer) => {\n if (dealer.properties.dealer.kvps === kvps) {\n return true;\n }\n });\n sliderRef.current.slickGoTo(index);\n }\n };\n\n const handleCarouselMovement = (point: Points) => {\n if (point.properties.parent_cluster_id) {\n const parentCluster = clusters.find(\n (cluster) => cluster.properties.cluster && cluster.id === point.properties.parent_cluster_id\n );\n if (parentCluster) {\n // En caso de que el dealer esté dentro de un cluster dentro de otro fijamos el valor de isCluster como true para que llegue hasta el final\n // y no rompa únicamente el primer cluster.\n // handleClusterClick(point, true);\n handleSelectedPoint(point);\n } else {\n handlePointClickAndCarouselMove(point, false);\n handleSelectedCard(point);\n }\n } else {\n handlePointClickAndCarouselMove(point, false);\n handleSelectedCard(point);\n }\n };\n\n const settings = {\n className: 'center',\n infinite: false,\n centerMode: true,\n centerPadding: '60px',\n slidesToShow: 1,\n swipe: true,\n speed: 500,\n arrows: false,\n beforeChange: (current: number, next: number) => {\n const point: Points = pointsToList.find((point) => {\n if (!point.properties.cluster) {\n if (point.properties.dealer.kvps === childrenRef.current[next].key) {\n return point;\n }\n }\n });\n\n handleCarouselMovement(point);\n },\n };\n return (\n \n {\n sliderRef.current = el;\n if (el && el.props && el.props.children) {\n childrenRef.current = el.props.children.filter((c:any) => c !== null);\n }\n }}\n >\n {pointsToList\n ? pointsToList.map((point: Points, i) => {\n const distanceFromCenter = getDistanceFromLatLngCenter(centerToCalculateDistance.current, point);\n\n return !point.properties.cluster ? (\n
\n {/* este div es necesario para el funcionamiento de la libreria */}\n \n \n \n
\n ) : null;\n })\n : null}\n
\n \n );\n};\n","import {\n Breakpoints,\n Container,\n ContainerPadding,\n CTA,\n Layout,\n styled,\n Text,\n TextAlignment,\n ThemeProvider,\n TokenTextAppearance,\n} from '@volkswagen-onehub/components-core';\nimport React, { useEffect, useRef, useState } from 'react';\nimport { useFormContext } from 'react-hook-form';\nimport { useDispatch, useSelector, useStore } from 'react-redux';\nimport { Suggest, useFeatureAppConfig, useMapGeneralController } from 'src/feature-app';\nimport { Horario, Installation, isDealerData, OneFormState, SelectedTab } from 'src/types';\nimport { isGooglePlace, updateMapVariables, Suggestion } from 'src/feature-app/NewMap';\nimport {\n useTrackingManager,\n useLocateUser,\n useShowOverflow,\n useFeatureAppEnvironment,\n useFeatureServices,\n} from 'src/feature-app/hooks';\nimport LoadScriptInstance from 'src/feature-app/NewMap/Loadscript';\nimport { renderAvisoIslasCanariasLayer } from 'src/components';\nimport { getGeocode } from 'src/feature-app/NewMap/utils';\nimport { GooglePlace } from 'src/feature-app/NewMap/components/suggest';\n\nconst FiltrosWrapper = styled.div<{ onlySuggest?: boolean; showOverflow?: boolean }>`\n min-height: 100vh;\n position: relative;\n padding-bottom: 117px;\n padding-top: 56px;\n overflow: ${(props) => (props.showOverflow ? 'visible' : 'auto')};\n .filtros {\n &__header {\n text-align: center;\n }\n &__body {\n flex-grow: 1;\n padding-bottom: ${(props) => (props.onlySuggest ? '4px' : null)};\n }\n &__controls {\n position: fixed;\n bottom: 0;\n width: 100%;\n padding: 14px 0;\n background: #ffffff;\n border-top: 1px solid #dfe4e8;\n }\n }\n`;\n\nconst MultipleCTAWrapper = styled.div`\n text-align: left;\n & > button {\n margin: 24px 24px 0 0;\n }\n`;\n\nconst Divider = styled.div`\n background-color: #dfe4e8;\n width: 100vw;\n height: 1px;\n margin-bottom: 14px;\n\n @media all and (min-width: 960px) {\n display: none;\n margin-bottom: 0;\n }\n`;\n\n//revisar width aButtonsWrapper a partir de 960 en navegadores/dispositivos con barra de scroll.\n//Está puesto con valor fijo porqué por algun motivo no pilla bien el 100%\n\nconst ActionButtonsWrapper = styled.div`\n display: flex;\n justify-content: flex-end;\n @media all and (min-width: 960px) {\n width: 400px;\n }\n button {\n div {\n font-size: 14px;\n }\n &:first-of-type {\n margin-right: 32px;\n }\n }\n`;\n\ninterface FiltrosProps {\n closeFiltros: any;\n showFiltros: boolean;\n setShowFiltros: React.Dispatch>;\n setPreSelectedOrderValue?: React.Dispatch>;\n preSelectedOrderValue?: SelectedTab;\n onlySuggest?: boolean;\n concesionario?: boolean;\n citaPosventa?: boolean;\n}\n\nexport const Filtros = (props: FiltrosProps) => {\n return (\n {}}>\n \n \n );\n};\n\nexport interface SelectedSuggestion {\n name: string;\n suggestion: Suggestion;\n}\n\nconst getSelectedSuggestion = (suggestion: Suggestion) => {\n if (isGooglePlace(suggestion)) {\n return { name: suggestion.name, suggestion };\n } else {\n if (!isDealerData(suggestion)) {\n return {\n name: `${(suggestion as Installation).TXT_V_Installation_Data_Name__c}, ${\n (suggestion as Installation).TXT_V_Address__c\n }`,\n suggestion,\n };\n } else {\n return {\n name: `${suggestion.name}, ${suggestion.markerInfo.dealerInfo.address}`,\n suggestion,\n };\n }\n }\n};\n\nexport const FiltrosComponent = (props: FiltrosProps) => {\n const {\n closeFiltros,\n showFiltros,\n setShowFiltros,\n setPreSelectedOrderValue,\n preSelectedOrderValue,\n onlySuggest,\n concesionario,\n citaPosventa,\n } = props;\n const { formData, formInfo } = useSelector((state: OneFormState) => state);\n\n //Si se necesita que el overflow sea visible. Selectsno nativos, suggests, etc. Añadir en la definicion del step showOverflow.\n\n const { showOverflow } = useShowOverflow(false);\n\n const [aplicarDisabled, setAplicarDisabled] = useState(true);\n const [tabsOrder, setTabsOrder] = useState('horario');\n const [currentHorario, setCurrentHorario] = useState<{ label: string; value: string }>({\n label: 'Lo antes posible',\n value: 'before',\n });\n // guardar suggestion seleccionada previo a hacer submit\n // sirve para activar o desactivar el setAplicarDisabled\n const [selectedSuggestion, setSelectedSuggestion] = useState(null);\n const { register } = useFormContext();\n const trackingManager = useTrackingManager();\n const filtrosRef = useRef(null);\n\n const { userSuggestion: userSuggest, suggestionIsInCanaryIslands } = formInfo;\n\n const CTAsHorario = [\n { label: 'Lo antes posible', value: 'before' },\n { label: 'Por la mañana', value: 'morning' },\n { label: 'Al mediodía', value: 'afternon' },\n { label: 'Por la tarde', value: 'evening' },\n ];\n\n const CTAsOrden: { value: SelectedTab; label: string }[] = [\n { value: 'ubicacion', label: 'Ubicación' },\n { value: 'horario', label: 'Horario' },\n ];\n\n const {\n value,\n setValue,\n icon,\n locationSuccess,\n setLocationSuccess,\n loading,\n locationDisabled,\n isLocating,\n handleLocateFilters,\n } = useLocateUser();\n const dispatch = useDispatch();\n\n const { moreDealersSearched, setMoreDealersSearched } = useMapGeneralController();\n const { trigger } = useFeatureAppConfig();\n const store = useStore();\n const env = useFeatureAppEnvironment();\n const layerManager = useFeatureServices()['layer-manager'];\n\n const validateSubmission = () => {\n const { suggestionIsInCanaryIslands } = store.getState().formInfo;\n\n if (suggestionIsInCanaryIslands) {\n renderAvisoIslasCanariasLayer(store, env, layerManager);\n return;\n }\n\n if (preSelectedOrderValue && setPreSelectedOrderValue && tabsOrder !== preSelectedOrderValue) {\n setPreSelectedOrderValue(tabsOrder);\n }\n setShowFiltros(false);\n };\n\n const handleFiltrosSubmit = (selectedSuggestionFromClick?: SelectedSuggestion) => {\n if (selectedSuggestion && !selectedSuggestionFromClick) {\n // if (isGooglePlace(selectedSuggestion.suggestion) && selectedSuggestion.suggestion.isGeoLocated) {\n // // Parche para que se actualize la ubicación a la geolocalización. El bug viene de que en use-locate-user.tsx\n // // se detecta el cambio de suggestion en un useeffect y eso dispara la función updateMapVariables, pero en el caso de\n // // la geolocalización, ésta función se dispara automáticamente al clickar sobre el cta. Si queremos esperar a que los cambios\n // // se hagan efectivos al clickar \"Aplicar filtros\" hay que llamarla desde aquí.\n\n updateMapVariables(dispatch, selectedSuggestion.suggestion).then(() => {\n validateSubmission();\n });\n }\n // Pasamos este valor al seleccionar en la lista desplegable un valor.\n if (selectedSuggestionFromClick) {\n updateMapVariables(dispatch, selectedSuggestionFromClick.suggestion).then(() => {\n validateSubmission();\n });\n }\n };\n\n useEffect(() => {\n if (!moreDealersSearched) {\n if (userSuggest && showFiltros) {\n if (!isGooglePlace(userSuggest) && isDealerData(userSuggest)) {\n setValue(`${userSuggest?.name}, ${userSuggest?.markerInfo?.dealerInfo?.address}`);\n } else if (!isGooglePlace(userSuggest) && !isDealerData(userSuggest)) {\n setValue(\n `${(userSuggest as Installation)?.TXT_V_Installation_Data_Name__c}, ${\n (userSuggest as Installation)?.TXT_V_Address__c\n }`\n );\n } else {\n setValue(userSuggest?.name);\n }\n }\n } else {\n setValue('');\n }\n if (showFiltros) setAplicarDisabled(true);\n }, [showFiltros]);\n\n useEffect(() => {\n if (value && !aplicarDisabled) {\n if (value !== selectedSuggestion.name) {\n setAplicarDisabled(true);\n }\n }\n }, [value]);\n\n useEffect(() => {\n const val = CTAsHorario.find((el: any) => formData.fields.horario === el.value);\n setCurrentHorario(val);\n }, [formData]);\n\n useEffect(() => {\n if (preSelectedOrderValue) {\n setTabsOrder(preSelectedOrderValue);\n }\n }, [preSelectedOrderValue]);\n\n useEffect(() => {\n if (moreDealersSearched && locationSuccess) setLocationSuccess(false);\n }, [moreDealersSearched]);\n\n useEffect(() => {\n // Necesario para que cada vez que se selecciona un resultado de google en filtros se compruebe si\n // pertenece a las islas canarias y dispare el popup antes de que se apliquen los filtros.\n const checkGeocode = async () => {\n const geometry = await getGeocode(selectedSuggestion);\n };\n if (selectedSuggestion?.suggestion?.isGooglePlace) {\n checkGeocode();\n }\n }, [selectedSuggestion]);\n\n useEffect(() => {\n if (!moreDealersSearched) {\n // cuando se monta la componente, si está geolocalizado forzar el locationSuccess a\n // true porque el boton el hook se resetea al montar de nuevo la componente\n // también porque en mobile la componente Filtros se renderiza cada vez que se abre\n if (!userSuggest) {\n return;\n }\n if ((userSuggest as GooglePlace)?.isGeoLocated) {\n setLocationSuccess(true);\n }\n if (!isGooglePlace(userSuggest) && isDealerData(userSuggest)) {\n setValue(`${userSuggest.name}, ${userSuggest.markerInfo.dealerInfo.address}`);\n } else if (!isGooglePlace(userSuggest) && !isDealerData(userSuggest)) {\n setValue(\n `${(userSuggest as Installation).TXT_V_Installation_Data_Name__c}, ${\n (userSuggest as Installation).TXT_V_Address__c\n }`\n );\n } else {\n setValue(userSuggest.name);\n }\n }\n }, []);\n\n const onSuggestionSelectedFn = (suggestion: Suggestion) => {\n const selectedSuggestion = getSelectedSuggestion(suggestion);\n setSelectedSuggestion(selectedSuggestion);\n setLocationSuccess(false);\n setAplicarDisabled(false);\n if (moreDealersSearched) setMoreDealersSearched(false);\n // Cierra la parte de filtros\n handleFiltrosSubmit(selectedSuggestion);\n };\n\n return (\n \n \n \n {citaPosventa ? null : (\n
\n \n Filtros\n \n
\n )}\n\n {!onlySuggest ? (\n
\n \n \n {citaPosventa ? (\n <>Buscar de nuevo\n ) : (\n <>Busca tu {!concesionario ? taller : punto de venta}\n )}\n \n
\n \n
\n \n {\n e.preventDefault();\n if (!locationSuccess) {\n const { suggestion } = await handleLocateFilters();\n setSelectedSuggestion({ name: suggestion.name, suggestion });\n setAplicarDisabled(false);\n setMoreDealersSearched(false);\n }\n }}\n disabled={loading ? true : false}\n size=\"small\"\n >\n Localiza mi posición actual\n \n {locationDisabled ? (\n
\n \n Tu localización está deshabilitada\n \n
\n ) : null}\n \n {/* */}\n \n {/* */}\n
\n ) : (\n
\n \n \n {citaPosventa ? (\n <>Buscar de nuevo\n ) : (\n <>Busca tu {!concesionario ? taller : punto de venta}\n )}\n \n
\n \n
\n \n {\n e.preventDefault();\n if (!locationSuccess) {\n const { suggestion } = await handleLocateFilters();\n setSelectedSuggestion({ name: suggestion.name, suggestion });\n setAplicarDisabled(false);\n setMoreDealersSearched(false);\n }\n }}\n disabled={loading ? true : false}\n size=\"small\"\n >\n Localiza mi posición actual\n \n {locationDisabled ? (\n
\n \n Tu localización está deshabilitada\n \n
\n ) : null}\n \n \n
\n )}\n \n
\n \n \n {\n closeFiltros();\n trackingManager.trackFormButtonClick({\n contentId: 'Cancelar',\n });\n }}\n ariaLabel=\"aria label\"\n >\n Cancelar\n \n {\n e.preventDefault();\n trackingManager.trackFormButtonClick({\n contentId: 'Aplicar filtros',\n });\n setTimeout(() => {\n handleFiltrosSubmit();\n }, 1000);\n }}\n ariaLabel=\"aria label\"\n disabled={aplicarDisabled}\n >\n {citaPosventa ? <>Buscar : <>Aplicar filtros}\n \n \n \n
\n \n
\n );\n};\n\ninterface SortByProps {\n setTabsOrder: React.Dispatch>;\n setAplicarDisabled: React.Dispatch>;\n preSelectedOrderValue: SelectedTab;\n CTAsOrden: {\n value: SelectedTab;\n label: string;\n }[];\n tabsOrder: SelectedTab;\n}\n\nconst SortBy = (props: SortByProps) => {\n const { setTabsOrder, setAplicarDisabled, preSelectedOrderValue, tabsOrder, CTAsOrden } = props;\n const trackingManager = useTrackingManager();\n\n return (\n <>\n \n Ordenar por\n \n \n {CTAsOrden.map((el) => {\n return (\n {\n e.preventDefault();\n trackingManager.trackFormButtonClick({\n contentId: el.label,\n });\n setTabsOrder(el.value);\n if (preSelectedOrderValue !== el.value) {\n setAplicarDisabled(false);\n }\n }}\n size=\"small\"\n key={el.value}\n >\n {el.label}\n \n );\n })}\n \n \n );\n};\n\ninterface ChangeHorarioProps {\n setCurrentHorario: React.Dispatch>;\n setAplicarDisabled: React.Dispatch>;\n CTAsHorario: {\n label: string;\n value: string;\n }[];\n currentHorario: { label: string; value: string };\n horario: Horario;\n}\n\nconst ChangeHorario = (props: ChangeHorarioProps) => {\n const { setCurrentHorario, setAplicarDisabled, CTAsHorario, currentHorario, horario } = props;\n const trackingManager = useTrackingManager();\n\n return (\n \n \n Selecciona una franja horaria\n \n \n {CTAsHorario.map((cta: { label: string; value: string }) => {\n return (\n {\n e.preventDefault();\n trackingManager.trackFormButtonClick({\n contentId: cta.label,\n });\n if (cta.label !== currentHorario.label) {\n setCurrentHorario(cta);\n }\n if (cta.value !== horario) {\n setAplicarDisabled(false);\n }\n }}\n size=\"small\"\n key={cta.value}\n >\n {cta.label}\n \n );\n })}\n \n \n );\n};\n","import { Text, ThemeProvider, TokenTextAppearance, TokenTextColor } from '@volkswagen-onehub/components-core';\nimport { Close, ContactDealer, Magnifier, Route } from 'src/icons-core-imports';\nimport { MagnifierLabel, CloseButton, SuggestionWrapper, StyledWrapper } from '.';\nimport React, { useEffect, useRef, useState } from 'react';\nimport Autosuggest from 'react-autosuggest';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { DealersData } from 'src/types';\nimport { useAddressPredictions } from 'src/feature-app';\nimport { DealersOrInstallationsMode, Geometry, Installation, isDealerData, OneFormState } from 'src/types';\nimport { useOneFormContext } from 'src/feature-app/OneForm';\nimport { isGooglePlace } from 'src/feature-app/NewMap/utils';\nimport { useDropdowPosition, useTrackingManager } from 'src/feature-app/hooks';\n\nexport interface GooglePlace {\n isGooglePlace: boolean;\n name: string;\n isGeoLocated: boolean;\n skipSearch?: boolean;\n moreDealersSearched?: boolean;\n geometry?: Geometry;\n}\n\nexport type Suggestion = DealersData | GooglePlace | Installation;\n\n// https://developer.mozilla.org/en/docs/Web/JavaScript/Guide/Regular_Expressions#Using_Special_Characters\nconst escapeRegexCharacters = (str: string) => {\n return str.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n};\n\nconst getSuggestions = (\n list: DealersData[] | Installation[],\n value: string,\n dealersOrInstallationsMode: DealersOrInstallationsMode\n) => {\n if (value.length < 2) return [];\n const escapedValue = escapeRegexCharacters(value.trim());\n\n if (escapedValue === '') {\n return [];\n }\n const regex = new RegExp(escapedValue, 'i');\n\n if (dealersOrInstallationsMode === 'dealers') {\n return list.filter((dealer: DealersData) => regex.test(dealer.markerInfo.dealerInfo.name));\n } else {\n return list.filter((installation: Installation) => regex.test(installation.VGED_CommercialName__c));\n }\n};\n\nconst getSuggestionValue = (suggestion: Suggestion) => {\n if (isGooglePlace(suggestion)) {\n return suggestion.name;\n } else {\n if (isDealerData(suggestion)) {\n return suggestion.markerInfo.dealerInfo.name;\n } else {\n return (suggestion as Installation).VGED_CommercialName__c;\n }\n }\n};\n\nconst renderSuggestion = (suggestion: Suggestion) => {\n if (isGooglePlace(suggestion)) {\n return (\n \n \n \n {suggestion.name}\n \n \n );\n } else {\n let name;\n let address;\n let zipCode;\n let city;\n let province;\n if (isDealerData(suggestion)) {\n name = suggestion.markerInfo.dealerInfo.name;\n address = suggestion.markerInfo.dealerInfo.address;\n zipCode = suggestion.markerInfo.dealerInfo.zipCode;\n city = suggestion.markerInfo.dealerInfo.city;\n province = suggestion.markerInfo.dealerInfo.province;\n } else {\n name = (suggestion as Installation).VGED_CommercialName__c;\n address = (suggestion as Installation).BillingStreet;\n zipCode = (suggestion as Installation).BillingPostalCode;\n city = (suggestion as Installation).BillingCity;\n province = (suggestion as Installation).Province;\n }\n return (\n \n \n \n
\n \n {name}\n \n \n {address}\n
\n {zipCode} {city}, {province}\n
\n
\n
\n );\n }\n};\n\nconst getValueFormatted = (suggestion: Suggestion) => {\n if (isGooglePlace(suggestion)) {\n return suggestion.name;\n }\n if (!isGooglePlace(suggestion) && isDealerData(suggestion)) {\n return `${suggestion.name}, ${suggestion.markerInfo.dealerInfo.address}`;\n } else if (!isGooglePlace(suggestion) && !isDealerData(suggestion)) {\n return `${(suggestion as Installation).VGED_CommercialName__c}, ${\n (suggestion as Installation).BillingStreet\n }`;\n } else {\n return '';\n }\n};\n\ninterface SuggestProps {\n setSuggestion?: React.Dispatch>;\n setValue: React.Dispatch>;\n setAplicarDisabled?: React.Dispatch>;\n value: string;\n isFiltrosSuggest?: boolean;\n isLocating?: boolean;\n moreDealersSearched?: boolean;\n setLocationSuccess?: React.Dispatch>;\n formTheme?: string;\n onSuggestionSelectedFn?: (suggestion: Suggestion) => void;\n autoWidth?: boolean;\n}\n\nexport function Suggest(props: SuggestProps) {\n const {\n setSuggestion,\n setValue,\n value,\n isFiltrosSuggest,\n setAplicarDisabled,\n isLocating,\n moreDealersSearched,\n setLocationSuccess,\n formTheme,\n onSuggestionSelectedFn,\n autoWidth\n } = props;\n const [suggestions, setSuggestions] = useState([]);\n const [selectedValue, setSelectedValue] = useState(false); // Controla que una vez seleccionado un valor en el input, no siga buscando en google maps.\n const predictions = useAddressPredictions(value, selectedValue);\n const [inputPlaceholder, setInputPlaceHolder] = useState('Localidad, código postal o nombre del taller');\n const trackingManager = useTrackingManager();\n const suggestRef = useRef(null);\n const inputRef = useRef(null);\n\n const { formInfo, dealersInfo } = useSelector((state: OneFormState) => state);\n const { dealers, installations, dealersOrInstallationsMode } = dealersInfo;\n\n const [inputFocus, setInputFocus] = useState(false);\n const dispatch = useDispatch();\n const { setDisableIntroNextStep, setError, handleNextStep } = useOneFormContext();\n\n useEffect(() => {\n if (isFiltrosSuggest) {\n setDisableIntroNextStep(true);\n // inputRef.current.input.addEventListener('keydown', handleIntroKeyDown)\n }\n return () => {\n if (isFiltrosSuggest) {\n setDisableIntroNextStep(false);\n // inputRef.current.input.removeEventListener('keydown', handleIntroKeyDown)\n }\n };\n }, []);\n\n const onChange = (e: any, { newValue }: { newValue: string }) => {\n e.stopPropagation();\n if (setSelectedValue) {\n setSelectedValue(false);\n }\n setError(false);\n setValue(newValue);\n };\n\n //desplegar el dropdown para arriba o para abajo según la posicinón del input en el window\n const { goUp, getAndUpdateState } = useDropdowPosition('.react-autosuggest__container');\n\n const onClick = () => {\n getAndUpdateState();\n\n trackingManager.trackFormFieldClick(\n {\n contentId: 'Localidad, código postal o nombre del taller',\n },\n {\n FormFieldName: 'location', // Corregir\n }\n );\n };\n\n const onSuggestionsFetchRequested = async ({ value }: { value: string }) => {\n const list = dealersOrInstallationsMode === 'dealers' ? dealers : installations;\n const dealerSuggestions = getSuggestions(list, value, dealersOrInstallationsMode);\n setSuggestions(dealerSuggestions);\n };\n\n const onSuggestionsClearRequested = () => {\n setSuggestions([]);\n };\n\n const [placeHolder, setPlaceHolder] = useState('');\n\n useEffect(() => {\n if (dealersOrInstallationsMode === 'dealers') {\n setPlaceHolder('Localidad, código postal, dirección, nombre del taller, etc.');\n } else {\n setPlaceHolder('Localidad, código postal o nombre del punto de venta');\n }\n }, []);\n\n useEffect(() => {\n if (isFiltrosSuggest && moreDealersSearched) {\n setInputPlaceHolder('Zona del mapa seleccionada');\n } else {\n setInputPlaceHolder(placeHolder);\n }\n }, [moreDealersSearched, placeHolder]);\n\n const inputProps = {\n placeholder: inputPlaceholder,\n value,\n onChange,\n onClick,\n disabled: isLocating ? true : false,\n };\n\n // REFACTORIZAR\n useEffect(() => {\n if (selectedValue) return;\n const predictionsFormatted: GooglePlace[] = predictions.map((prediction) => {\n return {\n name: prediction,\n isGooglePlace: true,\n isGeoLocated: false,\n };\n });\n setSuggestions([...suggestions, ...predictionsFormatted]);\n }, [predictions]);\n\n return (\n {\n setInputFocus(true);\n }}\n onBlur={() => setInputFocus(false)}\n isFullScreen={formInfo.notALayer ? true : false}\n goUp={goUp}\n autoWidth={autoWidth}\n className=\"styled-wrapper-suggest\"\n >\n \n \n \n {\n if (!isGooglePlace(suggestion)) {\n dispatch({ type: 'SUGGESTION_IS_IN_CANARY_ISLANDS', payload: false });\n }\n const value = getValueFormatted(suggestion);\n setValue(value);\n setSelectedValue(true);\n if (onSuggestionSelectedFn) {\n setTimeout(() => {\n onSuggestionSelectedFn(suggestion);\n }, 0);\n }\n }}\n inputProps={inputProps}\n />\n {value !== '' && (\n \n {\n e.preventDefault();\n setValue('');\n if (!isFiltrosSuggest && !isLocating) {\n setLocationSuccess(false);\n setSuggestion(null);\n setValue('');\n setSelectedValue(false);\n } else if (isFiltrosSuggest) {\n setAplicarDisabled(true);\n }\n }}\n >\n \n \n \n )}\n \n );\n}\n","export const mapStyles = [\n {\n elementType: 'geometry',\n stylers: [\n {\n color: '#f5f5f5',\n },\n ],\n },\n {\n elementType: 'labels.icon',\n stylers: [\n {\n visibility: 'off',\n },\n ],\n },\n {\n elementType: 'labels.text.fill',\n stylers: [\n {\n color: '#616161',\n },\n ],\n },\n {\n elementType: 'labels.text.stroke',\n stylers: [\n {\n color: '#f5f5f5',\n },\n ],\n },\n {\n featureType: 'administrative.land_parcel',\n elementType: 'labels',\n stylers: [\n {\n visibility: 'off',\n },\n ],\n },\n {\n featureType: 'administrative.land_parcel',\n elementType: 'labels.text.fill',\n stylers: [\n {\n color: '#bdbdbd',\n },\n ],\n },\n {\n featureType: 'landscape',\n stylers: [\n {\n color: '#dfe4e8',\n },\n ],\n },\n {\n featureType: 'landscape.natural',\n elementType: 'labels',\n stylers: [\n {\n color: '#757575',\n },\n {\n visibility: 'simplified',\n },\n {\n weight: 0.5,\n },\n ],\n },\n {\n featureType: 'poi',\n elementType: 'geometry',\n stylers: [\n {\n color: '#eeeeee',\n },\n ],\n },\n {\n featureType: 'poi',\n elementType: 'labels.text',\n stylers: [\n {\n visibility: 'off',\n },\n ],\n },\n {\n featureType: 'poi',\n elementType: 'labels.text.fill',\n stylers: [\n {\n color: '#757575',\n },\n ],\n },\n {\n featureType: 'poi.business',\n stylers: [\n {\n visibility: 'off',\n },\n ],\n },\n {\n featureType: 'poi.park',\n elementType: 'geometry',\n stylers: [\n {\n color: '#e5e5e5',\n },\n ],\n },\n {\n featureType: 'poi.park',\n elementType: 'geometry.fill',\n stylers: [\n {\n color: '#ade5a1',\n },\n ],\n },\n {\n featureType: 'poi.park',\n elementType: 'labels',\n stylers: [\n {\n visibility: 'on',\n },\n ],\n },\n {\n featureType: 'poi.park',\n elementType: 'labels.text.fill',\n stylers: [\n {\n color: '#00662f',\n },\n ],\n },\n {\n featureType: 'poi.park',\n elementType: 'labels.text.stroke',\n stylers: [\n {\n visibility: 'off',\n },\n ],\n },\n {\n featureType: 'road',\n elementType: 'geometry',\n stylers: [\n {\n color: '#ffffff',\n },\n ],\n },\n {\n featureType: 'road',\n elementType: 'labels',\n stylers: [\n {\n visibility: 'on',\n },\n ],\n },\n {\n featureType: 'road',\n elementType: 'labels.icon',\n stylers: [\n {\n visibility: 'off',\n },\n ],\n },\n {\n featureType: 'road.arterial',\n elementType: 'labels',\n stylers: [\n {\n visibility: 'on',\n },\n ],\n },\n {\n featureType: 'road.arterial',\n elementType: 'labels.icon',\n stylers: [\n {\n visibility: 'on',\n },\n ],\n },\n {\n featureType: 'road.arterial',\n elementType: 'labels.text.fill',\n stylers: [\n {\n color: '#757575',\n },\n ],\n },\n {\n featureType: 'road.highway',\n elementType: 'geometry',\n stylers: [\n {\n color: '#dadada',\n },\n ],\n },\n {\n featureType: 'road.highway',\n elementType: 'geometry.fill',\n stylers: [\n {\n color: '#ffe856',\n },\n ],\n },\n {\n featureType: 'road.highway',\n elementType: 'geometry.stroke',\n stylers: [\n {\n visibility: 'off',\n },\n ],\n },\n {\n featureType: 'road.highway',\n elementType: 'labels',\n stylers: [\n {\n visibility: 'on',\n },\n ],\n },\n {\n featureType: 'road.highway',\n elementType: 'labels.text.fill',\n stylers: [\n {\n color: '#616161',\n },\n ],\n },\n {\n featureType: 'road.local',\n stylers: [\n {\n visibility: 'off',\n },\n ],\n },\n {\n featureType: 'road.local',\n elementType: 'geometry',\n stylers: [\n {\n color: '#ffffff',\n },\n {\n visibility: 'on',\n },\n {\n weight: 0.5,\n },\n ],\n },\n {\n featureType: 'road.local',\n elementType: 'labels',\n stylers: [\n {\n visibility: 'on',\n },\n ],\n },\n {\n featureType: 'road.local',\n elementType: 'labels.text',\n stylers: [\n {\n visibility: 'on',\n },\n ],\n },\n {\n featureType: 'road.local',\n elementType: 'labels.text.fill',\n stylers: [\n {\n color: '#9e9e9e',\n },\n ],\n },\n {\n featureType: 'transit',\n stylers: [\n {\n visibility: 'off',\n },\n ],\n },\n {\n featureType: 'transit.line',\n elementType: 'geometry',\n stylers: [\n {\n color: '#e5e5e5',\n },\n ],\n },\n {\n featureType: 'transit.station',\n elementType: 'geometry',\n stylers: [\n {\n color: '#eeeeee',\n },\n ],\n },\n {\n featureType: 'water',\n elementType: 'geometry',\n stylers: [\n {\n color: '#4cc7f4',\n },\n ],\n },\n {\n featureType: 'water',\n elementType: 'labels.text.fill',\n stylers: [\n {\n color: '#0066a1',\n },\n ],\n },\n];\n","export const provinces = [\n {\n \"attributes\": [\n {\n \"name\": \"CODE\",\n \"value\": \"2\"\n },\n {\n \"name\": \"NAME\",\n \"value\": \"Albacete\"\n }\n ]\n },\n {\n \"attributes\": [\n {\n \"name\": \"CODE\",\n \"value\": \"3\"\n },\n {\n \"name\": \"NAME\",\n \"value\": \"Alicante/Alacant\"\n }\n ]\n },\n {\n \"attributes\": [\n {\n \"name\": \"CODE\",\n \"value\": \"4\"\n },\n {\n \"name\": \"NAME\",\n \"value\": \"Almería\"\n }\n ]\n },\n {\n \"attributes\": [\n {\n \"name\": \"CODE\",\n \"value\": \"1\"\n },\n {\n \"name\": \"NAME\",\n \"value\": \"Araba/Álava\"\n }\n ]\n },\n {\n \"attributes\": [\n {\n \"name\": \"CODE\",\n \"value\": \"33\"\n },\n {\n \"name\": \"NAME\",\n \"value\": \"Asturias\"\n }\n ]\n },\n {\n \"attributes\": [\n {\n \"name\": \"CODE\",\n \"value\": \"5\"\n },\n {\n \"name\": \"NAME\",\n \"value\": \"Ávila\"\n }\n ]\n },\n {\n \"attributes\": [\n {\n \"name\": \"CODE\",\n \"value\": \"6\"\n },\n {\n \"name\": \"NAME\",\n \"value\": \"Badajoz\"\n }\n ]\n },\n {\n \"attributes\": [\n {\n \"name\": \"CODE\",\n \"value\": \"7\"\n },\n {\n \"name\": \"NAME\",\n \"value\": \"Balears, Illes\"\n }\n ]\n },\n {\n \"attributes\": [\n {\n \"name\": \"CODE\",\n \"value\": \"8\"\n },\n {\n \"name\": \"NAME\",\n \"value\": \"Barcelona\"\n }\n ]\n },\n {\n \"attributes\": [\n {\n \"name\": \"CODE\",\n \"value\": \"48\"\n },\n {\n \"name\": \"NAME\",\n \"value\": \"Bizkaia\"\n }\n ]\n },\n {\n \"attributes\": [\n {\n \"name\": \"CODE\",\n \"value\": \"9\"\n },\n {\n \"name\": \"NAME\",\n \"value\": \"Burgos\"\n }\n ]\n },\n {\n \"attributes\": [\n {\n \"name\": \"CODE\",\n \"value\": \"10\"\n },\n {\n \"name\": \"NAME\",\n \"value\": \"Cáceres\"\n }\n ]\n },\n {\n \"attributes\": [\n {\n \"name\": \"CODE\",\n \"value\": \"11\"\n },\n {\n \"name\": \"NAME\",\n \"value\": \"Cádiz\"\n }\n ]\n },\n {\n \"attributes\": [\n {\n \"name\": \"CODE\",\n \"value\": \"39\"\n },\n {\n \"name\": \"NAME\",\n \"value\": \"Cantabria\"\n }\n ]\n },\n {\n \"attributes\": [\n {\n \"name\": \"CODE\",\n \"value\": \"12\"\n },\n {\n \"name\": \"NAME\",\n \"value\": \"Castellón/Castelló\"\n }\n ]\n },\n {\n \"attributes\": [\n {\n \"name\": \"CODE\",\n \"value\": \"13\"\n },\n {\n \"name\": \"NAME\",\n \"value\": \"Ciudad Real\"\n }\n ]\n },\n {\n \"attributes\": [\n {\n \"name\": \"CODE\",\n \"value\": \"14\"\n },\n {\n \"name\": \"NAME\",\n \"value\": \"Córdoba\"\n }\n ]\n },\n {\n \"attributes\": [\n {\n \"name\": \"CODE\",\n \"value\": \"15\"\n },\n {\n \"name\": \"NAME\",\n \"value\": \"Coruña, A\"\n }\n ]\n },\n {\n \"attributes\": [\n {\n \"name\": \"CODE\",\n \"value\": \"16\"\n },\n {\n \"name\": \"NAME\",\n \"value\": \"Cuenca\"\n }\n ]\n },\n {\n \"attributes\": [\n {\n \"name\": \"CODE\",\n \"value\": \"20\"\n },\n {\n \"name\": \"NAME\",\n \"value\": \"Gipuzkoa\"\n }\n ]\n },\n {\n \"attributes\": [\n {\n \"name\": \"CODE\",\n \"value\": \"17\"\n },\n {\n \"name\": \"NAME\",\n \"value\": \"Girona\"\n }\n ]\n },\n {\n \"attributes\": [\n {\n \"name\": \"CODE\",\n \"value\": \"18\"\n },\n {\n \"name\": \"NAME\",\n \"value\": \"Granada\"\n }\n ]\n },\n {\n \"attributes\": [\n {\n \"name\": \"CODE\",\n \"value\": \"19\"\n },\n {\n \"name\": \"NAME\",\n \"value\": \"Guadalajara\"\n }\n ]\n },\n {\n \"attributes\": [\n {\n \"name\": \"CODE\",\n \"value\": \"21\"\n },\n {\n \"name\": \"NAME\",\n \"value\": \"Huelva\"\n }\n ]\n },\n {\n \"attributes\": [\n {\n \"name\": \"CODE\",\n \"value\": \"22\"\n },\n {\n \"name\": \"NAME\",\n \"value\": \"Huesca\"\n }\n ]\n },\n {\n \"attributes\": [\n {\n \"name\": \"CODE\",\n \"value\": \"23\"\n },\n {\n \"name\": \"NAME\",\n \"value\": \"Jaén\"\n }\n ]\n },\n {\n \"attributes\": [\n {\n \"name\": \"CODE\",\n \"value\": \"24\"\n },\n {\n \"name\": \"NAME\",\n \"value\": \"León\"\n }\n ]\n },\n {\n \"attributes\": [\n {\n \"name\": \"CODE\",\n \"value\": \"25\"\n },\n {\n \"name\": \"NAME\",\n \"value\": \"Lleida\"\n }\n ]\n },\n {\n \"attributes\": [\n {\n \"name\": \"CODE\",\n \"value\": \"27\"\n },\n {\n \"name\": \"NAME\",\n \"value\": \"Lugo\"\n }\n ]\n },\n {\n \"attributes\": [\n {\n \"name\": \"CODE\",\n \"value\": \"28\"\n },\n {\n \"name\": \"NAME\",\n \"value\": \"Madrid\"\n }\n ]\n },\n {\n \"attributes\": [\n {\n \"name\": \"CODE\",\n \"value\": \"29\"\n },\n {\n \"name\": \"NAME\",\n \"value\": \"Málaga\"\n }\n ]\n },\n {\n \"attributes\": [\n {\n \"name\": \"CODE\",\n \"value\": \"30\"\n },\n {\n \"name\": \"NAME\",\n \"value\": \"Murcia\"\n }\n ]\n },\n {\n \"attributes\": [\n {\n \"name\": \"CODE\",\n \"value\": \"31\"\n },\n {\n \"name\": \"NAME\",\n \"value\": \"Navarra\"\n }\n ]\n },\n {\n \"attributes\": [\n {\n \"name\": \"CODE\",\n \"value\": \"32\"\n },\n {\n \"name\": \"NAME\",\n \"value\": \"Ourense\"\n }\n ]\n },\n {\n \"attributes\": [\n {\n \"name\": \"CODE\",\n \"value\": \"34\"\n },\n {\n \"name\": \"NAME\",\n \"value\": \"Palencia\"\n }\n ]\n },\n {\n \"attributes\": [\n {\n \"name\": \"CODE\",\n \"value\": \"35\"\n },\n {\n \"name\": \"NAME\",\n \"value\": \"Palmas, Las\"\n }\n ]\n },\n {\n \"attributes\": [\n {\n \"name\": \"CODE\",\n \"value\": \"36\"\n },\n {\n \"name\": \"NAME\",\n \"value\": \"Pontevedra\"\n }\n ]\n },\n {\n \"attributes\": [\n {\n \"name\": \"CODE\",\n \"value\": \"26\"\n },\n {\n \"name\": \"NAME\",\n \"value\": \"Rioja, La\"\n }\n ]\n },\n {\n \"attributes\": [\n {\n \"name\": \"CODE\",\n \"value\": \"37\"\n },\n {\n \"name\": \"NAME\",\n \"value\": \"Salamanca\"\n }\n ]\n },\n {\n \"attributes\": [\n {\n \"name\": \"CODE\",\n \"value\": \"38\"\n },\n {\n \"name\": \"NAME\",\n \"value\": \"Santa Cruz de Tenerife\"\n }\n ]\n },\n {\n \"attributes\": [\n {\n \"name\": \"CODE\",\n \"value\": \"40\"\n },\n {\n \"name\": \"NAME\",\n \"value\": \"Segovia\"\n }\n ]\n },\n {\n \"attributes\": [\n {\n \"name\": \"CODE\",\n \"value\": \"41\"\n },\n {\n \"name\": \"NAME\",\n \"value\": \"Sevilla\"\n }\n ]\n },\n {\n \"attributes\": [\n {\n \"name\": \"CODE\",\n \"value\": \"42\"\n },\n {\n \"name\": \"NAME\",\n \"value\": \"Soria\"\n }\n ]\n },\n {\n \"attributes\": [\n {\n \"name\": \"CODE\",\n \"value\": \"43\"\n },\n {\n \"name\": \"NAME\",\n \"value\": \"Tarragona\"\n }\n ]\n },\n {\n \"attributes\": [\n {\n \"name\": \"CODE\",\n \"value\": \"44\"\n },\n {\n \"name\": \"NAME\",\n \"value\": \"Teruel\"\n }\n ]\n },\n {\n \"attributes\": [\n {\n \"name\": \"CODE\",\n \"value\": \"45\"\n },\n {\n \"name\": \"NAME\",\n \"value\": \"Toledo\"\n }\n ]\n },\n {\n \"attributes\": [\n {\n \"name\": \"CODE\",\n \"value\": \"46\"\n },\n {\n \"name\": \"NAME\",\n \"value\": \"Valencia/València\"\n }\n ]\n },\n {\n \"attributes\": [\n {\n \"name\": \"CODE\",\n \"value\": \"47\"\n },\n {\n \"name\": \"NAME\",\n \"value\": \"Valladolid\"\n }\n ]\n },\n {\n \"attributes\": [\n {\n \"name\": \"CODE\",\n \"value\": \"49\"\n },\n {\n \"name\": \"NAME\",\n \"value\": \"Zamora\"\n }\n ]\n },\n {\n \"attributes\": [\n {\n \"name\": \"CODE\",\n \"value\": \"50\"\n },\n {\n \"name\": \"NAME\",\n \"value\": \"Zaragoza\"\n }\n ]\n },\n {\n \"attributes\": [\n {\n \"name\": \"CODE\",\n \"value\": \"51\"\n },\n {\n \"name\": \"NAME\",\n \"value\": \"Ceuta\"\n }\n ]\n },\n {\n \"attributes\": [\n {\n \"name\": \"CODE\",\n \"value\": \"52\"\n },\n {\n \"name\": \"NAME\",\n \"value\": \"Melilla\"\n }\n ]\n }\n]","import {\n styled\n} from '@volkswagen-onehub/components-core';\n\n//Layer styles\n\nexport const MapAndTabsWrapper = styled.div<{ showFilters: boolean }>`\n display: flex;\n .wrapper {\n width: 50%;\n height: 100vh;\n &--tabs {\n background-color: #001e50;\n overflow-y: hidden;\n color: white;\n }\n &--map {\n z-index: 4;\n height: 100%;\n background-color: grey;\n }\n }\n .opacity-layer {\n position: absolute;\n width: 50%;\n height: 100%;\n left: 0;\n background: rgba(0, 0, 0, 0.4);\n z-index: ${(props) => (props.showFilters ? 6 : -1)};\n opacity: ${(props) => (props.showFilters ? 1 : 0)};\n transition: opacity 0.4s;\n }\n`;\n\nexport const FilterButton = styled.div`\n position: absolute;\n top: 24px;\n right: 24px;\n button {\n background: #ffffff;\n }\n`;\n\nexport const FiltrosWrapperLayer = styled.div`\n min-height: 100vh;\n width: 50%;\n background-color: white;\n position: absolute;\n top: 0;\n right: 0;\n z-index: 5;\n transform: translate3d(100%, 0, 0);\n display: none;\n .back-btn {\n position: absolute;\n z-index: 4;\n top: 20px;\n left: 24px;\n @media screen and (min-width: 1600px) {\n top: 24px;\n }\n }\n &.filtros-enter {\n display: block;\n transform: translate3d(100%, 0, 0);\n }\n &.filtros-enter-active {\n display: block;\n transform: translate3d(0, 0, 0);\n transition: all 0.4s;\n }\n &.filtros-enter-done {\n display: block;\n transform: translate3d(0, 0, 0);\n }\n &.filtros-exit {\n display: block;\n transform: translate3d(0, 0, 0);\n }\n &.filtros-exit-active {\n display: block;\n transform: translate3d(100%, 0, 0);\n transition: all 0.4s;\n }\n &.filtros-exit-done {\n display: none;\n transform: translate3d(100%, 0, 0);\n }\n`;\n\nexport const ListWrapper = styled.div<{paddingBottom?: string}>`\n height: calc(100vh - 120px);\n overflow-y: auto;\n @media all and (min-width: 960px) {\n padding-bottom: ${(props)=> props.paddingBottom ? props.paddingBottom : null};\n }\n`;\n\nexport const SmallerSVG = styled.div`\n svg {\n height: 12px;\n width: 12px;\n }\n button {\n height: 24px;\n min-height: 24px; \n }\n div{\n font-size: 12px;\n }\n`;\n\n//Mobile Layer styled components\n\nexport const FilterMobileNavbar = styled.div`\n position: fixed;\n top: 0;\n width: 100vw;\n padding: 8px 20px;\n z-index: 20;\n background-color: #ffffff; \n`;\n\nexport const CTAsNavigationWrapper = styled.div<{services?: boolean}>`\n display:flex;\n justify-content: space-between;\n padding-bottom: ${(props) => props.services ? '16px' : null} ;\n`;\n\ninterface VerMasYCarouselPositionProps {\n translateCarousel: boolean;\n userIsGeoLocated: boolean;\n}\n\nexport const VerMasYCarouselPosition = styled.div`\n position: absolute;\n bottom: 8px;\n height: fit-content;\n width: 100%;\n`;\nexport const SoloCardWrapper = styled.div`\n background-color: #001e50;\n bottom: 8px;\n height: fit-content;\n position: absolute;\n margin: 0 var(--size-grid002);\n width: var(--size-grid020);\n .box-card-wrapper {\n border: none;\n margin-top: 0;\n }\n`;\n\nexport const CTASwrapper = styled.div`\n padding-right: 20px;\n padding-bottom: 12px;\n display: flex;\n flex-direction: column;\n align-items: flex-end;\n`;\n\nexport const VerMasTalleresCTA = styled.div`\n height: 32px;\n padding-right: 16px;\n padding-left: 16px;\n background-color: #ffffff;\n border: 1px solid #001e50;\n border-radius: 500px;\n color: #001e50;\n display: flex;\n align-items: center;\n width: 100px;\n`;\n\nexport const ControllerBackground = styled.div`\n border-radius: 100%;\n background-color: #ffffff;\n height: 44px;\n width: 44px;\n margin-bottom: 12px;\n button {\n border: 1px solid #001e50;\n }\n`;\n\ninterface CloseButtonProps {\n isTabsClose?: boolean;\n isFiltrosClose?: boolean;\n}\nexport const CloseButtonWrapper = styled.div`\n position: absolute;\n padding-bottom: ${(props) => (props.isTabsClose || props.isFiltrosClose ? '12px' : null)};\n background-color: ${(props) => (props.isTabsClose ? '#001E50' : '#FFFFFF')};\n width: 100%;\n padding-top: 12px;\n padding-left: 12px;\n z-index: 4;\n top: ${(props) => (props.isTabsClose || props.isFiltrosClose ? '0' : null)};\n @media screen and (min-width: 560px) {\n left: 20px;\n }\n button {\n color: ${(props) => (props.isTabsClose ? '#FFFFFF' : null)};\n }\n`;\n\nexport const MoblieListWrapper = styled.div<{paddingTop?: string}>`\n padding-top: ${(props)=> props.paddingTop ? props.paddingTop : null};\n`;\n","import {\n Breakpoints,\n Container,\n ContainerGutter,\n ContainerPadding,\n CTA,\n Layout,\n ThemeProvider,\n} from '@volkswagen-onehub/components-core';\nimport { ArrowLeft, Magnifier, FleetServicePrivate, CarPickupService } from 'src/icons-core-imports';\n\nimport React, { useEffect, useRef, useState } from 'react';\nimport { CSSTransition } from 'react-transition-group';\nimport { useFeatureAppConfig } from 'src/feature-app';\nimport { CloseComponent } from 'src/feature-app/Screen';\nimport { SelectedTab } from 'src/types';\nimport { Filtros } from 'src/feature-app/NewMap';\nimport { Points } from 'src/types';\nimport { useOneFormContext } from 'src/feature-app/OneForm';\nimport { NewMap } from 'src/feature-app/NewMap/components/Map';\nimport { useMapGeneralController } from 'src/feature-app/NewMap/MapGeneralController';\nimport { \n MapAndTabsWrapper, \n FilterButton, \n FiltrosWrapperLayer, \n ListWrapper, \n SmallerSVG, \n handleClickCarPickup,\n handleClickReplacementCar \n} from '.';\n\ninterface ViewCitaPosventaProps {\n handleSeleccionarOnClick: any;\n handleShowSlots?: (point: Points) => string | null;\n renderPoints(points: any, carPickupSelected?: boolean, replacementCarSelected?: boolean, isTime?: boolean ): JSX.Element[];\n renderCalendar?(): JSX.Element;\n showCalendar?: boolean;\n preSelectedOrderValue?: SelectedTab;\n setPreSelectedOrderValue?: React.Dispatch>;\n pointsToList: Points[];\n services?: boolean;\n paddingBottomList?: string;\n isPosventa?: boolean;\n concesionario?: boolean;\n onlySuggest?: boolean; \n}\n\nexport const LayerDesktopView = (props: ViewCitaPosventaProps) => {\n const {\n renderPoints,\n renderCalendar,\n showCalendar,\n preSelectedOrderValue,\n setPreSelectedOrderValue,\n pointsToList,\n services, paddingBottomList, isPosventa, concesionario, onlySuggest,\n } = props;\n\n const [showFiltros, setShowFiltros] = useState(false);\n const [ preselectedDealerForm, setPreselectedDealerForm ] = useState(false);\n const config = useFeatureAppConfig();\n const sustitucionRef = useRef(null);\n const recogidaRef = useRef(null);\n\n useEffect(()=>{\n if(config.trigger === 'cita-posventa-dealer') {\n setPreselectedDealerForm(true);\n } else {\n setPreselectedDealerForm(false);\n }\n }, []);\n\n const { searchIsDealer } = useMapGeneralController();\n const { handleAreYouSureLayer } = useOneFormContext();\n\n const handleShowFiltros = () => {\n setShowFiltros(!showFiltros);\n };\n\n //seleccionar los que tiene coche de sustitucion o servicio de recogida\n\n const [ carPickupSelected, setCarPickupSelected] = useState(false);\n const [ replacementCarSelected, setReplacementCarSelected ] = useState(false);\n\n return showCalendar ? (\n renderCalendar()\n ) : (\n \n \n
\n \n {\n services? (\n \n \n {\n e.preventDefault();\n handleClickReplacementCar(replacementCarSelected, setReplacementCarSelected);\n sustitucionRef.current.blur();\n }} \n ariaLabel='aria label'\n icon={}\n >\n Coche de sustitución\n \n \n \n {\n e.preventDefault();\n handleClickCarPickup(carPickupSelected, setCarPickupSelected);\n recogidaRef.current.blur();\n }} \n ariaLabel='aria label'\n icon={}\n >\n Servicio de recogida y entrega\n \n \n \n ) : null\n }\n \n
\n {pointsToList ? (\n \n \n {renderPoints(pointsToList, carPickupSelected, replacementCarSelected)}\n \n \n ) : null}\n
\n \n
\n
\n \n {\n preselectedDealerForm ? null : (\n \n \n {\n e.preventDefault();\n handleShowFiltros();\n }}\n ariaLabel=\"aria label\"\n icon={}\n >\n Buscar de nuevo\n \n \n \n )\n } \n
\n
setShowFiltros(false)} />\n \n\n \n \n \n
\n {\n e.preventDefault();\n handleShowFiltros();\n }}\n ariaLabel=\"aria label\"\n icon={}\n />\n
\n handleShowFiltros()}\n showFiltros={showFiltros}\n setShowFiltros={setShowFiltros}\n setPreSelectedOrderValue={setPreSelectedOrderValue}\n preSelectedOrderValue={preSelectedOrderValue}\n citaPosventa = {isPosventa}\n onlySuggest={true}\n concesionario={true}\n />\n
\n
\n
\n \n );\n};\n","import {\n Breakpoints,\n Container,\n ContainerPadding,\n ContainerGutter,\n CTA,\n Layout,\n Text,\n ThemeProvider,\n TokenTextAppearance,\n} from '@volkswagen-onehub/components-core';\nimport { ArrowLeft, Close, Locate, Magnifier, CarPickupService, FleetServicePrivate } from 'src/icons-core-imports';\n\nimport React, { useEffect, useState } from 'react';\nimport { useFeatureAppConfig } from 'src/feature-app';\nimport { SelectedTab } from 'src/types';\nimport { Carousel, Filtros, NewMap, useMapGeneralController } from 'src/feature-app/NewMap';\nimport { Points } from 'src/types';\nimport { useOneFormContext } from 'src/feature-app/OneForm';\nimport { useRef } from 'react';\nimport { \n CloseButtonWrapper, \n ControllerBackground, \n CTAsNavigationWrapper, \n CTASwrapper, \n FilterMobileNavbar, \n SmallerSVG, \n SoloCardWrapper, \n VerMasTalleresCTA, \n VerMasYCarouselPosition,\n handleClickCarPickup,\n handleClickReplacementCar,\n MoblieListWrapper \n} from '.';\nimport { useFeatureServices } from 'src/feature-app/hooks';\n\nconst listIcon = require('../../../feature-app/NewMap/assets/filter-ic_list.svg');\n\ninterface ViewCitaPosventaProps {\n handleSeleccionarOnClick: any;\n handleShowSlots?: (point: Points) => string | null;\n handleShowCalendarOnClick?: (point: Points) => Promise;\n renderPoints(points: any, carPickupSelected?: boolean, replacementCarSelected?: boolean, isTime?: boolean, isCarouselCard?: boolean ): JSX.Element[];\n renderCalendar?(): JSX.Element;\n showCalendar?: boolean;\n preSelectedOrderValue?: SelectedTab;\n setPreSelectedOrderValue?: React.Dispatch>;\n pointsToList: Points[];\n isPosventa?: boolean;\n services?: boolean;\n concesionario?: boolean;\n onlySuggest?: boolean; \n paddingTopList?: string;\n}\n\nexport const LayerMobileView = (props: ViewCitaPosventaProps) => {\n const {\n handleSeleccionarOnClick,\n handleShowSlots,\n renderPoints,\n handleShowCalendarOnClick,\n showCalendar,\n renderCalendar,\n preSelectedOrderValue,\n setPreSelectedOrderValue,\n pointsToList, isPosventa, services,\n concesionario, onlySuggest, paddingTopList\n } = props;\n const { handlePreviousStep } = useOneFormContext();\n\n const {\n centerInGeoLocatedCenter,\n userIsGeoLocated,\n searchIsDealer,\n } = useMapGeneralController();\n\n //controladores de vista\n\n const [showFiltros, setShowFiltros] = useState(false);\n const [showTalleres, setShowTalleres] = useState(false);\n const [showMap, setShowMap] = useState(true);\n const [translateCarousel, setTranselateCarousel] = useState(false);\n const [ preselectedDealerForm, setPreselectedDealerForm ] = useState(false);\n const config = useFeatureAppConfig();\n const sustitucionMapRef = useRef(null);\n const recogidaMapRef = useRef(null);\n const sustitucionRef = useRef(null);\n const recogidaRef = useRef(null);\n const layerManager = useFeatureServices()['layer-manager'];\n useEffect(()=>{\n if(config.trigger === 'cita-posventa-dealer') {\n setPreselectedDealerForm(true);\n } else {\n setPreselectedDealerForm(false);\n }\n }, []);\n\n //otros\n const [gelocalizationActive, setGelocalizationActive] = useState(false);\n\n useEffect(() => {\n if (userIsGeoLocated) {\n setGelocalizationActive(true);\n }\n }, [userIsGeoLocated]);\n\n const handleShowFiltros = () => {\n setShowFiltros(!showFiltros);\n setShowTalleres(false);\n };\n const handleShowTalleres = () => {\n setShowTalleres(!showTalleres);\n setShowFiltros(false);\n };\n\n useEffect(() => {\n if (showFiltros === false && showTalleres === false) {\n setShowMap(true);\n } else {\n setShowMap(false);\n }\n }, [showFiltros, showTalleres]);\n\n //seleccionar los que tiene coche de sustitucion o servicio de recogida\n\n const [ carPickupSelected, setCarPickupSelected] = useState(false);\n const [ replacementCarSelected, setReplacementCarSelected ] = useState(false);\n\n return showCalendar ? (\n renderCalendar()\n ) : (\n
\n {showMap ? (\n <>\n \n \n \n {\n e.preventDefault();\n const layers = layerManager.getLayers();\n const layer = layers.find(\n (layer) => layer.layer.options.id === 'mapaLeadInPage'\n ); \n if (layer) {\n layer.layer?.close();\n }\n handlePreviousStep(e);\n }}\n ariaLabel=\"aria label\"\n icon={}\n />\n {\n preselectedDealerForm ? null : (\n {\n e.preventDefault();\n handleShowFiltros();\n }}\n ariaLabel=\"aria label\"\n icon={}\n >\n Buscar de nuevo\n \n )\n }\n \n {\n services ? (\n \n \n {\n e.preventDefault();\n handleClickReplacementCar(replacementCarSelected, setReplacementCarSelected);\n sustitucionMapRef.current.blur();\n }} \n ariaLabel='aria label'\n icon={}\n >\n Coche de sustitución\n \n \n \n {\n e.preventDefault();\n handleClickCarPickup(replacementCarSelected, setReplacementCarSelected);\n recogidaMapRef.current.blur();\n }} \n ariaLabel='aria label'\n icon={}\n >\n Servicio de recogida\n \n \n \n ) : null\n }\n \n \n \n \n
\n\n {pointsToList ? (\n searchIsDealer ? (\n \n {renderPoints(pointsToList, carPickupSelected, replacementCarSelected)}\n \n ) : (\n \n \n \n {gelocalizationActive ? (\n {\n e.preventDefault();\n centerInGeoLocatedCenter();\n e.stopPropagation();\n }}\n >\n {\n e.preventDefault();\n centerInGeoLocatedCenter();\n e.stopPropagation();\n }}\n ariaLabel=\"aria label\"\n icon={}\n />\n \n ) : null}\n {\n e.preventDefault();\n e.stopPropagation();\n }}\n onClick={(e) => {\n e.preventDefault();\n e.stopPropagation();\n handleShowTalleres();\n }}\n >\n \n \n Ver lista\n \n \n \n \n\n {/* Aunque en principio no debería devolver nunca sólo un resultado, dejo el siguiente\n render condicional por is acaso */}\n {pointsToList.length === 1 ? (\n \n {renderPoints(pointsToList, carPickupSelected, replacementCarSelected)}\n \n ) : (\n \n )}\n \n )\n ) : null}\n \n ) : (\n <>\n {showTalleres ? (\n \n \n \n {\n e.preventDefault();\n handleShowTalleres();\n }}\n ariaLabel=\"aria label\"\n icon={}\n />\n \n {\n services ? (\n \n \n {\n e.preventDefault();\n handleClickReplacementCar(replacementCarSelected, setReplacementCarSelected);\n sustitucionRef.current.blur();\n }} \n ariaLabel='aria label'\n icon={}\n >\n Coche de sustitución\n \n \n \n {\n e.preventDefault();\n handleClickCarPickup(carPickupSelected, setCarPickupSelected);\n recogidaRef.current.blur();\n }} \n ariaLabel='aria label'\n icon={}\n >\n Servicio de recogida\n \n \n \n ) : null\n }\n \n \n \n \n {renderPoints(pointsToList, carPickupSelected, replacementCarSelected)}\n \n \n \n
\n
\n ) : showFiltros ? (\n \n \n \n {\n e.preventDefault();\n handleShowFiltros();\n }}\n ariaLabel=\"aria label\"\n icon={}\n />\n \n handleShowFiltros()}\n preSelectedOrderValue={preSelectedOrderValue}\n setPreSelectedOrderValue={setPreSelectedOrderValue}\n showFiltros={showFiltros}\n setShowFiltros={setShowFiltros}\n citaPosventa = {isPosventa}\n onlySuggest={onlySuggest}\n concesionario={concesionario}\n />\n \n \n ) : null}\n \n )}\n \n );\n};\n","export const handleClickCarPickup = (carPickupSelected: boolean, setCarPickupSelected: (value: boolean) => void ) => {\n if(!carPickupSelected) {\n setCarPickupSelected(true);\n } else {\n setCarPickupSelected(false);\n }\n};\n\nexport const handleClickReplacementCar = (replacementCarSelected: boolean, setReplacementCarSelected: (value: boolean) => void) => {\n if(!replacementCarSelected) {\n setReplacementCarSelected(true);\n } else {\n setReplacementCarSelected(false);\n }\n};\n","import { getDistanceFromLatLngCenter } from './utils';\nimport { isNull } from 'src/feature-app';\nimport { Horario, Slot, Points, Center, Slots } from 'src/types';\n\nexport const sortPoints = (\n clusters: Points[],\n horario: Horario,\n center: google.maps.LatLng,\n supercluster: supercluster\n // zoom: number,\n // firstLoad: boolean\n): { pointsByTime: Points[] | null; pointsByDistance: Points[] | null; newCenter?: Center; newZoom?: number } => {\n // Filtramos los puntos que no son clusters para eliminar las agrupaciones y quedarnos con los dealers unicamente, para posteriormente obtener su distancia la centro del mapa.\n\n // const distanceForFilter = getDistanceForFilter(zoom);\n\n // points = points.filter((point: Points) => Number(point.properties.distanceFromCenter) < distanceForFilter);\n let points: Points[] = [...clusters];\n\n const realClusters = points.filter((point: Points) => point.properties.cluster === true);\n // .sort((a: Points, b: Points) => Number(b.properties.point_count) - Number(a.properties.point_count));\n\n realClusters.forEach((cluster) => {\n if (supercluster) {\n const leaves: Points[] = supercluster.getLeaves(cluster.id);\n leaves.forEach((dealer) => {\n // Necesitamos esta propiedad para en caso de hover sobre la card, poder cambiar el cluster de color.\n dealer.properties.parent_cluster_id = cluster.id;\n\n points.push(dealer);\n });\n }\n });\n\n points = points.filter((point: Points) => point.properties.cluster === false);\n points = [...points]\n // .filter((point: Points) => point.properties.cluster === false)\n .map((point: Points) => {\n const distanceFromCenter = getDistanceFromLatLngCenter(center, point);\n return {\n ...point,\n properties: {\n ...point.properties,\n distanceFromCenter,\n },\n };\n });\n // if (points.length === 0 && firstLoad) {\n // return { pointsByTime: null, pointsByDistance: null, newCenter: center, newZoom: zoom - 1 };\n // }\n\n const pointsByTime = sortByTime(points, horario);\n\n const pointsByDistance = points.sort(\n (a: Points, b: Points) => Number(a.properties.distanceFromCenter) - Number(b.properties.distanceFromCenter)\n );\n\n return { pointsByTime, pointsByDistance, newCenter: null, newZoom: null };\n};\n\nconst sortByTime = (points: Points[], horario: Horario): Points[] => {\n const pointsWithDms: Points[] = [];\n const pointsWithoutDms: Points[] = [];\n\n points.forEach((point: Points) => {\n const { dealer } = point.properties;\n dealer.dmsInfo && dealer.dmsInfo.dmsAvailable ? pointsWithDms.push(point) : pointsWithoutDms.push(point);\n });\n\n const pointsWithoutDmsSorted = pointsWithoutDms.sort(\n (a: Points, b: Points) => Number(a.properties.distanceFromCenter) - Number(b.properties.distanceFromCenter)\n );\n\n const pointsWithSlots = pointsWithDms.filter((point: Points) => !isNull(point.properties.dealer.slots));\n // Si el usuario elige cualquier opción que no sea Lo antes posible se le devuelven los slots predeterminados.\n // En caso contrario, se debe elegir el turno más temprano de cada concesión y guardarlo como earliestSlot para poder ordenarlos más adelante.\n if (horario !== 'before') {\n const pointsWithDmsAndAvailableSlots: Points[] = [];\n const pointsWithDmsAndWithoutAvailableSlots: Points[] = [];\n pointsWithSlots.forEach((point) => {\n const { dealer } = point.properties;\n isNull(dealer.slots[horario])\n ? pointsWithDmsAndWithoutAvailableSlots.push(point)\n : pointsWithDmsAndAvailableSlots.push(point);\n });\n\n pointsWithDmsAndAvailableSlots.sort(\n (a: Points, b: Points) => a.properties.dealer.slots[horario].from - b.properties.dealer.slots[horario].from\n );\n\n return [...pointsWithDmsAndAvailableSlots, ...pointsWithDmsAndWithoutAvailableSlots, ...pointsWithoutDms];\n } else {\n const pointsWithoutSlots: Points[] = [];\n const pointsWithAtLeastOneSlot: Points[] = [];\n\n // Separamos los dealers con DMS según si tienen al menos un slot disponible o no.\n pointsWithSlots.forEach((dealer: Points) => {\n if (\n !isNull(dealer.properties.dealer.slots.morning) ||\n !isNull(dealer.properties.dealer.slots.evening) ||\n !isNull(dealer.properties.dealer.slots.afternon)\n ) {\n pointsWithAtLeastOneSlot.push(dealer);\n } else {\n pointsWithoutSlots.push(dealer);\n }\n });\n\n const pointsWithEarliestSlot = pointsWithAtLeastOneSlot\n .map((point: Points) => {\n const { slots } = point.properties.dealer;\n const slotsFiltered = Object.values(slots)\n .filter((slot: Slot) => !isNull(slot) && !isNull(slot.from))\n .map((slot: Slot) => slot.from);\n point.properties.earliestSlot = Math.min(...slotsFiltered);\n return point;\n })\n .sort((a: Points, b: Points) => a.properties.earliestSlot - b.properties.earliestSlot);\n return [...pointsWithEarliestSlot, ...pointsWithoutSlots, ...pointsWithoutDmsSorted];\n }\n};\n\nexport const sortPointsByDistance = (\n clusters: Points[],\n center: google.maps.LatLng,\n supercluster: supercluster\n): Points[] => {\n let points: Points[] = [...clusters];\n\n const realClusters = points.filter((point: Points) => point.properties.cluster === true);\n realClusters.forEach((cluster) => {\n if (supercluster) {\n const leaves: Points[] = supercluster.getLeaves(cluster.id);\n leaves.forEach((dealer) => {\n // Necesitamos esta propiedad para en caso de hover sobre la card, poder cambiar el cluster de color.\n dealer.properties.parent_cluster_id = cluster.id;\n\n points.push(dealer);\n });\n }\n });\n\n return points\n .filter((point: Points) => point.properties.cluster === false)\n .map((point: Points) => {\n const distanceFromCenter = getDistanceFromLatLngCenter(center, point);\n return {\n ...point,\n properties: {\n ...point.properties,\n distanceFromCenter,\n },\n };\n })\n .sort((a: Points, b: Points) => Number(a.properties.distanceFromCenter) - Number(b.properties.distanceFromCenter));\n};\n\nexport const getEarliestSlot = (slots: Slots) => {\n if (!slots) {\n return null;\n }\n const filteredSlots = Object.values(slots)\n .filter((slot: Slot) => !isNull(slot) && !isNull(slot.from))\n .map((slot: Slot) => slot.from);\n if (filteredSlots.length === 0) {\n return null;\n }\n return Math.min(...filteredSlots);\n};\n","import { GooglePlace, Suggestion } from 'src/feature-app';\nimport { DealersData, isDealerData, Points, Center } from 'src/types';\nimport getDistance from 'geolib/es/getDistance';\nimport { Dispatch } from 'react';\nimport { Geometry, Installation } from 'src/types';\nimport { store } from '../App';\n\nexport const isGooglePlace = (suggestion: Suggestion): suggestion is GooglePlace => {\n if (suggestion) {\n return (suggestion as GooglePlace).isGooglePlace !== undefined;\n }\n return null;\n};\n\nconst getCanaryBounds = () => {\n const result: google.maps.LatLngBounds = new window.google.maps.LatLngBounds(null);\n const north = 29.463514;\n const east = -13.31543;\n const south = 27.425414;\n const west = -18.391113;\n const ne = new window.google.maps.LatLng(north, east);\n const sw = new window.google.maps.LatLng(south, west);\n result.extend(ne);\n result.extend(sw);\n\n return result;\n};\n\nexport const getLocationOfDealer = (suggestion: DealersData): Geometry => {\n const bounds: google.maps.LatLngBounds = new window.google.maps.LatLngBounds(null);\n let lat, lng;\n if (isDealerData(suggestion)) {\n lat = suggestion.markerInfo.svcLocation.latitude;\n lng = suggestion.markerInfo.svcLocation.longitude;\n } else {\n lat = Number((suggestion as Installation).BillingLatitude);\n lng = Number((suggestion as Installation).BillingLongitude);\n }\n const point: google.maps.LatLng = new window.google.maps.LatLng(lat, lng);\n bounds.extend(point);\n return {\n lat,\n lng,\n bounds: null,\n viewport: null,\n };\n};\n\nexport const getLocationOfDealerWithoutLoadInstance = (suggestion: Suggestion, maps: google.maps): Geometry => {\n const bounds: google.maps.LatLngBounds = new maps.LatLngBounds(null);\n let lat, lng;\n if (isDealerData(suggestion)) {\n lat = suggestion.markerInfo.svcLocation.latitude;\n lng = suggestion.markerInfo.svcLocation.longitude;\n } else {\n lat = Number((suggestion as Installation).BillingLatitude);\n lng = Number((suggestion as Installation).BillingLongitude);\n }\n const point: google.maps.LatLng = new maps.LatLng(lat, lng);\n bounds.extend(point);\n return {\n lat,\n lng,\n };\n};\n\nconst getBounds = (latlngBounds: google.maps.LatLngBounds): google.maps.LatLngBounds => {\n const result: google.maps.LatLngBounds = new window.google.maps.LatLngBounds(null);\n const north = latlngBounds.getNorthEast().lat();\n const east = latlngBounds.getNorthEast().lng();\n const south = latlngBounds.getSouthWest().lat();\n const west = latlngBounds.getSouthWest().lng();\n const ne = new window.google.maps.LatLng(north, east);\n const sw = new window.google.maps.LatLng(south, west);\n result.extend(ne);\n result.extend(sw);\n\n return result;\n};\n\nconst getGeometryFromGoogleResult = (result: any): Geometry => {\n let viewport = null;\n let bounds = null;\n if (result.geometry) {\n if (result.geometry.viewport) {\n viewport = getBounds(result.geometry.viewport);\n } else if (result.geometry.bounds) {\n bounds = getBounds(result.geometry.bounds);\n }\n\n const lat = result.geometry.location.lat();\n const lng = result.geometry.location.lng();\n\n return { lat, lng, bounds, viewport };\n } else {\n return { lat: null, lng: null };\n }\n};\n\ninterface GeocodeCache {\n suggestion: GooglePlace;\n geometry: Geometry;\n isAddress: boolean;\n isCanaryIslands: boolean;\n}\n\n// const cache: GeocodeCache[] = [];\n\nconst resultIsAddress = (result: google.maps.GeocoderResult) => {\n const addressTypes = [\n 'route',\n 'street_address',\n 'intersection',\n 'neighborhood',\n 'premise',\n 'subpremise',\n 'park',\n 'point_of_interest',\n 'establishment',\n 'tourist_attraction',\n ];\n const resultType = result.types[0];\n\n return addressTypes.includes(resultType);\n};\n\nexport const getGeocode = (suggestion: GooglePlace): Promise | Geometry => {\n // Se desactiva el cache porque da error en mobile\n // const cachedResult = cache.find(cachedResult => cachedResult.suggestion.name === suggestion.name);\n\n // if (cachedResult) {\n // console.log(cachedResult,'cache');\n // store.dispatch({ type: 'SUGGESTION_IS_ADDRESS', payload: cachedResult.isAddress });\n // store.dispatch({ type: 'SUGGESTION_IS_IN_CANARY_ISLANDS', payload: cachedResult.isCanaryIslands });\n // return new Promise((resolve)=>resolve(cachedResult.geometry));\n // }\n\n const geocode = new window.google.maps.Geocoder();\n return new Promise((resolve, reject) => {\n return geocode.geocode(\n { address: suggestion.name },\n (response: any) => {\n const result: google.maps.GeocoderResult = response[0];\n const geometry = getGeometryFromGoogleResult(result);\n const point: google.maps.LatLng = new window.google.maps.LatLng(geometry.lat, geometry.lng);\n const bounds: google.maps.LatLngBounds = getCanaryBounds();\n let isAddress: boolean;\n let isCanaryIslands: boolean;\n isAddress = resultIsAddress(result);\n isCanaryIslands = bounds.contains(point);\n\n store.dispatch({ type: 'SUGGESTION_IS_ADDRESS', payload: isAddress });\n store.dispatch({ type: 'SUGGESTION_IS_IN_CANARY_ISLANDS', payload: isCanaryIslands });\n store.dispatch({ type: 'UPDATE_USER_GEOLOCATION', payload: null });\n\n // cache.push({ suggestion, geometry, isAddress, isCanaryIslands });\n\n resolve(geometry);\n },\n () => reject('Problems with geocode')\n );\n });\n};\n\ninterface ReverseGeocodeResponse {\n formatted_address: string;\n}\n\nexport const getReverseGeocode = (latlng: {\n lat: number;\n lng: number;\n}): Promise<{ geometry: Geometry; name: string }> => {\n const geocode = new window.google.maps.Geocoder();\n\n return new Promise((resolve, reject) => {\n return geocode.geocode(\n { location: latlng },\n (response: ReverseGeocodeResponse[]) => {\n const result = response[0];\n const geometry = getGeometryFromGoogleResult(result);\n let name: string = response.length > 0 ? response[0].formatted_address : 'España'; // Se devuelve el primero porque no hay manera de filtrar el \"mejor\" resultado.\n resolve({ geometry, name });\n },\n () => reject('Problems with geocode')\n );\n });\n};\n\nexport const getLocationOfGooglePlace = async (suggestion: GooglePlace): Promise => {\n const geometry = await getGeocode(suggestion);\n return geometry;\n};\n\nexport const getDistanceFromCenter = (center: Center, point: Points) => {\n const lng = point.geometry.coordinates[0];\n const lat = point.geometry.coordinates[1];\n const distance = getDistance({ lat: center.lat, lng: center.lng }, { lat, lng }) / 1000;\n return distance.toFixed(1);\n};\n\nexport const getDistanceFromLatLngCenter = (center: google.maps.LatLng, point: Points) => {\n if (!center || !point) {\n return '0';\n }\n const lng = point.geometry.coordinates[0];\n const lat = point.geometry.coordinates[1];\n const distance = getDistance({ lat: center.lat(), lng: center.lng() }, { lat, lng }) / 1000;\n const toFixed = Math.round(distance).toString().length > 2 ? 0 : 1; // Para más de 100km devolvemos el número sin decimal.\n return distance.toFixed(toFixed);\n};\n\nexport const handleMapVariables = (\n dispatch: Dispatch,\n center: Center,\n zoom: number,\n geometry: Geometry,\n isDealer: boolean,\n suggestion: Suggestion\n) => {\n dispatch({ type: 'UPDATE_USER_CENTER', payload: { lat: center.lat, lng: center.lng } }); // Eliminar\n dispatch({ type: 'UPDATE_INITIAL_ZOOM', payload: zoom }); // Eliminar\n dispatch({ type: 'UPDATE_GEOMETRY', payload: geometry });\n dispatch({ type: 'UPDATE_SUGGESTION', payload: suggestion ? suggestion : null });\n dispatch({ type: 'SUGGESTION_IS_DEALER', payload: isDealer });\n dispatch({ type: 'UPDATE_FIELDS', payload: { location: suggestion.name } }); // No se si se usa, de momento lo dejo.\n};\n\nexport const updateMapVariables = async (dispatch: Dispatch, suggestion: Suggestion, geometryData?: Geometry) => {\n let geometry: Geometry = geometryData ? geometryData : null;\n let isDealer: boolean;\n if (!window.google || !window.google.maps) {\n return;\n }\n if (!geometryData) {\n geometry = isGooglePlace(suggestion) ? await getLocationOfGooglePlace(suggestion) : getLocationOfDealer(suggestion);\n }\n isDealer = !isGooglePlace(suggestion);\n if ((suggestion as GooglePlace).isGeoLocated) {\n dispatch({ type: 'UPDATE_USER_GEOLOCATION', payload: suggestion });\n }\n dispatch({ type: 'UPDATE_GEOMETRY', payload: geometry });\n dispatch({ type: 'UPDATE_SUGGESTION', payload: suggestion ? suggestion : null });\n dispatch({ type: 'SUGGESTION_IS_DEALER', payload: isDealer });\n};\n\nexport const removeWhiteSpace = (s: string): string => (s ? s.replace(/\\s/g, '') : s);\nexport const formatPrefix = (s: string): string => s ? s : '';\nexport const formatPrefixOneFormBFF = (s: string): string => s ? s.replace(\"+\",\"00\") : '';\n\nexport const checkIfMorning = (slotHour: Date) => {\n const morningHour = getNormalizedDate('12:00:00');\n return slotHour <= morningHour ? true : false;\n};\n\nexport const checkIfMidDay = (slotHour: Date) => {\n const morningHour = getNormalizedDate('12:00:00');\n const eveningHour = getNormalizedDate('16:00:00');\n\n return slotHour > morningHour && slotHour <= eveningHour ? true : false;\n};\n\nexport const checkIfEvening = (slotHour: Date) => {\n const eveningHour = getNormalizedDate('16:00:00');\n return slotHour > eveningHour ? true : false;\n};\n\n/**\n * hour en formato 12:00:00\n * @param hour\n */\nexport const getNormalizedDate = (hour: string) => new Date(`1/1/1999 ${hour}`);\n","import { styled, Text, TextAlignment, TokenTextAppearance, TokenTextColor } from '@volkswagen-onehub/components-core';\n// // import store from './store';\nimport { CloseHandleV2 } from '@volkswagen-onehub/layer-manager';\nimport React, { SyntheticEvent, useEffect, useState } from 'react';\nimport { deviceType } from 'react-device-detect';\nimport { FormContext, useForm } from 'react-hook-form';\nimport { useDispatch, useSelector, useStore } from 'react-redux';\nimport { setObjectValues, useFeatureServices, formInfoInitialState } from 'src/feature-app';\nimport { TIME_FOR_TRANSFORM } from 'src/globals';\nimport { FormDataGroup, FormInfo, OneFormState, Steps } from 'src/types';\nimport { ErrorFormFields } from './tracking-types';\nimport { useTrackingManager } from 'src/feature-app/hooks/use-tracking-manager';\nimport { BehaviorSubject } from 'rxjs';\nimport { useFeatureAppConfig, useFeatureAppEnvironment } from './hooks';\nimport { GenericErrorLayer } from 'src/components';\nimport { LayerManagerWrapper } from './LayerManagerWrapper';\n\nconst Form = styled.form``;\n\ninterface errorMessageProps {\n notALayer: boolean;\n}\nconst ErrorMessage = styled.div`\n position: absolute;\n bottom: ${(props) => (props.notALayer ? '88px' : '122px')};\n right: 20px;\n z-index: 1000;\n width: max-content;\n padding: 4px 8px;\n border-radius: 4px;\n background-color: #e4002c;\n color: #ffffff;\n @media all and (min-width: 560px) {\n right: ${(props) => (props.notALayer ? 'var(--size-grid002)' : '40px')};\n }\n @media all and (min-width: 960px) {\n right: ${(props) => (props.notALayer ? 'var(--size-grid003)' : '52px')};\n bottom: ${(props) => (props.notALayer ? '88px' : '136px')};\n }\n @media all and (min-width: 1280px) {\n right: ${(props) => (props.notALayer ? 'var(--size-grid005)' : '52px')};\n }\n @media all and (min-width: 1920px) {\n right: ${(props) => (props.notALayer ? 'var(--size-grid006)' : '52px')};\n }\n @media all and (min-width: 2560px) {\n right: ${(props) => (props.notALayer ? 'var(--size-grid007)' : '52px')};\n }\n`;\n\ninterface UseFormMethods {\n closeLayer: () => void;\n handlePreviousStep: (e: any) => void;\n handleScreenChange: (newNumber?: number) => void;\n handleSubmit: (e: SyntheticEvent) => Promise;\n nextStep: () => void;\n previousStep: () => void;\n sendForm: () => void;\n handleShowFinalScreen: () => void;\n /**\n * Flag que activa algunas funcionalidades para facilitar el desarrollo.\n */\n debug: boolean;\n /**\n * Flag que controla si el formulario está dentro de un multistep y se tiene que esperar para realizar un next step del formulario genérico.\n */\n // waitForNextStep: boolean;\n /**\n * Flag que controla si el formulario está dentro de un multistep y se tiene que esperar para realizar un previous step del formulario genérico.\n */\n waitForPreviousStep: boolean;\n // setWaitForNextStep: React.Dispatch>;\n setWaitForPreviousStep: React.Dispatch>;\n initializeForm: (\n initialFormInfo: Partial,\n initialFormData: Partial,\n skipLayerInit?: boolean\n ) => void;\n /**\n * La propiedad nextMultiStep contiene la función que (en caso de que haya un multiStep) controlará el CTA de siguiente pantalla para navegar por las subsiguientes pantallas del multiStep sin cambiar de pantalla en el formulario principal.\n */\n nextMultiStep?: () => void;\n /**\n * Al guardar una función dentro del nextMultiStep necesitamos envolverla en otra función para que React no crea que es una inicialización -> https://medium.com/swlh/how-to-store-a-function-with-the-usestate-hook-in-react-8a88dd4eede1\n */\n setNextMultiStep?: React.Dispatch void>>;\n /**\n * La propiedad previousMultiStep contiene la función que (en caso de que haya un multiStep) controlará el CTA de siguiente pantalla para navegar por las anteriores pantallas del multiStep sin cambiar de pantalla en el formulario principal.\n */\n previousMultiStep?: () => void;\n /**\n * Al guardar una función dentro del previousMultiStep necesitamos envolverla en otra función para que React no crea que es una inicialización -> https://medium.com/swlh/how-to-store-a-function-with-the-usestate-hook-in-react-8a88dd4eede1\n */\n setPreviousMultiStep?: React.Dispatch void>>;\n\n handleNextStep: (e?: any) => void;\n /**\n * Flag que controla si se muestra o no el previousStep (ej: en CitaPrevia no se muestra en el multiStep 2 de mapa)\n */\n showPreviousStep: boolean;\n setShowPreviousStep: React.Dispatch>;\n setIsFullScreen: React.Dispatch>;\n isFullScreen: boolean;\n /**\n * Flag para validacion\n */\n error: boolean;\n setError: React.Dispatch>;\n /**\n * Flags para gestionar transiciones entre pantallas\n */\n nextScreenIndex: number;\n setNextScreenIndex: React.Dispatch>;\n nextMultiStepScreenIndex: number;\n setNextMultiStepScreenIndex: React.Dispatch>;\n distanceToMove: Array;\n setDistanceToMove: React.Dispatch>>;\n moveForward: boolean;\n setMoveForward: React.Dispatch>;\n /**\n * En alguna casuística el intro no debería pasar de página, causando el cierre de la feature app. Este flag lo desactiva.\n */\n setDisableIntroNextStep: React.Dispatch>;\n /**\n * Trigger para algunos casos en que el handleClick de ScreenController no funciona bien y el next step no se activa\n * al seleccionar una opción de las disponibles en la pantalla porque no se produce ningún click.\n * EJEMPLO: Pantalla locateUser citaPosventa en la casuística que el usuario elije geolacalización\n */\n isValueSelected: boolean;\n setIsValueSelected: React.Dispatch>;\n handleAreYouSureLayer: any;\n nextStepEventEmitter: BehaviorSubject;\n}\nexport const OneFormContext = React.createContext(null);\n\nexport const useOneFormContext = (): UseFormMethods => React.useContext(OneFormContext) as UseFormMethods;\n\ninterface OneFormProviderProps {\n children: JSX.Element;\n closeLayerCallback: CloseHandleV2;\n handleAreYouSureLayer: any;\n}\n\ninterface OneFormDebug {\n debug: boolean;\n toggleDebugMode: () => void;\n}\n\ndeclare global {\n interface Window {\n OneForm: OneFormDebug;\n }\n}\n\nexport const OneFormProvider = (props: OneFormProviderProps): any => {\n const { closeLayerCallback, handleAreYouSureLayer } = props;\n const { formData, formInfo } = useSelector((state: OneFormState) => state);\n const {\n sendFormCallback,\n screenIndex,\n formEnded,\n steps,\n stepsHistory,\n nextStepCallback,\n numberOfScreens,\n lastStep,\n step,\n formSubmitted,\n notALayer,\n suggestionIsInCanaryIslands,\n } = formInfo;\n const methods = useForm();\n // const { getValues, triggerValidation } = useFormContext();\n\n const dispatch = useDispatch();\n const store = useStore();\n const [waitForPreviousStep, setWaitForPreviousStep] = useState(false);\n const [nextMultiStep, setNextMultiStep] = useState<() => void>(() => () => {});\n const [isFullScreen, setIsFullScreen] = useState(false);\n const [previousMultiStep, setPreviousMultiStep] = useState<() => void>(() => () => {});\n const [showPreviousStep, setShowPreviousStep] = useState(false);\n const [error, setError] = useState(false);\n const [nextScreenIndex, setNextScreenIndex] = useState(null);\n const [nextMultiStepScreenIndex, setNextMultiStepScreenIndex] = useState(null);\n const [distanceToMove, setDistanceToMove] = useState>([]);\n const [moveForward, setMoveForward] = useState(true);\n const oneFormService = useFeatureServices()['es:oneform-core'];\n const trackingManager = useTrackingManager();\n const [debug, setDebug] = useState(false);\n const [disableIntroNextStep, setDisableIntroNextStep] = useState(false);\n const [isValueSelected, setIsValueSelected] = useState(false);\n const [closed, setClosed] = useState(false);\n const nextStepEventEmitter: BehaviorSubject = new BehaviorSubject(false);\n const layerManager = useFeatureServices()['layer-manager'];\n const history = useFeatureServices()['s2:history'];\n const config = useFeatureAppConfig();\n const env = useFeatureAppEnvironment();\n\n useEffect(() => {\n window.OneForm = { debug, toggleDebugMode };\n setTimeout(() => {\n const { person } = oneFormService.get();\n if (person) {\n dispatch({ type: 'UPDATE_FIELDS', payload: { ...person } });\n setObjectValues(person, methods.setValue);\n }\n }, 1000);\n }, []);\n\n const toggleDebugMode = () => {\n setDebug(!debug);\n window.OneForm.debug = !debug;\n };\n\n const initializeForm = (\n initialFormInfo: Partial,\n initialFormData: Partial,\n skipLayerInit?: boolean\n ) => {\n // En algunos casos al finalizar el formulario y cerrar el layer se vuelve a disparar el evento;\n if (formSubmitted || closed) {\n return;\n }\n\n dispatch({ type: 'UPDATE_FORM', payload: initialFormData });\n dispatch({ type: 'SET_FORM_INFO', payload: { ...formInfoInitialState, ...initialFormInfo } });\n dispatch({ type: 'SET_INITIAL_STEPS', payload: initialFormInfo.steps });\n setTimeout(() => {\n // Solucion al bug que se produce cuando hay un error genérico. Al resetear el estado\n // se añade el último screenIndex que había antes de producirse el error, por lo que\n // la navegación se ve alterada.\n dispatch({ type: 'SET_STEPS_HISTORY', payload: initialFormInfo.stepsHistory });\n if (!skipLayerInit) {\n trackingManager.trackFormLayerLoad();\n }\n }, 0);\n };\n\n useEffect(() => {\n if (screenIndex !== 0 && screenIndex !== null) {\n dispatch({ type: 'UPDATE_STEPS_HISTORY', payload: screenIndex });\n }\n if (screenIndex !== 2 && nextMultiStepScreenIndex !== null) setNextMultiStepScreenIndex(null);\n setTimeout(() => {\n setObjectValues(formData.fields, methods.setValue);\n }, 500);\n }, [screenIndex]);\n\n /**\n * En el journey de no compra al llegar al mapa se abre un layer. Se necesita que interactue con el next step, por lo que lo tenemos que cerrar desde aquí\n */\n const handleMapFullScreenLayer = (isNext: boolean) => {\n const layers = layerManager.getLayers();\n const layer = layers.find(\n (layer) => layer.layer.options.id === 'mapaNoCompra' || layer.layer.options.id === 'mapaNoRenovacion' || layer.layer.options.id === 'mapaLeadInPage'\n );\n\n if (layer) {\n layer.layer?.close();\n isNext ? nextStep() : previousStep();\n dispatch({ type: 'UPDATE_WAIT_FOR_NEXT_STEP', payload: false });\n setWaitForPreviousStep(false);\n }\n };\n\n const handleNextStep = async (e?: any) => {\n if (e) e.preventDefault();\n\n const { step } = store.getState().formInfo;\n\n if (step && step.isLastStep) {\n return;\n }\n const values = methods.getValues();\n\n const isValid = await methods.triggerValidation();\n const { waitForNextStep } = store.getState().formInfo;\n\n // if (isValid && suggestionIsInCanaryIslands) {\n // renderAvisoIslasCanariasLayer(store, env, layerManager);\n\n // return;\n // }\n\n if (isValid) {\n if (!moveForward) setMoveForward(true);\n setError(false);\n dispatch({ type: 'UPDATE_FIELDS', payload: values });\n\n //console.log(formData);\n\n handleMapFullScreenLayer(true); // Revisar para optimizar esta llamada y que solo debería ejecutarse si el form es inPage y el step en un layer\n\n if (waitForNextStep) {\n nextMultiStep();\n } else {\n nextStep();\n }\n } else {\n setError(true);\n const keys = Object.keys(methods.errors);\n\n const errorFields: ErrorFormFields[] = keys.map((key) => {\n return { 'form field id': 'id', 'form field name': key };\n });\n\n keys.map((err) => trackingManager.trackFormErrorMessageLoad({ message: err }, errorFields));\n }\n };\n\n const nextStep = () => {\n let nextStepNumber: number;\n let nextStep: Steps;\n\n // En algunos casos según como se inicializa el form ni el screenIndex ni los steps están disponibles, por lo que hay que\n // utilizar el getState para obtener el estado actual.\n const { screenIndex, steps } = store.getState().formInfo;\n\n if (formEnded && lastStep) {\n nextStepNumber = lastStep.screenIndex;\n nextStep = lastStep;\n } else {\n nextStepNumber = nextStepCallback ? nextStepCallback() : screenIndex + 1;\n nextStep = steps[nextStepNumber];\n }\n\n handleStepChange(nextStep, nextStepNumber, true);\n };\n\n const handlePreviousStep = (e: any) => {\n e.preventDefault();\n if (moveForward) {\n setMoveForward(false);\n }\n\n if (formData.fields.formName.includes('no_compra') || formData.fields.formName.includes('no_renovacion') || formData.fields.formName.includes('lead_inpage')) {\n handleMapFullScreenLayer(false);\n }\n const values = methods.getValues();\n // Comprobar si es correcto antes de actualizar?\n // dispatch({ type: 'UPDATE_FIELDS', payload: values });\n waitForPreviousStep ? previousMultiStep() : previousStep();\n if (formEnded) dispatch({ type: 'UPDATE_FORM_ENDED', payload: false });\n };\n\n const previousStep = () => {\n // Es necesario poder sobreescribir previousStep?\n const { screenIndex, steps, stepsHistory } = store.getState().formInfo;\n\n const indexActualScreen = stepsHistory.indexOf(screenIndex);\n const newScreenIndex = stepsHistory[indexActualScreen - 1];\n const indexInSteps = steps.findIndex((step: any) => step.screenIndex === newScreenIndex);\n const previousStep = steps[indexInSteps];\n\n // Falta eliminar el último elemento de stepsHistory\n handleStepChange(previousStep, newScreenIndex, false);\n };\n\n const handleStepChange = (step: Steps, screenIndex: number, isMovingForward: boolean) => {\n handleScreenChange(screenIndex);\n dispatch({ type: 'SET_NAVIGATION_MOVING_FORWARD', payload: isMovingForward });\n setTimeout(() => {\n dispatch({ type: 'UPDATE_STEP', payload: step });\n // dispatch({ type: 'UPDATE_STEPS_HISTORY', payload: screenIndex });\n dispatch({ type: 'UPDATE_FULLSCREEN', payload: step.fullScreen });\n setIsFullScreen(step.fullScreen);\n }, TIME_FOR_TRANSFORM);\n };\n\n const handleScreenChange = (newNumber?: number) => {\n if (typeof newNumber === 'number') setNextScreenIndex(newNumber);\n dispatch({ type: 'TRIGGER_EXIT_ANIMATION', payload: true });\n setTimeout(() => {\n dispatch({ type: 'TRIGGER_EXIT_ANIMATION', payload: false });\n if (typeof newNumber === 'number') {\n dispatch({ type: 'UPDATE_SCREEN', payload: newNumber });\n }\n }, TIME_FOR_TRANSFORM);\n };\n\n const handleShowFinalScreen = () => {\n dispatch({ type: 'SHOW_FINAL_SCREEN', payload: true });\n };\n\n const closeLayer = () => {\n dispatch({ type: 'RESET_STATE' });\n setClosed(true);\n closeLayerCallback({}, {}, {});\n\n if (env.done) {\n env.done();\n }\n return;\n };\n\n const sendForm = async (): Promise => {\n return new Promise((resolve) => {\n sendFormCallback\n ? resolve(sendFormCallback())\n : setTimeout(() => {\n resolve(true);\n }, 2000);\n });\n };\n\n const handleSubmit = async (e: SyntheticEvent) => {\n e.preventDefault();\n const responseIsValid = await sendForm();\n return responseIsValid;\n };\n\n const renderAvisoCanarias = () => {\n let redirect: string;\n\n if (formData.fields.formName === 'cita-posventa') {\n redirect = 'https://www.vwcanarias.com/es/cita-previa.html';\n } else {\n redirect = 'https://cita.vwcanarias.com/';\n }\n\n return (\n \n \n \n );\n };\n\n return (\n \n \n {\n const values = methods.getValues();\n\n if (e.keyCode === 13 && !disableIntroNextStep && Object.keys(values).length > 0) {\n handleNextStep(e);\n } else if (e.keyCode === 13 && disableIntroNextStep) {\n e.preventDefault();\n }\n }}\n className=\"form-provider\"\n >\n {props.children}\n \n {error && screenIndex !== numberOfScreens - 1 ? (\n \n \n Necesitamos esta información para seguir\n \n \n ) : null}\n \n \n );\n};\n\nexport const getDeviceType = (): string => (deviceType === 'browser' ? 'desktop' : deviceType.toLowerCase());\n\nexport const getTrackingCode = (): string => ((typeof s !== 'undefined' && typeof s.persCmp !== 'undefined') ? s.persCmp : 'undefined');\n","import React from 'react';\nimport {\n Layout,\n Breakpoints,\n LayoutRowGap,\n} from '@volkswagen-onehub/components-core';\n\ninterface OneElementTemplateProps {\n element: JSX.Element;\n allowOverflowingContent?: boolean;\n}\n\n// Refactorizar\nfunction OneElementTemplate(props: OneElementTemplateProps) {\n const { element, allowOverflowingContent } = props;\n return (\n \n {element}\n \n );\n}\n\ninterface TwoElementsTemplateProps {\n firstElement: JSX.Element;\n secondElement: JSX.Element;\n allowOverflowingContent?: boolean;\n}\n\nfunction TwoElementsTemplate(props: TwoElementsTemplateProps) {\n const { firstElement, secondElement } = props;\n return (\n \n {firstElement}\n {secondElement}\n \n );\n}\n\ninterface ThreeElementsTemplateProps {\n firstElement: JSX.Element;\n secondElement: JSX.Element;\n thirdElement: JSX.Element;\n allowOverflowingContent?: boolean;\n}\n\nfunction ThreeElementsTemplate(props: ThreeElementsTemplateProps) {\n const { firstElement, secondElement, thirdElement } = props;\n return (\n \n {firstElement}\n {secondElement}\n {thirdElement}\n \n );\n}\n\nexport { OneElementTemplate, TwoElementsTemplate, ThreeElementsTemplate };\n","import { CTA, styled } from '@volkswagen-onehub/components-core';\nimport { ArrowUp, Close } from 'src/icons-core-imports';\nimport { LayerHandleV2 } from '@volkswagen-onehub/layer-manager';\nimport React, { useEffect, useState } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { CSSTransition } from 'react-transition-group';\nimport { css } from 'styled-components';\nimport { useLoaded } from 'src/feature-app';\nimport { TIME_FOR_OPACITY_MS, TIME_FOR_TRANSFORM_MS } from 'src/globals';\nimport { OneFormState } from 'src/types';\nimport { useOneFormContext } from '../OneForm';\nimport { useTrackingManager } from 'src/feature-app/hooks/use-tracking-manager';\nimport { useFeatureServices } from '../hooks';\nimport { removeConfigurationHash } from '../remove-configuration-hash';\n\n\n{/*\n paddings top prev step wrapper antes de adaptacion a nuevo formato de editorial template with feature\n app in stage que ya setea automáticamente el espacio reservado para la navbar. Se ha retirado también del\n prev-step-controller\n 560: padding-top: 110px;\n 1920: padding-top: 126px;\n*/}\ninterface wrapperProps {\n fullScreen?: boolean;\n closeInMap?: boolean;\n colorTheme?: string;\n notALayer?: boolean;\n}\n\nconst Wrapper = styled.div`\n position: ${(props) =>\n props.notALayer ? 'fixed' : props.closeInMap ? 'relative' : props.fullScreen ? 'fixed' : 'fixed'};\n top: ${(props) => (props.notALayer ? '84' : '0')};\n right: 0;\n align-self: ${(props) => (props.notALayer ? 'flex-start' : null)};\n padding: ${(props) => (props.notALayer ? '0 var(--size-grid002) 20px' : '20px 20px')};\n display: ${(props) => (props.closeInMap ? 'flex' : props.fullScreen ? 'none' : 'flex')};\n justify-content: ${(props) => (props.notALayer ? 'flex-end' : 'space-between')};\n background-color: ${(props) => (props.notALayer ? 'transparent' : props.colorTheme === 'main' ? '#FFFFFF' : '#001e50')};\n z-index: ${(props) => (props.closeInMap && props.notALayer ? '5' : props.notALayer ? '1' : '2')};\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n width: 100%;\n min-height: ${(props) => (props.notALayer ? 'auto' : '72px')};\n margin-bottom: auto;\n @media all and (min-width: 560px) {\n padding: ${(props) => (props.notALayer ? '0 var(--size-grid002) 24px' : '24px 24px')};\n min-height: ${(props) => (props.notALayer ? 'auto' : '80px')};\n ${(props) =>\n props.notALayer &&\n css`\n position: fixed;\n top: 92;\n `}\n }\n\n @media screen and (min-width: 960px) {\n background-color: ${(props) => (props.colorTheme === 'main' ? 'transparent' : '#001e50')};\n margin-bottom: unset;\n width: ${(props) => (props.notALayer ? '100%' : props.closeInMap ? '100%' : '960px')};\n padding: ${(props) =>\n props.closeInMap && props.notALayer ? '28px 20px 0' : props.notALayer ? '0 var(--size-grid003) 24px' : '24px 24px'};\n ${(props) =>\n props.notALayer &&\n css`\n position: fixed;\n top: 102;\n `}\n }\n @media screen and (min-width: 1280px) {\n padding: ${(props) => (props.notALayer ? '0 var(--size-grid005) 24px' : '24px 24px')};\n }\n @media screen and (min-width: 1920px) {\n padding: ${(props) => (props.notALayer ? '0 var(--size-grid006) 24px' : '24px 24px')};\n }\n @media screen and (min-width: 2560px) {\n padding: ${(props) => (props.notALayer ? '0 var(--size-grid007) 24px' : '24px 24px')};\n }\n\n button {\n background-color: ${(props) => (props.colorTheme === 'main' ? '#FFFFFF' : null)};\n }\n`;\n\nconst CloseDiv = styled.div`\n color: ${(props) => props.theme.text.color.primary};\n cursor: pointer;\n &.close-enter {\n opacity: 0;\n }\n &.close-enter-active {\n opacity: 1;\n transition: opacity ${TIME_FOR_OPACITY_MS} ease-in;\n }\n &.close-enter-done {\n }\n &.close-exit {\n transform: translate(0, 0);\n opacity: 1;\n }\n &.close-exit-active {\n transform: translate(0, -100%);\n opacity: 0.01;\n transition: all ${TIME_FOR_TRANSFORM_MS}, opacity ${TIME_FOR_OPACITY_MS} ease-in;\n }\n`;\n\ninterface CloseComponentProps {\n closeInMap?: boolean;\n closeThankYou?: boolean;\n handleAreYouSureLayer?: () => LayerHandleV2<{}>;\n notALayer?: boolean;\n colorTheme?: string;\n formMin?: boolean;\n}\nexport function CloseComponent(props: CloseComponentProps) {\n const { closeInMap, handleAreYouSureLayer, colorTheme, notALayer, formMin } = props;\n const { formInfo, formData } = useSelector((state: OneFormState) => state);\n const { screenIndex, stepsHistory, multiStepScreenIndex, formSubmitted } = formInfo;\n const [isFirstScreen, setIsFirstScreen] = useState(true);\n const loaded = useLoaded();\n const { handlePreviousStep, isFullScreen, closeLayer } = useOneFormContext();\n const trackingManager = useTrackingManager();\n const layerManager = useFeatureServices()['layer-manager'];\n const dispatch = useDispatch()\n /**\n * En el journey de no compra al llegar al mapa se abre un layer. Se necesita que interactue con el next step, por lo que lo tenemos que cerrar desde aquí\n */\n const handleMapFullScreenLayer = () => {\n const layers = layerManager.getLayers();\n\n const layer = layers.find(\n (layer) => layer.layer.options.id === 'mapaNoCompra' || layer.layer.options.id === 'mapaNoRenovacion' || layer.layer.options.id === 'mapaLeadInPage'\n );\n\n if (layer) {\n layer.layer?.close();\n }\n };\n\n useEffect(() => {\n if (stepsHistory && stepsHistory.length > 0 && !multiStepScreenIndex) {\n stepsHistory[0] === screenIndex ? setIsFirstScreen(true) : setIsFirstScreen(false);\n } else {\n setIsFirstScreen(false);\n }\n }, [screenIndex, multiStepScreenIndex]);\n\n return (\n \n \n {notALayer ? null : (\n {\n e.preventDefault();\n trackingManager.trackFormCloseClick(\n {\n contentId: 'Cerrar',\n },\n { FormStart: screenIndex === 0 ? true : false }\n );\n handleMapFullScreenLayer(); // Revisar para optimizar esta llamada y que solo debería ejecutarse si el form es inPage y el step en un layer\n if (!formSubmitted) {\n handleAreYouSureLayer();\n } else {\n closeLayer();\n }\n }}\n >\n \n \n )}\n\n {isFirstScreen || props.closeThankYou ? null : (\n {\n trackingManager.trackFormStepButtonClick({\n contentId: 'Anterior',\n });\n handlePreviousStep(e);\n }}\n tag=\"button\"\n emphasis=\"secondary\"\n size=\"small\"\n icon={}\n >\n Anterior\n \n )}\n \n \n );\n}\n","import {\n Breakpoints,\n Container,\n ContainerPadding,\n Layout,\n LayoutConfiguration,\n styled,\n Text,\n TokenTextAppearance,\n} from '@volkswagen-onehub/components-core';\nimport { Checkmark } from 'src/icons-core-imports';\nimport { Legales } from 'src/components';\nimport React, { useEffect, useRef, useState } from 'react';\nimport { useSelector } from 'react-redux';\nimport { CSSTransition } from 'react-transition-group';\nimport { TIME_FOR_OPACITY_MS, TIME_FOR_TRANSFORM_MS } from 'src/globals';\nimport { OneFormState, Steps } from 'src/types';\nimport { useTrackingManager } from 'src/feature-app/hooks/use-tracking-manager';\nimport { PreviousStep, CloseComponent, Navigation } from 'src/feature-app/Screen';\nimport { useOneFormContext } from '../OneForm';\nimport { css, keyframes } from 'styled-components';\nimport { useWindowHeight, useWindowWidth } from '@react-hook/window-size';\nimport { useShowOverflow } from 'src/feature-app/hooks';\n\nconst lineKeyframe = keyframes`\n 0% {\n transform: rotate(-90deg);\n }\n 60% {\n transform: rotate(45deg);\n }\n 100% {\n transform: rotate(0deg);\n }\n`;\n\nconst AnimatedCheckmark = styled.div`\n animation: ${lineKeyframe} 0.3s ease-in;\n svg {\n color: #001e50;\n }\n`;\n\ninterface PaddingControllerProps {\n screenIndex?: number;\n multiStepScreenIndex?: number;\n showPreviousStep?: boolean;\n formHeight?: string;\n formMin?: boolean;\n isTrigger?: boolean;\n showOverflow?: boolean;\n alingItemsCenter?: boolean;\n}\n\nconst ContentCotroller = styled.div`\n width: 100%;\n min-height: calc(100vh - 140px);\n height: 100%;\n position: relative;\n display: flex;\n flex-wrap: wrap;\n overflow: ${(props) => ( props.isTrigger ? 'hidden' : 'visible')};\n padding-bottom : 44px;;\n align-items: ${(props) => props.alingItemsCenter ? 'center' : null};\n @media all and (min-width: 560px) {\n min-height: calc(100vh - 92px);\n }\n @media all and (min-width: 960px) {\n min-height: calc(100vh - 100px);\n }\n @media all and (min-width: 1920px) {\n min-height: calc(100vh - 116px);\n }\n`;\n\n\nconst FakePreviousStep = styled.div`\n height: 136px;\n`;\nconst FakeClose = styled.div`\n height: 32px;\n margin-bottom: auto;\n width: 100%;\n @media all and (min-width: 960px) {\n margin-bottom: unset;\n position: absolute;\n top: 0;\n }\n`;\ninterface PrevStepWrapperProps extends PaddingControllerProps {\n moveForward: boolean;\n distanceToMove: number;\n showPreviousStep: boolean;\n}\n\n\n\nconst PrevStepWrapper = styled.div`\n margin-left: ${(props) => (props.showPreviousStep ? 'var(--size-grid004)' : 'unset')};\n width: ${(props) => (props.showPreviousStep ? 'var(--size-grid014)' : 'unset')};\n display: flex;\n\n @media screen and (min-width: 1280px) {\n margin-left: ${(props) => (props.showPreviousStep ? 'var(--size-grid006)' : 'unset')};\n width: ${(props) => (props.showPreviousStep ? 'var(--size-grid010)' : 'unset')};\n }\n @media screen and (min-width: 1920px) {\n\n margin-left: ${(props) => (props.showPreviousStep ? 'var(--size-grid007)' : 'unset')};\n width: ${(props) => (props.showPreviousStep ? 'var(--size-grid009)' : 'unset')};\n }\n @media screen and (min-width: 2560px) {\n margin-left: ${(props) => (props.showPreviousStep ? 'var(--size-grid008)' : 'unset')};\n width: ${(props) => (props.showPreviousStep ? 'var(--size-grid007)' : 'unset')};\n }\n &.no-animation {\n opacity:1;\n }\n &.prev-step-exit-active {\n ${(props) =>\n props.moveForward\n ? css`\n transform: translate3d(0, -90%, 0);\n transition: transform ${TIME_FOR_TRANSFORM_MS}, opacity ${TIME_FOR_OPACITY_MS} ease-out;\n `\n : css`\n opacity: 0.5;\n @media screen and (min-width: 960px) {\n transform: translate3d(0, 10vh, 0);\n }\n transition: all 300ms;\n `}\n }\n &.prev-step-exit-done {\n ${(props) =>\n !props.moveForward && props.distanceToMove\n ? css`\n width: 75%;\n transition: all 250ms;\n transform: translate3d(-4.17vw, ${props.distanceToMove}px, 0);\n * {\n font-size: var(--textappearances-headline350-fontsize);\n line-height: var(--textappearances-headline350-lineheight);\n letter-spacing: var(--textappearances-headline350-letterspacing);\n opacity: 1;\n }\n `\n : css`\n transform: translate3d(0, -90%, 0);\n transition: transform ${TIME_FOR_TRANSFORM_MS}, font-size ${TIME_FOR_TRANSFORM_MS},\n line-height ${TIME_FOR_TRANSFORM_MS}, letter-spacing ${TIME_FOR_TRANSFORM_MS},\n opacity ${TIME_FOR_OPACITY_MS} ease-out;\n `}\n }\n`;\n\nconst ContentWrapper = styled.div`\n width: 100%;\n height: 100%;\n overflow: visible;\n`;\n\nconst TitleWrapper = styled.div<{ moveForward: boolean; distanceToTop: number }>`\n opacity: 0;\n &.no-animation {\n opacity: 1;\n > div {\n &:first-of-type {\n width: var(--size-grid020);\n @media all and (min-width: 960px) {\n width: var(--size-grid018);\n }\n @media all and (min-width: 1280px) {\n width: var(--size-grid014);\n }\n @media all and (min-width: 1920px) {\n width: var(--size-grid012);\n }\n @media all and (min-width: 2560px) {\n width: var(--size-grid010);\n }\n }\n }\n }\n &.title-enter {\n transform: translate3d(0%, -50%, 0);\n opacity: 0;\n width: 100% !important;\n @media screen and (min-width: 960px) {\n transform: ${(props) => (props.moveForward ? 'translate3d(0%, -50%, 0)' : 'unset')};\n opacity: ${(props) => (props.moveForward ? '0' : '1')};\n }\n }\n &.title-enter-done {\n width: 100% !important;\n transform: translate3d(0, 0, 0);\n opacity: 1;\n transition: transform ${TIME_FOR_TRANSFORM_MS}, opacity ${TIME_FOR_OPACITY_MS} ease-in;\n }\n &.title-exit {\n width: 100% !important;\n transform: translate3d(0, 0, 0);\n opacity: 1;\n }\n &.title-exit-active {\n ${(props) =>\n props.moveForward\n ? css`\n opacity: 0.5;\n @media screen and (min-width: 960px) {\n transform: translate3d(var(--size-grid001), -10vh, 0);\n /* width previous step solo en forward move */\n width: var(--size-grid014) !important;\n * {\n font-size: var(--textappearances-headline300-fontsize);\n line-height: var(--textappearances-headline300-lineheight);\n letter-spacing: var(--textappearances-headline300-letterspacing);\n }\n }\n @media screen and (min-width: 1280px) {\n width: var(--size-grid010) !important;\n }\n @media screen and (min-width: 1600px) {\n transform: translate3d(var(--size-grid001), -15vh, 0);\n }\n @media screen and (min-width: 1920px) {\n transform: translate3d(var(--size-grid001), -15vh, 0)};\n width: var(--size-grid009) !important;\n }\n @media screen and (min-width: 2560px) {\n transform: translate3d(var(--size-grid001), -15vh, 0)};\n width: var(--size-grid007) !important;\n }\n transition: all 350ms;\n `\n : css`\n opacity: 0;\n transform: translate3d(0, 350%, 0);\n transition: all ${TIME_FOR_TRANSFORM_MS};\n `}\n }\n &.title-exit-done {\n /* desktop */\n ${(props) =>\n props.moveForward && props.distanceToTop\n ? css`\n opacity: 0.2;\n * {\n font-size: var(--textappearances-headline300-fontsize);\n line-height: var(--textappearances-headline300-lineheight);\n letter-spacing: var(--textappearances-headline300-letterspacing);\n }\n transform: translate3d(var(--size-grid001), -${props.distanceToTop}px, 0);\n transition: all 300ms;\n @media screen and (min-width: 960px) {\n width: var(--size-grid014) !important;\n }\n @media screen and (min-width: 1280px) {\n width: var(--size-grid010) !important;\n }\n @media screen and (min-width: 1920px) {\n width: var(--size-grid009) !important;\n }\n @media screen and (min-width: 2560px) {\n width: var(--size-grid007) !important;\n }\n `\n : css`\n opacity: 0;\n width: inherit !important;\n transform: translate3d(0, 45vh, 0);\n transition: all 300ms;\n @media screen and (min-width: 960px) {\n transform: translate3d(0, 350%, 0);\n transition: transform ${TIME_FOR_TRANSFORM_MS}, font-size ${TIME_FOR_TRANSFORM_MS},\n line-height ${TIME_FOR_TRANSFORM_MS}, letter-spacing ${TIME_FOR_TRANSFORM_MS},\n opacity ${TIME_FOR_OPACITY_MS} ease-out;\n }\n `}\n }\n`;\n\nconst MobileTitleWrapper = styled.div<{ moveForward: boolean; distanceToTop: number }>`\n width: var(--size-grid020) !important;\n padding-top: 52px;\n &.title-enter {\n transform: translate3d(0%, -50%, 0);\n opacity: 0;\n }\n &.title-enter-done {\n transform: translate3d(0, 0, 0);\n opacity: 1;\n transition: transform ${TIME_FOR_TRANSFORM_MS}, opacity ${TIME_FOR_OPACITY_MS} ease-in;\n }\n &.title-exit {\n transform: translate3d(0, 0, 0);\n opacity: 1;\n }\n &.title-exit-active {\n ${(props) =>\n props.moveForward\n ? css`\n opacity: 0.1;\n transition: all 200ms;\n `\n : css`\n opacity: 0;\n transform: translate3d(0, 350%, 0);\n transition: all ${TIME_FOR_TRANSFORM_MS};\n `}\n }\n &.title-exit-done {\n opacity: ${(props) => (props.moveForward ? '0.1' : '0')};\n /* mobile */\n transform: ${(props) => (props.moveForward ? 'translate3d(0, -25vh, 0)' : 'translate3d(0, 45vh, 0)')};\n transition: all 300ms;\n }\n`;\n\nconst FieldsWrapper = styled.div<{ opacity: string }>`\n opacity: ${(props) => props.opacity};\n &.fields-enter {\n transform: translate3d(0, 25%, 0);\n opacity: 0;\n }\n &.fields-enter-active {\n transform: translate3d(0, 0, 0);\n opacity: 1;\n transition: transform ${TIME_FOR_TRANSFORM_MS}, opacity 300ms ease-in;\n }\n &.fields-exit {\n opacity: 0;\n }\n &.fields-exit-active {\n opacity: 0;\n }\n`;\ninterface ScreenProps {\n title: JSX.Element;\n fields: JSX.Element;\n key: number;\n avoidTrackFormStepLoad?: boolean;\n thankYouPage?: boolean;\n}\n\nconst defaultLayout: LayoutConfiguration = {\n [Breakpoints.default]: [\n { name: '.', columns: 2 },\n { name: 'a', columns: 20 },\n { name: '.', columns: 2 },\n ],\n [Breakpoints.b960]: [\n { name: '.', columns: 3 },\n { name: 'a', columns: 18 },\n { name: '.', columns: 3 },\n ],\n [Breakpoints.b1280]: [\n { name: '.', columns: 5 },\n { name: 'a', columns: 14 },\n { name: '.', columns: 5 },\n ],\n [Breakpoints.b1920]: [\n { name: '.', columns: 6 },\n { name: 'a', columns: 12 },\n { name: '.', columns: 6 },\n ],\n [Breakpoints.b2560]: [\n { name: '.', columns: 7 },\n { name: 'a', columns: 10 },\n { name: '.', columns: 7 },\n ],\n};\n\nexport function FullScreen(props: ScreenProps) {\n const { title, fields, key, avoidTrackFormStepLoad, thankYouPage } = props;\n const { formInfo, formData } = useSelector((state: OneFormState) => state);\n const {\n multiStepScreenIndex,\n screenIndex,\n triggerExitAnimation,\n showFinalScreen,\n numberOfScreens,\n formEnded,\n alingItemsCenter,\n deleteCloseAndPrevious\n } = formInfo;\n const trackingManager = useTrackingManager();\n const {\n distanceToMove,\n setDistanceToMove,\n moveForward,\n nextScreenIndex,\n nextMultiStepScreenIndex,\n showPreviousStep,\n } = useOneFormContext();\n\n //Si se necesita que el overflow sea visible. Selectsno nativos, suggests, etc. Añadir en la definicion del step showOverflow.\n\n const { showOverflow } = useShowOverflow(false);\n\n //Añadir link pdf concursos (hay que ir al componente Legales para setear la url)\n const [ showBasesLegales, setShowBasesLegales ] = useState(false);\n\n const [isConfiracionPage, setIsConfirmacionPage] = useState(false);\n\n useEffect(() => {\n\n if(formData.fields.formName ==='adhoc-2021-eurocopa') {\n setShowBasesLegales(true);\n }\n\n if (showFinalScreen) {\n setIsConfirmacionPage(false);\n }\n\n if (screenIndex === numberOfScreens - 1) {\n if( formData.fields.formName === 'cem-venta' || formData.fields.formName === 'cem-posventa' ){\n setIsConfirmacionPage(false);\n } else {\n setIsConfirmacionPage(true);\n }\n } else {\n setIsConfirmacionPage(false);\n }\n }, [screenIndex, showFinalScreen]);\n\n // calc height stuff\n const [initialHeight, setInitialHeight] = useState(null);\n const [isTrigger, setIsTrigger] = useState(false);\n const viewportHeight = useWindowHeight();\n const viewportWidth = useWindowWidth();\n\n const content = useRef(null);\n const prevStep = useRef(null);\n\n const [currentRef, setCurrentRef] = useState(null); // optimizar ocn useMemo\n\n // animation stuff\n const [showFields, setShowFields] = useState(false);\n const [showTitle, setShowTitle] = useState(false);\n const [opacity, setOpacity] = useState('0');\n\n // variables para animacion entre steps\n const [distanceToTop, setDistanceToTop] = useState(0);\n const titleRef = useRef(null);\n const contentRef = useRef(null);\n\n // navigation stuff\n const [formClicked, setFormClicked] = useState(false);\n\n useEffect(() => {\n if (!formClicked) {\n document.body.scrollTop = 0; // For Safari\n document.documentElement.scrollTop = 0; // For Chrome, Firefox, IE and Opera\n }\n }, [formClicked]);\n\n // usar useLayoutEffect para asegurar que los cálculos de distancias se hacen antes de un nuevo render del contenido\n useEffect(() => {\n setTimeout(() => {\n if (titleRef.current && contentRef.current) {\n const titleLength = titleRef.current.innerText.length;\n // titleRef.current.scrollIntoView({ behavior: 'smooth', block: 'end' });\n /*\n extra height en breakpoints grandes y dependiendo de la longitud del título, que afecta a la animación\n desconozco por qué ocurre, pero no depende del viewport height, sino del viewport width\n */\n if (window.matchMedia('(min-width: 1600px)').matches && contentRef) {\n const extraHeight = titleLength < 60 ? (titleLength < 53 ? 8 : 18) : 36;\n setDistanceToTop(titleRef.current.offsetTop + extraHeight);\n } else {\n const extraHeight = titleLength < 53 ? 18 : 0;\n // setDistanceToTop(titleRef.current.getBoundingClientRect().top - extraHeight);\n setDistanceToTop(\n titleRef.current.getBoundingClientRect().top -\n contentRef.current.getBoundingClientRect().top +\n 32 -\n extraHeight\n );\n }\n /*\n guardar distancia del título a la parte superior del contenedor padre en un array de distancias\n para saber la distancia que tiene que recorrer el previousStep si la navegación va para atrás\n */\n if ((screenIndex === 0 && nextScreenIndex === null) || screenIndex + 1 > distanceToMove.length) {\n const extraHeight = titleLength < 53 ? 18 : 0;\n setDistanceToMove((distanceToMove) => [\n ...distanceToMove,\n titleRef.current.getBoundingClientRect().top -\n contentRef.current.getBoundingClientRect().top +\n 32 -\n extraHeight,\n ]);\n } else if (\n screenIndex + 1 <= distanceToMove.length &&\n nextMultiStepScreenIndex !== 1 &&\n nextMultiStepScreenIndex !== 2\n ) {\n const arrDistances = distanceToMove;\n const extraHeight = titleLength < 53 ? 18 : 0;\n arrDistances[screenIndex] =\n titleRef.current.getBoundingClientRect().top -\n contentRef.current.getBoundingClientRect().top +\n 32 -\n extraHeight;\n setDistanceToMove(arrDistances);\n }\n }\n }, 0);\n }, [titleRef]);\n\n useEffect(() => {\n if (triggerExitAnimation) {\n if (!formEnded) {\n setShowTitle(false);\n setShowFields(false);\n }\n }\n }, [triggerExitAnimation]);\n\n useEffect(() => {\n // Ni en la primera carga ni en la thank you page se tiene que disparar este evento.\n // El flag isFirstStep solo lo necesitamos en la primera carga, después si que se tiene que disparar el evento.\n\n if (formInfo.step?.isFirstStep || avoidTrackFormStepLoad || (formInfo.stepsHistory?.length === 1 && (!multiStepScreenIndex || multiStepScreenIndex === 0))) {\n if(formInfo.step) formInfo.step.isFirstStep = false;\n return;\n }\n trackingManager.trackFormStepLoad(\n {\n // contentId: step.title\n },\n {\n FormStart: false,\n }\n );\n }, [title]);\n\n useEffect(() => {\n if (window.matchMedia('(max-width: 960px)').matches && contentRef) {\n contentRef.current.scrollTo({ top: 0 });\n }\n setShowTitle(true);\n }, []);\n\n //Que en la zona del mapa no vuelva a lanzar las animaciones\n const [ stopAnimation, setStopAnimation ] = useState(false);\n\n useEffect(()=>{\n\n if(\n formData.fields.formName === 'no_compra-no_tengo'\n && screenIndex === 4\n && multiStepScreenIndex === 0\n || formData.fields.formName === 'no_compra-no_tengo'\n && screenIndex === 5\n && multiStepScreenIndex === 0\n ) {\n setStopAnimation(true);\n }\n\n }, [screenIndex]);\n\n const [ hideCloseAndPrevious, setHideCloseAndPrevious ] = useState(false);\n\n useEffect(()=>{\n if(deleteCloseAndPrevious){\n if(\n formData.fields.formName === 'lead-test_drive-configure' && multiStepScreenIndex === 0 && screenIndex === 0\n || formData.fields.formName === 'lead-presupuesto-configure' && multiStepScreenIndex === 0 && screenIndex === 0\n || formData.fields.formName === 'lead-mas_informacion-configure' && multiStepScreenIndex === 0 && screenIndex === 0\n || formData.fields.formName === 'lead-cita-configure' && multiStepScreenIndex === 0 && screenIndex === 0\n ) {\n setHideCloseAndPrevious(true);\n } else {\n setHideCloseAndPrevious(false);\n }\n } else {\n setHideCloseAndPrevious(false);\n }\n\n }, [screenIndex]);\n\n const [ alingContentCenter, setAlingContentCenter ] = useState(false);\n\n useEffect(()=>{\n if(viewportWidth < 960 || alingItemsCenter=== true) {\n setAlingContentCenter(true);\n } else {\n setAlingContentCenter(false);\n }\n }, [screenIndex]);\n\n\n return (\n <>\n \n {showFinalScreen || hideCloseAndPrevious ? null : screenIndex === 0 ? (\n \n ) : (\n \n )}\n\n {showFinalScreen || hideCloseAndPrevious ? null : viewportWidth >= 960 && !showPreviousStep ? (\n \n ) : viewportWidth >= 960 ?\n (\n \n \n \n \n \n ) : null}\n\n \n \n <>\n {showFinalScreen ? (\n \n \n \n \n \n ) : null}\n\n {\n viewportWidth < 960 && title ? (\n {\n setTimeout(() => {\n setShowFields(true);\n }, 100);\n }}\n onExited={() => {}}\n >\n \n {title}\n \n \n ) : (\n {\n setTimeout(() => {\n setShowFields(true);\n }, 100);\n }}\n onExited={() => {}}\n >\n \n {title}\n \n \n )\n }\n \n \n\n {\n setOpacity('1');\n }}\n onExited={() => {\n setOpacity('0');\n }}\n >\n {fields}\n \n \n \n {showFinalScreen ? null : (\n <>\n {isConfiracionPage ? (\n \n \n \n ) : null}\n \n )}\n \n );\n}\n","import {\n Breakpoints,\n Container,\n ContainerPadding,\n Layout,\n styled,\n Text,\n BreakpointWrapper,\n TokenTextAppearance,\n} from '@volkswagen-onehub/components-core';\nimport { Checkmark } from 'src/icons-core-imports';\n\nimport React, { useEffect, useLayoutEffect, useRef, useState } from 'react';\nimport { useSelector } from 'react-redux';\nimport { CSSTransition } from 'react-transition-group';\nimport { TIME_FOR_OPACITY_MS, TIME_FOR_TRANSFORM_MS } from 'src/globals';\nimport { OneFormState } from 'src/types';\nimport { useTrackingManager, useFeatureAppConfig, useShowOverflow } from 'src/feature-app/hooks';\nimport { PreviousStep } from 'src/feature-app/Screen';\nimport { useOneFormContext } from '../OneForm';\nimport { css, keyframes } from 'styled-components';\n\nconst lineKeyframe = keyframes`\n 0% {\n transform: rotate(-90deg); \n }\n 60% {\n transform: rotate(45deg);\n }\n 100% {\n transform: rotate(0deg);\n }\n`;\n\nconst AnimatedCheckmark = styled.div`\n animation: ${lineKeyframe} 0.3s ease-in;\n svg {\n color: #ffffff;\n }\n`;\n\ninterface PaddingControllerProps {\n screenIndex: number;\n multiStepScreenIndex: number;\n showPreviousStep?: boolean;\n isDealerCalendar?: boolean;\n showOverflow?: boolean;\n}\n\nconst ContentCotroller = styled.div`\n display: flex;\n flex-direction: column;\n padding-top: ${(props) => (!props.showPreviousStep ? '0' : '80px')};\n padding-bottom: ${(props) => (!props.showPreviousStep ? '0' : props.screenIndex === 10 ? '96px' : '128px')};\n min-height: 100vh;\n width: 100%;\n overflow: ${(props) => (props.showOverflow ? 'visible' : 'auto')};\n`;\n\ninterface PrevStepWrapperProps extends PaddingControllerProps {\n moveForward: boolean;\n distanceToMove: number;\n showPreviousStep: boolean;\n}\n\nconst PrevStepWrapper = styled.div`\n margin-left: ${(props) => (props.showPreviousStep ? '160px' : 'unset')};\n width: ${(props) => (props.showPreviousStep ? '640px' : 'unset')};\n padding-bottom: ${(props) =>\n props.screenIndex === 2 && props.multiStepScreenIndex === 2 ? null : props.showPreviousStep ? '72px' : '0p'};\n display: flex;\n\n @media all and (max-height: 624px) {\n padding-bottom: ${(props) =>\n props.screenIndex === 2 && props.multiStepScreenIndex === 2 ? null : props.showPreviousStep ? '44px' : '0p'};\n }\n\n &.prev-step-exit-active {\n ${(props) =>\n props.moveForward\n ? css`\n transform: translate3d(0, -90%, 0);\n transition: transform ${TIME_FOR_TRANSFORM_MS}, opacity ${TIME_FOR_OPACITY_MS} ease-out;\n `\n : css`\n opacity: 0.5;\n @media screen and (min-width: 960px) {\n transform: translate3d(0, 10vh, 0);\n }\n transition: all 300ms;\n `}\n }\n &.prev-step-exit-done {\n transform: ${(props) =>\n props.moveForward\n ? 'translate3d(0, -90%, 0)'\n : props.distanceToMove\n ? `translate3d(-41px, ${props.distanceToMove}px, 0)`\n : 'translate3d(-41px, 300px, 0)'};\n @media screen and (min-width: 1600px) {\n transform: ${(props) =>\n props.moveForward\n ? 'translate3d(0, -90%, 0)'\n : props.distanceToMove\n ? `translate3d(-41px, calc(${props.distanceToMove}px + 36px), 0)`\n : 'translate3d(-41px, 300px, 0)'};\n }\n ${(props) =>\n !props.moveForward &&\n css`\n width: 709px;\n * {\n font-size: var(--textappearances-headline350-fontsize);\n line-height: var(--textappearances-headline350-lineheight);\n letter-spacing: var(--textappearances-headline350-letterspacing);\n @media screen and (min-width: 1600px) {\n font-size: var(--textappearances-headline300-fontsize);\n line-height: var(--textappearances-headline300-lineheight);\n letter-spacing: var(--textappearances-headline300-letterspacing);\n }\n opacity: 1;\n }\n `}\n transition: ${(props) =>\n props.moveForward\n ? `\n transform ${TIME_FOR_TRANSFORM_MS},\n font-size ${TIME_FOR_TRANSFORM_MS},\n line-height ${TIME_FOR_TRANSFORM_MS},\n letter-spacing ${TIME_FOR_TRANSFORM_MS},\n opacity ${TIME_FOR_OPACITY_MS} ease-out\n `\n : 'all 250ms'}\n }\n`;\n\nconst ContentWrapper = styled.div`\n flex-grow: 1;\n display: flex;\n flex-direction: column;\n justify-content: center;\n width: 100%;\n overflow: ${(props) => (props.showOverflow ? 'visible' : 'auto')};\n @media all and (max-height: 573px) and (min-width: 960px) {\n margin-top: ${(props) => (props.screenIndex === 2 && props.multiStepScreenIndex === 1 ? '146px' : null)};\n }\n @media screen and (max-width: 959px) {\n padding-top: ${(props) => (props.isDealerCalendar ? null : props.multiStepScreenIndex === 0 ? '44px' : null)};\n }\n`;\n\nconst TitleWrapper = styled.div<{ moveForward: boolean; distanceToTop: number }>`\n &.title-enter {\n transform: translate3d(0%, -50%, 0);\n opacity: 0;\n @media screen and (min-width: 960px) {\n transform: ${(props) => (props.moveForward ? 'translate3d(0%, -50%, 0)' : 'unset')};\n opacity: ${(props) => (props.moveForward ? '0' : '1')};\n }\n }\n &.title-enter-done {\n transform: translate3d(0, 0, 0);\n opacity: 1;\n transition: transform ${TIME_FOR_TRANSFORM_MS}, opacity ${TIME_FOR_OPACITY_MS} ease-in;\n }\n &.title-exit {\n transform: translate3d(0, 0, 0);\n opacity: 1;\n }\n &.title-exit-active {\n ${(props) =>\n props.moveForward\n ? css`\n opacity: 0.5;\n @media screen and (min-width: 960px) {\n transform: translate3d(41px, -10vh, 0);\n /* width previous step solo en forward move */\n width: 640px;\n * {\n font-size: var(--textappearances-headline250-fontsize);\n line-height: var(--textappearances-headline250-lineheight);\n letter-spacing: var(--textappearances-headline250-letterspacing);\n }\n }\n @media screen and (min-width: 1600px) {\n transform: translate3d(41px, -15vh, 0);\n /* width previous step solo en forward move */\n width: 640px;\n * {\n font-size: var(--textappearances-headline250-fontsize);\n line-height: var(--textappearances-headline250-lineheight);\n letter-spacing: var(--textappearances-headline250-letterspacing);\n }\n }\n transition: all 350ms;\n `\n : css`\n opacity: 0;\n transform: translate3d(0, 350%, 0);\n transition: all ${TIME_FOR_TRANSFORM_MS};\n `}\n }\n &.title-exit-done {\n opacity: ${(props) => (props.moveForward ? '0.2' : '0')};\n /* mobile */\n transform: ${(props) => (props.moveForward ? 'translate3d(0, -25vh, 0)' : 'translate3d(0, 45vh, 0)')};\n transition: all 300ms;\n /* desktop */\n @media screen and (min-width: 960px) {\n transform: ${(props) =>\n props.moveForward ? `translate3d(41px, -${props.distanceToTop}px, 0)` : 'translate3d(0, 350%, 0)'};\n /* width previous step solo en forward move */\n width: ${(props) => (props.moveForward ? '640px' : 'inherit')};\n ${(props) =>\n props.moveForward &&\n css`\n * {\n font-size: var(--textappearances-headline250-fontsize);\n line-height: var(--textappearances-headline250-lineheight);\n letter-spacing: var(--textappearances-headline250-letterspacing);\n }\n `}\n transition: ${(props) =>\n props.moveForward\n ? 'all 300ms'\n : `\n transform ${TIME_FOR_TRANSFORM_MS},\n font-size ${TIME_FOR_TRANSFORM_MS},\n line-height ${TIME_FOR_TRANSFORM_MS},\n letter-spacing ${TIME_FOR_TRANSFORM_MS},\n opacity ${TIME_FOR_OPACITY_MS} ease-out\n `};\n }\n /* @media screen and (min-width: 1600px) {\n transform: ${(props) =>\n props.moveForward ? `translate3d(41px, calc(-${props.distanceToTop}px - 36px), 0)` : 'translate3d(0, 350%), 0'};\n } */\n }\n`;\n\nconst FieldsWrapper = styled.div<{ opacity: string }>`\n opacity: ${(props) => props.opacity};\n &.fields-enter {\n transform: translate3d(0, 25%, 0);\n opacity: 0;\n }\n &.fields-enter-active {\n transform: translate3d(0, 0, 0);\n opacity: 1;\n transition: transform ${TIME_FOR_TRANSFORM_MS}, opacity 300ms ease-in;\n }\n &.fields-exit {\n opacity: 0;\n }\n &.fields-exit-active {\n opacity: 0;\n }\n`;\n\ninterface ScreenProps {\n title: JSX.Element;\n fields: JSX.Element;\n key: number;\n avoidTrackFormStepLoad?: boolean;\n}\n\nexport function LayerScreen(props: ScreenProps) {\n const { title, fields, key, avoidTrackFormStepLoad } = props;\n const { formInfo } = useSelector((state: OneFormState) => state);\n const { multiStepScreenIndex, screenIndex, triggerExitAnimation, showFinalScreen, lastStep } = formInfo;\n const trackingManager = useTrackingManager();\n const config = useFeatureAppConfig();\n const {\n distanceToMove,\n setDistanceToMove,\n moveForward,\n nextScreenIndex,\n nextMultiStepScreenIndex,\n showPreviousStep,\n } = useOneFormContext();\n\n const [showFields, setShowFields] = useState(false);\n const [showTitle, setShowTitle] = useState(false);\n const [opacity, setOpacity] = useState('0');\n\n //Si se necesita que el overflow sea visible. Selectsno nativos, suggests, etc. Añadir en la definicion del step showOverflow.\n\n const { showOverflow } = useShowOverflow(true);\n\n //para el calendario de cita-posventa-dealer\n\n const [isDealerCalendar, setIsDealerCalendar] = useState(false);\n\n useEffect(() => {\n if (config.trigger === 'cita-posventa-dealer' && screenIndex === 2) {\n setIsDealerCalendar(true);\n } else {\n setIsDealerCalendar(false);\n }\n }, [screenIndex]);\n\n // variables para animacion entre steps\n const [distanceToTop, setDistanceToTop] = useState(0);\n const titleRef = useRef(null);\n const contentRef = useRef(null);\n\n // usar useLayoutEffect para asegurar que los cálculos de distancias se hacen antes de un nuevo render del contenido\n useEffect(() => {\n setTimeout(() => {\n if (titleRef.current && contentRef.current) {\n const titleLength = titleRef.current.innerText.length;\n // titleRef.current.scrollIntoView({ behavior: 'smooth', block: 'end' });\n /*\n extra height en breakpoints grandes y dependiendo de la longitud del título, que afecta a la animación\n desconozco por qué ocurre, pero no depende del viewport height, sino del viewport width\n */\n if (window.matchMedia('(min-width: 1600px)').matches && contentRef) {\n const extraHeight = titleLength < 60 ? (titleLength < 53 ? 8 : 18) : 36;\n setDistanceToTop(titleRef.current.offsetTop + extraHeight);\n } else {\n // console.log(titleRef.current.offsetTop, titleRef.current.getBoundingClientRect().top);\n const extraHeight = titleLength < 53 ? 18 : 0;\n setDistanceToTop(titleRef.current.getBoundingClientRect().top - extraHeight);\n }\n /*\n guardar distancia del título a la parte superior del contenedor padre en un array de distancias\n para saber la distancia que tiene que recorrer el previousStep si la navegación va para atrás\n */\n if ((screenIndex === 0 && nextScreenIndex === null) || screenIndex + 1 > distanceToMove.length) {\n setDistanceToMove((distanceToMove) => [...distanceToMove, titleRef.current.getBoundingClientRect().top]);\n } else if (\n screenIndex + 1 <= distanceToMove.length &&\n nextMultiStepScreenIndex !== 1 &&\n nextMultiStepScreenIndex !== 2\n ) {\n const arrDistances = distanceToMove;\n arrDistances[screenIndex] = titleRef.current.getBoundingClientRect().top;\n setDistanceToMove(arrDistances);\n }\n }\n }, 0);\n }, [titleRef]);\n\n useLayoutEffect(() => {\n if (triggerExitAnimation) {\n setShowTitle(false);\n setShowFields(false);\n }\n }, [triggerExitAnimation]);\n\n useEffect(() => {\n // Ni en la primera carga ni en la thank you page se tiene que disparar este evento.\n // El flag isFirstStep solo lo necesitamos en la primera carga, después si que se tiene que disparar el evento.\n setTimeout(() => {\n if (formInfo.step?.isFirstStep || avoidTrackFormStepLoad || (formInfo.stepsHistory?.length === 1 && (!multiStepScreenIndex || multiStepScreenIndex === 0))) {\n if(formInfo.step) formInfo.step.isFirstStep = false;\n return;\n }\n trackingManager.trackFormStepLoad(\n {\n // contentId: step.title\n },\n {\n FormStart: false,\n }\n );\n }, 0);\n }, [title]);\n\n useEffect(() => {\n if (window.matchMedia('(max-width: 960px)').matches && contentRef) {\n contentRef.current.scrollTo({ top: 0 });\n }\n setShowTitle(true);\n }, []);\n\n return (\n \n {showFinalScreen || !showPreviousStep ? null : (\n \n \n \n \n \n \n \n )}\n \n
\n \n <>\n {showFinalScreen ? (\n \n \n \n \n \n ) : null}\n {\n setTimeout(() => {\n setShowFields(true);\n }, 100);\n }}\n onExited={() => {}}\n >\n \n \n {title}\n \n \n {title}\n \n \n \n \n \n {\n setOpacity('1');\n }}\n onExited={() => {\n setOpacity('0');\n }}\n >\n {fields}\n \n
\n \n \n );\n}\n","import {\n styled,\n Text,\n ThemeProvider,\n TokenTextAppearance,\n TokenTextColor,\n} from '@volkswagen-onehub/components-core';\nimport { ArrowDown } from 'src/icons-core-imports';\nimport React, { useEffect, useState } from 'react';\nimport { useFormContext } from 'react-hook-form';\nimport { useSelector, useStore } from 'react-redux';\nimport { CSSTransition } from 'react-transition-group';\nimport {\n isNumber,\n useLoaded,\n useTrackingManager,\n} from 'src/feature-app';\nimport { useOneFormContext } from 'src/feature-app/OneForm';\nimport { TIME_FOR_OPACITY_MS, TIME_FOR_TRANSFORM_MS } from 'src/globals';\nimport { OneFormState, Steps } from 'src/types';\n\ninterface navigationWrapperProps {\n fullScreen?: boolean;\n isLastScreen?: boolean;\n notALayer?: boolean;\n colorTheme?: string;\n formMin?: boolean;\n position?: string;\n}\n\nconst NavigationWrapper = styled.div`\n display: ${(props) => (props.notALayer ? 'block' : props.fullScreen ? 'none' : props.isLastScreen ? 'none' : 'block')};\n position: ${(props) => (!props.notALayer ? 'fixed' : props.position ? props.position : 'relative')};\n bottom: 0;\n \n width: 100%;\n background-color: ${(props) => (props.notALayer ? 'transparent' : props.colorTheme === 'main' ? 'none' : '#001e50')};\n &:first-child {\n width: 100%;\n }\n\n @media screen and (min-width: 960px) {\n width: ${(props) => (props.notALayer ? '100%' : '960px')};\n }\n\n &.navigation-enter {\n transform: translate(0%, 50%);\n opacity: 0;\n }\n &.navigation-enter-active {\n transform: translate(0, 0);\n opacity: 1;\n transition: transform ${TIME_FOR_TRANSFORM_MS}, opacity ${TIME_FOR_OPACITY_MS} ease-in;\n }\n &.navigation-enter-done {\n }\n &.navigation-exit {\n transform: translate(0, 0);\n opacity: 1;\n }\n &.navigation-exit-active {\n transform: translate(0, -100%);\n opacity: 0.01;\n transition: all ${TIME_FOR_TRANSFORM_MS}, opacity ${TIME_FOR_OPACITY_MS} ease-in;\n }\n`;\n\ninterface ProgressWrapperProps {\n notALayer?: boolean;\n}\n\nconst ProgressWrapper = styled.div`\n display: flex;\n flex-direction: column;\n justify-content: center;\n width: ${(props) => (props.notALayer ? 'var(--size-grid010)' : '187px')};\n \n @media all and (min-width: 560px) {\n width: ${(props) => (props.notALayer ? 'var(--size-grid013)' : '303px')};\n }\n @media all and (min-width: 960px) {\n width: ${(props) => (props.notALayer ? 'var(--size-grid008)' : '320px')};\n }\n @media all and (min-width: 1280px) {\n width: ${(props) => (props.notALayer ? 'var(--size-grid006)' : '320px')};\n }\n @media all and (min-width: 1920px) {\n width: ${(props) => (props.notALayer ? 'var(--size-grid005)' : '320px')};\n }\n @media all and (min-width: 2560px) {\n width: ${(props) => (props.notALayer ? 'var(--size-grid004)' : '320px')};\n }\n`;\n\nconst BarWrapper = styled.div`\n width: 100%;\n position: relative;\n`;\n\ninterface UpperBarProps {\n width?: number;\n colorTheme?: string;\n}\nconst UpperBar = styled.div`\n position: absolute;\n width: ${(props) => `${props.width}%`};\n height: 2px;\n background: ${(props) => (props.colorTheme === 'main' ? '#001E50' : '#ffffff')};\n transition: all 0.3s;\n`;\n\nconst LowerBar = styled.div`\n position: absolute;\n width: 100%;\n height: 2px;\n background: ${(props) => (props.colorTheme === 'main' ? '#DFE4E8' : '#6a767d')} ;\n`;\n\nconst TextWrapper = styled.div`\n align-self: flex-end;\n margin-top: 8px;\n`;\n\nconst DisplayWrapper = styled.div` \n display: flex;\n justify-content: space-between;\n align-items: ${(props) => (props.notALayer ? 'flex-end' : null)};\n\n width: 100%;\n padding-bottom: ${(props) => (props.notALayer ? '16px' : props.fullScreen ? '0' : props.isLastScreen ? '0' : '20px')};\n padding-left: var(--size-grid002);\n padding-right:${(props) => (props.notALayer ? 'var(--size-grid002)' : 'var(--size-grid001)')};\n\n @media screen and (min-width: 560px) {\n padding-bottom: ${(props) => (props.notALayer ? '16px' : props.fullScreen ? '0' : props.isLastScreen ? '0' : '24px')};\n }\n @media screen and (min-width: 960px) {\n padding-left:${(props) => (props.notALayer ? 'var(--size-grid003)' : '120px')};\n padding-right: ${(props) => (props.notALayer ? 'var(--size-grid003)' : '40px')};\n padding-bottom: ${(props) => (props.notALayer ? '16px' : props.fullScreen ? '0' : props.isLastScreen ? '0' : '44px')};\n }\n @media screen and (min-width: 1280px) {\n padding-left: ${(props) => (props.notALayer ? 'var(--size-grid005)' : '120px')};\n padding-right: ${(props) => (props.notALayer ? 'var(--size-grid005)' : '40px')};\n }\n @media screen and (min-width: 1920px) {\n padding-left: ${(props) => (props.notALayer ? 'var(--size-grid006)' : '120px')};\n padding-right: ${(props) => (props.notALayer ? 'var(--size-grid006)' : '40px')};\n }\n @media screen and (min-width: 2560px) {\n padding-left: ${(props) => (props.notALayer ? 'var(--size-grid007)' : '120px')};\n padding-right: ${(props) => (props.notALayer ? 'var(--size-grid007)' : '40px')};\n }\n`;\n\nconst BackgroundPositionWrapper = styled.div`\n position: ${(props) => (props.notALayer ? 'relative' : null)};\n width: 100%; \n`;\n\nconst BackgroundColorNotALayer = styled.div`\n position: absolute;\n bottom: 0;\n width: 100%;\n background-color: #FFFFFF;\n border-top: ${(props) => props.position === 'fixed' ? '1px solid #DFE4E8' : null } ;\n height: 56px;\n z-index: -1;\n`;\n\nconst SVGColorWrapper = styled.div<{isValid: boolean}>`\n svg {\n color: ${(props)=>(props.isValid ? '#001E50' : '#6A767D')};\n }\n`;\n\nconst NextButtonWrapper = styled.div`\n padding-bottom: ${(props) => (props.notALayer ? '8px' : null)};\n`;\n\nconst NextButton = styled.button<{isValid: boolean}>`\n height: 64px;\n width: 64px;\n border-radius: 50%;\n border: none;\n background-color: ${(props)=>(props.isValid ? '#00B0F0' : '#C2CACF')};\n cursor: pointer;\n\n display: flex;\n align-items: center;\n justify-content: center;\n`;\n\nfunction InnerNavigation(props: any) {\n const { formClicked, setFormClicked, notALayer, colorTheme, soloProgreso, isFullScreen, isLastScreen, position } = props;\n const { formInfo, formData } = useSelector(\n (state: OneFormState) => state\n );\n const { fields } = formData;\n const { screenIndex, numberOfScreens, multiStepScreenIndex, step, steps } = useSelector(\n (state: OneFormState) => state.formInfo\n );\n const { getValues, errors, triggerValidation, clearError } = useFormContext();\n const store = useStore();\n const { handleNextStep, setShowPreviousStep, isValueSelected, setIsValueSelected, setError } = useOneFormContext();\n const [isValid, setIsValid] = useState(false);\n const trackingManager = useTrackingManager();\n\n //Navigation\n\n const checkIfValid = async () => {\n const valid = await triggerValidation();\n clearError();\n\n if (valid) { \n //En CarlineSelect la opción inicial incluye string vacía desde cambio a components core v64.3.0\n if(fields.modelo === \"\"){\n setIsValid(false);\n }\n else if(screenIndex === 0 && !formClicked) {\n if(fields.formName === 'no_compra-ya_tengo') {\n setIsValid(true);\n setError(false);\n } else {\n setIsValid(false);\n }\n } else {\n setIsValid(true);\n setError(false);\n }\n } else {\n setIsValid(false);\n }\n };\n\n useEffect(()=>{\n if(fields.modelo !== \"\" || fields.model !== \"\"){\n setIsValid(true);\n setError(false);\n }\n },[fields.modelo, fields.model])\n \n\n useEffect(() => {\n const checkValidity = async () => await checkIfValid();\n if (formClicked || isValueSelected) {\n checkValidity();\n if (formClicked) setFormClicked(false);\n if (isValueSelected) setIsValueSelected(false);\n }\n }, [formClicked, isValueSelected]);\n\n useEffect(() => {\n setTimeout(() => {\n if (steps) {\n const currentStep = steps.find((step) => step.screenIndex === screenIndex);\n const { notALayer } = store.getState().formInfo;\n if (\n !notALayer && (\n (screenIndex === 0 && !steps[screenIndex].multiStep) ||\n screenIndex === numberOfScreens - 1 ||\n (currentStep && currentStep.hidePreviousStep) ||\n screenIndex > numberOfScreens\n )\n ) {\n setShowPreviousStep(false);\n } else {\n setShowPreviousStep(true);\n }\n }\n }, 100);\n\n const checkValidity = async () => await checkIfValid();\n\n setTimeout(() => {\n checkValidity();\n }, 600);\n }, [screenIndex]);\n\n useEffect(() => {\n const {\n step,\n multiSteps,\n multiStepScreenIndex,\n }: { step: Steps; multiSteps: Steps[]; multiStepScreenIndex: number } = store.getState().formInfo;\n\n setTimeout(() => {\n if (multiSteps && isNumber(multiStepScreenIndex) && step && step.multiStep) {\n if (multiSteps[multiStepScreenIndex].hidePreviousStep) {\n setShowPreviousStep(false);\n } else {\n setShowPreviousStep(true);\n }\n } else {\n setShowPreviousStep(true);\n }\n }, 0);\n\n const checkValidity = async () => await checkIfValid();\n\n setTimeout(() => {\n checkValidity();\n }, 600);\n }, [multiStepScreenIndex]);\n\n const getPercentage = (): string => {\n const percentage = ((screenIndex / (numberOfScreens - 1)) * 100).toFixed(0);\n if(numberOfScreens - 1 == 1) {\n return '50';\n }\n else if(percentage === '0') {\n return '5';\n }\n else {\n return percentage;\n }\n };\n\n return (\n \n {\n notALayer ? : null\n }\n \n \n \n \n \n \n \n \n {getPercentage()}% completado\n \n \n \n {\n soloProgreso ? null : (\n \n \n {\n if(fields.modelo === \"\"){\n setError(true);\n }else{\n trackingManager.trackFormStepButtonClick({\n contentId: 'Siguiente',\n });\n handleNextStep(e);\n }\n }}\n isValid={isValid}\n >\n \n \n \n \n \n \n )\n } \n \n \n );\n}\n\ninterface NavigationProps {\n formClicked?: boolean;\n setFormClicked?: React.Dispatch>;\n notALayer?: boolean;\n colorTheme?: string;\n refProps?: any;\n formMin?: boolean;\n soloProgreso: boolean;\n position?: string;\n}\n\nexport function Navigation(props: NavigationProps) {\n const { colorTheme, notALayer, position } = props;\n const { screenIndex, step } = useSelector((state: OneFormState) => state.formInfo);\n const loaded = useLoaded();\n const [isLastScreen, setIsLastScreen] = useState(false);\n const { isFullScreen } = useOneFormContext();\n const store = useStore();\n\n useEffect(() => {\n const { formInfo } = store.getState();\n const { step, lastStep } = formInfo;\n if (step && lastStep) {\n step.screenIndex === lastStep.screenIndex ? setIsLastScreen(true) : setIsLastScreen(false);\n }\n }, [step]);\n\n return (\n \n \n {isLastScreen ? null : }\n \n \n );\n}\n","import React from 'react';\nimport { RatingStars } from 'src/components';\n\nexport const getRatingStarsOutput = (value: string) => { \n const aux = parseFloat(value);\n return ;\n};\n","import dayjs from 'dayjs';\nimport { strTitlelize } from 'src/helpers';\nimport {\n ctaDatosIncorrectos,\n ctaDatosIncorrectosPosventa,\n ctaAlternativaTransporte,\n ctaMotivoVisita,\n ctaTestDrive,\n CTAsMotivo,\n CTAsDudas,\n contactoOptionsSAC,\n CTAsNuevoOcasión,\n CTAsUsadoNuevo,\n ctaContactoSatisfaccion,\n CTAsFormasMovilidad,\n CTAsRazones, \n contactoOptionsTurismos,\n CTAsLugarCompra\n,} from 'src/feature-app/InputsValues/CTAsObjects';\nimport { \n CTAsDesplazamientoTaigo,\n CTAsMotivacionCompraTaigo\n} from 'src/feature-app/InputsValues/CTAsObjectsFormsAdhoc';\nimport { \n franjaHoraria,\n meses \n} from 'src/feature-app/InputsValues/OtherInputTypesObjects';\nimport { \n isGooglePlace, \n weekDay_DayNumber_Month, \n weekDay_DayNumber_Month_Hour \n} from 'src/feature-app';\nimport { Installation, isDealerData } from 'src/types';\n\n//FUNCIONES GESTIÓN OUTPUTS\n\n// cambio value por label\nexport const changeValueForLabel = (ctas: any, fields: any, field: string) => {\n const result = ctas.find((option: any) => option.value === fields[field]);\n return result ? result.label : fields[field];\n};\n\n// cambio value por label y concatenación multipleChoice\nconst formatMultipleOptionText = (ctas: any, fields: any, field: string) => {\n const aux = fields[field];\n const prevStepContent = ctas.filter((item: any) => aux.includes(item.value));\n const result = prevStepContent.map((item: any) => item.label);\n return result.join(', ');\n};\n\n// formacion frase slot de cita\nconst getOutputSlotFrom = (fields: any) => {\n\n const selectedMotivo = CTAsMotivo.find((CTA) => CTA.value === fields.motivo);\n\n if (fields.dealer.dmsInfo && fields.dealer.dmsInfo.dmsAvailable) {\n const momentSlot = weekDay_DayNumber_Month_Hour(fields.slot.from);\n const formatedSlot =\n momentSlot.split(',')[0] +\n ' de ' +\n momentSlot.split(',')[1].charAt(0).toLowerCase() +\n momentSlot.split(',')[1].slice(1);\n return selectedMotivo\n ? `${selectedMotivo.detallesPrevStep} el ${formatedSlot.replace('-', ' a las ').concat('h')}`\n : `El ${formatedSlot.replace(',', ' de ').concat('h')}`;\n } else {\n const momentSlot = weekDay_DayNumber_Month(fields.slot.from);\n const formatedSlot =\n momentSlot.split(',')[0] +\n ' de ' +\n momentSlot.split(',')[1].charAt(0).toLowerCase() +\n momentSlot.split(',')[1].slice(1);\n\n const horarioTranslate = franjaHoraria.find((h: any) => h.code === fields.slot.dayMoment.code);\n return selectedMotivo\n ? `${selectedMotivo.detallesPrevStep} el ${formatedSlot.concat(horarioTranslate.name)}`\n : `El ${formatedSlot.concat(horarioTranslate.name)}`;\n }\n};\n\n// output localización\nconst getLocationOutput = (formInfo: any) => {\n\n if (isGooglePlace(formInfo.userSuggestion)) {\n return formInfo.userSuggestion.name;\n } else if (isGooglePlace(formInfo.userSuggestion) && isDealerData(formInfo.userSuggestion)) {\n return `${formInfo.userSuggestion.name} en ${formInfo.userSuggestion.markerInfo.dealerInfo.address}`;\n } else if (isGooglePlace(formInfo.userSuggestion) && !isDealerData(formInfo.userSuggestion)) {\n return `${(formInfo.userSuggestion as Installation).TXT_V_Installation_Data_Name__c} en ${\n (formInfo.userSuggestion as Installation).TXT_V_Address__c\n }`;\n }\n};\n\nconst getUnknowOutput = (fields: any[], field: string) => {\n if (fields[field] == 'true') {\n return 'Sí';\n }\n if (fields[field] == 'false') {\n return 'No';\n }\n if (dayjs(fields[field], 'YYYY-MM-DD').isValid()) {\n return dayjs(fields[field], 'YYYY-MM-DD').format('DD/MM/YYYY');\n }\n if (typeof fields[field] == 'string') {\n return fields[field].replace(/\\,+/g, ', '); \n }\n\n return fields[field];\n};\n\n// SWITCH CASE PARA DETERMINAR EL OUTPUT DEL PREVIOUS STEP\n\nexport const getUpdatedField = (field: string, formData: any, dealersInfo: any, formInfo: any, previousStep?: any) => {\n\n const { fields } = formData;\n const { formName } = fields;\n const { selectedInstallation } = dealersInfo;\n\n if (previousStep?.ctas) {\n return changeValueForLabel(previousStep.ctas, fields, field);\n }\n \n switch(field) {\n case 'motivo':\n return changeValueForLabel(CTAsMotivo, fields, field);\n case 'contacto':\n return changeValueForLabel(contactoOptionsTurismos, fields, field);\n case 'contactoSAC':\n return changeValueForLabel(contactoOptionsSAC, fields, field);\n case 'datosIncorrectos':\n return changeValueForLabel(ctaDatosIncorrectos, fields, field);\n case 'alternativaTransporte':\n return changeValueForLabel(ctaAlternativaTransporte, fields, field);\n case 'datosIncorrectosPosventa':\n return changeValueForLabel(ctaDatosIncorrectosPosventa, fields, field);\n case 'tipoCoche':\n return changeValueForLabel(CTAsNuevoOcasión, fields, field);\n case 'usadoNuevo':\n return changeValueForLabel(CTAsUsadoNuevo, fields, field);\n case 'testDrive':\n return changeValueForLabel(ctaTestDrive, fields, field);\n case 'contactoSatisfaccion':\n return changeValueForLabel(ctaContactoSatisfaccion, fields, field);\n case 'desplazamiento':\n return changeValueForLabel(CTAsDesplazamientoTaigo, fields, field);\n case 'motivacionCompra' : \n return changeValueForLabel(CTAsMotivacionCompraTaigo, fields, field);\n case 'lugarCompra':\n return changeValueForLabel(CTAsLugarCompra, fields, field);\n case 'slot.from':\n return getOutputSlotFrom(fields);\n case 'dealer.name':\n return fields.dealer.name;\n case 'installation':\n return strTitlelize(selectedInstallation.TXT_V_Installation_Data_Name__c != 'undefined' ? selectedInstallation.TXT_V_Installation_Data_Name__c : selectedInstallation.VGED_CommercialName__c);\n case 'installation-complete':\n return typeof selectedInstallation.TXT_V_Installation_Data_Name__c != 'undefined' ? \n strTitlelize(selectedInstallation.TXT_V_Installation_Data_Name__c + ', ' + selectedInstallation.TXT_V_Address__c + ' ' + selectedInstallation.TXT_V_Postal_Code__c + ' ' + selectedInstallation.TXT_V_Location__c) \n : \n strTitlelize(selectedInstallation.VGED_CommercialName__c + ', ' + selectedInstallation.BillingStreet + ' ' + selectedInstallation.BillingPostalCode + ' ' + selectedInstallation.BillingCity)\n case 'location':\n return getLocationOutput(formInfo);\n case 'kilometros':\n if (fields.kilometros === 0) {\n return 'No estoy seguro';\n } else {\n return `${fields.kilometros[0]}km - ${fields.kilometros[1]}km`;\n }\n case 'cellphone':\n return `${fields.prefix} ${fields[field]}`;\n case 'informado':\n let result;\n if (fields[field] === 'false') {\n result = 'No';\n } else if (fields[field] === 'true') {\n result = 'Sí';\n } else {\n result = 'Sin respuesta';\n }\n return result ? result : fields[field];\n case 'otraMarca':\n return fields[field] === 'false' ? 'No' : fields[field];\n case 'publicarRespuestas':\n return fields[field] === '1' ? 'Sí' : 'No';\n case 'brand':\n if(fields[field] === 'false') {\n return 'No';\n } else {\n return fields[field];\n }\n case 'model':\n if(fields[field] === 'false') {\n return '';\n } else {\n return fields[field];\n }\n case 'dudas':\n return formatMultipleOptionText(CTAsDudas, fields, field);\n case 'motivoVisita':\n return formatMultipleOptionText(ctaMotivoVisita, fields, field); \n case 'formasMovilidad':\n return formatMultipleOptionText(CTAsFormasMovilidad, fields, field); \n case 'razones':\n return formatMultipleOptionText(CTAsRazones, fields, field); \n default:\n return getUnknowOutput(fields, field);\n }\n \n};","import dayjs from 'dayjs';\nimport {\n Container,\n ContainerGutter,\n styled,\n Text,\n TextAlignment,\n TokenTextAppearance,\n} from '@volkswagen-onehub/components-core';\nimport { isNull } from 'src/feature-app';\nimport React, { useEffect, useState } from 'react';\nimport { useSelector } from 'react-redux';\nimport { OneFormState, Steps } from 'src/types';\nimport { useOneFormContext } from '../OneForm';\nimport { CSSTransition } from 'react-transition-group';\nimport { changeValueForLabel, getUpdatedField, getRatingStarsOutput } from './PreviousStepFiles';\n\ntype PreviousStepWrapperProps = {\n isSeleccionDealer?: boolean;\n notALayer?: boolean;\n};\nconst PreviousStepWrapper = styled.div`\n opacity: ${(props) => (props.notALayer ? '0.4' : '0.2')};\n`;\n\nconst TextPreviousAnswerWrapper = styled.div`\n width: ${(props) => (props.notALayer ? '100%' : '640px')};\n overflow: hidden;\n max-height: 48px;\n opacity: ${(props) => (props.notALayer ? '1' : '0')};\n &.no-animation {\n opacity: 1;\n }\n &.text-enter,\n &.text-enter-active {\n opacity: 0;\n }\n &.text-enter-done {\n opacity: 1;\n transition: opacity 0.3s;\n }\n &.text-exit,\n &.text-exit-active,\n &.text-exit-done {\n opacity: 1;\n }\n`;\n\n// Implementar en caso de que sea necesario mostrar el último paso segun lo introducido y no según el screenIndex, por ejemplo al volver desde la pantalla de confirmación a otra.\ninterface OutputsHistory {\n screenIndex: number;\n step: Steps;\n outputs: any[];\n}\n\nexport function PreviousStepComponent(props: any) {\n const { formData, formInfo, dealersInfo } = useSelector((state: OneFormState) => state);\n const { steps, stepsHistory, screenIndex, multiStepScreenIndex, multiSteps, triggerExitAnimation, step } = formInfo;\n\n const [title, setTitle] = useState(null);\n const [text, setText] = useState(null);\n const [hideText, setHideText] = useState(false);\n const [textAppear, setTextAppear] = useState(false);\n const [outputs, setOutputs] = useState(null);\n const [outputsHistory, setOutputsHistory] = useState(null);\n const { moveForward, showPreviousStep } = useOneFormContext();\n\n /**\n *\n * @param stepsToIterate La lista de steps donde hay que buscar el paso previo.\n * @param screenIndexToGet La lista de steps donde hay que buscar el paso previo.\n */\n const getTitleAndOutputs = (stepsToIterate: Steps[], screenIndexToGet: number) => {\n if (!stepsToIterate || isNull(screenIndexToGet) || screenIndexToGet === -1) {\n setTitle(null);\n setText(null);\n return null;\n }\n const previousStep = stepsToIterate.find((step) => step.screenIndex === screenIndexToGet);\n \n if(!previousStep) {\n return null;\n }\n \n const title = previousStep.alternateTitle ? previousStep.alternateTitle : previousStep.title;\n setTitle(title);\n \n const camelCaseName = previousStep.name.charAt(0).toLowerCase() + previousStep.name.slice(1); // convertir a camelCase para intentar obtener el fieldName desde formName: \"PrecioMantenimiento\" -> \"precioMantenimiento\"\n\n // uso de dispatch({ type: 'UPDATE_LITERAL_FIELDS_STEPS',...\n if (formInfo.stepsLiteralFields?.[previousStep.name]) {\n const text = formInfo.stepsLiteralFields?.[previousStep.name];\n setText(text);\n return null;\n }\n else if (formInfo.stepsLiteralFields?.[camelCaseName]) {\n const text = formInfo.stepsLiteralFields?.[camelCaseName];\n setText(text);\n return null;\n }\n\n const theValue = formData.fields[camelCaseName];\n\n // OUTPUTS AND OUTPUTSTEXT\n if (previousStep.outputsText) {\n const updatedOutputsTexts = previousStep.outputsText\n .map((text) => {\n previousStep.outputs.map((output) => {\n if (text === output) {\n text = getUpdatedField(output, formData, dealersInfo, formInfo, previousStep);\n }\n });\n return text;\n })\n .join(' ');\n\n setText(updatedOutputsTexts);\n }\n else if(typeof theValue != 'undefined') {\n // CTAS\n if (previousStep.ctas) {\n setText(changeValueForLabel(previousStep.ctas, formData.fields, theValue));\n }\n // RATING STARS\n else if (previousStep.outputsIsStars) {\n setText(getRatingStarsOutput(theValue));\n } \n // BINARY\n else if(theValue == 'false' || theValue === false) {\n setText('No');\n }\n else if(theValue == 'true' || theValue === true) {\n setText('Sí');\n }\n // TIMESTAMPS\n else if (dayjs(theValue, 'YYYY-MM-DD HH:mm:ss').isValid()) {\n setText(dayjs(theValue, 'YYYY-MM-DD HH:mm:ss').format('DD/MM/YYYY HH:mm:ss'));\n }\n else if (dayjs(theValue, 'YYYY-MM-DD').isValid()) {\n setText(dayjs(theValue, 'YYYY-MM-DD').format('DD/MM/YYYY'));\n }\n else if(typeof theValue == 'string'){\n setText(theValue.replace(/\\,+/g, ', ')); // prevenir texto junto la coma\n }\n } \n };\n\n const handleMultiStep = () => {\n // En la primera pantalla del multistep mostramos el último step antes de entrar en el multistep.\n if (multiStepScreenIndex === 0) {\n getTitleAndOutputs(steps, screenIndex - 1);\n } else {\n getTitleAndOutputs(multiSteps, multiStepScreenIndex - 1);\n }\n };\n\n const handleStep = () => {\n // En la primera pantalla después de un multistep mostramos el último multistep antes de salir del mismo.\n let previousStep;\n const indexInHistory = stepsHistory.findIndex((history) => history === screenIndex);\n\n if (indexInHistory === -1) {\n previousStep = steps.find((step) => step.screenIndex === screenIndex - 1);\n } else {\n previousStep = steps.find((step) => step.screenIndex === stepsHistory[indexInHistory - 1]);\n }\n if (previousStep && previousStep.multiStep) {\n getTitleAndOutputs(multiSteps, multiStepScreenIndex);\n } else {\n getTitleAndOutputs(steps, previousStep?.screenIndex);\n }\n };\n\n useEffect(() => {\n if (isNull(screenIndex) || (screenIndex === 0 && !steps?.[screenIndex]?.multiStep) || !steps?.[screenIndex]) {\n return;\n }\n const step = steps.find((step) => step.screenIndex === screenIndex);\n if (step) {\n step.multiStep ? handleMultiStep() : handleStep();\n } else {\n handleStep();\n }\n }, [screenIndex, multiStepScreenIndex]);\n\n useEffect(() => {\n if (props.stopAnimation) {\n setHideText(false);\n } else {\n if (!moveForward) {\n setHideText(true);\n } else {\n setHideText(false);\n }\n }\n }, [moveForward]);\n\n useEffect(() => {\n if (text) setTextAppear(true);\n }, [text]);\n\n useEffect(() => {\n setHideText(false);\n }, []);\n\n return showPreviousStep ? (\n \n \n {props.notALayer ? (\n \n {title ? title : null}\n \n ) : (\n \n {title ? title : null}\n \n )}\n {props.notALayer ? (\n \n \n {text && !hideText ? text : null}\n \n \n ) : (\n \n \n \n {text && !hideText && !triggerExitAnimation ? text : null}\n \n \n \n )}\n \n \n ) : null;\n}\n\nclass ErrorBoundary extends React.Component {\n constructor(props: any) {\n super(props);\n this.state = { hasError: false };\n }\n\n static getDerivedStateFromError(error) {\n // Actualiza el estado para que el siguiente renderizado muestre la interfaz de repuesto\n return { hasError: true };\n }\n\n componentDidCatch(error, errorInfo) {\n console.error('Falta por definir un campo en PreviousStep');\n // También puedes registrar el error en un servicio de reporte de errores\n }\n\n render() {\n if (this.state.hasError) {\n // Puedes renderizar cualquier interfaz de repuesto\n return null;\n }\n\n return this.props.children;\n }\n}\n\nexport function PreviousStep(props: any) {\n return (\n \n \n \n );\n}\n","import React, {useEffect} from 'react';\nimport { LayerScreen, FullScreen } from '.';\ninterface RenderControllerProps {\n screenType: 'layer-screen' | 'full-screen';\n title: JSX.Element;\n fields: JSX.Element;\n key: number;\n avoidTrackFormStepLoad?: boolean;\n thankYouPage?: boolean;\n}\n\nexport const RenderController = (props: RenderControllerProps) => {\n const { title, fields, key, avoidTrackFormStepLoad, screenType, thankYouPage } = props;\n\n return (\n <>\n {screenType ? (\n <>\n {screenType === 'layer-screen' ? (\n \n ) : (\n \n )}\n \n ) : null}\n \n );\n};\n","import { styled } from '@volkswagen-onehub/components-core';\nimport { CloseHandleV2, LayerHandleV2 } from '@volkswagen-onehub/layer-manager';\nimport React, { useEffect, useState } from 'react';\nimport { useSelector, useStore } from 'react-redux';\nimport { OneFormProvider, useFeatureAppConfig } from 'src/feature-app';\nimport { CloseComponent, Navigation } from 'src/feature-app/Screen';\nimport { OneFormState } from 'src/types';\nimport { ThankYouComponent } from 'src/feature-app/ThankYouComponent';\nimport { useGetBoundingClientRect } from 'src/feature-app/hooks';\nimport { useWindowHeight, useWindowWidth } from '@react-hook/window-size';\n\ninterface ScreenControllerProps {\n closeLayerCallback?: CloseHandleV2;\n selectedJourney: JSX.Element;\n handleAreYouSureLayer: () => LayerHandleV2<{}>;\n notALayer?: boolean;\n formType?: 'layer' | 'inPage' | 'module';\n}\n\nconst ThankYouWrapper = styled.div`\n height: 100%;\n display: flex;\n align-items: center;\n div {\n height: auto;\n align-items: center;\n }\n`;\n\nexport function ScreenController(props: ScreenControllerProps) {\n const { closeLayerCallback, selectedJourney, handleAreYouSureLayer, formType } = props;\n\n const { formInfo, formData } = useSelector((state: OneFormState) => state);\n const { multiStepScreenIndex, screenIndex, triggerExitAnimation, showFinalScreen, lastStep, step } = formInfo;\n const [formClicked, setFormClicked] = useState(false);\n const [colorTheme, setTheme] = useState(null);\n const config = useFeatureAppConfig();\n\n const trigger = useFeatureAppConfig().trigger;\n\n //Quitar navegación en pantallas de error de carga del form formato full-screen\n\n const [formStarted, setFormStarted] = useState(false);\n useEffect(() => {\n if (formInfo.formStarted === false) {\n setFormStarted(false);\n } else {\n setFormStarted(true);\n }\n }, [formInfo]);\n\n //mapa no compra, si en algun otro form se usa y no coinciden el screenIndex o el multiscreenIndex\n //habrá que añadir un filtro por trigger o un flag en formInfo de que está en el mapa\n\n const [isMap, setIsMap] = useState(false);\n const [soloProgreso, setSoloProgreso] = useState(false);\n\n useEffect(() => {\n if (multiStepScreenIndex === 1 && screenIndex === 5) {\n setIsMap(true);\n } else if (formData.fields.formName === 'no_compra-ya_tengo' && screenIndex === 2) {\n setSoloProgreso(true);\n } else if (formData.fields.formName === 'adhoc-2021-eurocopa' && screenIndex === 0) {\n setIsMap(true);\n } else {\n setIsMap(false);\n setSoloProgreso(false);\n }\n }, [screenIndex, multiStepScreenIndex]);\n\n useEffect(() => {\n setTheme('inverted');\n }, [trigger]);\n\n const store = useStore();\n\n const handleClick = () => {\n setFormClicked(true);\n };\n\n const [isLastScreen, setIsLastScreen] = useState(false);\n const [isConfirmacion, setIsConfirmacion] = useState(false);\n\n useEffect(() => {\n if (step?.name === 'Confirmacion' || step?.name === 'Form') {\n setIsConfirmacion(true);\n } else if (step && step.name !== 'Confirmacion') {\n setIsConfirmacion(false);\n }\n if (step && lastStep) {\n step.screenIndex === lastStep.screenIndex ? setIsLastScreen(true) : setIsLastScreen(false);\n }\n }, [step]);\n\n //navigation position in full screen\n\n const [navPositon, setNavPosition] = useState('fixed');\n const viewportHeight = useWindowHeight();\n\n const { top: topNavigation, getAndUpdateState: getAndUpdateStateNavigation } =\n useGetBoundingClientRect('.navigation-wrapper');\n\n const { bottom: bottomContent, getAndUpdateState: getAndUpdateStateContent } = useGetBoundingClientRect(\n '.content-controller-fullScreen'\n );\n\n const handlePosition = () => {\n getAndUpdateStateNavigation();\n getAndUpdateStateContent();\n };\n\n useEffect(() => {\n if (step && step.name !== 'Confirmacion') {\n document.addEventListener('scroll', handlePosition);\n\n return () => {\n document.removeEventListener('scroll', handlePosition);\n };\n }\n }, [step]);\n\n useEffect(() => {\n if (bottomContent === null) {\n setNavPosition('fixed');\n //console.log('1111');\n } else if (bottomContent <= viewportHeight-100) {\n setNavPosition('relative');\n //console.log('2222');\n } else {\n setNavPosition('fixed');\n //console.log('3333');\n }\n }, [topNavigation, bottomContent]);\n\n return (\n \n {\n handleClick();\n }}\n className=\"screen-controller-wrapper\"\n >\n {showFinalScreen ? (\n <>\n {\n formType === 'inPage' || formType === 'module' ? null : (\n \n )\n }\n \n \n \n \n \n ) : formType === 'inPage' || formType === 'module' ? (\n <>\n {selectedJourney}\n {showFinalScreen || isMap || !formStarted || isConfirmacion || formType === 'module' ? null : (\n \n )}\n \n ) : (\n <>\n \n\n {selectedJourney}\n {isLastScreen ? null : (\n \n )}\n \n )}\n \n \n );\n}\n","import React from 'react';\nimport {\n Layout,\n Breakpoints,\n LayoutRowGap,\n styled,\n} from '@volkswagen-onehub/components-core';\n\ninterface OneElementTemplateProps {\n element: JSX.Element;\n allowOverflowingContent?: boolean;\n noPadding?: boolean;\n}\n\n// Refactorizar\nexport function OneElementTemplateFullScreen(props: OneElementTemplateProps) {\n const { element, allowOverflowingContent, noPadding = false } = props;\n return (\n \n {element}\n \n );\n}\n\ninterface TwoElementsTemplateProps {\n firstElement: JSX.Element;\n secondElement: JSX.Element;\n allowOverflowingContent?: boolean;\n}\n\nexport function TwoElementsTemplateFullScreen(props: TwoElementsTemplateProps) {\n const { firstElement, secondElement } = props;\n return (\n \n {firstElement}\n {secondElement}\n \n );\n}\n\ninterface ThreeElementsTemplateProps {\n firstElement: JSX.Element;\n secondElement: JSX.Element;\n thirdElement: JSX.Element;\n allowOverflowingContent?: boolean;\n}\n\nexport function ThreeElementsTemplateFullScreen(props: ThreeElementsTemplateProps) {\n const { firstElement, secondElement, thirdElement } = props;\n return (\n \n {firstElement}\n {secondElement}\n {thirdElement}\n \n );\n}\n","import React from 'react';\nimport { useSelector } from 'react-redux';\nimport { OneFormState } from 'src/types';\n\nexport function ThankYouComponent() {\n const { thankYouComponent } = useSelector((state: OneFormState) => state.formInfo);\n return { ...thankYouComponent };\n}\n","import normalizeArguments from './normalizeArguments.js'\r\nimport parsePhoneNumber_ from './parsePhoneNumber_.js'\r\n\r\nexport default function parsePhoneNumber() {\r\n\tconst { text, options, metadata } = normalizeArguments(arguments)\r\n\treturn parsePhoneNumber_(text, options, metadata)\r\n}\r\n","import dayjs from 'dayjs';\nimport { PincodeData } from 'src';\nimport { getPersonAttributes, getLeadAttributes, getVehicleAttributes, dealerAttributes, orderAttributes } from '.';\nimport { getTestLead, getTestPerson } from '.';\n\nexport const checkIfIsTestPincode = (pincode: string) => pincode.startsWith('PINCODE');\n\n\nexport const getTestPincode = (pincode: string): PincodeData => {\n\n const noPermite = pincode.includes('NOPERMITE') || pincode.includes('NO-PERMITE');\n const isElectrico = pincode.includes('ID');\n\n const content = [];\n\n\tif (pincode.includes('NPERSON')) {\n content.push({\n attributes: [...getTestPerson(noPermite, getDate(pincode, 'PERSON'))]\n });\n }\n else if (pincode.includes('PERSON')) {\n content.push({\n attributes: [...getPersonAttributes(noPermite, getDate(pincode, 'PERSON'))]\n });\n }\n\n\tif (pincode.includes('NLEAD')) {\n content.push({\n attributes: [...getTestLead(getDate(pincode, 'LEAD'))]\n });\n }\n else if (pincode.includes('LEAD')) {\n content.push({\n attributes: [...getLeadAttributes(getDate(pincode, 'LEAD'))]\n });\n }\n\n if (pincode.includes('VEHICLE')) {\n content.push({\n attributes: [...getVehicleAttributes(isElectrico)]\n });\n }\n if (pincode.includes('ORDER')) {\n content.push({\n attributes: [...orderAttributes]\n });\n }\n if (pincode.includes('DEALER')) {\n content.push({\n attributes: [...dealerAttributes]\n });\n }\n\n return {\n status: {\n result: 'success',\n timestamp: dayjs().format('YYYY-MM-DD HH:mm:ss'),\n code: 1,\n time: 0.5742380619049072,\n },\n params: {\n pincode: pincode,\n token: 'VW_DDB_FORM_TEST',\n },\n content: content,\n };\n}\n\nconst getDate = (pincode: string, match: string) => {\n const days = pincode.match(new RegExp(match + \"(\\\\d+)\"));\n if (days) {\n return dayjs().subtract(parseInt(days[1]),'day').format('YYYY-MM-DD HH:mm:ss');\n }\n return null;\n}","export const dealerAttributes = [\n {\n name: 'ID',\n value: 'DEALER',\n },\n {\n name: 'attributes',\n value: 'es.vged.dps.salesforce.rest.entities.SfAttributesRest@281c2df7[type=Account,url=/services/data/v53.0/sobjects/Account/0010Y000014bFZOQA2]',\n },\n {\n name: 'Id',\n value: '0010Y00001IPCkUQAX',\n },\n {\n name: 'IsDeleted',\n value: 'null',\n },\n {\n name: 'MasterRecordId',\n value: 'null',\n },\n {\n name: 'Name',\n value: 'CATALUNYA WAGEN',\n },\n {\n name: \"TXT_V_Installation_Data_Name__c\",\n value: \"CATALUNYA WAGEN\"\n },\n {\n name: 'LastName',\n value: 'null',\n },\n {\n name: 'FirstName',\n value: 'null',\n },\n {\n name: 'Salutation',\n value: 'null',\n },\n {\n name: 'MiddleName',\n value: 'null',\n },\n {\n name: 'Suffix',\n value: 'null',\n },\n {\n name: 'Type',\n value: 'null',\n },\n {\n name: 'RecordTypeId',\n value: 'null',\n },\n {\n name: 'ParentId',\n value: 'null',\n },\n {\n name: 'BillingStreet',\n value: 'null',\n },\n {\n name: 'BillingCity',\n value: 'null',\n },\n {\n name: 'BillingState',\n value: 'null',\n },\n {\n name: 'BillingPostalCode',\n value: 'null',\n },\n {\n name: 'BillingCountry',\n value: 'null',\n },\n {\n name: 'BillingLatitude',\n value: 'null',\n },\n {\n name: 'BillingLongitude',\n value: 'null',\n },\n {\n name: 'BillingGeocodeAccuracy',\n value: 'null',\n },\n {\n name: 'BillingAddress',\n value: 'null',\n },\n {\n name: 'ShippingStreet',\n value: 'null',\n },\n {\n name: 'ShippingCity',\n value: 'null',\n },\n {\n name: 'ShippingState',\n value: 'null',\n },\n {\n name: 'ShippingPostalCode',\n value: 'null',\n },\n {\n name: 'ShippingCountry',\n value: 'null',\n },\n {\n name: 'ShippingLatitude',\n value: 'null',\n },\n {\n name: 'ShippingLongitude',\n value: 'null',\n },\n {\n name: 'ShippingGeocodeAccuracy',\n value: 'null',\n },\n {\n name: 'ShippingAddress',\n value: 'null',\n },\n {\n name: 'Phone',\n value: 'null',\n },\n {\n name: 'Fax',\n value: 'null',\n },\n {\n name: 'AccountNumber',\n value: 'null',\n },\n {\n name: 'Website',\n value: 'null',\n },\n {\n name: 'PhotoUrl',\n value: 'null',\n },\n {\n name: 'Sic',\n value: 'null',\n },\n {\n name: 'Industry',\n value: 'null',\n },\n {\n name: 'AnnualRevenue',\n value: 'null',\n },\n {\n name: 'NumberOfEmployees',\n value: 'null',\n },\n {\n name: 'Ownership',\n value: 'null',\n },\n {\n name: 'TickerSymbol',\n value: 'null',\n },\n {\n name: 'Description',\n value: 'null',\n },\n {\n name: 'Rating',\n value: 'null',\n },\n {\n name: 'Site',\n value: 'null',\n },\n {\n name: 'OwnerId',\n value: 'null',\n },\n {\n name: 'CreatedDate',\n value: 'null',\n },\n {\n name: 'CreatedById',\n value: 'null',\n },\n {\n name: 'LastModifiedDate',\n value: 'null',\n },\n {\n name: 'LastModifiedById',\n value: 'null',\n },\n {\n name: 'SystemModstamp',\n value: 'null',\n },\n {\n name: 'LastActivityDate',\n value: 'null',\n },\n {\n name: 'LastViewedDate',\n value: 'null',\n },\n {\n name: 'LastReferencedDate',\n value: 'null',\n },\n {\n name: 'IsPartner',\n value: 'null',\n },\n {\n name: 'PersonContactId',\n value: 'null',\n },\n {\n name: 'IsPersonAccount',\n value: 'null',\n },\n {\n name: 'PersonMailingStreet',\n value: 'null',\n },\n {\n name: 'PersonMailingCity',\n value: 'null',\n },\n {\n name: 'PersonMailingState',\n value: 'null',\n },\n {\n name: 'PersonMailingPostalCode',\n value: 'null',\n },\n {\n name: 'PersonMailingCountry',\n value: 'null',\n },\n {\n name: 'PersonMailingLatitude',\n value: 'null',\n },\n {\n name: 'PersonMailingLongitude',\n value: 'null',\n },\n {\n name: 'PersonMailingGeocodeAccuracy',\n value: 'null',\n },\n {\n name: 'PersonMailingAddress',\n value: 'null',\n },\n {\n name: 'PersonMobilePhone',\n value: 'null',\n },\n {\n name: 'PersonEmail',\n value: 'null',\n },\n {\n name: 'PersonTitle',\n value: 'null',\n },\n {\n name: 'PersonDepartment',\n value: 'null',\n },\n {\n name: 'PersonHasOptedOutOfEmail',\n value: 'null',\n },\n {\n name: 'PersonLastCURequestDate',\n value: 'null',\n },\n {\n name: 'PersonLastCUUpdateDate',\n value: 'null',\n },\n {\n name: 'PersonEmailBouncedReason',\n value: 'null',\n },\n {\n name: 'PersonEmailBouncedDate',\n value: 'null',\n },\n {\n name: 'Jigsaw',\n value: 'null',\n },\n {\n name: 'JigsawCompanyId',\n value: 'null',\n },\n {\n name: 'AccountSource',\n value: 'null',\n },\n {\n name: 'SicDesc',\n value: 'null',\n },\n {\n name: 'SalesforceCustomer',\n value: 'null',\n },\n {\n name: 'Active__c',\n value: 'null',\n },\n {\n name: 'Audi__c',\n value: 'null',\n },\n {\n name: 'Customer_Priority__c',\n value: 'null',\n },\n {\n name: 'Instalacion__c',\n value: 'null',\n },\n {\n name: 'NumberofLocations__c',\n value: 'null',\n },\n {\n name: 'SLAExpirationDate__c',\n value: 'null',\n },\n {\n name: 'SLASerialNumber__c',\n value: 'null',\n },\n {\n name: 'SLA__c',\n value: 'null',\n },\n {\n name: 'Skoda__c',\n value: 'null',\n },\n {\n name: 'UpsellOpportunity__c',\n value: 'null',\n },\n {\n name: 'Volkswagen__c',\n value: 'null',\n },\n {\n name: 'Dealer_Code_Vaesa__c',\n value: '0320Y',\n },\n {\n name: 'COD_Gender__c',\n value: 'null',\n },\n {\n name: 'ID_Person_DIM_IMP__c',\n value: 'null',\n },\n {\n name: 'LCV__c',\n value: 'null',\n },\n {\n name: 'LSSI__c',\n value: 'null',\n },\n {\n name: 'NUM_Phone_mobile__c',\n value: 'null',\n },\n {\n name: 'NUM_landline__c',\n value: 'null',\n },\n {\n name: 'PCK_Brand__c',\n value: 'null',\n },\n {\n name: 'Robinson__c',\n value: 'null',\n },\n {\n name: 'TXT_Country__c',\n value: 'null',\n },\n {\n name: 'TXT_Email__c',\n value: 'null',\n },\n {\n name: 'TXT_Location__c',\n value: 'BARCELONA',\n },\n {\n name: 'TXT_NIF_CIF__c',\n value: 'null',\n },\n {\n name: 'TXT_Postal_Code__c',\n value: '08040',\n },\n {\n name: 'TXT_Province__c',\n value: 'BARCELONA',\n },\n {\n name: 'TXT_natural_legal_person__c',\n value: 'null',\n },\n {\n name: 'Address_extra__c',\n value: 'null',\n },\n {\n name: 'Address_name__c',\n value: 'A Zona Franca',\n },\n {\n name: 'Address_number__c',\n value: '51',\n },\n {\n name: 'Address_type__c',\n value: 'null',\n },\n {\n name: 'FORM_Full_Address__c',\n value: 'null',\n },\n {\n name: 'TXT_Code_Concession__c',\n value: '0320Y',\n },\n {\n name: 'TXT_Installation_Code__c',\n value: '0320Y',\n },\n {\n name: 'TXT_V_Code_Concession__c',\n value: '0320Y',\n },\n {\n name: 'TXT_V_Installation_Code__c',\n value: '0320Y',\n },\n {\n name: 'CHK_Lead_VN_Audi__c',\n value: 'null',\n },\n {\n name: 'CHK_Lead_VN_LCV__c',\n value: 'null',\n },\n {\n name: 'CHK_Lead_VN_SK__c',\n value: 'null',\n },\n {\n name: 'CHK_Lead_VN_VW__c',\n value: 'null',\n },\n {\n name: 'CHK_Lead_VO_Audi__c',\n value: 'null',\n },\n {\n name: 'CHK_Lead_VO_LCV__c',\n value: 'null',\n },\n {\n name: 'CHK_Lead_VO_SK__c',\n value: 'null',\n },\n {\n name: 'CHK_Lead_VO_VW__c',\n value: 'null',\n },\n {\n name: 'CHK_Prospect_VN_Audi__c',\n value: 'null',\n },\n {\n name: 'CHK_Prospect_VN_LCV__c',\n value: 'null',\n },\n {\n name: 'CHK_Prospect_VN_SK__c',\n value: 'null',\n },\n {\n name: 'CHK_Prospect_VN_VW__c',\n value: 'null',\n },\n {\n name: 'CHK_Prospect_VO_Audi__c',\n value: 'null',\n },\n {\n name: 'CHK_Prospect_VO_LCV__c',\n value: 'null',\n },\n {\n name: 'CHK_Prospect_VO_SK__c',\n value: 'null',\n },\n {\n name: 'CHK_Prospect_VO_VW__c',\n value: 'null',\n },\n {\n name: 'DAT_last_received_com_LCV__c',\n value: 'null',\n },\n {\n name: 'DAT_last_received_com_SK__c',\n value: 'null',\n },\n {\n name: 'DAT_last_received_com_VW__c',\n value: 'null',\n },\n {\n name: 'DAT_last_received_com__c',\n value: 'null',\n },\n {\n name: 'DAT_lead_vn_LCV__c',\n value: 'null',\n },\n {\n name: 'DAT_lead_vn_SK__c',\n value: 'null',\n },\n {\n name: 'DAT_lead_vn_VW__c',\n value: 'null',\n },\n {\n name: 'DAT_lead_vn__c',\n value: 'null',\n },\n {\n name: 'DAT_lead_vo_LCV__c',\n value: 'null',\n },\n {\n name: 'DAT_lead_vo_SK__c',\n value: 'null',\n },\n {\n name: 'DAT_lead_vo_VW__c',\n value: 'null',\n },\n {\n name: 'DAT_lead_vo__c',\n value: 'null',\n },\n {\n name: 'Desired_model_1_LCV__c',\n value: 'null',\n },\n {\n name: 'Desired_model_1_Skoda__c',\n value: 'null',\n },\n {\n name: 'Desired_model_1_VW__c',\n value: 'null',\n },\n {\n name: 'Desired_model_1__c',\n value: 'null',\n },\n {\n name: 'Desired_model_2_LCV__c',\n value: 'null',\n },\n {\n name: 'Desired_model_2_Skoda__c',\n value: 'null',\n },\n {\n name: 'Desired_model_2_VW__c',\n value: 'null',\n },\n {\n name: 'Desired_model_2__c',\n value: 'null',\n },\n {\n name: 'Last_comunication_campaign_LCV__c',\n value: 'null',\n },\n {\n name: 'Last_comunication_campaign_SK__c',\n value: 'null',\n },\n {\n name: 'Last_comunication_campaign_VW__c',\n value: 'null',\n },\n {\n name: 'Last_comunication_campaign__c',\n value: 'null',\n },\n {\n name: 'N_hits_last_14_days_LCV__c',\n value: 'null',\n },\n {\n name: 'N_hits_last_14_days_SK__c',\n value: 'null',\n },\n {\n name: 'N_hits_last_14_days_VW__c',\n value: 'null',\n },\n {\n name: 'N_hits_last_14_days__c',\n value: 'null',\n },\n {\n name: 'N_hits_last_21_days_LCV__c',\n value: 'null',\n },\n {\n name: 'N_hits_last_21_days_SK__c',\n value: 'null',\n },\n {\n name: 'N_hits_last_21_days_VW__c',\n value: 'null',\n },\n {\n name: 'N_hits_last_21_days__c',\n value: 'null',\n },\n {\n name: 'N_hits_last_30_days_LCV__c',\n value: 'null',\n },\n {\n name: 'N_hits_last_30_days_SK__c',\n value: 'null',\n },\n {\n name: 'N_hits_last_30_days_VW__c',\n value: 'null',\n },\n {\n name: 'N_hits_last_30_days__c',\n value: 'null',\n },\n {\n name: 'N_hits_last_7_days_LCV__c',\n value: 'null',\n },\n {\n name: 'N_hits_last_7_days_SK__c',\n value: 'null',\n },\n {\n name: 'N_hits_last_7_days_VW__c',\n value: 'null',\n },\n {\n name: 'N_hits_last_7_days__c',\n value: 'null',\n },\n {\n name: 'N_hits_last_90_days_LCV__c',\n value: 'null',\n },\n {\n name: 'N_hits_last_90_days_SK__c',\n value: 'null',\n },\n {\n name: 'N_hits_last_90_days_VW__c',\n value: 'null',\n },\n {\n name: 'N_hits_last_90_days__c',\n value: 'null',\n },\n {\n name: 'N_hits_last_year_LCV__c',\n value: 'null',\n },\n {\n name: 'N_hits_last_year_SK__c',\n value: 'null',\n },\n {\n name: 'N_hits_last_year_VW__c',\n value: 'null',\n },\n {\n name: 'N_hits_last_year__c',\n value: 'null',\n },\n {\n name: 'Pissed_off_client_LCV__c',\n value: 'null',\n },\n {\n name: 'Pissed_off_client_Skoda__c',\n value: 'null',\n },\n {\n name: 'Pissed_off_client_VW__c',\n value: 'null',\n },\n {\n name: 'Pissed_off_client__c',\n value: 'null',\n },\n {\n name: 'driver_is_official_dealer_LCV__c',\n value: 'null',\n },\n {\n name: 'driver_is_official_dealer_SK__c',\n value: 'null',\n },\n {\n name: 'driver_is_official_dealer_VW__c',\n value: 'null',\n },\n {\n name: 'driver_is_official_dealer__c',\n value: 'null',\n },\n {\n name: 'driver_vn_act_SK__c',\n value: 'null',\n },\n {\n name: 'driver_vn_act_LCV__c',\n value: 'null',\n },\n {\n name: 'driver_vn_act_VW__c',\n value: 'null',\n },\n {\n name: 'driver_vn_act__c',\n value: 'null',\n },\n {\n name: 'driver_vn_nact_LCV__c',\n value: 'null',\n },\n {\n name: 'driver_vn_nact_Sk__c',\n value: 'null',\n },\n {\n name: 'driver_vn_nact_VW__c',\n value: 'null',\n },\n {\n name: 'driver_vn_nact__c',\n value: 'null',\n },\n {\n name: 'driver_vo_act_LCV__c',\n value: 'null',\n },\n {\n name: 'driver_vo_act_SK__c',\n value: 'null',\n },\n {\n name: 'driver_vo_act_VW__c',\n value: 'null',\n },\n {\n name: 'driver_vo_act__c',\n value: 'null',\n },\n {\n name: 'driver_vo_nact_LCV__c',\n value: 'null',\n },\n {\n name: 'driver_vo_nact_SK__c',\n value: 'null',\n },\n {\n name: 'driver_vo_nact_VW__c',\n value: 'null',\n },\n {\n name: 'driver_vo_nact__c',\n value: 'null',\n },\n {\n name: 'owner_is_offical_dealer_LCV__c',\n value: 'null',\n },\n {\n name: 'owner_is_offical_dealer_SK__c',\n value: 'null',\n },\n {\n name: 'owner_is_offical_dealer_VW__c',\n value: 'null',\n },\n {\n name: 'owner_is_offical_dealer__c',\n value: 'null',\n },\n {\n name: 'owner_vn_act_LCV__c',\n value: 'null',\n },\n {\n name: 'owner_vn_act_SK__c',\n value: 'null',\n },\n {\n name: 'owner_vn_act_VW__c',\n value: 'null',\n },\n {\n name: 'owner_vn_act__c',\n value: 'null',\n },\n {\n name: 'owner_vn_nact_LCV__c',\n value: 'null',\n },\n {\n name: 'owner_vn_nact_SK__c',\n value: 'null',\n },\n {\n name: 'owner_vn_nact_VW__c',\n value: 'null',\n },\n {\n name: 'owner_vn_nact__c',\n value: 'null',\n },\n {\n name: 'owner_vo_act_LCV__c',\n value: 'null',\n },\n {\n name: 'owner_vo_act_SK__c',\n value: 'null',\n },\n {\n name: 'owner_vo_act_VW__c',\n value: 'null',\n },\n {\n name: 'owner_vo_act__c',\n value: 'null',\n },\n {\n name: 'owner_vo_nact_LCV__c',\n value: 'null',\n },\n {\n name: 'owner_vo_nact_SK__c',\n value: 'null',\n },\n {\n name: 'owner_vo_nact_VW__c',\n value: 'null',\n },\n {\n name: 'owner_vo_nact__c',\n value: 'null',\n },\n {\n name: 'COD_province__c',\n value: '17',\n },\n {\n name: 'Manual_marker__c',\n value: 'null',\n },\n {\n name: 'TXT_V_Address__c',\n value: 'POL.IND. ZONA FRANCA, CALLE A 51',\n },\n {\n name: 'Afected_EA_189__c',\n value: 'null',\n },\n {\n name: 'DAT_prospect_vn_LCV__c',\n value: 'null',\n },\n {\n name: 'DAT_prospect_vn_SK__c',\n value: 'null',\n },\n {\n name: 'DAT_prospect_vn_VW__c',\n value: 'null',\n },\n {\n name: 'DAT_prospect_vn__c',\n value: 'null',\n },\n {\n name: 'DAT_prospect_vo_LCV__c',\n value: 'null',\n },\n {\n name: 'DAT_prospect_vo_SK__c',\n value: 'null',\n },\n {\n name: 'DAT_prospect_vo_VW__c',\n value: 'null',\n },\n {\n name: 'DAT_prospect_vo__c',\n value: 'null',\n },\n {\n name: 'Legal_risk_EA_189__c',\n value: 'null',\n },\n {\n name: 'Age__c',\n value: 'null',\n },\n {\n name: 'CHK_Current_Afected_EA_189__c',\n value: 'null',\n },\n {\n name: 'Document_type__c',\n value: 'null',\n },\n {\n name: 'Repaired_EA_189__c',\n value: 'null',\n },\n {\n name: 'LKP_After_Sales_manager__c',\n value: 'null',\n },\n {\n name: 'LKP_Sales_manager__c',\n value: 'null',\n },\n {\n name: 'Dealer_Code_Imaweb__c',\n value: 'null',\n },\n {\n name: 'ID_Climapro_Installation_Audi__c',\n value: 'null',\n },\n {\n name: 'ID_Climapro_Installation_LCV__c',\n value: 'null',\n },\n {\n name: 'ID_Climapro_Installation_SK__c',\n value: 'null',\n },\n {\n name: 'ID_Climapro_Installation_VW__c',\n value: 'null',\n },\n {\n name: 'Latitude__c',\n value: \"41.337717\",\n },\n {\n name: 'Longitude__c',\n value: \"2.141197\",\n },\n {\n name: 'NUM_V_Phone__c',\n value: 'null',\n },\n {\n name: 'Preferred_Installation_Aftersale_Audi__c',\n value: 'null',\n },\n {\n name: 'Preferred_Installation_Aftersale_LCV__c',\n value: 'null',\n },\n {\n name: 'Preferred_Installation_Aftersale_SK__c',\n value: 'null',\n },\n {\n name: 'Preferred_Installation_Aftersale_VW__c',\n value: 'null',\n },\n {\n name: 'Preferred_Installation_Sale_Audi__c',\n value: 'null',\n },\n {\n name: 'Preferred_Installation_Sale_LCV__c',\n value: 'null',\n },\n {\n name: 'Preferred_Installation_Sale_SK__c',\n value: 'null',\n },\n {\n name: 'Preferred_Installation_Sale_VW__c',\n value: 'null',\n },\n {\n name: 'TXT_KVPS_code__c',\n value: '08004',\n },\n {\n name: 'TXT_PV_Address__c',\n value: 'null',\n },\n {\n name: 'TXT_V_KVPS_code__c',\n value: '08004',\n },\n {\n name: 'TXT_V_Postal_Code__c',\n value: '08040',\n },\n {\n name: 'Cod_installation_Imaweb__c',\n value: 'null',\n },\n {\n name: 'FLAG_Baja__c',\n value: 'null',\n },\n {\n name: 'COD_Brand_Imaweb__c',\n value: 'null',\n },\n {\n name: 'NORM_Address_name__c',\n value: 'null',\n },\n {\n name: 'NORM_Address_number__c',\n value: 'null',\n },\n {\n name: 'NORM_Location__c',\n value: 'null',\n },\n {\n name: 'NORM_Postal_Code__c',\n value: 'null',\n },\n {\n name: 'TXT_Business_Group_CIF__c',\n value: 'null',\n },\n {\n name: 'TXT_Description_Concession__c',\n value: 'null',\n },\n {\n name: 'TXT_Email_Contact_Concession__c',\n value: 'null',\n },\n {\n name: 'TXT_Type_Concession__c',\n value: 'null',\n },\n {\n name: 'ID_Climapro_Concession__c',\n value: 'null',\n },\n {\n name: 'TXT_V_Email__c',\n value: 'null',\n },\n {\n name: \"aceDealer__c\",\n value: \"false\"\n },\n {\n name: \"MPCK_Instalation_Type__c\",\n value: \"1;2;10\"\n },\n {\n name: \"FRML_TXT_codVentaProvincia__c\",\n value: \"08\"\n },\n {\n name: 'Latitude_V__c',\n value: \"41.337717\",\n },\n {\n name: 'Longitude_V__c',\n value: \"2.141197\",\n },\n {\n name: 'TXT_V_Location__c',\n value: 'BARCELONA',\n },\n {\n name: 'COD_V_province__c',\n value: 'null',\n },\n {\n name: 'Cod_V_installation_Imaweb__c',\n value: 'null',\n },\n {\n name: 'FLAG_V_Baja__c',\n value: 'null',\n },\n {\n name: 'Dealer_V_Code_Vaesa__c',\n value: 'null',\n },\n {\n name: 'ID_V_Climapro_Installation_Audi__c',\n value: 'null',\n },\n {\n name: 'ID_V_Climapro_Installation_LCV__c',\n value: 'null',\n },\n {\n name: 'ID_V_Climapro_Installation_SK__c',\n value: 'null',\n },\n {\n name: 'ID_V_Climapro_Installation_VW__c',\n value: 'null',\n },\n {\n name: 'Dealer_V_Code_Imaweb__c',\n value: 'null',\n },\n {\n name: 'TXT_Area_Manager_V__c',\n value: 'null',\n },\n {\n name: 'TXT_Email_Zone_Manager__c',\n value: 'null',\n },\n {\n name: 'External_ID_Otros__c',\n value: 'null',\n },\n {\n name: 'TXT_Activity__c',\n value: 'null',\n },\n {\n name: 'TXT_Last_Name_1_Manager__c',\n value: 'null',\n },\n {\n name: 'TXT_Surname_2_Manager__c',\n value: 'null',\n },\n {\n name: 'TXT_Area_code__c',\n value: 'null',\n },\n {\n name: 'TXT_Description_Installation__c',\n value: 'null',\n },\n {\n name: 'TXT_prior_appointment__c',\n value: 'null',\n },\n {\n name: 'TXT_Email_After_Sales_PV__c',\n value: 'null',\n },\n {\n name: 'TXT_Email_Manager__c',\n value: 'null',\n },\n {\n name: 'TXT_V_Email_more_info__c',\n value: 'null',\n },\n {\n name: 'TXT_Email_Sender__c',\n value: 'null',\n },\n {\n name: 'DATE_Home__c',\n value: 'null',\n },\n {\n name: 'DATE_Date_Last_Updated__c',\n value: 'null',\n },\n {\n name: 'CHK_Replacement_fleet__c',\n value: 'null',\n },\n {\n name: 'TXT_Installation_Data_Name__c',\n value: 'null',\n },\n {\n name: 'TXT_Manager_Name__c',\n value: 'null',\n },\n {\n name: 'TXT_Observations_Schedule__c',\n value: 'null',\n },\n {\n name: 'TXT_V_Observations_Schedule__c',\n value: 'null',\n },\n {\n name: 'CHK_V_Parking__c',\n value: 'null',\n },\n {\n name: 'TXT_business_name__c',\n value: 'null',\n },\n {\n name: 'TXT_V_business_name__c',\n value: 'null',\n },\n {\n name: 'Adblue_price__c',\n value: 'null',\n },\n {\n name: 'Anyo_matriculacion_otro_vehiculo__c',\n value: 'null',\n },\n {\n name: 'CHK_Audi_CAM__c',\n value: 'null',\n },\n {\n name: 'CHK_Audi_Lounge__c',\n value: 'null',\n },\n {\n name: 'CHK_Audi_Sport_Exclusive_Service__c',\n value: 'null',\n },\n {\n name: 'CHK_Audi_Sport__c',\n value: 'null',\n },\n {\n name: 'CHK_California_roof_repairing__c',\n value: 'null',\n },\n {\n name: 'CHK_Children_zone__c',\n value: 'null',\n },\n {\n name: 'CHK_Client_Shutle__c',\n value: 'null',\n },\n {\n name: 'CHK_Compressed_Natural_Gas_Charger__c',\n value: 'null',\n },\n {\n name: 'CHK_Crafter_Elevator__c',\n value: 'null',\n },\n {\n name: 'CHK_DRM__c',\n value: 'null',\n },\n {\n name: 'CHK_Delivery_Service__c',\n value: 'null',\n },\n {\n name: 'CHK_Do_Not_Contact_AU__c',\n value: 'null',\n },\n {\n name: 'CHK_Do_Not_Contact__c',\n value: 'null',\n },\n {\n name: 'CHK_Dont_send_Com__c',\n value: 'null',\n },\n {\n name: 'CHK_Elite_Body__c',\n value: 'null',\n },\n {\n name: 'CHK_Email_OFF__c',\n value: 'null',\n },\n {\n name: 'CHK_Exclusive_Service_VW__c',\n value: 'null',\n },\n {\n name: 'CHK_Exclusive_Service__c',\n value: 'null',\n },\n {\n name: 'CHK_Fast_Service__c',\n value: 'null',\n },\n {\n name: 'CHK_Free_Wifi__c',\n value: 'null',\n },\n {\n name: 'CHK_HVT_repairs__c',\n value: 'null',\n },\n {\n name: 'CHK_Handicapped__c',\n value: 'null',\n },\n {\n name: 'CHK_Integral_Body_Program__c',\n value: 'null',\n },\n {\n name: 'CHK_Is_Closed_Days__c',\n value: 'null',\n },\n {\n name: 'CHK_Oficial_Audi_Prestige_Service__c',\n value: 'null',\n },\n {\n name: 'CHK_PCI__c',\n value: 'null',\n },\n {\n name: 'CHK_Parking__c',\n value: 'null',\n },\n {\n name: 'CHK_SUM_Diff_Schedule_Vehicle_Recep__c',\n value: 'null',\n },\n {\n name: 'CHK_Service_Plus_Installation__c',\n value: 'null',\n },\n {\n name: 'CHK_TLMK__c',\n value: 'null',\n },\n {\n name: 'CHK_V_Children_zone__c',\n value: 'null',\n },\n {\n name: 'CHK_V_Exclusive_Service_VW__c',\n value: 'null',\n },\n {\n name: 'CHK_V_Free_Wifi__c',\n value: 'null',\n },\n {\n name: 'CHK_V_Handicapped__c',\n value: 'null',\n },\n {\n name: 'CHK_V_Waiting_zone__c',\n value: 'null',\n },\n {\n name: 'CHK_Waiting_zone__c',\n value: 'null',\n },\n {\n name: 'CHK_Working_Zone_Waiting_Clients__c',\n value: 'null',\n },\n {\n name: 'CHK_e_Hibrids__c',\n value: 'null',\n },\n {\n name: 'CHK_e_dealers__c',\n value: 'null',\n },\n {\n name: 'CHK_e_loaders__c',\n value: 'null',\n },\n {\n name: 'CampaignID__c',\n value: 'null',\n },\n {\n name: 'Contactable_after_sales__c',\n value: 'null',\n },\n {\n name: 'Contactable_sales__c',\n value: 'null',\n },\n {\n name: 'Customer_type__c',\n value: 'null',\n },\n {\n name: 'DATE_Date_Photo__c',\n value: 'null',\n },\n {\n name: 'DATE_End_Date_SUM__c',\n value: 'null',\n },\n {\n name: 'DATE_End_Date_Valid__c',\n value: 'null',\n },\n {\n name: 'DATE_Entry_Date__c',\n value: 'null',\n },\n {\n name: 'DATE_Ini_Date_SUM__c',\n value: 'null',\n },\n {\n name: 'DATE_Termination_Date__c',\n value: 'null',\n },\n {\n name: 'DATE_View_End_Period__c',\n value: 'null',\n },\n {\n name: 'DATE_View_Start_Period__c',\n value: 'null',\n },\n {\n name: 'DAT_Customer_registration_SLI__c',\n value: 'null',\n },\n {\n name: 'DAT_last_vehicle__c',\n value: 'null',\n },\n {\n name: 'Email_Business_Group__c',\n value: 'null',\n },\n {\n name: 'Es_Autonomo_VN__c',\n value: 'null',\n },\n {\n name: 'Es_Gran_empresa_propiedad_VN__c',\n value: 'null',\n },\n {\n name: 'Es_Pymes_propiedad_VN__c',\n value: 'null',\n },\n {\n name: 'Es_Pymes_renting_VN__c',\n value: 'null',\n },\n {\n name: 'Es_RaC_VN__c',\n value: 'null',\n },\n {\n name: 'Es_VO_no_particular__c',\n value: 'null',\n },\n {\n name: 'Es_gran_empresa_renting_VN__c',\n value: 'null',\n },\n {\n name: 'Es_indefinido_VN__c',\n value: 'null',\n },\n {\n name: 'Es_no_identificado_VN__c',\n value: 'null',\n },\n {\n name: 'Es_particular_VN__c',\n value: 'null',\n },\n {\n name: 'Es_resto_VN__c',\n value: 'null',\n },\n {\n name: 'Excesive_waiting__c',\n value: 'null',\n },\n {\n name: 'FRML_TXT_DPV__c',\n value: 'null',\n },\n {\n name: 'FRML_TXT_Image_Sign__c',\n value: 'null',\n },\n {\n name: 'Family_unit__c',\n value: 'null',\n },\n {\n name: 'FormID__c',\n value: 'null',\n },\n {\n name: 'Home_another_vehicle_brand__c',\n value: 'null',\n },\n {\n name: 'ID_External_ID__c',\n value: 'null',\n },\n {\n name: 'ID_Vehicle_EID__c',\n value: 'null',\n },\n {\n name: 'Id_Instalacion__c',\n value: 'null',\n },\n {\n name: 'Id_Propietario_PV_AU__c',\n value: 'null',\n },\n {\n name: 'Id_Propietario_PV_LCV__c',\n value: 'null',\n },\n {\n name: 'Id_Propietario_PV_SK__c',\n value: 'null',\n },\n {\n name: 'Id_Propietario_PV_VW__c',\n value: 'null',\n },\n {\n name: 'Id_Propietario_V_AU__c',\n value: 'null',\n },\n {\n name: 'Id_Propietario_V_LCV__c',\n value: 'null',\n },\n {\n name: 'Id_Propietario_V_SK__c',\n value: 'null',\n },\n {\n name: 'Id_Propietario_V_VW__c',\n value: 'null',\n },\n {\n name: 'Informat_cession_aceptance__c',\n value: 'null',\n },\n {\n name: 'Lead_vn_act__c',\n value: 'null',\n },\n {\n name: 'Lead_vn_nact__c',\n value: 'null',\n },\n {\n name: 'Lead_vo_act__c',\n value: 'null',\n },\n {\n name: 'Lead_vo_nact__c',\n value: 'null',\n },\n {\n name: 'Multivehicle__c',\n value: 'null',\n },\n {\n name: 'NUM_Bodywork_Price_Hour__c',\n value: 'null',\n },\n {\n name: 'NUM_Business_Group_Id__c',\n value: 'null',\n },\n {\n name: 'NUM_Fax_Business_Group__c',\n value: 'null',\n },\n {\n name: 'NUM_Id_Operation__c',\n value: 'null',\n },\n {\n name: 'NUM_Mechanical_Price_Hour__c',\n value: 'null',\n },\n {\n name: 'NUM_Number_Photo__c',\n value: 'null',\n },\n {\n name: 'NUM_Oil_Liter_Price__c',\n value: 'null',\n },\n {\n name: 'NUM_Phone_Business_Group__c',\n value: 'null',\n },\n {\n name: 'NUM_Substitution_vehicle__c',\n value: 'null',\n },\n {\n name: 'NUM_Work_Price__c',\n value: 'null',\n },\n {\n name: 'NUM_chassis_number__c',\n value: 'null',\n },\n {\n name: 'PCK_SUM_TIME_FRI_AFT_END__c',\n value: 'null',\n },\n {\n name: 'PCK_SUM_TIME_FRI_AFT_STA__c',\n value: 'null',\n },\n {\n name: 'PCK_SUM_TIME_FRI_MOR_END__c',\n value: 'null',\n },\n {\n name: 'PCK_SUM_TIME_FRI_MOR_STA__c',\n value: 'null',\n },\n {\n name: 'PCK_SUM_TIME_MON_THUR_AFT_END__c',\n value: 'null',\n },\n {\n name: 'PCK_SUM_TIME_MON_THUR_AFT_STA__c',\n value: 'null',\n },\n {\n name: 'PCK_SUM_TIME_MON_THUR_MOR_END__c',\n value: 'null',\n },\n {\n name: 'PCK_SUM_TIME_MON_THUR_MOR_STA__c',\n value: 'null',\n },\n {\n name: 'PCK_SUM_TIME_SAT_AFT_END__c',\n value: 'null',\n },\n {\n name: 'PCK_SUM_TIME_SAT_AFT_STA__c',\n value: 'null',\n },\n {\n name: 'PCK_SUM_TIME_SAT_MOR_END__c',\n value: 'null',\n },\n {\n name: 'PCK_SUM_TIME_SAT_MOR_STA__c',\n value: 'null',\n },\n {\n name: 'PCK_SUM_TIME_SUN_AFT_END__c',\n value: 'null',\n },\n {\n name: 'PCK_SUM_TIME_SUN_AFT_STA__c',\n value: 'null',\n },\n {\n name: 'PCK_SUM_TIME_SUN_MOR_END__c',\n value: 'null',\n },\n {\n name: 'PCK_SUM_TIME_SUN_MOR_STA__c',\n value: 'null',\n },\n {\n name: 'PCK_Social_Network__c',\n value: 'null',\n },\n {\n name: 'PCK_V_SUM_TIME_FRI_AFT_END__c',\n value: 'null',\n },\n {\n name: 'PCK_V_SUM_TIME_FRI_AFT_STA__c',\n value: 'null',\n },\n {\n name: 'PCK_V_SUM_TIME_FRI_MOR_END__c',\n value: 'null',\n },\n {\n name: 'PCK_V_SUM_TIME_FRI_MOR_STA__c',\n value: 'null',\n },\n {\n name: 'PCK_V_SUM_TIME_MON_THUR_AFT_END__c',\n value: 'null',\n },\n {\n name: 'PCK_V_SUM_TIME_MON_THUR_AFT_STA__c',\n value: 'null',\n },\n {\n name: 'PCK_V_SUM_TIME_MON_THUR_MOR_END__c',\n value: 'null',\n },\n {\n name: 'PCK_V_SUM_TIME_MON_THUR_MOR_STA__c',\n value: 'null',\n },\n {\n name: 'PCK_V_SUM_TIME_SAT_AFT_END__c',\n value: 'null',\n },\n {\n name: 'PCK_V_SUM_TIME_SAT_AFT_STA__c',\n value: 'null',\n },\n {\n name: 'PCK_V_SUM_TIME_SAT_MOR_END__c',\n value: 'null',\n },\n {\n name: 'PCK_V_SUM_TIME_SAT_MOR_STA__c',\n value: 'null',\n },\n {\n name: 'PCK_V_SUM_TIME_SUN_AFT_END__c',\n value: 'null',\n },\n {\n name: 'PCK_V_SUM_TIME_SUN_AFT_STA__c',\n value: 'null',\n },\n {\n name: 'PCK_V_SUM_TIME_SUN_MOR_END__c',\n value: 'null',\n },\n {\n name: 'PCK_V_SUM_TIME_SUN_MOR_STA__c',\n value: 'null',\n },\n {\n name: 'PCK_V_Social_Network__c',\n value: 'null',\n },\n {\n name: 'PCK_V_WIN_TIME_FRI_AFT_END__c',\n value: 'null',\n },\n {\n name: 'PCK_V_WIN_TIME_FRI_AFT_STA__c',\n value: 'null',\n },\n {\n name: 'PCK_V_WIN_TIME_FRI_MOR_END__c',\n value: 'null',\n },\n {\n name: 'PCK_V_WIN_TIME_FRI_MOR_STA__c',\n value: 'null',\n },\n {\n name: 'PCK_V_WIN_TIME_MON_THUR_AFT_END__c',\n value: 'null',\n },\n {\n name: 'PCK_V_WIN_TIME_MON_THUR_AFT_STA__c',\n value: 'null',\n },\n {\n name: 'PCK_V_WIN_TIME_MON_THUR_MOR_END__c',\n value: 'null',\n },\n {\n name: 'PCK_V_WIN_TIME_MON_THUR_MOR_STA__c',\n value: 'null',\n },\n {\n name: 'PCK_V_WIN_TIME_SAT_AFT_END__c',\n value: 'null',\n },\n {\n name: 'PCK_V_WIN_TIME_SAT_AFT_STA__c',\n value: 'null',\n },\n {\n name: 'PCK_V_WIN_TIME_SAT_MOR_END__c',\n value: 'null',\n },\n {\n name: 'PCK_V_WIN_TIME_SAT_MOR_STA__c',\n value: 'null',\n },\n {\n name: 'PCK_V_WIN_TIME_SUN_AFT_END__c',\n value: 'null',\n },\n {\n name: 'PCK_V_WIN_TIME_SUN_AFT_STA__c',\n value: 'null',\n },\n {\n name: 'PCK_V_WIN_TIME_SUN_MOR_END__c',\n value: 'null',\n },\n {\n name: 'PCK_V_WIN_TIME_SUN_MOR_STA__c',\n value: 'null',\n },\n {\n name: 'PCK_WIN_TIME_FRI_AFT_END__c',\n value: 'null',\n },\n {\n name: 'PCK_WIN_TIME_FRI_AFT_STA__c',\n value: 'null',\n },\n {\n name: 'PCK_WIN_TIME_FRI_MOR_END__c',\n value: 'null',\n },\n {\n name: 'PCK_WIN_TIME_FRI_MOR_STA__c',\n value: 'null',\n },\n {\n name: 'PCK_WIN_TIME_MON_THUR_AFT_END__c',\n value: 'null',\n },\n {\n name: 'PCK_WIN_TIME_MON_THUR_AFT_STA__c',\n value: 'null',\n },\n {\n name: 'PCK_WIN_TIME_MON_THUR_MOR_END__c',\n value: 'null',\n },\n {\n name: 'PCK_WIN_TIME_MON_THUR_MOR_STA__c',\n value: 'null',\n },\n {\n name: 'PCK_WIN_TIME_SAT_AFT_END__c',\n value: 'null',\n },\n {\n name: 'PCK_WIN_TIME_SAT_AFT_STA__c',\n value: 'null',\n },\n {\n name: 'PCK_WIN_TIME_SAT_MOR_END__c',\n value: 'null',\n },\n {\n name: 'PCK_WIN_TIME_SAT_MOR_STA__c',\n value: 'null',\n },\n {\n name: 'PCK_WIN_TIME_SUN_AFT_END__c',\n value: 'null',\n },\n {\n name: 'PCK_WIN_TIME_SUN_AFT_STA__c',\n value: 'null',\n },\n {\n name: 'PCK_WIN_TIME_SUN_MOR_END__c',\n value: 'null',\n },\n {\n name: 'PCK_WIN_TIME_SUN_MOR_STA__c',\n value: 'null',\n },\n {\n name: 'PKL_Exclusion_Motive_PV_AU__c',\n value: 'null',\n },\n {\n name: 'PKL_Exclusion_Motive_PersonAccount__c',\n value: 'null',\n },\n {\n name: 'Profession__c',\n value: 'null',\n },\n {\n name: 'Standard_contactable_universe_LCV__c',\n value: 'null',\n },\n {\n name: 'Standard_contactable_universe_Skoda__c',\n value: 'null',\n },\n {\n name: 'Standard_contactable_universe_VW__c',\n value: 'null',\n },\n {\n name: 'Standard_contactable_universe__c',\n value: 'null',\n },\n {\n name: 'TXT_Accept_Bases__c',\n value: 'null',\n },\n {\n name: 'TXT_Area_Manager_PV__c',\n value: 'null',\n },\n {\n name: 'TXT_Business_Group_Name__c',\n value: 'null',\n },\n {\n name: 'TXT_BussinesGroup__c',\n value: 'null',\n },\n {\n name: 'TXT_Comments_Exclusion__c',\n value: 'null',\n },\n {\n name: 'TXT_Context_ID__c',\n value: 'null',\n },\n {\n name: 'TXT_Contract_brand__c',\n value: 'null',\n },\n {\n name: 'TXT_DPV_Name__c',\n value: 'null',\n },\n {\n name: 'TXT_DPV_gender__c',\n value: 'null',\n },\n {\n name: 'TXT_DPV_treatment__c',\n value: 'null',\n },\n {\n name: 'TXT_Description_Validity__c',\n value: 'null',\n },\n {\n name: 'TXT_Email_Area_Manager__c',\n value: 'null',\n },\n {\n name: 'TXT_Email_CCDPV__c',\n value: 'null',\n },\n {\n name: 'TXT_Email_DPV__c',\n value: 'null',\n },\n {\n name: 'TXT_Email_DV__c',\n value: 'null',\n },\n {\n name: 'TXT_Email_Online_Appointment_PV__c',\n value: 'null',\n },\n {\n name: 'TXT_Email_Online_Appointment_V__c',\n value: 'null',\n },\n {\n name: 'TXT_Email_Zone_Manager_V__c',\n value: 'null',\n },\n {\n name: 'TXT_Facebook__c',\n value: 'null',\n },\n {\n name: 'TXT_Instagram__c',\n value: 'null',\n },\n {\n name: 'TXT_Last_Name_1_Area_Manager_PV__c',\n value: 'null',\n },\n {\n name: 'TXT_Last_Name_1_DPV__c',\n value: 'null',\n },\n {\n name: 'TXT_Last_Name_1_V__c',\n value: 'null',\n },\n {\n name: 'TXT_Last_name_2_DPV__c',\n value: 'null',\n },\n {\n name: 'TXT_Last_name_2_V__c',\n value: 'null',\n },\n {\n name: 'TXT_Manager_Name_PV__c',\n value: 'null',\n },\n {\n name: 'TXT_Name__c',\n value: 'null',\n },\n {\n name: 'TXT_Observations__c',\n value: 'null',\n },\n {\n name: 'TXT_Official_Web_PV__c',\n value: 'null',\n },\n {\n name: 'TXT_Official_Web_V__c',\n value: 'null',\n },\n {\n name: 'TXT_Position__c',\n value: 'null',\n },\n {\n name: 'TXT_Profile__c',\n value: 'null',\n },\n {\n name: 'TXT_Surname_2_Area_Manager_PV__c',\n value: 'null',\n },\n {\n name: 'TXT_Tradename_BusinessGroup__c',\n value: 'null',\n },\n {\n name: 'TXT_Tradename__c',\n value: 'null',\n },\n {\n name: 'TXT_Twitter__c',\n value: 'null',\n },\n {\n name: 'TXT_V_Facebook__c',\n value: 'null',\n },\n {\n name: 'TXT_V_Instagram__c',\n value: 'null',\n },\n {\n name: 'TXT_V_Name__c',\n value: 'null',\n },\n {\n name: 'TXT_V_Tradename__c',\n value: 'null',\n },\n {\n name: 'TXT_V_Twitter__c',\n value: 'null',\n },\n {\n name: 'TXT_V_Web__c',\n value: 'null',\n },\n {\n name: 'TXT_V_gender__c',\n value: 'null',\n },\n {\n name: 'TXT_Web__c',\n value: 'null',\n },\n {\n name: 'TXT_number_plate__c',\n value: 'null',\n },\n {\n name: 'URL_Business_Group_Website__c',\n value: 'null',\n },\n {\n name: 'Unsuscribed__c',\n value: 'null',\n },\n {\n name: 'Use_type__c',\n value: 'null',\n },\n {\n name: 'cond_is_official_dealer_LCV__c',\n value: 'null',\n },\n {\n name: 'cond_is_official_dealer_SK__c',\n value: 'null',\n },\n {\n name: 'cond_is_official_dealer_VW__c',\n value: 'null',\n },\n {\n name: 'cond_is_official_dealer__c',\n value: 'null',\n },\n {\n name: 'cond_vn_act_SK__c',\n value: 'null',\n },\n {\n name: 'prospect_vn_act__c',\n value: 'null',\n },\n {\n name: 'prospect_vn_nact__c',\n value: 'null',\n },\n {\n name: 'prospect_vo_act__c',\n value: 'null',\n },\n {\n name: 'prospect_vo_nact__c',\n value: 'null',\n },\n {\n name: 'et4ae5__HasOptedOutOfMobile__pc',\n value: 'null',\n },\n {\n name: 'et4ae5__Mobile_Country_Code__pc',\n value: 'null',\n },\n {\n name: 'IDClimapro__pc',\n value: 'null',\n },\n];\n","export const getLeadAttributes = (date?: string) => {\n return [\n {\n name: 'ID',\n value: 'LEAD',\n },\n {\n name: 'attributes',\n value: 'es.vged.dps.salesforce.rest.entities.SfAttributesRest@133a815a[type=Leads_Prospects__c,url=/services/data/v51.0/sobjects/Leads_Prospects__c/a0d1n00000gvFgzAAE]',\n },\n {\n name: 'Id',\n value: 'a0d1n00000gvFgzAAE',\n },\n {\n name: 'OwnerId',\n value: '0050Y000001UE3gQAG',\n },\n {\n name: 'IsDeleted',\n value: 'false',\n },\n {\n name: 'Name',\n value: '8401294-VW_DDB_FRM_LEM_REC_LEM-36V',\n },\n {\n name: 'CreatedDate',\n value: date ? date : '2023-11-14 18:44:24',\n },\n {\n name: 'CreatedById',\n value: '0050Y000001UE3gQAG',\n },\n {\n name: 'LastModifiedDate',\n value: '2021-05-05T05:55:28.000+0000',\n },\n {\n name: 'LastModifiedById',\n value: '0050Y000001UE3gQAG',\n },\n {\n name: 'SystemModstamp',\n value: '2021-05-05T05:55:28.000+0000',\n },\n {\n name: 'LastViewedDate',\n value: 'null',\n },\n {\n name: 'LastReferencedDate',\n value: 'null',\n },\n {\n name: 'Brand__c',\n value: 'Volkswagen',\n },\n {\n name: 'DESC_Dealer_Code__c',\n value: 'MERKAMOTOR TORTOSA, S.A.',\n },\n {\n name: 'DESC_Model__c',\n value: 'T-Roc',\n },\n {\n name: 'ID_Person_DIM_IMP__c',\n value: '8401294',\n },\n {\n name: 'IS_Prospect__c',\n value: 'false',\n },\n {\n name: 'Is_AfterSales__c',\n value: 'false',\n },\n {\n name: 'Is_Company__c',\n value: 'false',\n },\n {\n name: 'Is_lead__c',\n value: 'true',\n },\n {\n name: 'LSSI__c',\n value: 'NO PERMITE',\n },\n {\n name: 'LastCreatedDate__c',\n value: '2021-05-02T23:50:00.000+0000',\n },\n {\n name: 'TXT_Email__c',\n value: 'test@test.com',\n },\n {\n name: 'TXT_Postal_Code__c',\n value: '00000',\n },\n {\n name: 'TXT_Province__c',\n value: 'Barcelona',\n },\n {\n name: 'Token__c',\n value: 'VW_DDB_FRM_LEM_REC_LEM',\n },\n {\n name: 'Total__c',\n value: 'null',\n },\n {\n name: 'Total_last_1_year__c',\n value: 'null',\n },\n {\n name: 'Total_last_2_year__c',\n value: 'null',\n },\n {\n name: 'Total_last_3_year__c',\n value: 'null',\n },\n {\n name: 'Total_last_4_year__c',\n value: 'null',\n },\n {\n name: 'VN_VO__c',\n value: 'VN',\n },\n {\n name: 'LKP_PersonAccount__c',\n value: '0011n00002e8sUnAAI',\n },\n {\n name: 'External_Id_Climapro__c',\n value: 'DPS-000000000000001052940',\n },\n {\n name: 'NUM_COD_INTEREST_CARLINE__c',\n value: '30365',\n },\n {\n name: 'TXT_DESC_DEALER_CODE__c',\n value: '03278',\n },\n {\n name: 'IsQualified__c',\n value: 'false',\n },\n ]\n};\n","export const orderAttributes = [\n {\n name: 'ID',\n value: 'ORDER',\n },\n {\n name: 'attributes',\n value: 'es.vged.dps.salesforce.rest.entities.SfAttributesRest@59506a4c[type=Order__c,url=/services/data/v53.0/sobjects/Order__c/a0W1n00000IETcDEAX]',\n },\n {\n name: 'Id',\n value: 'a0W1n00000IETcDEAX',\n },\n {\n name: 'OwnerId',\n value: '0050Y000001UE3gQAG',\n },\n {\n name: 'IsDeleted',\n value: 'false',\n },\n {\n name: 'Name',\n value: '36V_146_6599',\n },\n {\n name: 'CreatedDate',\n value: '2020-10-31T08:20:33.000+0000',\n },\n {\n name: 'CreatedById',\n value: '0050Y000001UE3gQAG',\n },\n {\n name: 'LastModifiedDate',\n value: '2021-11-26T09:28:57.000+0000',\n },\n {\n name: 'LastModifiedById',\n value: '0050Y000001UE3gQAG',\n },\n {\n name: 'SystemModstamp',\n value: '2021-11-26T09:28:58.000+0000',\n },\n {\n name: 'LastViewedDate',\n value: 'null',\n },\n {\n name: 'LastReferencedDate',\n value: 'null',\n },\n {\n name: 'CHK_excessive_waiting_Audi__c',\n value: 'false',\n },\n {\n name: 'CHK_excessive_waiting_Audi_theoric__c',\n value: 'false',\n },\n {\n name: 'CHK_excessive_waiting_LCV__c',\n value: 'false',\n },\n {\n name: 'CHK_excessive_waiting_Skoda__c',\n value: 'false',\n },\n {\n name: 'CHK_excessive_waiting_VW__c',\n value: 'false',\n },\n {\n name: 'COD_Carline__c',\n value: '30316',\n },\n {\n name: 'Instalacion_Audi__c',\n value: 'null',\n },\n {\n name: 'Instalacion_LCV__c',\n value: 'null',\n },\n {\n name: 'Instalacion_SK__c',\n value: 'null',\n },\n {\n name: 'COD_comision__c',\n value: 'null',\n },\n {\n name: 'COD_sales_type__c',\n value: 'null',\n },\n {\n name: 'COD_salesgroup__c',\n value: '39237',\n },\n {\n name: 'Customer_change_order__c',\n value: 'false',\n },\n {\n name: 'VipEnviado__c',\n value: 'false',\n },\n {\n name: 'DemoraTipo__c',\n value: 'null',\n },\n {\n name: 'ConfirmacionRegaloEnviado__c',\n value: 'false',\n },\n {\n name: 'EmailFollowUpEnviado__c',\n value: 'false',\n },\n {\n name: 'CHK_contactable_universe__c',\n value: '0',\n },\n {\n name: 'Contactable_universe_vehicle__c',\n value: 'null',\n },\n {\n name: 'DESC_Model__c',\n value: 'null',\n },\n {\n name: 'DESC_Sales_VN_Type__c',\n value: 'null',\n },\n {\n name: 'DESC_TrimLevel__c',\n value: 'null',\n },\n {\n name: 'DESC_car_model_salesgroup__c',\n value: 'Golf Last Edition',\n },\n {\n name: 'DESC_excessive_waiting_Audi__c',\n value: 'null',\n },\n {\n name: 'DESC_model_group__c',\n value: 'null',\n },\n {\n name: 'EmailBienvenidaEnviado__c',\n value: 'false',\n },\n {\n name: 'EmailDemoraEnviado__c',\n value: 'false',\n },\n {\n name: 'EmailEstadoEnviado__c',\n value: 'null',\n },\n {\n name: 'Factory__c',\n value: 'null',\n },\n {\n name: 'Not_lineal_order__c',\n value: 'false',\n },\n {\n name: 'Order_frame_FK__c',\n value: 'WVWZZZAUZLW014456',\n },\n {\n name: 'PKL_order_VN_VO__c',\n value: 'VO',\n },\n {\n name: 'PKL_order_brand__c',\n value: 'Volkswagen',\n },\n {\n name: 'SLI_State__c',\n value: '70',\n },\n {\n name: 'Vehicle_age_monthly_ord__c',\n value: '19',\n },\n {\n name: 'Vehicle_age_yearly_ord__c',\n value: '2',\n },\n {\n name: 'COD_Customer_renting__c',\n value: '0010Y000015jO9yQAE',\n },\n {\n name: 'COD_Customer_type__c',\n value: '8',\n },\n {\n name: 'COD_Driver__c',\n value: '0010Y000015jO9yQAE',\n },\n {\n name: 'COD_Vehicle_climapro__c',\n value: 'a0Y1n00000HU1nzEAD',\n },\n {\n name: 'COD_owner_climapro__c',\n value: '0010Y00001cvNpnQAE',\n },\n {\n name: 'Concesion__c',\n value: '0010Y000014bFZOQA2',\n },\n {\n name: 'Customer_type__c',\n value: 'Particular VO IMA DWA',\n },\n {\n name: 'DAT_Customers_order__c',\n value: '2020-03-05',\n },\n {\n name: 'DAT_Order__c',\n value: '2020-03-05',\n },\n {\n name: 'DAT_delivery__c',\n value: '2020-05-26',\n },\n {\n name: 'DAT_order_state_10__c',\n value: 'null',\n },\n {\n name: 'DAT_order_state_20__c',\n value: 'null',\n },\n {\n name: 'DAT_order_state_30__c',\n value: 'null',\n },\n {\n name: 'DAT_order_state_40__c',\n value: 'null',\n },\n {\n name: 'DAT_order_state_50__c',\n value: 'null',\n },\n {\n name: 'DAT_order_state_60__c',\n value: 'null',\n },\n {\n name: 'DAT_order_state_70__c',\n value: 'null',\n },\n {\n name: 'DAT_order_state_80__c',\n value: 'null',\n },\n {\n name: 'IDClimapro__c',\n value: '36V_146_6599',\n },\n {\n name: 'Instalacion__c',\n value: '0010Y00001IPCkUQAX',\n },\n];\n","export const getPersonAttributes = (noPermiteLssi?: boolean, date?: string) => {\nreturn [\n {\n name: 'ID',\n value: 'PERSON',\n },\n {\n name: 'attributes',\n value: 'null',\n },\n {\n name: 'Id',\n value: 'TEST',\n },\n {\n name: 'IsDeleted',\n value: 'false',\n },\n {\n name: 'Name',\n value: 'TEST NAME',\n },\n {\n name: 'TXT_2_Surname__c',\n value: 'TEST SURNAME',\n },\n {\n name: 'LastName',\n value: 'TEST LASTNAME',\n },\n {\n name: 'FirstName',\n value: 'TEST FIRSTNAME',\n },\n {\n name: 'Salutation',\n value: 'Sra.',\n },\n {\n name: 'RecordTypeId',\n value: '0120Y000000FHqQQAW',\n },\n {\n name: 'BillingAddress',\n value: 'null',\n },\n {\n name: 'ShippingAddress',\n value: 'null',\n },\n {\n name: 'PhotoUrl',\n value: 'null',\n },\n {\n name: 'OwnerId',\n value: '0050Y000001UE3gQAG',\n },\n {\n name: 'CreatedDate',\n value: date ? date : '2023-11-14 18:44:24',\n },\n {\n name: 'CreatedById',\n value: '0050Y000001UE3gQAG',\n },\n {\n name: 'LastModifiedDate',\n value: '2021-05-04 13:43:20',\n },\n {\n name: 'LastModifiedById',\n value: '0050Y000001UE3gQAG',\n },\n {\n name: 'SystemModstamp',\n value: '2021-05-04 13:43:20',\n },\n {\n name: 'LastViewedDate',\n value: 'null',\n },\n {\n name: 'LastReferencedDate',\n value: 'null',\n },\n {\n name: 'IsPartner',\n value: 'false',\n },\n {\n name: 'PersonContactId',\n value: '0031n00002SQq1OAAT',\n },\n {\n name: 'IsPersonAccount',\n value: 'true',\n },\n {\n name: 'PersonMailingAddress',\n value: 'null',\n },\n {\n name: 'PersonOtherAddress',\n value: 'null',\n },\n {\n name: 'PersonHasOptedOutOfEmail',\n value: 'false',\n },\n {\n name: 'PersonHasOptedOutOfFax',\n value: 'false',\n },\n {\n name: 'PersonDoNotCall',\n value: 'false',\n },\n {\n name: 'Audi__c',\n value: 'false',\n },\n {\n name: 'Instalacion__c',\n value: 'null',\n },\n {\n name: 'Skoda__c',\n value: 'false',\n },\n {\n name: 'Volkswagen__c',\n value: 'true',\n },\n {\n name: 'COD_Gender__c',\n value: 'M',\n },\n {\n name: 'ID_Person_DIM_IMP__c',\n value: 'TEST_ID_Person_DIM_IMP__c',\n },\n {\n name: 'LCV__c',\n value: 'false',\n },\n {\n name: 'LSSI__c',\n value: noPermiteLssi ? 'NO PERMITE' : 'PERMITE',\n },\n {\n name: 'NUM_Phone_mobile__c',\n value: '600000000',\n },\n {\n name: 'Robinson__c',\n value: 'PERMITE',\n },\n {\n name: 'TXT_Country__c',\n value: 'null',\n },\n {\n name: 'TXT_Email__c',\n value: 'test@test.com',\n },\n {\n name: 'TXT_Location__c',\n value: 'L’Hospitalet de Llobregat',\n },\n {\n name: 'TXT_NIF_CIF__c',\n value: 'null',\n },\n {\n name: 'TXT_Postal_Code__c',\n value: '08001',\n },\n {\n name: 'TXT_Province__c',\n value: 'Barcelona',\n },\n {\n name: 'TXT_natural_legal_person__c',\n value: 'FISICA',\n },\n {\n name: 'Address_extra__c',\n value: 'null',\n },\n {\n name: 'Address_name__c',\n value: 'null',\n },\n {\n name: 'Address_number__c',\n value: 'null',\n },\n {\n name: 'Address_type__c',\n value: 'null',\n },\n {\n name: 'FORM_Full_Address__c',\n value: 'Calle D’Amadeu TORNER 12',\n },\n {\n name: 'CHK_Lead_VN_Audi__c',\n value: 'null',\n },\n {\n name: 'CHK_Lead_VN_LCV__c',\n value: 'null',\n },\n {\n name: 'CHK_Lead_VN_SK__c',\n value: 'null',\n },\n {\n name: 'CHK_Lead_VN_VW__c',\n value: 'false',\n },\n {\n name: 'CHK_Lead_VO_Audi__c',\n value: 'null',\n },\n {\n name: 'CHK_Lead_VO_LCV__c',\n value: 'null',\n },\n {\n name: 'CHK_Lead_VO_SK__c',\n value: 'null',\n },\n {\n name: 'CHK_Lead_VO_VW__c',\n value: 'false',\n },\n {\n name: 'CHK_Prospect_VN_Audi__c',\n value: 'null',\n },\n {\n name: 'CHK_Prospect_VN_LCV__c',\n value: 'null',\n },\n {\n name: 'CHK_Prospect_VN_SK__c',\n value: 'null',\n },\n {\n name: 'CHK_Prospect_VN_VW__c',\n value: 'false',\n },\n {\n name: 'CHK_Prospect_VO_Audi__c',\n value: 'null',\n },\n {\n name: 'CHK_Prospect_VO_LCV__c',\n value: 'null',\n },\n {\n name: 'CHK_Prospect_VO_SK__c',\n value: 'null',\n },\n {\n name: 'CHK_Prospect_VO_VW__c',\n value: 'false',\n },\n {\n name: 'Desired_model_1_VW__c',\n value: 'null',\n },\n {\n name: 'Pissed_off_client_LCV__c',\n value: 'null',\n },\n {\n name: 'Pissed_off_client_Skoda__c',\n value: 'null',\n },\n {\n name: 'Pissed_off_client_VW__c',\n value: 'false',\n },\n {\n name: 'Pissed_off_client__c',\n value: 'null',\n },\n {\n name: 'driver_is_official_dealer_LCV__c',\n value: 'null',\n },\n {\n name: 'driver_is_official_dealer_SK__c',\n value: 'null',\n },\n {\n name: 'driver_is_official_dealer_VW__c',\n value: 'false',\n },\n {\n name: 'driver_is_official_dealer__c',\n value: 'null',\n },\n {\n name: 'driver_vn_act_SK__c',\n value: 'null',\n },\n {\n name: 'driver_vn_act_LCV__c',\n value: 'null',\n },\n {\n name: 'driver_vn_act_VW__c',\n value: 'false',\n },\n {\n name: 'driver_vn_act__c',\n value: 'null',\n },\n {\n name: 'driver_vn_nact_LCV__c',\n value: 'null',\n },\n {\n name: 'driver_vn_nact_Sk__c',\n value: 'null',\n },\n {\n name: 'driver_vn_nact_VW__c',\n value: 'false',\n },\n {\n name: 'driver_vn_nact__c',\n value: 'null',\n },\n {\n name: 'driver_vo_act_LCV__c',\n value: 'null',\n },\n {\n name: 'driver_vo_act_SK__c',\n value: 'null',\n },\n {\n name: 'driver_vo_act_VW__c',\n value: 'false',\n },\n {\n name: 'driver_vo_act__c',\n value: 'null',\n },\n {\n name: 'driver_vo_nact_LCV__c',\n value: 'null',\n },\n {\n name: 'driver_vo_nact_SK__c',\n value: 'null',\n },\n {\n name: 'driver_vo_nact_VW__c',\n value: 'false',\n },\n {\n name: 'driver_vo_nact__c',\n value: 'null',\n },\n {\n name: 'owner_is_offical_dealer_LCV__c',\n value: 'null',\n },\n {\n name: 'owner_is_offical_dealer_SK__c',\n value: 'null',\n },\n {\n name: 'owner_is_offical_dealer_VW__c',\n value: 'false',\n },\n {\n name: 'owner_is_offical_dealer__c',\n value: 'null',\n },\n {\n name: 'owner_vn_act_LCV__c',\n value: 'null',\n },\n {\n name: 'owner_vn_act_SK__c',\n value: 'null',\n },\n {\n name: 'owner_vn_act_VW__c',\n value: 'false',\n },\n {\n name: 'owner_vn_act__c',\n value: 'null',\n },\n {\n name: 'owner_vn_nact_LCV__c',\n value: 'null',\n },\n {\n name: 'owner_vn_nact_SK__c',\n value: 'null',\n },\n {\n name: 'owner_vn_nact_VW__c',\n value: 'false',\n },\n {\n name: 'owner_vn_nact__c',\n value: 'null',\n },\n {\n name: 'owner_vo_act_LCV__c',\n value: 'null',\n },\n {\n name: 'owner_vo_act_SK__c',\n value: 'null',\n },\n {\n name: 'owner_vo_act_VW__c',\n value: 'false',\n },\n {\n name: 'owner_vo_act__c',\n value: 'null',\n },\n {\n name: 'owner_vo_nact_LCV__c',\n value: 'null',\n },\n {\n name: 'owner_vo_nact_SK__c',\n value: 'null',\n },\n {\n name: 'owner_vo_nact_VW__c',\n value: 'false',\n },\n {\n name: 'owner_vo_nact__c',\n value: 'null',\n },\n {\n name: 'COD_province__c',\n value: 'null',\n },\n {\n name: 'Afected_EA_189__c',\n value: 'false',\n },\n {\n name: 'Legal_risk_EA_189__c',\n value: 'false',\n },\n {\n name: 'CHK_Current_Afected_EA_189__c',\n value: 'false',\n },\n {\n name: 'Repaired_EA_189__c',\n value: 'false',\n },\n {\n name: 'CHK_Replacement_fleet__c',\n value: 'false',\n },\n {\n name: 'CHK_V_Parking__c',\n value: 'null',\n },\n {\n name: 'CHK_Audi_CAM__c',\n value: 'null',\n },\n {\n name: 'CHK_Audi_Lounge__c',\n value: 'null',\n },\n {\n name: 'CHK_Audi_Sport_Exclusive_Service__c',\n value: 'null',\n },\n {\n name: 'CHK_Audi_Sport__c',\n value: 'null',\n },\n {\n name: 'CHK_California_roof_repairing__c',\n value: 'null',\n },\n {\n name: 'CHK_Children_zone__c',\n value: 'null',\n },\n {\n name: 'CHK_Client_Shutle__c',\n value: 'null',\n },\n {\n name: 'CHK_Compressed_Natural_Gas_Charger__c',\n value: 'null',\n },\n {\n name: 'CHK_Crafter_Elevator__c',\n value: 'null',\n },\n {\n name: 'CHK_DRM__c',\n value: 'null',\n },\n {\n name: 'CHK_Delivery_Service__c',\n value: 'null',\n },\n {\n name: 'CHK_Do_Not_Contact_AU__c',\n value: 'false',\n },\n {\n name: 'CHK_Do_Not_Contact__c',\n value: 'false',\n },\n {\n name: 'CHK_Dont_send_Com__c',\n value: 'false',\n },\n {\n name: 'CHK_Elite_Body__c',\n value: 'null',\n },\n {\n name: 'CHK_Email_OFF__c',\n value: 'false',\n },\n {\n name: 'CHK_Exclusive_Service_VW__c',\n value: 'null',\n },\n {\n name: 'CHK_Exclusive_Service__c',\n value: 'null',\n },\n {\n name: 'CHK_Fast_Service__c',\n value: 'null',\n },\n {\n name: 'CHK_Free_Wifi__c',\n value: 'null',\n },\n {\n name: 'CHK_HVT_repairs__c',\n value: 'null',\n },\n {\n name: 'CHK_Handicapped__c',\n value: 'null',\n },\n {\n name: 'CHK_Integral_Body_Program__c',\n value: 'null',\n },\n {\n name: 'CHK_Is_Closed_Days__c',\n value: 'null',\n },\n {\n name: 'CHK_Oficial_Audi_Prestige_Service__c',\n value: 'null',\n },\n {\n name: 'CHK_PCI__c',\n value: 'null',\n },\n {\n name: 'CHK_Parking__c',\n value: 'null',\n },\n {\n name: 'CHK_SUM_Diff_Schedule_Vehicle_Recep__c',\n value: 'null',\n },\n {\n name: 'CHK_Service_Plus_Installation__c',\n value: 'null',\n },\n {\n name: 'CHK_TLMK__c',\n value: 'false',\n },\n {\n name: 'CHK_V_Children_zone__c',\n value: 'null',\n },\n {\n name: 'CHK_V_Exclusive_Service_VW__c',\n value: 'null',\n },\n {\n name: 'CHK_V_Free_Wifi__c',\n value: 'null',\n },\n {\n name: 'CHK_V_Handicapped__c',\n value: 'null',\n },\n {\n name: 'CHK_V_Waiting_zone__c',\n value: 'null',\n },\n {\n name: 'CHK_Waiting_zone__c',\n value: 'null',\n },\n {\n name: 'CHK_Working_Zone_Waiting_Clients__c',\n value: 'null',\n },\n {\n name: 'CHK_e_Hibrids__c',\n value: 'null',\n },\n {\n name: 'CHK_e_dealers__c',\n value: 'null',\n },\n {\n name: 'CHK_e_loaders__c',\n value: 'null',\n },\n {\n name: 'Contactable_after_sales__c',\n value: 'false',\n },\n {\n name: 'Contactable_sales__c',\n value: 'false',\n },\n {\n name: 'Es_Autonomo_VN__c',\n value: 'false',\n },\n {\n name: 'Es_Gran_empresa_propiedad_VN__c',\n value: 'false',\n },\n {\n name: 'Es_Pymes_propiedad_VN__c',\n value: 'false',\n },\n {\n name: 'Es_Pymes_renting_VN__c',\n value: 'false',\n },\n {\n name: 'Es_RaC_VN__c',\n value: 'false',\n },\n {\n name: 'Es_VO_no_particular__c',\n value: 'false',\n },\n {\n name: 'Es_gran_empresa_renting_VN__c',\n value: 'false',\n },\n {\n name: 'Es_indefinido_VN__c',\n value: 'false',\n },\n {\n name: 'Es_no_identificado_VN__c',\n value: 'false',\n },\n {\n name: 'Es_particular_VN__c',\n value: 'false',\n },\n {\n name: 'Es_resto_VN__c',\n value: 'false',\n },\n {\n name: 'Excesive_waiting__c',\n value: 'false',\n },\n {\n name: 'FRML_TXT_DPV__c',\n value: 'null',\n },\n {\n name: 'FRML_TXT_Image_Sign__c',\n value: 'null',\n },\n {\n name: 'Informat_cession_aceptance__c',\n value: 'false',\n },\n {\n name: 'Lead_vn_act__c',\n value: 'false',\n },\n {\n name: 'Lead_vn_nact__c',\n value: 'false',\n },\n {\n name: 'Lead_vo_act__c',\n value: 'false',\n },\n {\n name: 'Lead_vo_nact__c',\n value: 'false',\n },\n {\n name: 'Multivehicle__c',\n value: 'false',\n },\n {\n name: 'Standard_contactable_universe_LCV__c',\n value: 'null',\n },\n {\n name: 'Standard_contactable_universe_Skoda__c',\n value: 'null',\n },\n {\n name: 'Standard_contactable_universe_VW__c',\n value: 'false',\n },\n {\n name: 'Standard_contactable_universe__c',\n value: 'null',\n },\n {\n name: 'Unsuscribed__c',\n value: 'false',\n },\n {\n name: 'cond_is_official_dealer_LCV__c',\n value: 'null',\n },\n {\n name: 'cond_is_official_dealer_SK__c',\n value: 'null',\n },\n {\n name: 'cond_is_official_dealer_VW__c',\n value: 'false',\n },\n {\n name: 'cond_is_official_dealer__c',\n value: 'false',\n },\n {\n name: 'cond_vn_act_SK__c',\n value: 'null',\n },\n {\n name: 'prospect_vn_act__c',\n value: 'null',\n },\n {\n name: 'prospect_vn_nact__c',\n value: 'false',\n },\n {\n name: 'prospect_vo_act__c',\n value: 'false',\n },\n {\n name: 'prospect_vo_nact__c',\n value: 'false',\n },\n {\n name: 'et4ae5__HasOptedOutOfMobile__pc',\n value: 'null',\n },\n {\n name: 'et4ae5__Mobile_Country_Code__pc',\n value: 'null',\n },\n {\n name: 'Audi__pc',\n value: 'false',\n },\n {\n name: 'LCV__pc',\n value: 'false',\n },\n {\n name: 'Skoda__pc',\n value: 'false',\n },\n {\n name: 'Volkswagen__pc',\n value: 'true',\n },\n];\n\n};\n","export const getVehicleAttributes = (isElectrico?:boolean) => {\n return [\n {\n name: 'ID',\n value: 'VEHICLE',\n },\n {\n name: 'attributes',\n value: 'es.vged.dps.salesforce.rest.entities.SfAttributesRest@5674eb[type=Vehicle__c,url=/services/data/v53.0/sobjects/Vehicle__c/a0Y1n00000HU1nzEAD]',\n },\n {\n name: 'Id',\n value: 'a0Y1n00000HU1nzEAD',\n },\n {\n name: 'OwnerId',\n value: '0050Y000001UE3gQAG',\n },\n {\n name: 'IsDeleted',\n value: 'false',\n },\n {\n name: 'Name',\n value: 'a0Y1n00000HU1nz',\n },\n {\n name: 'CreatedDate',\n value: '2019-08-23T11:00:59.000+0000',\n },\n {\n name: 'CreatedById',\n value: '0050Y000001UE3gQAG',\n },\n {\n name: 'LastModifiedDate',\n value: '2021-12-11T04:12:11.000+0000',\n },\n {\n name: 'LastModifiedById',\n value: '0050Y000001UE3gQAG',\n },\n {\n name: 'SystemModstamp',\n value: '2021-12-11T04:12:11.000+0000',\n },\n {\n name: 'LastViewedDate',\n value: 'null',\n },\n {\n name: 'LastReferencedDate',\n value: 'null',\n },\n {\n name: 'Affected_EA_189__c',\n value: 'false',\n },\n {\n name: 'COD_comision__c',\n value: 'null',\n },\n {\n name: 'CarNet__c',\n value: 'false',\n },\n {\n name: 'TMAIMG__c',\n value: 'BQ12CX',\n },\n {\n name: 'Warranty_extension__c',\n value: '0',\n },\n {\n name: 'Included_mainetance__c',\n value: '0',\n },\n {\n name: 'DESC_car_model_salesgroup__c',\n value: isElectrico ? 'ID.3 Pro' : 'Golf Last Edition',\n },\n {\n name: 'PKL_order_brand__c',\n value: 'Volkswagen',\n },\n {\n name: 'Frame__c',\n value: isElectrico ? 'WVWZZZE1ZLP007840' : 'WVWZZZAUZLW014456',\n },\n {\n name: 'Fuel__c',\n value: isElectrico ? 'ELÉCTRICO' : 'GASOLINA',\n },\n {\n name: 'Gear_type__c',\n value: 'NO INFORMADO',\n },\n {\n name: 'Installed_PR_packages__c',\n value: '',\n },\n {\n name: 'KM_cobertura_garantia__c',\n value: '0',\n },\n {\n name: 'Assistance_years__c',\n value: '4',\n },\n {\n name: 'DESC_Model__c',\n value: isElectrico ? 'ID.3' : 'GOLF',\n },\n {\n name: 'Registration__c',\n value: '1934LBW',\n },\n {\n name: 'Repaired_EA_189__c',\n value: 'false',\n },\n {\n name: 'TrimLevel_Model__c',\n value: 'null',\n },\n {\n name: 'VW_Connect__c',\n value: 'true',\n },\n {\n name: 'Vehicle_age_yearly_reg__c',\n value: '3',\n },\n {\n name: 'Audi_Connect__c',\n value: '0.0000000000000',\n },\n {\n name: 'Car_power__c',\n value: '85',\n },\n {\n name: 'Carline_Code__c',\n value: isElectrico ? '30350' : '30316',\n },\n {\n name: 'DAT_registration__c',\n value: '2019-10-17',\n },\n {\n name: 'DESC_model_group__c',\n value: 'NO INFORMADO',\n },\n {\n name: 'IDClimapro__c',\n value: 'TEST_IDClimapro__c',\n },\n {\n name: 'Long_full_drive__c',\n value: 'false',\n },\n {\n name: 'PersonAccount__c',\n value: 'null',\n },\n {\n name: 'Salesgroup_Code__c',\n value: isElectrico ? '33236' : '39237',\n },\n {\n name: 'Vehicle_age_monthly_reg__c',\n value: '26',\n },\n {\n name: 'years_warranty_coverage__c',\n value: '2',\n },\n {\n name: 'years_warranty_extension__c',\n value: '0',\n },\n ];\n}\n","export const getTestLead = (date?: string) => {\n\treturn [\n\t\t{\n\t\t\tname: \"ID\",\n\t\t\tvalue: \"LEAD\"\n\t\t},\n\t\t{\n\t\t\tname: \"attributes\",\n\t\t\tvalue: \"es.vged.ndpsbackend.salesforce.rest.entities.SfAttributesRest@29d482e8[type=Lead,url=/services/data/v53.0/sobjects/Lead/00Q1i00000DjYfEEAV]\"\n\t\t},\n\t\t{\n\t\t\tname: \"Id\",\n\t\t\tvalue: \"00Q1i00000DjYfEEAV\"\n\t\t},\n\t\t{\n\t\t\tname: \"IsDeleted\",\n\t\t\tvalue: \"false\"\n\t\t},\n\t\t{\n\t\t\tname: \"MasterRecordId\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"LastName\",\n\t\t\tvalue: \"Test Vged\"\n\t\t},\n\t\t{\n\t\t\tname: \"FirstName\",\n\t\t\tvalue: \"Test Lara\"\n\t\t},\n\t\t{\n\t\t\tname: \"Salutation\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"MiddleName\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"Name\",\n\t\t\tvalue: \"Test Lara Test Vged\"\n\t\t},\n\t\t{\n\t\t\tname: \"RecordTypeId\",\n\t\t\tvalue: \"0121i000000D7NyAAK\"\n\t\t},\n\t\t{\n\t\t\tname: \"Title\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"Company\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"Address\",\n\t\t\tvalue: \"SfAddressRest(city=null, country=724, countryCode=ES, geocodeAccuracy=null, latitude=null, longitude=null, postalCode=null, state=null, stateCode=null, street=null)\"\n\t\t},\n\t\t{\n\t\t\tname: \"Phone\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"MobilePhone\",\n\t\t\tvalue: \"612345678\"\n\t\t},\n\t\t{\n\t\t\tname: \"Fax\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"Email\",\n\t\t\tvalue: \"test.vged@gmail.com\"\n\t\t},\n\t\t{\n\t\t\tname: \"Website\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"PhotoUrl\",\n\t\t\tvalue: \"/services/images/photo/00Q1i00000DjYfEEAV\"\n\t\t},\n\t\t{\n\t\t\tname: \"Description\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"LeadSource\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"Status\",\n\t\t\tvalue: \"Ready for Routing\"\n\t\t},\n\t\t{\n\t\t\tname: \"Industry\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"Rating\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"CurrencyIsoCode\",\n\t\t\tvalue: \"EUR\"\n\t\t},\n\t\t{\n\t\t\tname: \"AnnualRevenue\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"NumberOfEmployees\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"OwnerId\",\n\t\t\tvalue: \"0051i000004Ur0bAAC\"\n\t\t},\n\t\t{\n\t\t\tname: \"HasOptedOutOfEmail\",\n\t\t\tvalue: \"false\"\n\t\t},\n\t\t{\n\t\t\tname: \"IsConverted\",\n\t\t\tvalue: \"false\"\n\t\t},\n\t\t{\n\t\t\tname: \"ConvertedDate\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"ConvertedAccountId\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"ConvertedContactId\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"ConvertedOpportunityId\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"IsUnreadByOwner\",\n\t\t\tvalue: \"true\"\n\t\t},\n\t\t{\n\t\t\tname: \"CreatedDate\",\n\t\t\tvalue: date ? date : \"2023-07-12T14:28:35.000+0000\"\n\t\t},\n\t\t{\n\t\t\tname: \"CreatedById\",\n\t\t\tvalue: \"0051i000004Ur0bAAC\"\n\t\t},\n\t\t{\n\t\t\tname: \"LastModifiedDate\",\n\t\t\tvalue: \"2023-10-03T12:24:18.000+0000\"\n\t\t},\n\t\t{\n\t\t\tname: \"LastModifiedById\",\n\t\t\tvalue: \"0051i000002usITAAY\"\n\t\t},\n\t\t{\n\t\t\tname: \"SystemModstamp\",\n\t\t\tvalue: \"2023-10-03T12:24:18.000+0000\"\n\t\t},\n\t\t{\n\t\t\tname: \"LastActivityDate\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"DoNotCall\",\n\t\t\tvalue: \"false\"\n\t\t},\n\t\t{\n\t\t\tname: \"HasOptedOutOfFax\",\n\t\t\tvalue: \"false\"\n\t\t},\n\t\t{\n\t\t\tname: \"LastViewedDate\",\n\t\t\tvalue: \"2023-12-14T09:57:05.000+0000\"\n\t\t},\n\t\t{\n\t\t\tname: \"LastReferencedDate\",\n\t\t\tvalue: \"2023-12-14T09:57:05.000+0000\"\n\t\t},\n\t\t{\n\t\t\tname: \"LastTransferDate\",\n\t\t\tvalue: \"2023-07-12\"\n\t\t},\n\t\t{\n\t\t\tname: \"PartnerAccountId\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"Jigsaw\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"JigsawContactId\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"EmailBouncedReason\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"EmailBouncedDate\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"IndividualId\",\n\t\t\tvalue: \"0PK1X000008UZ0QWAW\"\n\t\t},\n\t\t{\n\t\t\tname: \"et4ae5__Mobile_Country_Code__c\",\n\t\t\tvalue: \"US\"\n\t\t},\n\t\t{\n\t\t\tname: \"et4ae5__HasOptedOutOfMobile__c\",\n\t\t\tvalue: \"false\"\n\t\t},\n\t\t{\n\t\t\tname: \"Brand__c\",\n\t\t\tvalue: \"Volkswagen\"\n\t\t},\n\t\t{\n\t\t\tname: \"Dealership__c\",\n\t\t\tvalue: \"0011i00001dahM6AAI\"\n\t\t},\n\t\t{\n\t\t\tname: \"ExpectedPurchaseDate__c\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"ExtKey__c\",\n\t\t\tvalue: \"nDPS-000000000000000000593\"\n\t\t},\n\t\t{\n\t\t\tname: \"InterestCar__c\",\n\t\t\tvalue: \"a0R1i00000B2ZOiEAN\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_AcademicTitle__c\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_Case__c\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_ExternalRoutingCheck__c\",\n\t\t\tvalue: \"Do Not Route\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_CommissionNumber__c\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_ForwardingMechanism__c\",\n\t\t\tvalue: \"Automatic\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_ForwardingStatus__c\",\n\t\t\tvalue: \"Not Forwarded\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_InterestType__c\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_Language__c\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_LeadRole__c\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_Mobile__c\",\n\t\t\tvalue: \"612345678\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_NewsletterDuplicateCheck__c\",\n\t\t\tvalue: \"True\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_NewsletterRequestCaptureDate__c\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_NewsletterUnsubscriptionDate__c\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_Phone__c\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_PreferredCommunication__c\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_PurchaseMethod__c\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_RelatedAccount__c\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_StatusReason__c\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_VIN__c\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_ValidationIdentifier__c\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_VehicleCategory__c\",\n\t\t\tvalue: \"New Car\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_AnonymizeLead__c\",\n\t\t\tvalue: \"false\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_AverageAnnualMileage__c\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_BrandFlagAUDI__c\",\n\t\t\tvalue: \"false\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_BrandFlagSEAT__c\",\n\t\t\tvalue: \"false\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_BrandFlagSKODA__c\",\n\t\t\tvalue: \"false\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_BrandFlagVWCV__c\",\n\t\t\tvalue: \"false\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_BrandFlagVW__c\",\n\t\t\tvalue: \"true\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_DealerValidation__c\",\n\t\t\tvalue: \"false\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_DoubleConsentCaptureDate__c\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_DoubleConsentMailSentOn__c\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_DuplicateCheckAttribute__c\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_FleetSize__c\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_InterestCarValidation__c\",\n\t\t\tvalue: \"false\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_LMBrandSearch__c\",\n\t\t\tvalue: \"Volkswagen\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_LMCorrespondenceGreeting__c\",\n\t\t\tvalue: \"Test Lara Test Vged\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_LeadEntryPoint__c\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_MarketValidation__c\",\n\t\t\tvalue: \"false\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_NumberOfCarsToPurchase__c\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_OriginalConfigurationCode__c\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_RelatedBusinessAccount__c\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_RelatedContact__c\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_SetToOpenAtDealer__c\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_SetToRouted__c\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_StopMarketing__c\",\n\t\t\tvalue: \"false\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_TimeSinceOpenAtDealer__c\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_TimeSinceRouted__c\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_extCorrelationId__c\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_LastMarketingPressureMeasuredDate__c\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_MarketingPressureCall__c\",\n\t\t\tvalue: \"Green\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_MarketingPressureLetter__c\",\n\t\t\tvalue: \"Green\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_MarketingPressureSMS__c\",\n\t\t\tvalue: \"Green\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_MarketingPressureTotal__c\",\n\t\t\tvalue: \"Green\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_NumberOfCalls__c\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_NumberOfEmails__c\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_NumberOfLetters__c\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_NumberOfSMS__c\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_NumberOfTotalCommunications__c\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_Opportunity__c\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_RelatedBusinessAccountFilled__c\",\n\t\t\tvalue: \"false\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_RelatedContactFilled__c\",\n\t\t\tvalue: \"false\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_VoucherActivationDeadline__c\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_VoucherCode__c\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_VoucherCreationDate__c\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_VoucherRedemptionDeadline__c\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_VoucherStatus__c\",\n\t\t\tvalue: \"Sent\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_VoucherType__c\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"VGED_RoadName__c\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"VGED_RoadNumber__c\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"VGED_RoadType__c\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"VGED_InitialMgntType__c\",\n\t\t\tvalue: \"Direct to Sales Assistant\"\n\t\t},\n\t\t{\n\t\t\tname: \"VGED_ModelOfInterest__c\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"VGED_TechnicalMdmStatus__c\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"VGED_TechnicalSalesAssistantStatus__c\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"VGED_BrandObservations__c\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"VGED_CIF__c\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"VGED_CallCenterObservations__c\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"VGED_2Surname__c\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"VGED_AdditionalInformation__c\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"VGED_AdvisorName__c\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"VGED_AppointmentDateAndTime__c\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"VGED_Birthdate__c\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"VGED_Campaign__c\",\n\t\t\tvalue: \"7011i0000002CjUAAU\"\n\t\t},\n\t\t{\n\t\t\tname: \"VGED_NumOfRetriesMDM__c\",\n\t\t\tvalue: \"1.0\"\n\t\t},\n\t\t{\n\t\t\tname: \"VGED_CommercialPermits__c\",\n\t\t\tvalue: \"PERMITE\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_LicensePlate__c\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_MileageKm__c\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"VGED_CurrentVehicleBrand__c\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"VGED_CurrentVehicleModel__c\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_Model__c\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"VGED_DateAndTimeClosedByCC__c\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"VGED_DateAndTimeOfFirstCapture__c\",\n\t\t\tvalue: \"2023-07-11T00:00:00.000+0000\"\n\t\t},\n\t\t{\n\t\t\tname: \"VGED_DateAndTimeSentToDealer__c\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"VGED_DateAndTimeToCC__c\",\n\t\t\tvalue: \"2023-10-03T12:24:17.000+0000\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_NextContactPoint1__c\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"VGED_FlagCRMOrigin__c\",\n\t\t\tvalue: \"false\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_RegistrationDate__c\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_LeadSubtype__c\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"VGED_CRMBusinessModelofInterest__c\",\n\t\t\tvalue: \"a1i1i00000NRQwGAAX\"\n\t\t},\n\t\t{\n\t\t\tname: \"VGED_CustomizationPath__c\",\n\t\t\tvalue: \"Generico_Presupuesto\"\n\t\t},\n\t\t{\n\t\t\tname: \"VGED_IsCompany__c\",\n\t\t\tvalue: \"false\"\n\t\t},\n\t\t{\n\t\t\tname: \"VGED_LeadEnrichment__c\",\n\t\t\tvalue: \"false\"\n\t\t},\n\t\t{\n\t\t\tname: \"VGED_LinkVehicleOfInterest__c\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"VGED_MonitorDealerCall__c\",\n\t\t\tvalue: \"true\"\n\t\t},\n\t\t{\n\t\t\tname: \"VGED_OfferDetails__c\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"VGED_OfferPrice__c\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"VGED_OnlineBookingDetails__c\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"VGED_TechnicalTrackBackStatus__c\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"VGED_PreferredChannelForContact__c\",\n\t\t\tvalue: \"Email\"\n\t\t},\n\t\t{\n\t\t\tname: \"VGED_PreferredTimeSlotForContact__c\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"VGED_ReceivedOnSalesAssistant__c\",\n\t\t\tvalue: \"false\"\n\t\t},\n\t\t{\n\t\t\tname: \"VGED_URL__c\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"VGED_UserId__c\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"VGED_UserNIF__c\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_Agreement__c\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_BrandFlagCUPRA__c\",\n\t\t\tvalue: \"false\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_DeletedMarketingCloud__c\",\n\t\t\tvalue: \"false\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_GDPRStatusTimeStamp__c\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_GDPRStatus__c\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_MCReadyBrandAUDI__c\",\n\t\t\tvalue: \"false\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_MCReadyBrandCUPRA__c\",\n\t\t\tvalue: \"false\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_MCReadyBrandSEAT__c\",\n\t\t\tvalue: \"false\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_MCReadyBrandSKODA__c\",\n\t\t\tvalue: \"false\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_MCReadyBrandVWCV__c\",\n\t\t\tvalue: \"false\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_MCReadyBrandVW__c\",\n\t\t\tvalue: \"true\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_PassedExpressedInterestMilestone__c\",\n\t\t\tvalue: \"false\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_PassedIntenttoPurchaseMilestone__c\",\n\t\t\tvalue: \"true\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_PassedQualifiedMilestone__c\",\n\t\t\tvalue: \"false\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_SalesModel__c\",\n\t\t\tvalue: \"Retail\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_BypassLeadStatus__c\",\n\t\t\tvalue: \"false\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_DealerComment__c\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_DealershipSharing__c\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_FAMDealershipSharing__c\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_IsDealershipCreated__c\",\n\t\t\tvalue: \"false\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_LeadRecordTypeFilter__c\",\n\t\t\tvalue: \"VGED_SalesAssistant\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_ReasonOfSendingToNSC__c\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"VGED_AdditionalSourceInformation__c\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"VGED_MysteryLead__c\",\n\t\t\tvalue: \"false\"\n\t\t},\n\t\t{\n\t\t\tname: \"VGED_Profiling__c\",\n\t\t\tvalue: \"NO INFORMADO\"\n\t\t},\n\t\t{\n\t\t\tname: \"VGED_Test__c\",\n\t\t\tvalue: \"false\"\n\t\t},\n\t\t{\n\t\t\tname: \"VGED_CaptureChannel__c\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"VGED_CaptureEvent__c\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"VGED_City__c\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"VGED_CodeOfInterestCarline__c\",\n\t\t\tvalue: \"30204\"\n\t\t},\n\t\t{\n\t\t\tname: \"VGED_ConfiguratorMatch__c\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"VGED_CurrentVehicleAge__c\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"VGED_DNINIF__c\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"VGED_FinancingType__c\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"VGED_InExchangeVehicleBrand__c\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"VGED_InExchangeVehicleFuel__c\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"VGED_InExchangeVehicleMileage__c\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"VGED_InExchangeVehicleModelVersion__c\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"VGED_InExchangeVehicleModel__c\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"VGED_InExchangeVehicleRegistrationPlate__c\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"VGED_InExchangeVehicleRegistrationYear__c\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"VGED_IsClient__c\",\n\t\t\tvalue: \"false\"\n\t\t},\n\t\t{\n\t\t\tname: \"VGED_IsExclient__c\",\n\t\t\tvalue: \"false\"\n\t\t},\n\t\t{\n\t\t\tname: \"VGED_Mileage__c\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"VGED_OKAPICodeOfModelOfInterest__c\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"VGED_PostalCode__c\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"VGED_Province__c\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"VGED_RegistrationPlate__c\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"VGED_RoadComplement__c\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"VGED_TelemarketingClosure__c\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"VGED_WebSection__c\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"VGED_IsLeadEnriched__c\",\n\t\t\tvalue: \"false\"\n\t\t},\n\t\t{\n\t\t\tname: \"VGED_CarConfigurationURL__c\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"VGED_DetailsOfModelOfInterest__c\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"VGED_ExtraInfoModelOfInterest__c\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"VGED_IDFormCampaign__c\",\n\t\t\tvalue: \"7011i0000002CclAAE\"\n\t\t},\n\t\t{\n\t\t\tname: \"VGED_MasterQuestionnaireId__c\",\n\t\t\tvalue: \"140.0\"\n\t\t},\n\t\t{\n\t\t\tname: \"VGED_NameFormCampaign__c\",\n\t\t\tvalue: \"VW_B01_C01_RRSS_LoadRecords\"\n\t\t},\n\t\t{\n\t\t\tname: \"VGED_VehicleConfigurationDetails__c\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"VGED_AdvertisementId__c\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"VGED_BookingCancelledReservation__c\",\n\t\t\tvalue: \"false\"\n\t\t},\n\t\t{\n\t\t\tname: \"VGED_BookingDays__c\",\n\t\t\tvalue: \"1.0\"\n\t\t},\n\t\t{\n\t\t\tname: \"VGED_ImawebDealerId__c\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"VGED_ImawebRecordId__c\",\n\t\t\tvalue: \"null\"\n\t\t}\n\t]\n};","export const getTestPerson = (noPermiteLssi?: boolean, date?: string) => {\n\treturn [\n\t\t{\n\t\t\tname: \"ID\",\n\t\t\tvalue: \"PERSON\"\n\t\t},\n\t\t{\n\t\t\tname: \"attributes\",\n\t\t\tvalue: \"es.vged.ndpsbackend.salesforce.rest.entities.SfAttributesRest@1aeef0f5[type=Account,url=/services/data/v53.0/sobjects/Account/0011X00001CebbnQAB]\"\n\t\t},\n\t\t{\n\t\t\tname: \"Id\",\n\t\t\tvalue: \"0011X00001CebbnQAB\"\n\t\t},\n\t\t{\n\t\t\tname: \"IsDeleted\",\n\t\t\tvalue: \"false\"\n\t\t},\n\t\t{\n\t\t\tname: \"MasterRecordId\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"Name\",\n\t\t\tvalue: \"MARIO LOPEZ2 MORENO2\"\n\t\t},\n\t\t{\n\t\t\tname: \"LastName\",\n\t\t\tvalue: \"LOPEZ2 MORENO2\"\n\t\t},\n\t\t{\n\t\t\tname: \"FirstName\",\n\t\t\tvalue: \"MARIO\"\n\t\t},\n\t\t{\n\t\t\tname: \"MiddleName\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"Salutation\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"Type\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"RecordTypeId\",\n\t\t\tvalue: \"0121i000000cHHfAAM\"\n\t\t},\n\t\t{\n\t\t\tname: \"ParentId\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"BillingAddress\",\n\t\t\tvalue: \"SfAddressRest(city=null, country=724, countryCode=ES, geocodeAccuracy=null, latitude=null, longitude=null, postalCode=null, state=null, stateCode=null, street=null)\"\n\t\t},\n\t\t{\n\t\t\tname: \"ShippingAddress\",\n\t\t\tvalue: \"SfAddressRest(city=null, country=724, countryCode=ES, geocodeAccuracy=null, latitude=null, longitude=null, postalCode=null, state=null, stateCode=null, street=null)\"\n\t\t},\n\t\t{\n\t\t\tname: \"PhotoUrl\",\n\t\t\tvalue: \"/services/images/photo/0011X00001CebbnQAB\"\n\t\t},\n\t\t{\n\t\t\tname: \"Phone\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"Fax\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"AccountNumber\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"WebSite\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"Sic\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"Industry\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"AnnualRevenue\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"NumberOfEmployees\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"Ownership\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"TickerSymbol\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"Description\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"Rating\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"Site\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"CurrencyIsoCode\",\n\t\t\tvalue: \"EUR\"\n\t\t},\n\t\t{\n\t\t\tname: \"OwnerId\",\n\t\t\tvalue: \"0051i000002usITAAY\"\n\t\t},\n\t\t{\n\t\t\tname: \"CreatedDate\",\n\t\t\tvalue: date ? date : \"2023-09-07T23:10:20.000+0000\"\n\t\t},\n\t\t{\n\t\t\tname: \"CreatedById\",\n\t\t\tvalue: \"0051i000002usITAAY\"\n\t\t},\n\t\t{\n\t\t\tname: \"LastModifiedDate\",\n\t\t\tvalue: \"2023-12-01T10:16:29.000+0000\"\n\t\t},\n\t\t{\n\t\t\tname: \"LastModifiedById\",\n\t\t\tvalue: \"0051i000002usITAAY\"\n\t\t},\n\t\t{\n\t\t\tname: \"SystemModstamp\",\n\t\t\tvalue: \"2023-12-01T10:16:29.000+0000\"\n\t\t},\n\t\t{\n\t\t\tname: \"LastActivityDate\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"LastViewedDate\",\n\t\t\tvalue: \"2023-12-14T09:56:46.000+0000\"\n\t\t},\n\t\t{\n\t\t\tname: \"LastReferencedDate\",\n\t\t\tvalue: \"2023-12-14T09:56:46.000+0000\"\n\t\t},\n\t\t{\n\t\t\tname: \"IsPartner\",\n\t\t\tvalue: \"false\"\n\t\t},\n\t\t{\n\t\t\tname: \"PersonContactId\",\n\t\t\tvalue: \"0031X00000zej2YQAQ\"\n\t\t},\n\t\t{\n\t\t\tname: \"IsPersonAccount\",\n\t\t\tvalue: \"true\"\n\t\t},\n\t\t{\n\t\t\tname: \"ChannelProgramName\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"ChannelProgramLevelName\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"PersonMailingAddress\",\n\t\t\tvalue: \"SfAddressRest(city=NO VALIDO, country=724, countryCode=ES, geocodeAccuracy=null, latitude=null, longitude=null, postalCode=08980, state=8, stateCode=8, street=null)\"\n\t\t},\n\t\t{\n\t\t\tname: \"PersonOtherAddress\",\n\t\t\tvalue: \"SfAddressRest(city=null, country=724, countryCode=ES, geocodeAccuracy=null, latitude=null, longitude=null, postalCode=null, state=null, stateCode=null, street=null)\"\n\t\t},\n\t\t{\n\t\t\tname: \"PersonMobilePhone\",\n\t\t\tvalue: \"675758541\"\n\t\t},\n\t\t{\n\t\t\tname: \"PersonHomePhone\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"PersonOtherPhone\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"PersonAssistantPhone\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"PersonEmail\",\n\t\t\tvalue: \"mario.lopez@volkswagengroup.es\"\n\t\t},\n\t\t{\n\t\t\tname: \"PersonTitle\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"PersonDepartment\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"PersonAssistantName\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"PersonLeadSource\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"PersonBirthDate\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"PersonHasOptedOutOfEmail\",\n\t\t\tvalue: \"false\"\n\t\t},\n\t\t{\n\t\t\tname: \"PersonHasOptedOutOfFax\",\n\t\t\tvalue: \"false\"\n\t\t},\n\t\t{\n\t\t\tname: \"PersonDoNotCall\",\n\t\t\tvalue: \"false\"\n\t\t},\n\t\t{\n\t\t\tname: \"PersonLastCURequestDate\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"PersonLastCUUpdateDate\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"PersonEmailBouncedReason\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"PersonEmailBouncedDate\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"PersonIndividualId\",\n\t\t\tvalue: \"0PK1X000008VQpKWAW\"\n\t\t},\n\t\t{\n\t\t\tname: \"Jigsaw\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"JigsawCompanyId\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"AccountSource\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"SicDesc\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_A4WcDateSent__c\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_DealerLeadRoutingPreference__c\",\n\t\t\tvalue: \"External System\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_BrandFlagAUDI__c\",\n\t\t\tvalue: \"true\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_BrandFlagSEAT__c\",\n\t\t\tvalue: \"false\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_BrandFlagSKODA__c\",\n\t\t\tvalue: \"false\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_BrandFlagVWCV__c\",\n\t\t\tvalue: \"true\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_BrandFlagVW__c\",\n\t\t\tvalue: \"true\"\n\t\t},\n\t\t{\n\t\t\tname: \"Dealership__c\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"ExtKey__c\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"KVPSCode__c\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"PreferredCommunicationChannel__c\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_AccountBrand__c\",\n\t\t\tvalue: \"Volkswagen\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_AccountEmail__c\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_BrandLogo__c\",\n\t\t\tvalue: \"\\\"Volkswagen\\\"\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_BrandSearch__c\",\n\t\t\tvalue: \"Volkswagen\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_BusinessHours__c\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_ContractStatus__c\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_DealerActive__c\",\n\t\t\tvalue: \"false\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_DealerStatus__c\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_DealerType__c\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_ExternalAccountID__c\",\n\t\t\tvalue: \"54147334_Volkswagen\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_FleetSize__c\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_GroupID__c\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_IntegrationSource__c\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_InternationalBusinessAgreement__c\",\n\t\t\tvalue: \"false\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_NumberOfLightCommercialVehicles__c\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_NumberOfPassengerCars__c\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_OpeningHours__c\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_Services__c\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_TaxNumber__c\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_ValidationIdentifier__c\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_BeneficiaryCountry__c\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_BeneficiaryName__c\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_BeneficiaryType__c\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_CollectionDate__c\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_Country__c\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_DealerMarketNumber__c\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_DealerNumber__c\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_Email__c\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_EtronWcDateSent__c\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_IsA4WcSent__c\",\n\t\t\tvalue: \"false\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_IsEtronWcSent__c\",\n\t\t\tvalue: \"false\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_MasterDataSource__c\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_PreferredDealerKVPSID__c\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_SEMAGMigrationID__c\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_SubscriberKey__c\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"VGED_IsAudi__c\",\n\t\t\tvalue: \"false\"\n\t\t},\n\t\t{\n\t\t\tname: \"VGED_IsLCV__c\",\n\t\t\tvalue: \"false\"\n\t\t},\n\t\t{\n\t\t\tname: \"VGED_IsSkoda__c\",\n\t\t\tvalue: \"false\"\n\t\t},\n\t\t{\n\t\t\tname: \"VGED_IsVolkswagen__c\",\n\t\t\tvalue: \"false\"\n\t\t},\n\t\t{\n\t\t\tname: \"VGED_BusinessAccountSource__c\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"VGED_ClientStage__c\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"VGED_Email2__c\",\n\t\t\tvalue: \"mario.vwgroup@gmail.com\"\n\t\t},\n\t\t{\n\t\t\tname: \"VGED_Email3__c\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"VGED_Fax1__c\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"VGED_IsFleet__c\",\n\t\t\tvalue: \"false\"\n\t\t},\n\t\t{\n\t\t\tname: \"VGED_LegacySFId__c\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"VGED_MasterAccount__c\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"VGED_MobilePhone2__c\",\n\t\t\tvalue: \"690807844\"\n\t\t},\n\t\t{\n\t\t\tname: \"VGED_MobilePhone3__c\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"VGED_NumberDeliveredOrdersAudi__c\",\n\t\t\tvalue: \"0.0\"\n\t\t},\n\t\t{\n\t\t\tname: \"VGED_NumberDeliveredOrdersLCV__c\",\n\t\t\tvalue: \"0.0\"\n\t\t},\n\t\t{\n\t\t\tname: \"VGED_NumberDeliveredOrdersSkoda__c\",\n\t\t\tvalue: \"0.0\"\n\t\t},\n\t\t{\n\t\t\tname: \"VGED_NumberDeliveredOrdersVW__c\",\n\t\t\tvalue: \"0.0\"\n\t\t},\n\t\t{\n\t\t\tname: \"VGED_OpenOpportunities__c\",\n\t\t\tvalue: \"0.0\"\n\t\t},\n\t\t{\n\t\t\tname: \"VGED_VolumeOpenOpportunities__c\",\n\t\t\tvalue: \"0.0\"\n\t\t},\n\t\t{\n\t\t\tname: \"VGED_ExpectedDeliveryDate__c\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"VGED_CustomerType__c\",\n\t\t\tvalue: \"F\"\n\t\t},\n\t\t{\n\t\t\tname: \"VGED_2Surname__c\",\n\t\t\tvalue: \"LOPEZ\"\n\t\t},\n\t\t{\n\t\t\tname: \"VGED_FinanceCoResponsibility__c\",\n\t\t\tvalue: \"0\"\n\t\t},\n\t\t{\n\t\t\tname: \"VGED_Remarks__c\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"VGED_InactiveRecord__c\",\n\t\t\tvalue: \"false\"\n\t\t},\n\t\t{\n\t\t\tname: \"VGED_BusinessName__c\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"VGED_TypeOfDocument__c\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"VGED_DealerCodeVaesa__c\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"VGED_IDClimapro__c\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"VGED_MDMSyncStatus__c\",\n\t\t\tvalue: \"Synced\"\n\t\t},\n\t\t{\n\t\t\tname: \"VGED_TechnicalMdmStatus__c\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"VGED_NumOfRetriesMDM__c\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"VGED_UpdateProcessAllowed__c\",\n\t\t\tvalue: \"false\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_BEVAgency__c\",\n\t\t\tvalue: \"false\"\n\t\t},\n\t\t{\n\t\t\tname: \"VGED_RoadName__c\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"VGED_RoadNumber__c\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"VGED_RoadType__c\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"VGED_DesynchronizedAccount__c\",\n\t\t\tvalue: \"false\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_SecondaryField__c\",\n\t\t\tvalue: \"Volkswagen\"\n\t\t},\n\t\t{\n\t\t\tname: \"VGED_Concession__c\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"VGED_DealerCode__c\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"VGED_CommercialName__c\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"VGED_Test__c\",\n\t\t\tvalue: \"false\"\n\t\t},\n\t\t{\n\t\t\tname: \"VGED_OutOfService__c\",\n\t\t\tvalue: \"false\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_FleetAgency__c\",\n\t\t\tvalue: \"false\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_HelperPersonAccountfields__c\",\n\t\t\tvalue: \"MARIO LOPEZ2 MORENO2, Homephone: , Mobile: 675758541\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_Retail__c\",\n\t\t\tvalue: \"false\"\n\t\t},\n\t\t{\n\t\t\tname: \"et4ae5__HasOptedOutOfMobile__pc\",\n\t\t\tvalue: \"false\"\n\t\t},\n\t\t{\n\t\t\tname: \"et4ae5__Mobile_Country_Code__pc\",\n\t\t\tvalue: \"US\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_IDKID__pc\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_GDPRStatusTimeStamp__pc\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_GDPRStatus__pc\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_MasterDataSource__pc\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"Customer_Number__pc\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"ExtKey__pc\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_AcademicTitle__pc\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_Birthdate__pc\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_BrandFlagAUDI__pc\",\n\t\t\tvalue: \"false\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_BrandFlagSEAT__pc\",\n\t\t\tvalue: \"false\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_BrandFlagSKODA__pc\",\n\t\t\tvalue: \"false\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_BrandFlagVWCV__pc\",\n\t\t\tvalue: \"false\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_BrandFlagVW__pc\",\n\t\t\tvalue: \"true\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_ContactBrand__pc\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_CorrespondenceGreeting__pc\",\n\t\t\tvalue: \"MARIO LOPEZ2 MORENO2\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_ExternalID__pc\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_GDPRRequestInProgress__pc\",\n\t\t\tvalue: \"false\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_Mobile__pc\",\n\t\t\tvalue: \"675758541\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_Phone__pc\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_PreferredChannelOfContact__pc\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_PreferredLanguage__pc\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_StopMarketingAudi__pc\",\n\t\t\tvalue: \"false\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_StopMarketingSeat__pc\",\n\t\t\tvalue: \"false\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_StopMarketingSkoda__pc\",\n\t\t\tvalue: \"false\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_StopMarketingVWCV__pc\",\n\t\t\tvalue: \"false\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_StopMarketingVW__pc\",\n\t\t\tvalue: \"false\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_StopMarketing__pc\",\n\t\t\tvalue: \"false\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_ValidationIdentifier__pc\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_LastMarketingPressureMeasuredDate__pc\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_MarketingPressureCall__pc\",\n\t\t\tvalue: \"Green\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_MarketingPressureEmail__pc\",\n\t\t\tvalue: \"Green\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_MarketingPressureLetter__pc\",\n\t\t\tvalue: \"Green\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_MarketingPressureSMS__pc\",\n\t\t\tvalue: \"Green\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_MarketingPressureTotal__pc\",\n\t\t\tvalue: \"Green\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_NumberOfCalls__pc\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_NumberOfEmails__pc\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_NumberOfLetters__pc\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_NumberOfSMS__pc\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_NumberOfTotalCommunications__pc\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_BirthPlace__pc\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_ConsentDealer__pc\",\n\t\t\tvalue: \"false\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_ConsentNSC__pc\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_ConsentOEM__pc\",\n\t\t\tvalue: \"false\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_CustomerKey__pc\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_Language__pc\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_LastCommercialEmailname__pc\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_MarketingIndependentOfChannel__pc\",\n\t\t\tvalue: \"false\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_OEMPushNotificationConsent__pc\",\n\t\t\tvalue: \"false\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_PersonType__pc\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_RecommendationExpirationDate__pc\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_RecommendationLatestExpirationDate__pc\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_RegistrationDate__pc\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_SurveyNSC__pc\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_SurveyOEM__pc\",\n\t\t\tvalue: \"false\"\n\t\t},\n\t\t{\n\t\t\tname: \"VGED_EventParticipation__pc\",\n\t\t\tvalue: \"false\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_BrandFlagCUPRA__pc\",\n\t\t\tvalue: \"false\"\n\t\t},\n\t\t{\n\t\t\tname: \"VGED_IsFleet__pc\",\n\t\t\tvalue: \"false\"\n\t\t},\n\t\t{\n\t\t\tname: \"VGED_PrimaryContact__pc\",\n\t\t\tvalue: \"false\"\n\t\t},\n\t\t{\n\t\t\tname: \"VGED_Role__pc\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"VGED_Interest__pc\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"VGED_LegacySFId__pc\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"VGED_2Surname__pc\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"VGED_RoadName__pc\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"VGED_RoadNumber__pc\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"VGED_RoadType__pc\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_DeletedMarketingCloud__pc\",\n\t\t\tvalue: \"false\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_FleetAgency__pc\",\n\t\t\tvalue: \"false\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_MCReadyBrandAUDI__pc\",\n\t\t\tvalue: \"false\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_MCReadyBrandCUPRA__pc\",\n\t\t\tvalue: \"false\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_MCReadyBrandSEAT__pc\",\n\t\t\tvalue: \"false\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_MCReadyBrandSKODA__pc\",\n\t\t\tvalue: \"false\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_MCReadyBrandVWCV__pc\",\n\t\t\tvalue: \"false\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_MCReadyBrandVW__pc\",\n\t\t\tvalue: \"true\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_Retail__pc\",\n\t\t\tvalue: \"false\"\n\t\t},\n\t\t{\n\t\t\tname: \"RCY_BEVAgency__pc\",\n\t\t\tvalue: \"false\"\n\t\t},\n\t\t{\n\t\t\tname: \"VGED_DischargeBDNDate__pc\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"VGED_TerminationBDNDate__pc\",\n\t\t\tvalue: \"null\"\n\t\t},\n\t\t{\n\t\t\tname: \"VGED_IdCard__pc\",\n\t\t\tvalue: \"null\"\n\t\t}\n\t]\n};","import {\n FeatureServiceBinder,\n FeatureServiceEnvironment,\n FeatureServices,\n SharedFeatureService,\n} from '@feature-hub/core';\nimport { Store } from 'redux';\nimport { getPincode } from 'src/bff';\nimport { FormDataFields } from 'src/types';\nimport {\n DpsData,\n EsOneformCoreServiceV1,\n FieldType,\n OneFormDataV1 as OneformData,\n OneFormDataV1,\n PersonV1,\n} from './types';\nimport { BehaviorSubject } from 'rxjs';\nimport { VumClient } from '@volkswagen-onehub/myvw_services/dist/vum/VumClient';\nimport { ServiceConfigProviderV1 } from '@volkswagen-onehub/service-config-provider';\nimport parsePhoneNumber from 'libphonenumber-js';\nimport { isValidPhoneNumber } from 'libphonenumber-js';\nimport { checkIfIsTestPincode, getTestPincode } from './pincode-data';\nimport { AuthServiceProviderV2, IAuthServiceV2 } from '@volkswagen-onehub/authservice';\nimport { ProfileServiceV2Impl, UserService } from '@vwdfive/myvw-services';\n\nexport interface SharedEsOneformCoreService extends SharedFeatureService {\n readonly '1.0.0': FeatureServiceBinder;\n}\n\nexport interface RequiredFeatureServices extends FeatureServices {\n readonly 'service-config-provider': ServiceConfigProviderV1;\n}\n\nexport const oneformCoreServiceDefinition = {\n id: 'es:oneform-core',\n\n dependencies: {\n featureServices: {\n 'service-config-provider': '^1.0.0',\n 'fa-content-service': '^1.0.0',\n },\n },\n\n optionalDependencies: {\n featureServices: { ['vw:authService']: '2.0.0' },\n },\n\n create(env: FeatureServiceEnvironment) {\n let oneFormData = {} as OneFormDataV1;\n let dpsData = {} as DpsData;\n const oneFormCoreDpsIsLoaded: BehaviorSubject = new BehaviorSubject(false);\n\n let { 'service-config-provider': serviceConfig, ['vw:authService']: provider } = env.featureServices;\n\n const getLoadedState = () => oneFormCoreDpsIsLoaded;\n const get = () => oneFormData;\n const getDpsData = (): DpsData => dpsData;\n\n const v1 = () => ({\n featureService: {\n getLoadedState,\n\n get,\n getDpsData,\n\n set(updatedData: OneFormDataV1) {\n oneFormData = { ...updatedData };\n },\n\n setDpsData(updatedData: DpsData) {\n dpsData = { ...dpsData, ...updatedData };\n },\n\n async initializeService(useAuth: boolean, useBff?: boolean) {\n await this.checkData(useAuth, useBff);\n oneFormCoreDpsIsLoaded.complete();\n },\n\n async checkLogin() {\n\n //const authService = getAuthService(serviceConfig, provider as AuthServiceProviderV2);\n const authService: IAuthServiceV2 = (provider as AuthServiceProviderV2)?.register('market');\n const endpoint = serviceConfig.configs['customer-profile']?.urlOrigin;\n const profileService = new ProfileServiceV2Impl(authService, endpoint);\n const isAuthenticated = await authService.isAuthenticated();\n const userService = new UserService(authService);\n\n if (!isAuthenticated) {\n return;\n }\n const profile = await profileService.getUserProfile();\n const email = await userService.getCurrentUserEmail();\n // const vumClient = new VumClient(endpoint, authService);\n // const aa = await vumClient.getUserVehicleRelations();\n //DATOS PERSONALES\n if (profile.phoneNumber) {\n const parsedPhone = parsePhoneNumber(profile.phoneNumber);\n const isValidPhone = isValidPhoneNumber(profile.phoneNumber);\n if (isValidPhone) {\n this.setField('prefix', `+${parsedPhone.countryCallingCode}`);\n this.setField('cellphone', parsedPhone.nationalNumber);\n }\n }\n this.setField('name', profile.firstName);\n this.setField('surname', profile.lastName);\n this.setField('email', email);\n // this.setField('cellphone', '600000000');\n //this.setField('userIsAuthenticated', isAuthenticated ? 'true' : 'false');\n\n // VEHÍCULOS\n // this.setField('userVehicles', [\n // { matricula: 'A0000BC', kilometros: '30000', modelo: 'Arteon', anoMatriculacion: '' , isMainVehicle: false },\n // { matricula: 'B0000BC', kilometros: '60000', modelo: 'T-Roc', anoMatriculacion: '' , isMainVehicle: true },\n // ]);\n // this.setField('matricula', 'A0000BC');\n\n // DEALER\n // this.setField('favouriteDealer', '00031');\n\n // LEGALES\n // this.setField('lssi', 'PERMITIDO');\n // this.setField('tmk', 'PERMITIDO');\n \n },\n\n async checkPincode(useBff?: boolean, isRetry?: boolean) {\n try {\n const pincode = this.getUrlParams('pincode');\n\n if (pincode && checkIfIsTestPincode(pincode)) {\n // console.log(getTestPincode(pincode),'pincode');\n this.setDpsData({\n pincode: {\n pincodeResponse: getTestPincode(pincode),\n pincodeError: false,\n pincodeUsed: false,\n noPincodeFound: false,\n },\n });\n return;\n }\n if (pincode) {\n const pincodeData = await getPincode(pincode, useBff);\n\n this.setDpsData({\n pincode: {\n pincodeResponse: pincodeData.pincodeData,\n pincodeError: pincodeData.pincodeError,\n pincodeUsed: pincodeData.pincodeUsed,\n noPincodeFound: false,\n },\n });\n // person.map((att) => {\n // // this.setField(att.name, att.value);\n // });\n } else {\n this.setDpsData({\n pincode: {\n pincodeResponse: null,\n pincodeError: null,\n pincodeUsed: null,\n noPincodeFound: true,\n },\n });\n }\n } catch (error) {\n oneFormCoreDpsIsLoaded.error(error);\n }\n },\n\n checkUrl() {\n const dealerKvps = this.getUrlParams('dealer');\n const motivo = this.getUrlParams('motivo');\n const contactado = this.getUrlParams('contactado');\n const rating = this.getUrlParams('rating');\n const push = this.getUrlParams('push');\n const estado = this.getUrlParams('estado');\n const waid = this.getUrlParams('wa') || this.getUrlParams('waid');\n const cem = this.getUrlParams('cem');\n const mgm = this.getUrlParams('mgm');\n const adviser = this.getUrlParams('adviser');\n const or = this.getUrlParams('or');\n const dat = this.getUrlParams('dat');\n const env = this.getUrlParams('env');\n const fe = this.getUrlParams('fe');\n const dealer = this.getUrlParams('dealer');\n const kvps = this.getUrlParams('kvps');\n const campaign = this.getUrlParams('campaign');\n const model = this.getUrlParams('model');\n const interes = this.getUrlParams('interes');\n\n if (motivo) {\n this.setField('motivo', motivo);\n }\n if (dealerKvps) {\n this.setField('dealerKvps', dealerKvps);\n }\n if (contactado) {\n this.setDpsData({ contactado });\n }\n if (rating) {\n this.setDpsData({ rating });\n }\n if (push) {\n this.setDpsData({ push });\n }\n if (estado) {\n this.setDpsData({ estado });\n }\n if (waid) {\n this.setDpsData({ waid });\n }\n if (cem) {\n this.setDpsData({ cem });\n }\n if (mgm) {\n this.setDpsData({ mgm });\n }\n if (adviser) {\n this.setDpsData({ adviser });\n }\n if (or) {\n this.setDpsData({ or });\n }\n if (dat) {\n this.setDpsData({ dat });\n }\n if (env) {\n this.setDpsData({ env });\n }\n if (fe) {\n this.setDpsData({ fe });\n }\n if (dealer) {\n this.setDpsData({ dealer });\n }\n if (kvps) {\n this.setDpsData({ kvps });\n }\n if (campaign) {\n this.setDpsData({ campaign });\n }\n if (model) {\n this.setDpsData({ model });\n }\n if (interes) {\n this.setDpsData({ interes });\n }\n },\n\n async checkData(useAuth: boolean, useBff?: boolean) {\n await this.checkPincode(useBff);\n if (useAuth && getDpsData().pincode.noPincodeFound) {\n await this.checkLogin();\n }\n this.checkUrl();\n },\n\n getUrlParams(param: string) {\n if (typeof window === 'undefined') {\n return null;\n }\n if (window && window.location) {\n const urlParams = new URLSearchParams(window.location.search);\n return urlParams.get(param);\n }\n return null;\n },\n\n async retryPincodeLoad(useBff?: boolean) {\n await this.checkPincode(useBff);\n },\n\n setField(field: FieldType | string, value: any): void {\n const { person } = this.get();\n const updatedPerson: PersonV1 = { ...person };\n updatedPerson[field] = value;\n const updatedOneFormData: OneformData = { ...oneFormData, person: { ...updatedPerson } };\n this.set(updatedOneFormData);\n },\n\n subscribeToFields(store: Store): void {\n const { fields }: { fields: FormDataFields } = store.getState().formData;\n Object.keys(fields).forEach((field) => {\n this.setField(field, fields[field]);\n });\n },\n },\n });\n\n return { '1.0.0': v1 };\n },\n};\n","import withMetadataArgument from './withMetadataArgument.js'\r\nimport { default as _parsePhoneNumber } from '../../core/index.js'\r\n\r\nexport function parsePhoneNumber() {\r\n\treturn withMetadataArgument(_parsePhoneNumber, arguments)\r\n}","import { ApiKeyProviderV1 } from '@volkswagen-onehub/api-key-provider';\nimport { AsyncSsrManagerV1 } from '@feature-hub/async-ssr-manager';\nimport { AuthServiceProviderV2 } from '@volkswagen-onehub/authservice';\nimport { CarConfigurationServiceV2 } from '@volkswagen-onehub/car-configuration-feature-service';\nimport { EsOneformCoreServiceV1 } from 'src/feature-service/es-oneform-core-feature-service/types';\nimport { FaContentServiceV1 } from '@volkswagen-onehub/fa-content-service';\nimport { FeatureAppDefinition, FeatureServices } from '@feature-hub/core';\nimport { FeatureAppEnvironmentContext } from 'src/feature-app/hooks/use-feature-app-environment';\nimport { FinancialDataServiceV1 } from '@volkswagen-onehub/financial-data-feature-service';\nimport { HistoryServiceV2 } from '@feature-hub/history-service';\nimport { ImageServiceV1 } from '@volkswagen-onehub/image-service';\nimport { initialState } from 'src/feature-app/redux/index';\nimport { initSentry } from './sentry/';\nimport { LayerManagerV2 } from '@volkswagen-onehub/layer-manager';\nimport { LocaleServiceV1 } from '@volkswagen-onehub/locale-service';\nimport { Logger } from '@feature-hub/logger';\nimport { NavigationServiceV1 } from '@volkswagen-onehub/navigation-service';\nimport { oneformCoreServiceDefinition } from 'src/feature-service/es-oneform-core-feature-service/index';\nimport { ReactFeatureApp } from '@feature-hub/react';\nimport { saveEnvironment } from './save-feature-app';\nimport { saveFeatureServices } from 'src/feature-app';\nimport { SerializedStateManagerV1 } from '@feature-hub/serialized-state-manager';\nimport { ServiceConfigProviderV1 } from '@volkswagen-onehub/service-config-provider';\nimport { ThemeProvider } from '@volkswagen-onehub/components-core';\nimport { TrackingManagerV1 } from '@volkswagen-onehub/tracking-service';\nimport { UserInteractionServiceV1 } from '@volkswagen-onehub/user-interaction-service';\nimport * as React from 'react';\nimport App from './App';\nimport ErrorBoundary from './sentry/ErrorBoundary';\n\nexport type Trigger =\n | 'adhoc-2021-diamadre'\n | 'adhoc-2021-eurocopa'\n | 'adhoc-2021-fidelizacion_clientes'\n | 'adhoc-2021-navidad'\n | 'adhoc-2023-test_id'\n | 'adhoc-lanzamiento-taigo'\n | 'adhoc-suvperheroes'\n | 'autosubmit'\n | 'baja-comunicaciones'\n | 'callme-embedded'\n | 'cita-posventa-dealer'\n | 'cita-posventa-embedded'\n | 'cita-posventa-tile-grid'\n | 'cita-posventa-tile'\n | 'cita-posventa'\n | 'empresas'\n | 'encuestas'\n | 'lead-configurador'\n | 'lead-dealer'\n | 'lead-embedded'\n | 'lead-inpage'\n | 'lead'\n | 'mgm'\n | 'newsletter'\n | 'prospect-embedded'\n | 'prospect-posventa-embedded'\n | 'prospect'\n | 'race'\n | 'sac'\n | 'widget'\n | 'adhoc-2023-concurso_rodaje'\n | 'adhoc-2023-plan_ideal'\n ;\nexport interface FeatureAppConfig {\n readonly trigger?: Trigger;\n}\n\ninterface Installation {\n name: string;\n code: string;\n}\n\ninterface CalculatorData {\n carYear: number;\n familyModelCode?: string;\n familyModelDesc?: string;\n installation: Installation;\n kilometres?: string;\n license?: string;\n licensePlate?: string;\n modelDescr?: string;\n modelKey?: string;\n vin?: string;\n}\ninterface CalculatorService {\n setInstallation?: (installation: Installation) => void;\n getCalculatorData?: () => CalculatorData;\n}\n\nexport interface Dependencies extends FeatureServices {\n readonly 's2:async-ssr-manager': AsyncSsrManagerV1 | undefined;\n readonly 's2:serialized-state-manager': SerializedStateManagerV1;\n readonly 'layer-manager': LayerManagerV2;\n readonly 'es:oneform-core': EsOneformCoreServiceV1;\n readonly 'car-configuration': CarConfigurationServiceV2;\n readonly 'locale-service': LocaleServiceV1;\n readonly 'service-config-provider': ServiceConfigProviderV1;\n readonly 'fa-content-service': FaContentServiceV1;\n readonly 's2:history': HistoryServiceV2;\n readonly 'financial-data': FinancialDataServiceV1;\n readonly 'vw:authService': AuthServiceProviderV2;\n readonly 'user-interaction-service'?: UserInteractionServiceV1;\n readonly 'image-service'?: ImageServiceV1;\n readonly 'api-key-provider': ApiKeyProviderV1;\n readonly 'calculator-feature-service'?: CalculatorService;\n readonly 's2:logger': Logger;\n readonly 'navigation-service': NavigationServiceV1;\n\n readonly tracking?: TrackingManagerV1;\n}\n\nconst featureAppDefinition: FeatureAppDefinition = {\n dependencies: {\n featureServices: {\n 's2:serialized-state-manager': '^1.0.0',\n 'layer-manager': '^2.3.0',\n 'es:oneform-core': '^1.0.0',\n 'car-configuration': '^2.0.0',\n 'locale-service': '^1.0.0',\n 'service-config-provider': '^1.0.0',\n 'fa-content-service': '^1.0.0',\n 's2:history': '^2.0.0',\n 'financial-data': '^1.0.0',\n 'user-interaction-service': '^1.0.0',\n 'image-service': '^1.1.1',\n 's2:logger': '^1.0.0',\n 'navigation-service': '^1.0.0',\n 'api-key-provider': '^1.0.1',\n },\n },\n\n optionalDependencies: {\n featureServices: {\n 's2:async-ssr-manager': '^1.0.0',\n tracking: '^1.0.0',\n ['vw:authService']: '2.0.0',\n 'calculator-feature-service': '^1.0.0',\n },\n },\n\n ownFeatureServiceDefinitions: [oneformCoreServiceDefinition],\n\n create: (env) => {\n let oneFormState = JSON.stringify(initialState);\n\n let { 's2:async-ssr-manager': asyncSsrManager, 's2:serialized-state-manager': serializedStateManager } =\n env.featureServices;\n // Necesario para que cualquier función pueda acceder a los featureServices sin usar hooks, especialmente\n // para acceder a los service configs.\n saveFeatureServices(env.featureServices);\n saveEnvironment(env);\n\n const { hub } = initSentry(env.featureServices, env.config);\n // oneFormService.initializeService();\n // We use the presence of the asyncSsrManager to determine whether we are\n // rendered on the server or on the client.\n if (asyncSsrManager) {\n serializedStateManager.register(() => JSON.stringify(initialState));\n\n asyncSsrManager\n .scheduleRerender\n // (async () =>\n // (initialState = await fetchInitialState(config, carConfiguration)))()\n ();\n } else {\n const serializedState = serializedStateManager.getSerializedState();\n if (serializedState) {\n oneFormState = serializedState;\n }\n }\n\n return {\n render: () => (\n \n \n \n \n \n \n \n ),\n };\n },\n};\n\nexport default featureAppDefinition;\n","import { isMobileOnly, isTablet } from 'react-device-detect';\n\nexport const getParamsForm = () => {\n let tc: string;\n if (typeof s !== 'undefined' && typeof s.persCmp !== 'undefined') {\n tc = s.persCmp;\n } else {\n tc = 'undefined';\n }\n\n const date = new Date();\n const device = isMobileOnly ? 'mobile' : isTablet ? 'tablet' : 'desktop';\n const location = window.location.href\n const referalUrl = document.referrer.substring(0, 30);\n const today = date.toISOString().slice(0, 10) + ' ' + date.toLocaleString('es-ES').slice(-8);\n const url = window.location.origin + window.location.pathname;\n\n return {\n device,\n location,\n referalUrl,\n tc,\n today,\n url,\n };\n};\n","import { useState, useEffect } from 'react';\nimport { useWindowHeight, useWindowWidth} from '@react-hook/window-size';\n\nexport const useDropdowPosition = (identifier: string) => {\n\n const windowHeight = useWindowHeight();\n const windowWidth = useWindowWidth();\n\n const [ boundingObject, setBoundingObject ] = useState(null);\n const [ bottom, setBottom ] = useState(null);\n const [ top, setTop ] = useState(null);\n const [ left, setLeft ] = useState(null);\n const [ right, setRight ] = useState(null);\n const [ goUp, setGoUp ] = useState(false);\n\n //boundingObject contiene varias keys, bottom hace referencia a la distancia entre el bottom del elemento y el top del window\n\n const getBoundingObject = () => { \n const {top, right, bottom, left, width, height, x, y} = document.querySelector(identifier).getBoundingClientRect();\n //la librería de autosuggest no permite poner id, por eso el querySelector\n setBoundingObject({top, right, bottom, left, width, height, x, y});\n setBottom(bottom);\n setTop(top);\n setLeft(left);\n setRight(right);\n }; \n\n const getAndUpdateState = () => {\n getBoundingObject();\n };\n\n useEffect(()=>{\n const distanciaDeCambio = windowHeight/4 > 150 ? windowHeight/4 : 150;\n const distanceToBottom = windowHeight - bottom;\n if(windowWidth < 960) {\n setGoUp(false);\n } else if( distanceToBottom < distanciaDeCambio) {\n setGoUp(true);\n //console.log(windowHeight, 'true');\n } else {\n setGoUp(false);\n //console.log(windowHeight, 'false');\n\n }\n\n }, [boundingObject]);\n\n return { boundingObject, bottom, top, left, right, goUp, getAndUpdateState};\n};\n","import { Content } from '@volkswagen-onehub/fa-content-service';\nimport { useFeatureServices } from 'src/feature-app';\nimport { DealersData, MatchSelectedOptions, Offer } from 'src/types';\n\nexport type EmbeddedFeatureApp =\n | 'es-ofertas'\n | 'es-stock-teaser'\n | 'es-match'\n | 'es-calculadora'\n | 'es-maintenance'\n | 'es-bono'\n | 'es-mis_beneficios'\n | 'Configure';\n\nexport interface VehicleCalculadora {\n familyCode: string;\n familyDesc: string;\n modelDescr: string;\n modelKey: string;\n vin: string;\n mileage: number;\n plate: string;\n plateDate: string;\n}\ninterface CalculadoraFields {\n dealer: string; // Código KVPS\n vehicle: VehicleCalculadora[];\n quotePvp: string;\n quoteOperations: {\n id: string; // Identificador único de la operación\n name: string; // Nombre de la operación\n pvp: string; // Precio de la operación\n }[];\n deepLink: string; // URL para acceder a calculadora con el presupuesto precargado\n}\n\ntype WidgetOptions = 'Mapa';\nexport interface OneFormContent extends Content, CalculadoraFields {\n 'bodycopy-logged'?: string;\n 'headline-logged'?: string;\n action?: string;\n argumentatives?: string;\n bodycopy?: string;\n bono?: any;\n carlines?: number[] | string[];\n cem?: 'VENTA' | 'POSVENTA';\n cta?: string;\n dpsFields?: {\n field: 'headers[DESC_FORM_DETAIL]' | 'headers[DETALLE_TIPO_PETICION_SIM]';\n value: string;\n }[];\n encuesta?: 'CEM - VENTA' | 'CEM - VENTA PRODUCTO' | 'CEM - POSVENTA' | 'CEM - ONESHOP' | 'CEM - SEGUNDA ENTREGA - INVITACION' | 'CEM - SEGUNDA ENTREGA - VALORACION' | 'LEM' | 'NO COMPRA' | 'NO RENOVACIÓN';\n featureApp?: EmbeddedFeatureApp;\n forms?: LeadForm[];\n headline?: string;\n intro?: string;\n isCitaPosventaStageOrDefault?: 'Default' | 'Stage';\n lead_type?: 'test-drive' | 'presupuesto' | 'mas-informacion' | 'cita' | 'stock';\n marketingCodeConfig?: { SalesgroupId: string; SalesgroupName: string };\n match?: Offer; // Hay que implementar el type Preconfiguration\n matchOptions?: MatchSelectedOptions;\n mgm?: 'Bono Cliente' | 'Bono Regalo' | 'Envío Regalo';\n mgmImgSrc?: string;\n mode?: 'Salesgroup' | 'Carline' | 'CarConfiguratorFS' | 'Mixed';\n modo?: 'Dark' | 'Light';\n motivo?: string;\n navidadImgSrc?: string;\n observaciones?: string;\n oferta?: Offer;\n race?: 'true' | 'false';\n salesgroups?: number[];\n stageCitaImgSrc?: string;\n thankYouPage?: string;\n triggerCase?: 'Generico' | 'OneShop';\n userInteraction?: 'false' | 'true';\n widget?: WidgetOptions;\n}\n\nexport type LeadForm = 'lead-presupuesto' | 'lead-mas_informacion' | 'lead-test_drive' | 'lead-cita' | 'lead-stock';\n\nexport function useFaContent(): OneFormContent | undefined {\n return useFeatureServices()['fa-content-service'].content as OneFormContent;\n}\n","import { FeatureAppConfig, useFeatureAppEnvironment } from 'src/feature-app';\n\nexport function useFeatureAppConfig(): FeatureAppConfig {\n const { config } = useFeatureAppEnvironment();\n\n return config || {};\n}\n","/* eslint-disable @typescript-eslint/explicit-function-return-type */\nimport { useState, useEffect } from 'react';\nimport { useWindowHeight, useWindowWidth } from '@react-hook/window-size';\n\nexport const useGetBoundingClientRect = (identifier: string) => {\n\n const [boundingObject, setBoundingObject] = useState(null);\n const [bottom, setBottom] = useState(null);\n const [top, setTop] = useState(null);\n const [left, setLeft] = useState(null);\n const [right, setRight] = useState(null);\n const [y, setY] = useState(null);\n\n //boundingObject contiene varias keys, bottom hace referencia a la distancia entre el bottom del elemento y el top del window\n\n const getBoundingObject = () => {\n const element = document.querySelector(identifier);\n if (element) {\n const { top, right, bottom, left, width, height, x, y } = element.getBoundingClientRect();\n //la librería de autosuggest no permite poner id, por eso el querySelector\n setBoundingObject({ top, right, bottom, left, width, height, x, y });\n setBottom(bottom);\n setTop(top);\n setLeft(left);\n setRight(right);\n setY(y);\n }\n };\n\n const getAndUpdateState = () => {\n getBoundingObject();\n };\n\n return { boundingObject, bottom, top, left, right, y, getAndUpdateState };\n};\n","import { useEffect, useState } from 'react';\nimport { useDispatch } from 'react-redux';\nimport { getDealerKvps } from 'src/bff/api/get-dealer-kvps';\n\nexport function useGetDealer() {\n const dispatch = useDispatch();\n const [dealerName, setDealerName] = useState(null);\n const [selectedDealer, setSelectedDealer] = useState(null);\n const [loading, setLoading] = useState(true);\n\n useEffect(() => {\n if (!window.location) {\n setLoading(false);\n }\n const urlParams = new URLSearchParams(window.location.search);\n const dealer = urlParams.get('dealer');\n if (!dealer) {\n setLoading(false);\n return;\n }\n getDealerKvps(dealer)\n .then((selectedDealer) => {\n if (selectedDealer) {\n setDealerName(selectedDealer.name);\n setSelectedDealer(selectedDealer);\n dispatch({ type: 'SET_SELECTED_DEALER', payload: selectedDealer });\n dispatch({ type: 'SET_URL_DEALER', payload: selectedDealer });\n dispatch({ type: 'UPDATE_SUGGESTION', payload: selectedDealer });\n const { longitude, latitude } = selectedDealer.markerInfo.svcLocation;\n const point = {\n type: 'Feature',\n properties: { cluster: false, concesionId: selectedDealer.id, dealer: selectedDealer },\n geometry: {\n type: 'Point',\n coordinates: [longitude, latitude],\n },\n };\n const points = [point];\n dispatch({ type: 'SET_DEALERS', payload: [selectedDealer] });\n dispatch({ type: 'SET_POINTS', payload: points });\n dispatch({ type: 'DEALERS_OR_INSTALLATIONS_MODE', payload: 'dealers' });\n } else {\n setDealerName(null);\n setSelectedDealer(null);\n }\n\n setLoading(false);\n })\n .catch(() => {\n setLoading(false);\n });\n }, []);\n return { dealerName, selectedDealer, loading };\n}\n","import { isNull } from 'src/feature-app';\nimport { useEffect, useState } from 'react';\nimport { useDispatch } from 'react-redux';\nimport { getDealerKvps } from 'src/bff/api/get-dealer-kvps';\nimport { DealersData } from 'src/types';\nimport { getDealers } from 'src/bff';\n\nexport function useGetDealers(kvps?: string) {\n const dispatch = useDispatch();\n const [dealerName, setDealerName] = useState(null);\n const [selectedDealer, setSelectedDealer] = useState(null);\n const [loading, setLoading] = useState(true);\n const [dealers, setDealers] = useState(null);\n\n useEffect(() => {\n const handleDealer = async (kvps: string) => {\n const selectedDealer = await getDealerKvps(kvps);\n\n if (selectedDealer) {\n setDealerName(selectedDealer.name);\n setSelectedDealer(selectedDealer);\n dispatch({ type: 'SET_SELECTED_DEALER', payload: selectedDealer });\n dispatch({ type: 'SET_URL_DEALER', payload: selectedDealer });\n dispatch({ type: 'UPDATE_SUGGESTION', payload: selectedDealer });\n } else {\n setDealerName(null);\n setSelectedDealer(null);\n }\n };\n\n if (window && window.location) {\n const urlParams = new URLSearchParams(window.location.search);\n const dealer = urlParams.get('dealer');\n\n if (dealer) {\n handleDealer(dealer);\n }\n }\n if (kvps) {\n handleDealer(kvps);\n }\n\n const requestDealers = async () => {\n const dealers = await getDealers();\n\n const points = dealers\n .map((dealer: DealersData) => {\n if (isNull(dealer.markerInfo.svcLocation)) return {};\n const { longitude, latitude } = dealer.markerInfo.svcLocation;\n return {\n type: 'Feature',\n properties: { cluster: false, concesionId: dealer.id, dealer: dealer },\n geometry: {\n type: 'Point',\n coordinates: [longitude, latitude],\n },\n };\n })\n .filter((point) => Object.keys(point).length > 0);\n\n dispatch({ type: 'SET_DEALERS', payload: dealers });\n dispatch({ type: 'SET_POINTS', payload: points });\n dispatch({ type: 'DEALERS_OR_INSTALLATIONS_MODE', payload: 'dealers' });\n setDealers(dealers);\n setLoading(false);\n };\n\n requestDealers();\n }, []);\n return { dealers, dealerName, selectedDealer, loading };\n}\n","import { getDataServiceConfig } from 'src/feature-app';\n\nexport const useGetBrand = (): 'V' |'N' |undefined => {\n const data = getDataServiceConfig();\n const brand = data.customConfig?.brand;\n\n return brand;\n};\n","import { useGetBrand } from './use-get-brand';\n\nexport const useIsComerciales = () => {\n const brand = useGetBrand();\n\n return brand === 'N'; \n};\n","import { useEffect, useState } from 'react';\nimport { useDispatch, useStore } from 'react-redux';\nimport { getInstallations, getInstallationsLegacy } from 'src/bff';\nimport { DealersData, DomainAttributesValues, Installation, InstallationResponse, Points } from 'src/types';\nimport { useIsComerciales } from './use-is-comerciales';\nimport { provinces } from '../NewMap';\n\nexport function useGetInstalaciones(token: string, legacy?: boolean): string {\n const dispatch = useDispatch();\n const [dealerName, setDealerName] = useState(null);\n const store = useStore()\n\n useEffect(() => {\n const requestInstallations = async () => {\n const installationsResponse = legacy ? await getInstallationsLegacy(token) : await getInstallations(token);\n // La respuesta viene como una array de arrays de attributes. Eliminamos este nivel para simplificar.\n const installationsDomainAtt: DomainAttributesValues[][] = installationsResponse.map((inst) => inst.attributes);\n const isComerciales = useIsComerciales();\n const selectedCarlineCode = store.getState().dealersInfo?.selectedCarline?.code;\n const excludedInstallationCodes = ['03812', '03394', 'EX1Q2', '0311X', '0321C', 'EX2C3', 'EX2H4', '30559', '53V50', '0310W', '30724', '03917', '30083', 'EX2Y1', 'EX1P0', '03910']\n const isIdBuzz = () => selectedCarlineCode === 72005 || selectedCarlineCode === 72006;\n\n const getProvince = (provinceCode: string): string | null => {\n const province = provinces.find(p => p.attributes.some(attr => attr.value === provinceCode));\n return province ? province.attributes.find(attr => attr.name === 'NAME')?.value?.toUpperCase() ?? null : null;\n };\n\n let points: Points[] = [];\n let installations: Installation[] = [];\n\n installationsDomainAtt.forEach((installation) => {\n const newInstallation: Installation = {\n Id: '',\n VGED_CommercialName__c: '',\n BillingStreet: '',\n BillingPostalCode: '',\n BillingCity: '',\n BillingLatitude: '',\n BillingLongitude: '',\n VGED_DealerCode__c: '',\n BillingStateCode: '',\n KVPSCode__c: '',\n Province: '',\n };\n\n installation.forEach((property) => {\n const { name, value } = property;\n if (name === 'BillingStateCode') {\n newInstallation[name] = value;\n const provinceName = getProvince(value);\n newInstallation['Province'] = provinceName ?? '';\n }\n else {\n (newInstallation.hasOwnProperty(name))\n newInstallation[name] = value;\n }\n });\n\n if (\n !newInstallation.BillingLatitude ||\n !newInstallation.BillingLongitude ||\n newInstallation.BillingLatitude === '' ||\n newInstallation.BillingLongitude === ''\n ) {\n return;\n }\n\n // Necesario para el correcto funcionamiento del mapa.\n const dealer: Partial = {\n kvps: newInstallation.KVPSCode__c,\n name: newInstallation.VGED_CommercialName__c,\n markerInfo: {\n dealerInfo: {\n name: newInstallation.VGED_CommercialName__c,\n address: newInstallation.BillingStreet,\n zipCode: newInstallation.BillingPostalCode,\n city: newInstallation.BillingCity,\n province: newInstallation.Province,\n },\n },\n };\n\n const point = {\n type: 'Feature',\n properties: { cluster: false, installation: newInstallation, dealer }, //concesionId: dealer.id, dealer: dealer\n geometry: {\n type: 'Point',\n coordinates: [newInstallation.BillingLongitude, newInstallation.BillingLatitude],\n },\n };\n\n const isExcludedInstallation = (): boolean => {\n return excludedInstallationCodes.includes(newInstallation.VGED_DealerCode__c)\n }\n if (isComerciales && !isIdBuzz() && isExcludedInstallation()) {\n return\n }\n else {\n points.push(point);\n installations.push(newInstallation);\n }\n });\n dispatch({ type: 'SET_INSTALLATIONS', payload: installations });\n dispatch({ type: 'SET_POINTS', payload: points });\n dispatch({ type: 'DEALERS_OR_INSTALLATIONS_MODE', payload: 'installations' });\n };\n\n requestInstallations();\n }, []);\n return dealerName;\n}\n","import { useEffect } from 'react';\nimport { useDispatch } from 'react-redux';\nimport { getMarketingCode } from 'src/bff';\nimport { useFaContent } from 'src/feature-app';\n\n/**\n * Hook necesario para disparar ambos formularios de match. El objetivo es enviar las variables de match y matchMarketingCodeData para\n * que desde la parte de analítica se puedan obtener todas las variables que se están utilizando tambien para la analítica de match.\n * @param setSelectedJourney\n * @param Form\n */\nexport function useInitiateMatchTriggers(setSelectedJourney: any, Form: JSX.Element) {\n const faContent = useFaContent();\n const dispatch = useDispatch();\n\n useEffect(() => {\n getMarketingCode(faContent?.match?.marketingCode)\n .then((res) => {\n dispatch({ type: 'SET_MATCH', payload: faContent.match });\n dispatch({\n type: 'UPDATE_FIELDS',\n payload: { matchMarketingCodeData: res.response, argumentatives: faContent?.argumentatives },\n });\n\n setSelectedJourney(Form, true);\n })\n .catch((err) => {\n dispatch({ type: 'SET_MATCH', payload: faContent.match });\n dispatch({ type: 'UPDATE_FIELDS', payload: { argumentatives: faContent?.argumentatives } });\n setSelectedJourney(Form, true);\n });\n }, []);\n}\n","import { useEffect } from 'react';\nimport { useDispatch } from 'react-redux';\nimport { useFaContent } from 'src/feature-app';\n\n/**\n * Hook necesario para disparar formularios desde bonos. El objetivo es enviar como observaciones la descripción del bono.\n * @param setSelectedJourney\n * @param Form\n */\nexport function useInitiateBonosTriggers(setSelectedJourney: any, Form: JSX.Element) {\n const faContent = useFaContent();\n const dispatch = useDispatch();\n\n useEffect(() => {\n dispatch({\n type: 'UPDATE_FIELDS', // Pendiente propagar el valor del campo observaciones desde faContent\n payload: { },\n });\n\n setSelectedJourney(Form, true);\n }, []);\n}\n","import { useFeatureServices } from 'src/feature-app';\n\nexport const useIsDevStage = () => {\n const stageCustomConfig = useFeatureServices()['service-config-provider'].configs?.stage?.customConfig;\n\n return stageCustomConfig?.stage === 'dev';\n};\n","import { useState, useEffect } from 'react';\n\nexport function useLoaded() {\n const [loaded, setLoaded] = useState(false);\n\n useEffect(() => {\n setLoaded(true);\n }, []);\n\n return loaded;\n}\n","import { Spinner } from '@volkswagen-onehub/components-core';\nimport { Checkmark, Locate } from 'src/icons-core-imports';\n\nimport React, { useEffect, useState } from 'react';\nimport { useFormContext } from 'react-hook-form';\nimport { useDispatch, useStore } from 'react-redux';\nimport {\n GooglePlace,\n isNull,\n Suggestion,\n useOneFormContext,\n updateMapVariables,\n useFeatureServices,\n useFeatureAppEnvironment,\n} from 'src/feature-app';\nimport { handleLocation } from 'src/feature-app/NewMap/handle-location';\nimport { useTrackingManager } from 'src/feature-app/hooks/use-tracking-manager';\nimport { OneFormState } from 'src';\nimport { renderAvisoIslasCanariasLayer } from 'src/components';\nimport { Store } from 'redux';\n\n// está hecho a saco para extraer la lógica del componente LocateUser y no tenerla por duplicado\n// por temas de front y comportamiento de la caja del suggest no se puede usar LocateUser en filtros\n\nexport function useLocateUser() {\n const [value, setValue] = useState('');\n const [suggestion, setSuggestion] = useState(null);\n const [loading, setLoading] = useState(false);\n const [icon, setIcon] = useState();\n const [isLocating, setIsLocating] = useState(false);\n const [locationDisabled, setLocationDisabled] = useState(false);\n // locationSuccess lo suyo seria subirlo a un context para que no se resetee entre LocateUser y filtros\n const [locationSuccess, setLocationSuccess] = useState(false);\n const { triggerValidation } = useFormContext();\n const trackingManager = useTrackingManager();\n const dispatch = useDispatch();\n const { setIsValueSelected, handleNextStep } = useOneFormContext();\n const store: Store = useStore();\n const env = useFeatureAppEnvironment();\n const layerManager = useFeatureServices()['layer-manager'];\n\n const onSuggestionSelectedFn = (suggestion: Suggestion) => {\n setSuggestion(suggestion);\n updateMapVariables(dispatch, suggestion).then(() => {\n const { suggestionIsInCanaryIslands } = store.getState().formInfo;\n\n if (suggestionIsInCanaryIslands) {\n renderAvisoIslasCanariasLayer(store, env, layerManager);\n return;\n }\n // Avanza a la siguiente pantalla\n handleNextStep();\n });\n };\n\n const handleLocate = async () => {\n trackingManager.trackFormButtonClick({\n contentId: 'Localiza mi posición actual',\n });\n setIsLocating(true);\n setLoading(true);\n setIcon();\n const { geometry, name } = await handleLocation();\n setIcon();\n setIsLocating(false);\n setLoading(false);\n if (isNull(geometry)) {\n setLocationDisabled(true);\n setLocationSuccess(false);\n } else {\n setLocationDisabled(false);\n const suggestion: GooglePlace = { isGooglePlace: true, name, skipSearch: true, isGeoLocated: true };\n // dispatch({ type: 'UPDATE_USER_GEOLOCATION', payload: suggestion });\n // handleMapVariables(dispatch, { lat: geometry.lat, lng: geometry.lng }, 10, geometry, false, suggestion);\n\n setSuggestion(suggestion);\n setLocationSuccess(true);\n triggerValidation();\n setValue(name);\n setIsValueSelected(true);\n updateMapVariables(dispatch, suggestion, geometry);\n }\n };\n\n const handleLocateFilters = async () => {\n trackingManager.trackFormButtonClick({\n contentId: 'Localiza mi posición actual',\n });\n setIsLocating(true);\n setLoading(true);\n setIcon();\n const { geometry, name } = await handleLocation();\n setIcon();\n setIsLocating(false);\n setLoading(false);\n\n if (isNull(geometry)) {\n setLocationDisabled(true);\n setLocationSuccess(false);\n } else {\n setLocationDisabled(false);\n const suggestion: GooglePlace = { isGooglePlace: true, name, skipSearch: true, isGeoLocated: true };\n // dispatch({ type: 'UPDATE_USER_GEOLOCATION', payload: suggestion });\n // handleMapVariables(dispatch, { lat: geometry.lat, lng: geometry.lng }, 10, geometry, false, suggestion);\n\n triggerValidation();\n setValue(name);\n setLocationSuccess(true);\n return { suggestion, geometry };\n // setSuggestion(suggestion);\n }\n };\n\n useEffect(() => {\n locationSuccess ? setIcon() : setIcon();\n }, [locationSuccess]);\n\n return {\n suggestion,\n setSuggestion,\n value,\n setValue,\n icon,\n handleLocate,\n loading,\n locationDisabled,\n locationSuccess,\n setLocationSuccess,\n isLocating,\n handleLocateFilters,\n onSuggestionSelectedFn,\n };\n}\n","import { useIsDevStage } from './use-is-dev-stage';\nimport { useRef } from 'react';\nimport { useFeatureServices } from 'src/feature-app';\n\nconst citaPreviaKey = 'es-posventa-cita_previa';\n\nexport function useNavigate() {\n const navigationService = useFeatureServices()['navigation-service'];\n\n const navigateToCita = (): void => {\n const target = navigationService.navigateTo(citaPreviaKey, {});\n target.push();\n };\n\n const navigateToThankyouNewsletter = (action: string): void => {\n const resultsPage = `inscripcion-${action}`;\n\n const target = navigationService.navigateTo(resultsPage, {});\n\n target.push();\n };\n\n return {\n navigateToCita,\n navigateToThankyouNewsletter,\n };\n}\n","import { useState, useEffect } from 'react';\n\nexport function useOnScreen(ref) {\n const [isIntersecting, setIntersecting] = useState(false);\n\n const observer = new IntersectionObserver(([entry]) => setIntersecting(entry.isIntersecting));\n\n useEffect(() => {\n observer.observe(ref.current);\n // Remove the observer as soon as the component is unmounted\n return () => {\n observer.disconnect();\n };\n }, []);\n\n return isIntersecting;\n}\n","import React, { useEffect, useState } from 'react';\nimport { useSelector } from 'react-redux';\nimport { isNull } from 'src/feature-app';\nimport { OneFormState, Steps } from 'src/types';\nimport { useWindowWidth} from '@react-hook/window-size';\n\nexport const useShowOverflow = (isLayerScreen: boolean, selectedStep?: Steps ) => {\n /**\n *\n * @param stepsToIterate La lista de steps donde hay que buscar el paso previo.\n * @param screenIndexToGet La lista de steps donde hay que buscar el paso previo.\n */\n const windowWidth = useWindowWidth();\n const { formInfo } = useSelector((state: OneFormState) => state);\n const { \n multiStepScreenIndex, \n screenIndex, \n steps,\n multiSteps, notALayer\n } = formInfo;\n\n const [ showOverflow, setShowOverflow ] = useState(false);\n\n\n const handleShowOverflow = (stepsToIterate: Steps[], screenIndexToGet: number) => {\n if (!stepsToIterate || isNull(screenIndexToGet) || screenIndexToGet === -1) {\n setShowOverflow(false);\n }\n\n const actualStep = stepsToIterate.find((step) => step.screenIndex === screenIndexToGet);\n\n if(actualStep && actualStep.showOverflow) {\n setShowOverflow(true);\n } else {\n setShowOverflow(false);\n }\n };\n\n \n useEffect(()=>{\n \n if(windowWidth < 960 && !notALayer || windowWidth < 960 && !isLayerScreen ) {\n setShowOverflow(false);\n } else {\n\n if(selectedStep && selectedStep.showOverflow) {\n setShowOverflow(true);\n }\n \n if(!steps) {\n setShowOverflow(false);\n } else {\n //console.log(1, screenIndex, steps, multiStepScreenIndex);\n if (multiStepScreenIndex === null) {\n //console.log('22222', multiSteps, screenIndex, multiStepScreenIndex);\n handleShowOverflow(steps, screenIndex);\n } else {\n //console.log('333333', multiSteps, multiStepScreenIndex);\n handleShowOverflow(multiSteps, multiStepScreenIndex);\n } \n }\n }\n \n }, [steps, multiSteps, selectedStep]);\n\n return { showOverflow };\n};\n","import { useEffect, useState } from 'react';\n\n//El texto que se quiera introducir des de la feature app incorporando la posibilidad de editarlo \n// en el fragmento de JSX donde se renderize debe figurar de la siguiente manera:\n//
\n\nexport const useTransformToHtml = (text: string) => {\n return {__html: text};\n};\n","import { TrackingForm } from 'src/feature-app';\n\nexport interface NDPSField {\n name: string;\n value: string;\n}\n\nexport const getTrackingForm = (formResponse): TrackingForm => {\n let LeadID;\n if (formResponse && formResponse.content && formResponse.content.data && formResponse.content.data.fields) {\n //LeadID Molecular\n const leadField: NDPSField = formResponse.content.data.fields.find(\n (field: NDPSField) => field.name === 'COD_LEAD_ID'\n );\n LeadID = leadField ? leadField.value : undefined;\n }else if (formResponse && formResponse.content && formResponse.content.headers){\n //LeadID OneFormBFF\n const leadField: NDPSField = formResponse.content.headers.find(\n (header: NDPSField) => header.name === 'FK_SYSTEM'\n );\n LeadID = leadField ? leadField.value : undefined;\n }\n return {\n LeadID,\n FormFields: undefined,\n };\n};\n","import { IdPerson } from \"src/types\";\nimport { EsOneformCoreServiceV1 } from \"src/feature-service/es-oneform-core-feature-service/types\";\nimport { createPincodeEntity } from 'src/forms';\nimport { useFeatureServices } from \"./use-feature-services\";\n\nexport const useGetIdPerson = () => {\n const oneFormService = useFeatureServices()['es:oneform-core'] as EsOneformCoreServiceV1;\n const dpsData = oneFormService.getDpsData();\n const idPerson: IdPerson = createPincodeEntity(dpsData, 'PERSON');\n\n return idPerson;\n}","import { IdVehicle} from \"src/types\";\nimport { EsOneformCoreServiceV1 } from \"src/feature-service/es-oneform-core-feature-service/types\";\nimport { createPincodeEntity } from 'src/forms';\nimport { useFeatureServices } from \"./use-feature-services\";\n\nexport const useGetIdVehicle = () => {\n const oneFormService = useFeatureServices()['es:oneform-core'] as EsOneformCoreServiceV1;\n const dpsData = oneFormService.getDpsData();\n const idVehicle: IdVehicle = createPincodeEntity(dpsData, 'VEHICLE');\n\n return idVehicle;\n}","import { FeatureAppEnvironment } from '@feature-hub/core';\nimport React from 'react';\nimport { FeatureAppConfig, Dependencies } from 'src/feature-app';\n\nexport type OneFormFeatureAppEnvironment = FeatureAppEnvironment;\n\nexport const FeatureAppEnvironmentContext = React.createContext(undefined);\n\nexport function useFeatureAppEnvironment(): OneFormFeatureAppEnvironment {\n const featureAppEnvironment = React.useContext(FeatureAppEnvironmentContext);\n\n if (!featureAppEnvironment) {\n throw new Error('No featureAppEnvironment context value was provided.');\n }\n\n return featureAppEnvironment;\n}\n","import { useFeatureAppEnvironment, Dependencies } from 'src/feature-app';\n\nexport function useFeatureServices(): Dependencies {\n const { featureServices } = useFeatureAppEnvironment();\n\n return featureServices;\n}\n","\nimport { ServiceConfigProviderV1 } from '@volkswagen-onehub/service-config-provider';\nimport { useFeatureServices } from './use-feature-services';\nimport { AuthServiceProviderV2, IAuthServiceV2 } from '@volkswagen-onehub/authservice';\n\nexport const getAuthService = (serviceConfig: ServiceConfigProviderV1, authServiceProvider:AuthServiceProviderV2 ) => {\n const endpoint = serviceConfig.configs['customer-profile']?.urlOrigin; \n const authService: IAuthServiceV2 = authServiceProvider?.register('market');\n\n \n return authService;\n};\n\nexport const useGetAuthService = () => {\n const serviceConfig = useFeatureServices()['service-config-provider'];\n const authService = useFeatureServices()['vw:authService'] as AuthServiceProviderV2;\n\n return getAuthService(serviceConfig, authService);\n};\n","import { useFeatureServices } from './use-feature-services';\n\nexport const useGetWaidLitera = () => {\n const oneFormService = useFeatureServices()['es:oneform-core'];\n const waid = oneFormService.getDpsData().waid;\n\n return waid;\n};\n","import React from 'react';\nimport { useStore } from 'react-redux';\nimport { Store } from 'redux';\nimport { useFeatureAppConfig, useGetBrand } from 'src/feature-app';\nimport {\n createPartner,\n createPartnerWithSearch,\n createTrackingLink,\n createTrackingProcess,\n getBaseEventInfo,\n getCarlineConfiguration,\n getCompleteConfigurationFromVicci,\n getFormAppointments,\n getMarketingConsent,\n} from 'src/feature-app/tracking-helpers';\nimport {\n emptyCarlineConfig,\n emptyConfig,\n emptyLatLongZip,\n emptyOwnership,\n emptyPersonalization,\n} from 'src/feature-app/tracking-objects';\nimport {\n ErrorFormFields,\n OffersTrackingEvent,\n OneFormTrackingManager,\n TrackingError,\n TrackingEvent,\n TrackingEventInfo,\n TrackingFilter,\n TrackingForm,\n TrackingPartner,\n TrackingProcess,\n} from 'src/feature-app/tracking-types';\nimport { DealersData, OneFormState } from 'src/types';\nimport { useFeatureServices } from './use-feature-services';\n\nconst defaultTrackingEvent: OffersTrackingEvent = {\n personalization: emptyPersonalization,\n};\n\nexport function useTrackingManager(): OneFormTrackingManager {\n const { tracking: trackingManager } = useFeatureServices();\n const store: Store = useStore();\n const config = useFeatureAppConfig();\n const brand = useGetBrand();\n\n return React.useMemo((): OneFormTrackingManager => {\n function track(action: string, event: OffersTrackingEvent): void {\n const { trackingIsDisabled } = store.getState().formInfo;\n if (trackingManager && !trackingIsDisabled) {\n trackingManager.track(action, event as TrackingEvent);\n }\n }\n\n return {\n trackFormButtonClick(eventInfo: TrackingEventInfo, dealer?: DealersData) {\n const { formName, formType } = store.getState().formData.fields;\n\n track('VWBasic_FormButton_Click', {\n ...defaultTrackingEvent,\n form: {\n FormType: formType,\n FormName: `vw-oneform-${formName}`,\n PrefContactChannels: undefined,\n FormVersion: `vw-oneform-${formName}-${process.env.VERSION}`,\n NewsletterType: undefined,\n Questionnaire: undefined,\n ...getMarketingConsent(store),\n },\n eventInfo: { ...getBaseEventInfo(store, brand), ...eventInfo },\n configuration: {\n ...emptyConfig,\n PriceType: 'price',\n PriceTypeParameter: undefined,\n ...getCarlineConfiguration(store),\n },\n partner: createPartner(store, dealer),\n ownership: emptyOwnership,\n link: createTrackingLink(eventInfo.contentId),\n environment: { featureAppIdAppVersion: process.env.VERSION },\n });\n },\n trackFormStepButtonClick(eventInfo: TrackingEventInfo) {\n const { formName, formType, pageCategory } = store.getState().formData.fields;\n\n const emptyConfigStep = { ...emptyConfig };\n delete emptyConfigStep.PriceTotalTotal;\n\n track('VWBasic_FormStepButton_Click', {\n ...defaultTrackingEvent,\n form: {\n FormType: formType,\n FormName: `vw-oneform-${formName}`,\n PrefContactChannels: undefined,\n FormVersion: `vw-oneform-${formName}-${process.env.VERSION}`,\n NewsletterType: undefined,\n Questionnaire: undefined,\n ...getMarketingConsent(store),\n },\n eventInfo: { ...getBaseEventInfo(store, brand), ...eventInfo },\n configuration: {\n ...emptyConfigStep,\n WheelsAdditionalExternalRollingNoise: undefined,\n ...getCarlineConfiguration(store),\n },\n process: {\n Name: pageCategory,\n ...createTrackingProcess(store),\n },\n partner: createPartner(store),\n ownership: emptyOwnership,\n link: createTrackingLink(eventInfo.contentId),\n environment: { featureAppIdAppVersion: process.env.VERSION },\n });\n },\n trackFormStepLoad(eventInfo: TrackingEventInfo, formInfo?: TrackingForm, processInfo?: TrackingProcess) {\n const { formName, formType, pageCategory } = store.getState().formData.fields;\n\n const baseEventInfoForLoad = { ...getBaseEventInfo(store, brand) };\n delete baseEventInfoForLoad.sectionName;\n\n const emptyConfigLoad = { ...emptyConfig };\n delete emptyConfigLoad.PriceTotalTotal;\n\n track('VWBasic_FormStep_Load', {\n ...defaultTrackingEvent,\n form: {\n ...formInfo,\n FormType: formType,\n FormName: `vw-oneform-${formName}`,\n FormVersion: `vw-oneform-${formName}-${process.env.VERSION}`,\n },\n eventInfo: { ...baseEventInfoForLoad, ...eventInfo, contentLabels: undefined },\n configuration: {\n ...emptyConfigLoad,\n WheelsAdditionalExternalRollingNoise: undefined,\n ...getCarlineConfiguration(store),\n },\n user: { ...emptyLatLongZip },\n process: {\n Name: pageCategory,\n ...createTrackingProcess(store, processInfo),\n },\n partner: createPartner(store),\n ownership: emptyOwnership,\n environment: { featureAppIdAppVersion: process.env.VERSION },\n });\n },\n trackButtonClick(eventInfo: TrackingEventInfo, dealer?: DealersData) {\n const processInfo = createTrackingProcess(store);\n track('VWBasic_Button_Click', {\n ...defaultTrackingEvent,\n eventInfo: { ...getBaseEventInfo(store, brand), ...eventInfo },\n configuration: {\n ...emptyCarlineConfig,\n ...getCarlineConfiguration(store),\n },\n partner: createPartner(store, dealer),\n ownership: emptyOwnership,\n process: processInfo,\n link: createTrackingLink(eventInfo.contentId),\n environment: { featureAppIdAppVersion: process.env.VERSION },\n questionnaire: { QuestionAnswerSet: undefined },\n SC: {\n ResultsRecommendationPosition: undefined,\n ResultsRecommendationFirst: undefined,\n ResultsRecommendationSecond: undefined,\n },\n });\n },\n trackFormCTAClick(eventInfo: TrackingEventInfo, dealer?: DealersData) {\n const { formName, formType } = store.getState().formData.fields;\n\n track('VWBasic_FormCTA_Click', {\n ...defaultTrackingEvent,\n form: {\n FormType: formType,\n FormName: `vw-oneform-${formName}`,\n PrefContactChannels: undefined,\n FormVersion: `vw-oneform-${formName}-${process.env.VERSION}`,\n NewsletterType: undefined,\n Questionnaire: undefined,\n ...getMarketingConsent(store),\n },\n eventInfo: { ...getBaseEventInfo(store, brand), ...eventInfo },\n configuration: {\n ...emptyConfig,\n PriceType: undefined,\n PriceTypeParameter: undefined,\n ...getCarlineConfiguration(store),\n },\n partner: createPartner(store, dealer),\n ownership: emptyOwnership,\n link: createTrackingLink(eventInfo.contentId),\n environment: { featureAppIdAppVersion: process.env.VERSION },\n });\n },\n trackFormSubmissionSuccessMessageLoad(eventInfo: TrackingEventInfo, formInfo?: TrackingForm) {\n const { formName, formType, vicciData, pageCategory } = store.getState().formData.fields;\n const processInfo = createTrackingProcess(store);\n\n track('VWBasic_FormSubmissionSuccessMessage_Load', {\n ...defaultTrackingEvent,\n form: {\n FormType: formType,\n FormName: `vw-oneform-${formName}`,\n PrefContactChannels: undefined,\n FormVersion: `vw-oneform-${formName}-${process.env.VERSION}`,\n NewsletterType: undefined,\n ErrorFormFields: undefined,\n Questionnaire: undefined,\n SourceID: undefined,\n OpportunityUID: undefined,\n CycleID: undefined,\n FormStart: false,\n LeadID: undefined,\n ...getFormAppointments(store),\n ...getMarketingConsent(store),\n ...formInfo,\n },\n eventInfo: { ...getBaseEventInfo(store, brand), ...eventInfo },\n user: { ...emptyLatLongZip },\n configuration: {\n ...emptyConfig,\n ...getCompleteConfigurationFromVicci(vicciData),\n ...getCarlineConfiguration(store),\n },\n process: { ...processInfo, Name: pageCategory },\n partner: createPartnerWithSearch(store),\n ownership: emptyOwnership,\n environment: { featureAppIdAppVersion: process.env.VERSION },\n });\n },\n trackFormLayerLoad() {\n const { formName, formType, pageCategory } = store.getState().formData.fields;\n\n const emptyConfigLoad = { ...emptyConfig };\n delete emptyConfigLoad.PriceTypeParameter;\n delete emptyConfigLoad.PriceType;\n\n track('VWBasic_FormLayer_Load', {\n ...defaultTrackingEvent,\n form: {\n FormType: formType,\n FormName: `vw-oneform-${formName}`,\n FormVersion: `vw-oneform-${formName}-${process.env.VERSION}`,\n NewsletterType: undefined,\n CycleID: undefined,\n FormStart: true,\n },\n eventInfo: {\n ...getBaseEventInfo(store, brand),\n contentId: config.trigger ? config.trigger : undefined,\n contentLabels: undefined,\n },\n configuration: { ...emptyConfigLoad, ...getCarlineConfiguration(store) },\n process: {\n Name: pageCategory,\n ...createTrackingProcess(store),\n },\n partner: createPartner(store),\n environment: { featureAppIdAppVersion: process.env.VERSION },\n });\n },\n trackFormLoad() {\n const { formName, formType, pageCategory } = store.getState().formData.fields;\n const emptyConfigLoad = { ...emptyConfig };\n\n track('VWBasic_Form_Pageload', {\n ...defaultTrackingEvent,\n environment: { featureAppIdAppVersion: process.env.VERSION },\n form: {\n FormType: formType,\n FormName: `vw-oneform-${formName}`,\n FormVersion: `vw-oneform-${formName}-${process.env.VERSION}`,\n FormStart: true,\n },\n eventInfo: {\n ...getBaseEventInfo(store, brand),\n contentId: config.trigger ? config.trigger : undefined,\n contentLabels: undefined,\n },\n user: { ...emptyLatLongZip },\n configuration: { ...emptyConfigLoad, ...getCarlineConfiguration(store) },\n process: {\n Name: pageCategory,\n ...createTrackingProcess(store),\n },\n partner: createPartner(store),\n });\n },\n trackFormLoadRace() {\n const { formName, formType, pageCategory } = store.getState().formData.fields;\n const emptyConfigLoad = { ...emptyConfig };\n\n track('VWBasic_Form_Load', {\n ...defaultTrackingEvent,\n environment: { featureAppIdAppVersion: process.env.VERSION },\n form: {\n FormType: formType,\n FormName: `vw-oneform-${formName}`,\n FormVersion: `vw-oneform-${formName}-${process.env.VERSION}`,\n FormStart: true,\n },\n eventInfo: {\n ...getBaseEventInfo(store, brand),\n contentId: config.trigger ? config.trigger : undefined,\n contentLabels: undefined,\n },\n user: { ...emptyLatLongZip },\n configuration: { ...emptyConfigLoad, ...getCarlineConfiguration(store) },\n process: {\n Name: pageCategory,\n ...createTrackingProcess(store),\n },\n partner: createPartner(store),\n });\n },\n\n trackFormErrorMessageLoad(errorInfo?: TrackingError, errorFields?: ErrorFormFields[]) {\n const { formName, formType } = store.getState().formData.fields;\n\n track('VWBasic_FormErrorMessage_Load', {\n ...defaultTrackingEvent,\n form: {\n FormType: formType,\n FormName: `vw-oneform-${formName}`,\n FormVersion: `vw-oneform-${formName}-${process.env.VERSION}`,\n ErrorFormFields: { FieldNameandID: [...errorFields] },\n ErrorAdressValidationFields: undefined,\n },\n eventInfo: { ...getBaseEventInfo(store, brand) },\n error: { message: errorInfo.message, code: undefined, referringUrl: undefined },\n partner: createPartner(store),\n environment: { featureAppIdAppVersion: process.env.VERSION },\n });\n },\n trackFormFieldClick(eventInfo: TrackingEventInfo, form: TrackingForm) {\n const { formName, formType } = store.getState().formData.fields;\n\n track('VWBasic_FormField_Click', {\n ...defaultTrackingEvent,\n form: {\n FormType: formType,\n FormName: `vw-oneform-${formName}`,\n FormVersion: `vw-oneform-${formName}-${process.env.VERSION}`,\n ...form,\n },\n eventInfo: { ...getBaseEventInfo(store, brand), ...eventInfo },\n configuration: {\n ...emptyCarlineConfig,\n ...getCarlineConfiguration(store),\n },\n process: createTrackingProcess(store),\n partner: createPartner(store),\n environment: { featureAppIdAppVersion: process.env.VERSION },\n });\n },\n trackFormFilterSelect(eventInfo: TrackingEventInfo, filter: TrackingFilter, form: TrackingForm) {\n const { formName, formType } = store.getState().formData.fields;\n\n track('VWBasic_FormFilterSelect_Click', {\n ...defaultTrackingEvent,\n form: {\n FormType: formType,\n FormName: `vw-oneform-${formName}`,\n FormVersion: `vw-oneform-${formName}-${process.env.VERSION}`,\n ...form,\n },\n eventInfo: { ...getBaseEventInfo(store, brand), ...eventInfo },\n configuration: {\n ...emptyCarlineConfig,\n ...getCarlineConfiguration(store),\n },\n filter,\n process: createTrackingProcess(store),\n partner: createPartner(store),\n environment: { featureAppIdAppVersion: process.env.VERSION },\n });\n },\n trackFormCloseClick(eventInfo: TrackingEventInfo, formInfo?: TrackingForm) {\n const baseEventInfoCloseClick = { ...getBaseEventInfo(store, brand) };\n delete baseEventInfoCloseClick.templateType;\n\n const partner: TrackingPartner = createPartnerWithSearch(store);\n delete partner.informationDepartment;\n\n const processInfo = createTrackingProcess(store);\n // delete processInfo.StepNumber;\n const { formName, formType, vicciData, pageCategory } = store.getState().formData.fields;\n\n track('VWBasic_FormClose_Click', {\n ...defaultTrackingEvent,\n form: {\n ...formInfo,\n FormType: formType,\n FormName: `vw-oneform-${formName}`,\n PrefContactChannels: undefined,\n SourceID: undefined,\n ErrorFormFields: undefined,\n OpportunityUID: undefined,\n FormVersion: `vw-oneform-${formName}-${process.env.VERSION}`,\n CycleID: undefined,\n FormFields: undefined,\n ...getFormAppointments(store),\n },\n eventInfo: { ...baseEventInfoCloseClick, ...eventInfo },\n configuration: {\n ...emptyCarlineConfig,\n ...getCompleteConfigurationFromVicci(vicciData),\n ...getCarlineConfiguration(store),\n },\n process: {...processInfo, Name: pageCategory},\n partner,\n link: createTrackingLink(eventInfo.contentId),\n environment: { featureAppIdAppVersion: process.env.VERSION },\n });\n },\n };\n }, [trackingManager]);\n}\n","import {\n Container,\n ContainerGutter,\n ContainerPadding,\n CTA,\n styled,\n Text,\n ThemeProvider,\n TokenTextAppearance,\n TokenTextColor,\n} from '@volkswagen-onehub/components-core';\nimport { DashboardTile, TileSize } from '@volkswagen-onehub/myvw-shared-components/dist/dashboard/dashboardTile';\nimport { TileGridContainer } from '@volkswagen-onehub/myvw-shared-components/dist/dashboard/tileGridContainer';\nimport { TileGridLayout } from '@volkswagen-onehub/myvw-shared-components/dist/dashboard/tileGridLayout';\nimport React from 'react';\nimport { NuevaCitaPosventaFormController } from 'src/forms/CitaPosventa/NuevaCitaPosventa';\n\nconst BlueBackground = styled.div`\n background: radial-gradient(circle at center bottom, rgb(0, 67, 122) 0%, rgb(0, 30, 80) 100%);\n color: white;\n height: 100%;\n`;\n\nexport const CitaPreviaTile = (props: { setSelectedJourney: React.Dispatch> }) => {\n const { setSelectedJourney } = props;\n return (\n \n \n \n \n \n \n \n ¿Necesitas pasar por el taller?\n \n \n Elige el día, la hora y el Servicio Oficial que prefieras para que cuiden de tu Volkswagen.\n \n {\n setSelectedJourney();\n }}\n >\n Pide tu cita\n \n \n \n \n \n \n \n );\n};\n","import { Breakpoints, Layout, styled } from '@volkswagen-onehub/components-core';\nimport React from 'react';\nimport { CitaPreviaTile } from './';\n\nconst Grid = styled.div`\n --grid-gap-value: 32px;\n -gap: var(--grid-gap-value);\n display: grid;\n grid-auto-rows: calc((100vw / (9 / 5)) + var(--grid-gap-value) / 2);\n grid-template-columns: 1fr;\n grid-auto-flow: row dense;\n\n @media screen and (min-width: 560px) {\n --grid-gap-value: 56px;\n grid-auto-rows: calc(48.6111vw);\n }\n @media screen and (min-width: 960px) {\n grid-template-columns: repeat(2, 1fr);\n grid-auto-rows: calc(((21 / 24) * 100vw - (2 - 1) * var(--grid-gap-value)) / 2 / (9 / 5));\n }\n @media screen and (min-width: 1280px) {\n grid-template-columns: repeat(3, 1fr);\n grid-auto-rows: calc(((21 / 24) * 100vw - (3 - 1) * var(--grid-gap-value)) / 3 / (9 / 5));\n }\n @media screen and (min-width: 1920px) {\n --grid-gap-value: 72px;\n grid-template-columns: repeat(4, 1fr);\n grid-auto-rows: calc(((21 / 24) * 100vw - (4 - 1) * var(--grid-gap-value)) / 4 / (9 / 5));\n }\n`;\n\nexport const CitaPreviaTileGrid = (props: {\n setSelectedJourney: React.Dispatch>;\n}) => {\n return (\n \n \n \n \n \n );\n};\n","import { styled } from '@volkswagen-onehub/components-core';\nimport React, { useEffect, useState } from 'react';\nimport { useSelector, useStore } from 'react-redux';\nimport { RenderController } from 'src/feature-app/Screen';\nimport { OneFormState, Steps } from 'src/types';\nimport { useOneFormContext } from '.';\nimport { useShowOverflow } from 'src/feature-app/hooks';\n\ninterface formControllerWrapperProps {\n screenType: 'layer-screen' | 'full-screen';\n showOverflow?: boolean;\n}\nconst FormControllerWrapper = styled.div`\n overflow: ${(props)=> props.showOverflow ? 'visible' : 'hidden'};\n width: 100%;\n \n\n @media all and (min-width: 960px) {\n height: 100%;\n }\n`;\ninterface Aprops {\n steps?: Steps[];\n screenType: 'layer-screen' | 'full-screen';\n screenIndex?: number;\n showPreviousStep?: boolean;\n}\n\n\n\nexport function FormController(props: Aprops) {\n const { screenType } = props;\n const { formInfo } = useSelector((state: OneFormState) => state);\n const { step, steps, screenIndex } = formInfo;\n const [selectedStep, setSelectedStep] = useState(null);\n const store = useStore();\n const { showPreviousStep } = useOneFormContext();\n \n\n useEffect(() => {\n if (steps && step) {\n const { steps, step }: { steps: Steps[]; step: Steps } = store.getState().formInfo;\n const newStep = steps.find((newstep) => newstep.screenIndex === step.screenIndex);\n if (newStep && (!selectedStep || newStep.screenIndex !== selectedStep.screenIndex)) {\n setSelectedStep(newStep);\n }\n }\n }, [steps, step]);\n\n //Si se necesita que el overflow sea visible. \n\n const { showOverflow } = useShowOverflow(formInfo.notALayer, selectedStep);\n\n return selectedStep ? (\n \n {selectedStep.multiStep && selectedStep.component ? (\n selectedStep.component\n ) : (\n \n )}\n \n ) : null;\n}\n","import dayjs from 'dayjs';\nimport 'dayjs/locale/es';\nimport utc from 'dayjs/plugin/utc';\nimport timezone from 'dayjs/plugin/timezone';\ndayjs.extend(utc);\ndayjs.extend(timezone);\nimport isSameOrBefore from 'dayjs/plugin/isSameOrBefore';\nimport isBetween from 'dayjs/plugin/isBetween';\nimport advancedFormat from 'dayjs/plugin/advancedFormat';\nimport 'dayjs/locale/es';\nimport customParseFormat from 'dayjs/plugin/customParseFormat';\ndayjs.extend(customParseFormat);\ndayjs.extend(advancedFormat);\ndayjs.extend(isSameOrBefore);\ndayjs.extend(isBetween);\n/**\n * viernes, 13-12:00\n * @param ms\n */\nexport const weekDay_Day_Hour = (ms?: number) => {\n if (ms) {\n return dayjs.tz(ms, 'Europe/Madrid').locale('es').format('dddd, DD-HH:mm');\n } else {\n return dayjs.tz(new Date(), 'Europe/Madrid').locale('es').format('dddd, DD-HH:mm');\n }\n};\n\n/**\n * 12:00\n * @param ms\n */\nexport const hourAndMinute = (ms?: number) => {\n if (ms) {\n return dayjs.tz(ms, 'Europe/Madrid').locale('es').format('HH:mm');\n } else {\n return dayjs.tz(new Date(), 'Europe/Madrid').locale('es').format('HH:mm');\n }\n};\n\n/**\n * lunes 16,noviembre-10:00\n * @param ms\n */\nexport const weekDay_DayNumber_Month_Hour = (ms?: number) => {\n if (ms) {\n return dayjs.tz(ms, 'Europe/Madrid').locale('es').format('dddd DD,MMMM-HH:mm');\n } else {\n return dayjs.tz(new Date(), 'Europe/Madrid').locale('es').format('dddd DD,MMMM-HH:mm');\n }\n};\n\n/**\n * martes 10,noviembre\n * @param ms\n*/\nexport const weekDay_DayNumber_Month = (ms?: number) => {\n if (ms) {\n return dayjs(ms).locale('es').utc().format('dddd DD,MMMM');\n } else {\n return dayjs().locale('es').utc().format('dddd DD,MMMM');\n }\n};\n/**\n * martes 10 de Noviembre\n * @param ms\n*/\nexport const weekDay_DayNumber_De_Month = (ms?: number) => {\n if (ms) {\n return dayjs(ms).locale('es').utc().format('dddd DD [de] MMMM').toLowerCase();\n } else {\n return dayjs().locale('es').utc().format('dddd DD [de] MMMM').toLowerCase();\n }\n};\n/**\n * martes 10,noviembre\n\n * @param ms\n */\nexport const year_MonthNumber_DayNumber = (ms?: number) => {\n if (ms) {\n return dayjs(ms).locale('es').utc().format('YYYY-MM-DD');\n } else {\n return dayjs().locale('es').utc().format('YYYY-MM-DD');\n }\n};\n\n/**\n * 2020-2-2 -> 2020-02-02\n * @param ms\n */\nexport const getYYYYMMDD = (d: string) => dayjs(d, 'YYYY-M-D').format('YYYY-MM-DD');\nexport const getYYYYMMDDx = (ms: number) => dayjs(ms).locale('es').utc().format('YYYY-MM-DD');\n\nexport const getActualDay = () => dayjs().locale('es').format('D');\nexport const getActualMonth = () => dayjs().locale('es').format('MMMM');\nexport const getNextActualMonth = () => dayjs().locale('es').add(1, 'month').format('MMMM');\nexport const getPreviousActualMonth = () => dayjs().locale('es').subtract(1, 'month').format('MMMM');\nexport const getActualMonthNumber = () => dayjs().locale('es').format('M');\nexport const getActualYearNumber = () => dayjs().locale('es').format('YYYY');\nexport const getToday = () => dayjs(new Date());\n","import React from 'react';\nimport { ScreenController, TriggerProps, useFaContent } from 'src/feature-app';\nimport { TestIDController } from 'src/forms/FormsAdhoc/TestID2023/TestIDController';\n\nexport function TestIDTrigger(props: TriggerProps) {\n\n\n return (\n }\n closeLayerCallback={close}\n handleAreYouSureLayer={() => null}\n notALayer={true}\n formType = 'inPage'\n />\n );\n}\n","import React from 'react';\nimport { FeatureAppConfig } from 'src/feature-app';\nimport {\n BajaComunicacionesTrigger, CallMeEmbeddedTrigger, CitaPosventaDealerTrigger, CitaPosventaEmbeddedTrigger, CitaPosventaTrigger, DiaDeLaMadreTrigger, EmpresasTrigger, EncuestasTrigger, EurocopaTrigger,\n FidelizacionTrigger, GlobalStyle, LeadDealerTrigger, LeadEmbededTrigger, LeadInPageTrigger, LeadTrigger, MGMTrigger,\n NavidadTrigger, NewsletterTrigger, ProspectEmbeddedTrigger, ProspectPosventaEmbedded, ProspectsTrigger,\n RaceTrigger, SACTrigger, WidgetTrigger, SuvperheroesTrigger, AutosubmitTrigger, ConcursoRodajeTrigger, PlanIdealTrigger\n} from 'src/triggers';\nimport { TestIDTrigger } from 'src/triggers/TestIDTrigger';\n\nexport interface TriggerProps {\n setCTALabel?: React.Dispatch>;\n setSelectedFocusJourney?: React.Dispatch>;\n selectedFocusJourney?: JSX.Element;\n setSelectedJourney?: (selectedJourney: JSX.Element, skipTrackButtonClick?: boolean) => void;\n}\n\nexport const getTrigger = (\n config: FeatureAppConfig,\n setSelectedJourney: (selectedJourney: JSX.Element, skipTrackButtonClick?: boolean) => void,\n setCTALabel: React.Dispatch>,\n selectedJourney: JSX.Element,\n setSelectedFocusJourney: React.Dispatch>,\n selectedFocusJourney: JSX.Element,\n triggerLoaded: React.MutableRefObject\n): JSX.Element => {\n if (!config.trigger) {\n throw new Error('No trigger in Feature App Config.');\n }\n\n switch (config.trigger) {\n case 'cita-posventa':\n case 'cita-posventa-tile-grid':\n case 'cita-posventa-tile':\n triggerLoaded.current = config.trigger;\n return (\n \n );\n case 'cita-posventa-embedded':\n triggerLoaded.current = 'cita-posventa-embedded';\n return ;\n case 'prospect-posventa-embedded':\n triggerLoaded.current = 'prospect-posventa-embed';\n return ;\n case 'cita-posventa-dealer':\n triggerLoaded.current = 'cita-posventa-dealer';\n return ;\n case 'lead':\n triggerLoaded.current = 'lead';\n return ;\n case 'lead-embedded':\n triggerLoaded.current = 'lead-embedded';\n return ;\n case 'callme-embedded':\n triggerLoaded.current = 'callme-embedded';\n return ;\n case 'lead-dealer':\n triggerLoaded.current = 'lead-dealer';\n return ;\n case 'race':\n triggerLoaded.current = 'race';\n return ;\n case 'newsletter':\n triggerLoaded.current = 'newsletter';\n return ;\n case 'empresas':\n triggerLoaded.current = 'empresas';\n return ;\n case 'mgm':\n triggerLoaded.current = 'mgm';\n return ;\n case 'sac':\n triggerLoaded.current = 'sac';\n return ;\n case 'adhoc-2021-diamadre':\n triggerLoaded.current = 'adhoc-2021-diamadre';\n return ;\n case 'adhoc-2021-eurocopa':\n triggerLoaded.current = 'adhoc-2021-eurocopa';\n return ;\n case 'adhoc-2021-navidad':\n triggerLoaded.current = 'adhoc-2021-navidad';\n return ;\n case 'adhoc-2021-fidelizacion_clientes':\n triggerLoaded.current = 'adhoc-2021-fidelizacion';\n return ;\n case 'adhoc-2023-test_id':\n triggerLoaded.current = 'adhoc-2023-test_id';\n return ;\n case 'adhoc-suvperheroes':\n triggerLoaded.current = 'adhoc-suvperheroes';\n return ;\n case 'prospect':\n triggerLoaded.current = 'prospect';\n return ;\n case 'prospect-embedded':\n triggerLoaded.current = 'prospect-embedded';\n return ;\n case 'widget':\n triggerLoaded.current = 'widget';\n return ;\n case 'baja-comunicaciones':\n triggerLoaded.current = 'baja-comunicaciones';\n return ;\n case 'encuestas':\n triggerLoaded.current = 'encuestas';\n return ;\n case 'lead-inpage':\n triggerLoaded.current = 'lead-inpage';\n return ;\n case 'autosubmit':\n triggerLoaded.current = 'autosubmit';\n return ;\n case 'adhoc-2023-concurso_rodaje':\n triggerLoaded.current = 'adhoc-2023-concurso_rodaje';\n return ;\n case 'adhoc-2023-plan_ideal':\n triggerLoaded.current = 'adhoc-2023-plan_ideal';\n return ;\n /*\n case 'adhoc-lanzamiento-taigo':\n triggerLoaded.current = 'adhoc-lanzamiento-taigo';\n return (\n <>\n \n \n \n );\n */\n default:\n throw new Error('The config trigger defined in CMS doesn\\'t match with any trigger in One Form');\n }\n};\n","// Funciones que se usan de lodash, se han exportado aquí para evitar que reducir el tamaño del bundle final de la aplicación.\n\nconst toString = Object.prototype.toString;\n\nfunction getTag(value) {\n if (value == null) {\n return value === undefined ? '[object Undefined]' : '[object Null]';\n }\n return toString.call(value);\n}\n\nfunction isObjectLike(value) {\n return typeof value === 'object' && value !== null;\n}\n\nexport function isNumber(value) {\n return typeof value === 'number' || (isObjectLike(value) && getTag(value) == '[object Number]');\n}\n\nexport const isNull = (value: any) => value === null;\n\n/** Detect free variable `global` from Node.js. */\nconst freeGlobal = typeof global === 'object' && global !== null && global.Object === Object && global;\n\nconst freeGlobalThis =\n typeof globalThis === 'object' && globalThis !== null && globalThis.Object == Object && globalThis;\n\n/** Detect free variable `self`. */\nconst freeSelf = typeof self === 'object' && self !== null && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nconst root = freeGlobalThis || freeGlobal || freeSelf || Function('return this')();\n\nfunction isObject(value) {\n const type = typeof value;\n return value != null && (type === 'object' || type === 'function');\n}\n\nexport function debounce(func, wait, options) {\n let lastArgs, lastThis, maxWait, result, timerId, lastCallTime;\n\n let lastInvokeTime = 0;\n let leading = false;\n let maxing = false;\n let trailing = true;\n\n // Bypass `requestAnimationFrame` by explicitly setting `wait=0`.\n const useRAF = !wait && wait !== 0 && typeof root.requestAnimationFrame === 'function';\n\n if (typeof func !== 'function') {\n throw new TypeError('Expected a function');\n }\n wait = +wait || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? Math.max(+options.maxWait || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n const args = lastArgs;\n const thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function startTimer(pendingFunc, wait) {\n if (useRAF) {\n root.cancelAnimationFrame(timerId);\n return root.requestAnimationFrame(pendingFunc);\n }\n return setTimeout(pendingFunc, wait);\n }\n\n function cancelTimer(id) {\n if (useRAF) {\n return root.cancelAnimationFrame(id);\n }\n clearTimeout(id);\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = startTimer(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n const timeSinceLastCall = time - lastCallTime;\n const timeSinceLastInvoke = time - lastInvokeTime;\n const timeWaiting = wait - timeSinceLastCall;\n\n return maxing ? Math.min(timeWaiting, maxWait - timeSinceLastInvoke) : timeWaiting;\n }\n\n function shouldInvoke(time) {\n const timeSinceLastCall = time - lastCallTime;\n const timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (\n lastCallTime === undefined ||\n timeSinceLastCall >= wait ||\n timeSinceLastCall < 0 ||\n (maxing && timeSinceLastInvoke >= maxWait)\n );\n }\n\n function timerExpired() {\n const time = Date.now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = startTimer(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n cancelTimer(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(Date.now());\n }\n\n function pending() {\n return timerId !== undefined;\n }\n\n function debounced(...args) {\n const time = Date.now();\n const isInvoking = shouldInvoke(time);\n\n lastArgs = args;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n timerId = startTimer(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = startTimer(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n debounced.pending = pending;\n return debounced;\n}\n","export const setObjectValues = (obj: object, callback: (name: string, value: any) => void) => {\n const values = Object.entries(obj);\n\n values.forEach(([key, value]) => {\n callback(key, value);\n });\n};\n","\nexport const isHighRating = (rating: string) => Number(rating) !== 0 && (Number(rating) > 3);\nexport const isLowRating = (rating: string) => Number(rating) !== 0 && Number(rating) <= 3;\nexport const isNoRating = (rating: string) => rating === 'Sin respuesta';\n\nexport const allHighRatings = (ratings: [...any]) => {\n for (let rating of ratings) {\n if (Number(rating) <= 3 || rating == 'Sin respuesta') {\n return false;\n }\n }\n return true;\n};\n\nexport const allLowRatings = (ratings: [...any]) => {\n for (let rating of ratings) {\n if (Number(rating) > 3 || rating == 'Sin respuesta') {\n return false;\n }\n }\n return true;\n};\n\nexport const allNoRatings = (ratings: [...any]) => {\n for (let rating of ratings) {\n if (rating != 'Sin respuesta') {\n return false;\n }\n }\n return true;\n};\n\nexport const allHighOrNoRatings = (ratings: [...any]) => {\n for (let rating of ratings) {\n if (Number(rating) <= 3) {\n return false;\n }\n }\n return true;\n};","import {\n CarlineBase,\n DealersData,\n DealersOrInstallationsMode,\n Installation,\n Offer,\n Points,\n RankedPreconfiguration,\n SalesGroupInfo,\n} from 'src/types';\n\nexport const SET_DEALERS = 'SET_DEALERS';\nexport const SET_POINTS = 'SET_POINTS';\nexport const SET_SELECTED_DEALER = 'SET_SELECTED_DEALER';\nexport const SET_FAVOURITE_DEALER = 'SET_FAVOURITE_DEALER';\nexport const SET_SELECTED_INSTALLATION = 'SET_SELECTED_INSTALLATION';\nexport const SET_INSTALLATIONS = 'SET_INSTALLATIONS';\nexport const DEALERS_OR_INSTALLATIONS_MODE = 'DEALERS_OR_INSTALLATIONS_MODE';\nexport const SET_CARLINES = 'SET_CARLINES';\nexport const SET_SELECTED_CARLINE = 'SET_SELECTED_CARLINE';\nexport const SET_OFERTA = 'SET_OFERTA';\nexport const SET_SALESGROUP = 'SET_SALESGROUP';\nexport const SET_URL_DEALER = 'SET_URL_DEALER';\nexport const SET_MATCH = 'SET_MATCH';\nexport const SET_CITA_CARLINES = 'SET_CITA_CARLINES';\n\ninterface SetDealersAction {\n type: typeof SET_DEALERS;\n payload: DealersData[];\n}\ninterface SetPointsAction {\n type: typeof SET_POINTS;\n payload: Points[];\n}\n\ninterface SetSelectedDealerAction {\n type: typeof SET_SELECTED_DEALER;\n payload: DealersData;\n}\ninterface SetUrlDealerAction {\n type: typeof SET_URL_DEALER;\n payload: DealersData;\n}\ninterface SetFavouriteDealerAction {\n type: typeof SET_FAVOURITE_DEALER;\n payload: DealersData;\n}\ninterface SetSelectedInstallationAction {\n type: typeof SET_SELECTED_INSTALLATION;\n payload: Installation;\n}\ninterface SetInstallationsAction {\n type: typeof SET_INSTALLATIONS;\n payload: Installation[];\n}\ninterface SetDealersOrInstallationModeAction {\n type: typeof DEALERS_OR_INSTALLATIONS_MODE;\n payload: DealersOrInstallationsMode;\n}\ninterface SetCarlinesAction {\n type: typeof SET_CARLINES;\n payload: CarlineBase[];\n}\ninterface SetCitaCarlinesAction {\n type: typeof SET_CITA_CARLINES;\n payload: CarlineBase[];\n}\ninterface SetSelectedCarlineAction {\n type: typeof SET_SELECTED_CARLINE;\n payload: CarlineBase;\n}\ninterface SetMatchAction {\n type: typeof SET_MATCH;\n payload: RankedPreconfiguration;\n}\n\ninterface SetOfertaAction {\n type: typeof SET_OFERTA;\n payload: Offer;\n}\n\ninterface SetSalesGroupAction {\n type: typeof SET_SALESGROUP;\n payload: SalesGroupInfo;\n}\n\nexport type DealersActionTypes =\n | SetFavouriteDealerAction\n | SetUrlDealerAction\n | SetCarlinesAction\n | SetDealersAction\n | SetDealersOrInstallationModeAction\n | SetInstallationsAction\n | SetMatchAction\n | SetOfertaAction\n | SetPointsAction\n | SetSalesGroupAction\n | SetSelectedCarlineAction\n | SetCitaCarlinesAction\n | SetSelectedDealerAction\n | SetSelectedInstallationAction;\n","import { DealersInfo } from 'src/types';\nimport { dealersInfo } from './';\nimport {\n DealersActionTypes,\n DEALERS_OR_INSTALLATIONS_MODE,\n SET_CARLINES,\n SET_CITA_CARLINES,\n SET_DEALERS,\n SET_INSTALLATIONS,\n SET_OFERTA,\n SET_FAVOURITE_DEALER,\n SET_POINTS,\n SET_SALESGROUP,\n SET_SELECTED_CARLINE,\n SET_SELECTED_DEALER,\n SET_SELECTED_INSTALLATION,\n SET_URL_DEALER,\n SET_MATCH,\n} from './dealers-types';\nimport { OneFormActionTypes, RESET_STATE } from './types';\n\nexport function dealersReducer(state: DealersInfo = null, action: OneFormActionTypes | DealersActionTypes): any {\n switch (action.type) {\n // case RESET_STATE:\n // return { ...dealersInfo };\n case SET_DEALERS:\n return {\n ...state,\n dealers: [...action.payload],\n };\n case SET_INSTALLATIONS:\n return {\n ...state,\n installations: [...action.payload],\n };\n case SET_POINTS:\n return {\n ...state,\n points: [...action.payload],\n };\n case SET_CARLINES:\n return {\n ...state,\n carlines: [...action.payload],\n };\n case SET_CITA_CARLINES:\n return {\n ...state,\n citaCarlines: [...action.payload],\n };\n case SET_SELECTED_CARLINE:\n return {\n ...state,\n selectedCarline: action.payload,\n };\n case SET_SELECTED_DEALER:\n return {\n ...state,\n selectedDealer: action.payload,\n };\n case SET_URL_DEALER:\n return {\n ...state,\n urlDealer: action.payload,\n };\n case SET_FAVOURITE_DEALER:\n return {\n ...state,\n favouriteDealer: action.payload,\n };\n case DEALERS_OR_INSTALLATIONS_MODE:\n return {\n ...state,\n dealersOrInstallationsMode: action.payload,\n };\n case SET_SELECTED_INSTALLATION:\n return {\n ...state,\n selectedInstallation: action.payload,\n };\n case SET_OFERTA:\n return {\n ...state,\n oferta: action.payload,\n };\n case SET_MATCH:\n return {\n ...state,\n match: action.payload,\n };\n case SET_SALESGROUP:\n return {\n ...state,\n salesGroup: action.payload,\n };\n default:\n return state;\n }\n}\n","export const RESET_STATE = 'RESET_STATE';\n\ninterface ResetStateAction {\n type: typeof RESET_STATE;\n}\n\nexport type OneFormActionTypes = ResetStateAction;\n","export const UPDATE_VEHICLES = 'UPDATE_VEHICLES';\n\ninterface UpdateVehicles {\n type: typeof UPDATE_VEHICLES;\n payload: [];\n}\n\nexport type VehiclesInfoActionTypes = UpdateVehicles;\n","import { vehiclesInfo } from '.';\nimport { VehiclesInfo } from 'src/types';\nimport { OneFormActionTypes, RESET_STATE } from './types';\nimport { VehiclesInfoActionTypes, UPDATE_VEHICLES } from './vehicles-types';\n\nexport function vehiclesReducer(state: VehiclesInfo = null, action: OneFormActionTypes | VehiclesInfoActionTypes): any {\n\tswitch (action.type) {\n\t\tcase RESET_STATE:\n\t\t\treturn { ...vehiclesInfo };\n\t\tcase UPDATE_VEHICLES:\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\t...action.payload,\n\t\t\t};\n\t\tdefault:\n\t\t\treturn state;\n\t}\n}\n","export const UPDATE_FORM = 'UPDATE_FORM';\nexport const UPDATE_FIELDS = 'UPDATE_FIELDS';\n\ninterface UpdateFormAction {\n type: typeof UPDATE_FORM;\n payload: any;\n}\n\ninterface UpdateFieldsAction {\n type: typeof UPDATE_FIELDS;\n payload: any;\n}\n\nexport type FormDataActionTypes = UpdateFieldsAction | UpdateFormAction;\n","import { formData } from './';\nimport { FormDataGroup } from 'src/types';\nimport { OneFormActionTypes, RESET_STATE } from './types';\nimport { FormDataActionTypes, UPDATE_FIELDS, UPDATE_FORM } from './form-data-types';\n\nexport function formDataReducer(state: FormDataGroup = null, action: OneFormActionTypes | FormDataActionTypes): any {\n switch (action.type) {\n case RESET_STATE:\n return { ...formData };\n case UPDATE_FORM:\n return {\n fields: { ...state.fields, ...action.payload.fields },\n headers: { ...state.headers, ...action.payload.headers },\n flags: { ...state.flags, ...action.payload.flags },\n };\n case UPDATE_FIELDS:\n return {\n ...state,\n fields: { ...state.fields, ...action.payload },\n };\n default:\n return state;\n }\n}\n","import { Center, FormInfo, Geometry, Steps } from 'src/types';\nimport { Suggestion } from '../NewMap';\n\nexport const RESET_FORM_INFO = 'RESET_FORM_INFO';\nexport const SEND_FORM = 'SEND_FORM';\nexport const SET_FORM_INFO = 'SET_FORM_INFO';\nexport const SET_FORM_RESPONSE = 'SET_FORM_RESPONSE';\nexport const HIDE_LEGAL = 'HIDE_LEGAL';\nexport const SET_CUSTOM_LEGAL = 'SET_CUSTOM_LEGAL';\nexport const SET_SHOW_CALENDAR_ON_LOAD = 'SET_SHOW_CALENDAR_ON_LOAD';\nexport const SET_DELETE_CLOSE_AND_PREVIOUS = 'SET_DELETE_CLOSE_AND_PREVIOUS';\nexport const SET_FORM_SUBMITTED = 'SET_FORM_SUBMITTED';\nexport const UPDATE_LITERAL_FIELDS_STEPS = 'UPDATE_LITERAL_FIELDS_STEPS';\nexport const SET_INITIAL_STEPS = 'SET_INITIAL_STEPS';\nexport const SET_MOLECULAR_SERVICE_CONFIG = 'SET_MOLECULAR_SERVICE_CONFIG';\nexport const SET_NUMBER_OF_SCREENS = 'SET_NUMBER_OF_SCREENS';\nexport const SET_SEND_DMS_FAILED = 'SET_SEND_DMS_FAILED';\nexport const SET_STEPS_HISTORY = 'SET_STEPS_HISTORY';\nexport const SET_NAVIGATION_MOVING_FORWARD = 'SET_NAVIGATION_MOVING_FORWARD';\nexport const SHOW_FINAL_SCREEN = 'SHOW_FINAL_SCREEN';\nexport const SUGGESTION_IS_DEALER = 'SUGGESTION_IS_DEALER';\nexport const SUGGESTION_IS_ADDRESS = 'SUGGESTION_IS_ADDRESS';\nexport const SUGGESTION_IS_IN_CANARY_ISLANDS = 'SUGGESTION_IS_IN_CANARY_ISLANDS';\nexport const TRIGGER_EXIT_ANIMATION = 'TRIGGER_EXIT_ANIMATION';\nexport const UPDATE_FIRST_MAP_LOAD = 'UPDATE_FIRST_MAP_LOAD';\nexport const UPDATE_FORM_ENDED = 'UPDATE_FORM_ENDED';\nexport const UPDATE_FULLSCREEN = 'UPDATE_FULLSCREEN';\nexport const UPDATE_GENERIC_ERROR = 'UPDATE_GENERIC_ERROR';\nexport const UPDATE_GEOMETRY = 'UPDATE_GEOMETRY';\nexport const DISABLE_TRACKING = 'DISABLE_TRACKING';\nexport const UPDATE_INITIAL_ZOOM = 'UPDATE_INITIAL_ZOOM';\nexport const UPDATE_LAST_STEP = 'UPDATE_LAST_STEP';\nexport const UPDATE_MULTISTEP_SCREENINDEX = 'UPDATE_MULTISTEP_SCREENINDEX';\nexport const UPDATE_MULTISTEPS = 'UPDATE_MULTISTEPS';\nexport const UPDATE_NEXT_STEP = 'UPDATE_NEXT_STEP';\nexport const UPDATE_SCREEN = 'UPDATE_SCREEN';\nexport const UPDATE_SEND_FORM = 'UPDATE_SEND_FORM';\nexport const UPDATE_STEP = 'UPDATE_STEP';\nexport const UPDATE_STEPS = 'UPDATE_STEPS';\nexport const UPDATE_STEPS_HISTORY = 'UPDATE_STEPS_HISTORY';\nexport const UPDATE_SUGGESTION = 'UPDATE_SUGGESTION';\nexport const UPDATE_USER_CENTER = 'UPDATE_USER_CENTER';\nexport const UPDATE_USER_GEOLOCATION = 'UPDATE_USER_GEOLOCATION';\nexport const UPDATE_WAIT_FOR_NEXT_STEP = 'UPDATE_WAIT_FOR_NEXT_STEP';\n\ninterface SetFormInfoAction {\n type: typeof SET_FORM_INFO;\n payload: Partial;\n}\ninterface SetFormResponseAction {\n type: typeof SET_FORM_RESPONSE;\n payload: any;\n}\ninterface SetFormSubmittedAction {\n type: typeof SET_FORM_SUBMITTED;\n payload: boolean;\n}\ninterface UpdateLiteralFieldsSteps {\n type: typeof UPDATE_LITERAL_FIELDS_STEPS;\n payload: [];\n}\ninterface SetStepsHistoryAction {\n type: typeof SET_STEPS_HISTORY;\n payload: number[];\n}\ninterface SetShowCalendarAction {\n type: typeof SET_SHOW_CALENDAR_ON_LOAD;\n payload: boolean;\n}\n\ninterface DeleteCloseAndPrevious {\n type: typeof SET_DELETE_CLOSE_AND_PREVIOUS;\n payload: boolean;\n}\ninterface SetCustomLegalAction {\n type: typeof SET_CUSTOM_LEGAL;\n payload: JSX.Element;\n}\ninterface HideLegalAction {\n type: typeof HIDE_LEGAL;\n payload: boolean;\n}\ninterface SetInitialStepsAction {\n type: typeof SET_INITIAL_STEPS;\n payload: Steps[];\n}\ninterface SetNavigationMovingForwardAction {\n type: typeof SET_NAVIGATION_MOVING_FORWARD;\n payload: boolean;\n}\ninterface SetSendDmsFailedAction {\n type: typeof SET_SEND_DMS_FAILED;\n payload: boolean;\n}\ninterface SendFormAction {\n type: typeof SEND_FORM;\n payload: any;\n}\n\ninterface ResetFormInfoAction {\n type: typeof RESET_FORM_INFO;\n}\ninterface UpdateScreenAction {\n type: typeof UPDATE_SCREEN;\n payload: number;\n}\n\ninterface UpdateStepsHistoryAction {\n type: typeof UPDATE_STEPS_HISTORY;\n payload: number;\n}\ninterface UpdateInitialZoomAction {\n type: typeof UPDATE_INITIAL_ZOOM;\n payload: number;\n}\ninterface UpdateStepAction {\n type: typeof UPDATE_STEP;\n payload: Steps;\n}\ninterface UpdateLastStepAction {\n type: typeof UPDATE_LAST_STEP;\n payload: Steps;\n}\ninterface UpdateStepsAction {\n type: typeof UPDATE_STEPS;\n payload: Steps[];\n}\ninterface UpdateGenericErrorAction {\n type: typeof UPDATE_GENERIC_ERROR;\n payload: boolean;\n}\ninterface UpdateWaitForNextStepAction {\n type: typeof UPDATE_WAIT_FOR_NEXT_STEP;\n payload: boolean;\n}\n\ninterface TriggerExitAnimationAction {\n type: typeof TRIGGER_EXIT_ANIMATION;\n payload: boolean;\n}\n\ninterface UpdateFirstMapLoadAction {\n type: typeof UPDATE_FIRST_MAP_LOAD;\n payload: boolean;\n}\ninterface UpdateNextStepAction {\n type: typeof UPDATE_NEXT_STEP;\n payload: () => number;\n}\n\ninterface UpdateSendFormAction {\n type: typeof UPDATE_SEND_FORM;\n payload: () => boolean;\n}\n\ninterface ShowFinalScreenAction {\n type: typeof SHOW_FINAL_SCREEN;\n payload: boolean;\n}\n\ninterface SetNumberOfScreensAction {\n type: typeof SET_NUMBER_OF_SCREENS;\n payload: number;\n}\n\ninterface UpdateFullscreenAction {\n type: typeof UPDATE_FULLSCREEN;\n payload: boolean;\n}\ninterface UpdateMultiStepsAction {\n type: typeof UPDATE_MULTISTEPS;\n payload: Steps[];\n}\ninterface UpdateMultiScreenIndexAction {\n type: typeof UPDATE_MULTISTEP_SCREENINDEX;\n payload: number;\n}\n\ninterface UpdateUserCenterAction {\n type: typeof UPDATE_USER_CENTER;\n payload: Center;\n}\n\ninterface UpdateSuggestionIsDealer {\n type: typeof SUGGESTION_IS_DEALER;\n payload: boolean;\n}\ninterface UpdateSuggestionIsInCanaryIslands {\n type: typeof SUGGESTION_IS_IN_CANARY_ISLANDS;\n payload: boolean;\n}\ninterface UpdateSuggestionIsAddress {\n type: typeof SUGGESTION_IS_ADDRESS;\n payload: boolean;\n}\ninterface UpdateSuggestion {\n type: typeof UPDATE_SUGGESTION;\n payload: Suggestion;\n}\ninterface UpdateUserGeolocation {\n type: typeof UPDATE_USER_GEOLOCATION;\n payload: Suggestion;\n}\n\ninterface UpdateFormEnded {\n type: typeof UPDATE_FORM_ENDED;\n payload: boolean;\n}\n\ninterface UpdateGeometryAction {\n type: typeof UPDATE_GEOMETRY;\n payload: Geometry;\n}\ninterface DisableTrackingAction {\n type: typeof DISABLE_TRACKING;\n}\n\nexport type FormInfoActionTypes =\n | SetInitialStepsAction\n | ResetFormInfoAction\n | SendFormAction\n | SetCustomLegalAction\n | SetShowCalendarAction\n | DeleteCloseAndPrevious\n | HideLegalAction\n | SetFormInfoAction\n | SetFormResponseAction\n | SetFormSubmittedAction\n | UpdateLiteralFieldsSteps\n | SetNavigationMovingForwardAction\n | SetNumberOfScreensAction\n | SetSendDmsFailedAction\n | SetStepsHistoryAction\n | ShowFinalScreenAction\n | TriggerExitAnimationAction\n | UpdateFirstMapLoadAction\n | UpdateFormEnded\n | UpdateFullscreenAction\n | UpdateGenericErrorAction\n | UpdateGeometryAction\n | UpdateInitialZoomAction\n | UpdateLastStepAction\n | UpdateMultiScreenIndexAction\n | UpdateMultiStepsAction\n | UpdateNextStepAction\n | UpdateScreenAction\n | UpdateSendFormAction\n | UpdateStepAction\n | UpdateStepsAction\n | UpdateStepsAction\n | UpdateStepsHistoryAction\n | UpdateSuggestion\n | UpdateSuggestionIsAddress\n | UpdateSuggestionIsDealer\n | UpdateSuggestionIsInCanaryIslands\n | UpdateUserCenterAction\n | UpdateUserGeolocation\n | DisableTrackingAction\n | UpdateWaitForNextStepAction;\n","import { FormInfo } from 'src/types';\nimport { formInfoInitialState } from './';\nimport { OneFormActionTypes, RESET_STATE } from './types';\nimport {\n FormInfoActionTypes,\n SET_FORM_INFO,\n SET_FORM_RESPONSE,\n SET_INITIAL_STEPS,\n SET_FORM_SUBMITTED,\n UPDATE_LITERAL_FIELDS_STEPS,\n SET_SHOW_CALENDAR_ON_LOAD,\n SET_DELETE_CLOSE_AND_PREVIOUS,\n SET_NUMBER_OF_SCREENS,\n SET_SEND_DMS_FAILED,\n SET_STEPS_HISTORY,\n SHOW_FINAL_SCREEN,\n SET_NAVIGATION_MOVING_FORWARD,\n SUGGESTION_IS_DEALER,\n SUGGESTION_IS_IN_CANARY_ISLANDS,\n TRIGGER_EXIT_ANIMATION,\n UPDATE_FIRST_MAP_LOAD,\n UPDATE_FORM_ENDED,\n UPDATE_FULLSCREEN,\n UPDATE_GENERIC_ERROR,\n UPDATE_GEOMETRY,\n DISABLE_TRACKING,\n UPDATE_INITIAL_ZOOM,\n UPDATE_LAST_STEP,\n UPDATE_MULTISTEP_SCREENINDEX,\n UPDATE_MULTISTEPS,\n UPDATE_NEXT_STEP,\n UPDATE_SCREEN,\n UPDATE_SEND_FORM,\n UPDATE_STEP,\n UPDATE_STEPS_HISTORY,\n UPDATE_STEPS,\n UPDATE_SUGGESTION,\n SUGGESTION_IS_ADDRESS,\n HIDE_LEGAL,\n SET_CUSTOM_LEGAL,\n UPDATE_USER_CENTER,\n UPDATE_USER_GEOLOCATION,\n UPDATE_WAIT_FOR_NEXT_STEP,\n} from './form-info-types';\n\nexport function formInfoReducer(state: FormInfo = null, action: OneFormActionTypes | FormInfoActionTypes): any {\n switch (action.type) {\n case RESET_STATE:\n return { ...formInfoInitialState };\n case SET_FORM_INFO:\n return { ...state, ...action.payload };\n case SET_FORM_RESPONSE:\n return { ...state, formResponse: action.payload };\n case HIDE_LEGAL:\n return { ...state, hideLegal: action.payload };\n \n case SET_CUSTOM_LEGAL:\n return { ...state, customLegal: action.payload };\n\n case SET_FORM_SUBMITTED:\n return { ...state, formSubmitted: action.payload };\n case UPDATE_SCREEN:\n return {\n ...state,\n screenIndex: action.payload,\n };\n case SET_NAVIGATION_MOVING_FORWARD:\n return {\n ...state,\n navigationMovingForward: action.payload,\n };\n case SET_NUMBER_OF_SCREENS:\n return {\n ...state,\n numberOfScreens: action.payload,\n };\n case SET_STEPS_HISTORY:\n return { ...state, stepsHistory: action.payload };\n case UPDATE_STEPS_HISTORY:\n if (!state.stepsHistory || state.stepsHistory.length === 0) {\n return {\n ...state,\n };\n }\n \n const previousSteps = [...state.stepsHistory];\n const newNumber = action.payload;\n const index = previousSteps.indexOf(newNumber);\n\n if (index === -1) {\n previousSteps.push(newNumber);\n return {\n ...state,\n stepsHistory: previousSteps,\n };\n }\n return {\n ...state,\n };\n case UPDATE_STEP:\n return {\n ...state,\n step: action.payload,\n };\n case UPDATE_LAST_STEP:\n return {\n ...state,\n lastStep: action.payload,\n };\n case UPDATE_STEPS:\n return {\n ...state,\n steps: action.payload,\n };\n case SET_INITIAL_STEPS:\n return {\n ...state,\n initialSteps: action.payload,\n };\n case UPDATE_LITERAL_FIELDS_STEPS:\n return { \n ...state, \n stepsLiteralFields: { ...state.stepsLiteralFields, ...action.payload }\n };\n case SET_SHOW_CALENDAR_ON_LOAD:\n return {\n ...state,\n showCalendarOnLoad: action.payload,\n };\n case SET_DELETE_CLOSE_AND_PREVIOUS:\n return {\n ...state,\n deleteCloseAndPrevious: action.payload,\n };\n case TRIGGER_EXIT_ANIMATION:\n return {\n ...state,\n triggerExitAnimation: action.payload,\n };\n case UPDATE_GENERIC_ERROR:\n return {\n ...state,\n genericError: action.payload,\n };\n case SET_SEND_DMS_FAILED:\n return {\n ...state,\n sendDmsFailed: action.payload,\n };\n case UPDATE_NEXT_STEP:\n return {\n ...state,\n nextStepCallback: action.payload,\n };\n case UPDATE_FIRST_MAP_LOAD:\n return {\n ...state,\n firstMapLoad: action.payload,\n };\n case UPDATE_SEND_FORM:\n return {\n ...state,\n sendFormCallback: action.payload,\n };\n case UPDATE_FULLSCREEN:\n return {\n ...state,\n fullScreen: action.payload,\n };\n case SHOW_FINAL_SCREEN:\n return {\n ...state,\n showFinalScreen: action.payload,\n };\n case UPDATE_MULTISTEPS:\n return {\n ...state,\n multiSteps: action.payload,\n };\n case UPDATE_MULTISTEP_SCREENINDEX:\n return {\n ...state,\n multiStepScreenIndex: action.payload,\n };\n case UPDATE_USER_CENTER:\n return {\n ...state,\n userCenter: action.payload,\n };\n case SUGGESTION_IS_DEALER:\n return {\n ...state,\n suggestionIsDealer: action.payload,\n };\n case SUGGESTION_IS_IN_CANARY_ISLANDS:\n return {\n ...state,\n suggestionIsInCanaryIslands: action.payload,\n };\n case SUGGESTION_IS_ADDRESS:\n return {\n ...state,\n suggestionIsAddress: action.payload,\n };\n case UPDATE_SUGGESTION:\n return {\n ...state,\n userSuggestion: action.payload,\n };\n case UPDATE_USER_GEOLOCATION:\n return {\n ...state,\n userGeoLocation: action.payload,\n };\n case UPDATE_WAIT_FOR_NEXT_STEP:\n return {\n ...state,\n waitForNextStep: action.payload,\n };\n case UPDATE_FORM_ENDED:\n return {\n ...state,\n formEnded: action.payload,\n };\n /** deprecated */\n case UPDATE_INITIAL_ZOOM:\n return {\n ...state,\n initialZoom: action.payload,\n };\n case UPDATE_GEOMETRY:\n return {\n ...state,\n geometry: action.payload,\n };\n case DISABLE_TRACKING:\n return {\n ...state,\n trackingIsDisabled: true\n };\n\n default:\n return state;\n }\n}\n","import { combineReducers } from 'redux';\nimport { VehiclesInfo, DealersInfo, FormDataGroup, FormInfo, OneFormState } from 'src/types';\nimport { vehiclesReducer, dealersReducer, formDataReducer, formInfoReducer } from './';\n\nexport const formInfoInitialState: FormInfo = {\n firstMapLoad: true,\n formEnded: false,\n formStarted: false,\n fullScreen: false,\n genericError: false,\n formSubmitted: false,\n multiStepScreenIndex: null,\n numberOfScreens: null,\n screenIndex: null,\n showFinalScreen: false,\n step: null,\n steps: null,\n stepsHistory: null,\n thankYouComponent: null,\n triggerExitAnimation: false,\n userIsAuthenticated: false,\n waitForNextStep: false,\n trackingIsDisabled: false\n};\n\nexport const formData: FormDataGroup = { headers: {}, fields: {} };\nexport const dealersInfo: DealersInfo = {\n dealers: null,\n installations: null,\n selectedCarline: null,\n points: null,\n selectedDealer: null,\n favouriteDealer: null,\n urlDealer: null,\n selectedInstallation: null,\n dealersOrInstallationsMode: null,\n carlines: null,\n oferta: null,\n salesGroup: null,\n match: null,\n citaCarlines: null,\n};\nexport const vehiclesInfo: VehiclesInfo = { \n brands: null, \n models: null, \n brandSelected: null, \n modelSelected: null \n};\n\nexport const initialState: OneFormState = {\n formInfo: formInfoInitialState,\n formData,\n dealersInfo,\n vehiclesInfo,\n};\n\nexport const oneFormReducer = combineReducers({\n formData: formDataReducer,\n formInfo: formInfoReducer,\n dealersInfo: dealersReducer,\n vehiclesInfo: vehiclesReducer,\n});\n","// Cache implementation based on Erik Rasmussen's `lru-memoize`:\n// https://github.com/erikras/lru-memoize\nvar NOT_FOUND = 'NOT_FOUND';\n\nfunction createSingletonCache(equals) {\n var entry;\n return {\n get: function get(key) {\n if (entry && equals(entry.key, key)) {\n return entry.value;\n }\n\n return NOT_FOUND;\n },\n put: function put(key, value) {\n entry = {\n key: key,\n value: value\n };\n },\n getEntries: function getEntries() {\n return entry ? [entry] : [];\n },\n clear: function clear() {\n entry = undefined;\n }\n };\n}\n\nfunction createLruCache(maxSize, equals) {\n var entries = [];\n\n function get(key) {\n var cacheIndex = entries.findIndex(function (entry) {\n return equals(key, entry.key);\n }); // We found a cached entry\n\n if (cacheIndex > -1) {\n var entry = entries[cacheIndex]; // Cached entry not at top of cache, move it to the top\n\n if (cacheIndex > 0) {\n entries.splice(cacheIndex, 1);\n entries.unshift(entry);\n }\n\n return entry.value;\n } // No entry found in cache, return sentinel\n\n\n return NOT_FOUND;\n }\n\n function put(key, value) {\n if (get(key) === NOT_FOUND) {\n // TODO Is unshift slow?\n entries.unshift({\n key: key,\n value: value\n });\n\n if (entries.length > maxSize) {\n entries.pop();\n }\n }\n }\n\n function getEntries() {\n return entries;\n }\n\n function clear() {\n entries = [];\n }\n\n return {\n get: get,\n put: put,\n getEntries: getEntries,\n clear: clear\n };\n}\n\nexport var defaultEqualityCheck = function defaultEqualityCheck(a, b) {\n return a === b;\n};\nexport function createCacheKeyComparator(equalityCheck) {\n return function areArgumentsShallowlyEqual(prev, next) {\n if (prev === null || next === null || prev.length !== next.length) {\n return false;\n } // Do this in a for loop (and not a `forEach` or an `every`) so we can determine equality as fast as possible.\n\n\n var length = prev.length;\n\n for (var i = 0; i < length; i++) {\n if (!equalityCheck(prev[i], next[i])) {\n return false;\n }\n }\n\n return true;\n };\n}\n// defaultMemoize now supports a configurable cache size with LRU behavior,\n// and optional comparison of the result value with existing values\nexport function defaultMemoize(func, equalityCheckOrOptions) {\n var providedOptions = typeof equalityCheckOrOptions === 'object' ? equalityCheckOrOptions : {\n equalityCheck: equalityCheckOrOptions\n };\n var _providedOptions$equa = providedOptions.equalityCheck,\n equalityCheck = _providedOptions$equa === void 0 ? defaultEqualityCheck : _providedOptions$equa,\n _providedOptions$maxS = providedOptions.maxSize,\n maxSize = _providedOptions$maxS === void 0 ? 1 : _providedOptions$maxS,\n resultEqualityCheck = providedOptions.resultEqualityCheck;\n var comparator = createCacheKeyComparator(equalityCheck);\n var cache = maxSize === 1 ? createSingletonCache(comparator) : createLruCache(maxSize, comparator); // we reference arguments instead of spreading them for performance reasons\n\n function memoized() {\n var value = cache.get(arguments);\n\n if (value === NOT_FOUND) {\n // @ts-ignore\n value = func.apply(null, arguments);\n\n if (resultEqualityCheck) {\n var entries = cache.getEntries();\n var matchingEntry = entries.find(function (entry) {\n return resultEqualityCheck(entry.value, value);\n });\n\n if (matchingEntry) {\n value = matchingEntry.value;\n }\n }\n\n cache.put(arguments, value);\n }\n\n return value;\n }\n\n memoized.clearCache = function () {\n return cache.clear();\n };\n\n return memoized;\n}","import { defaultMemoize, defaultEqualityCheck } from './defaultMemoize';\nexport { defaultMemoize, defaultEqualityCheck };\n\nfunction getDependencies(funcs) {\n var dependencies = Array.isArray(funcs[0]) ? funcs[0] : funcs;\n\n if (!dependencies.every(function (dep) {\n return typeof dep === 'function';\n })) {\n var dependencyTypes = dependencies.map(function (dep) {\n return typeof dep === 'function' ? \"function \" + (dep.name || 'unnamed') + \"()\" : typeof dep;\n }).join(', ');\n throw new Error(\"createSelector expects all input-selectors to be functions, but received the following types: [\" + dependencyTypes + \"]\");\n }\n\n return dependencies;\n}\n\nexport function createSelectorCreator(memoize) {\n for (var _len = arguments.length, memoizeOptionsFromArgs = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n memoizeOptionsFromArgs[_key - 1] = arguments[_key];\n }\n\n var createSelector = function createSelector() {\n for (var _len2 = arguments.length, funcs = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n funcs[_key2] = arguments[_key2];\n }\n\n var _recomputations = 0;\n\n var _lastResult; // Due to the intricacies of rest params, we can't do an optional arg after `...funcs`.\n // So, start by declaring the default value here.\n // (And yes, the words 'memoize' and 'options' appear too many times in this next sequence.)\n\n\n var directlyPassedOptions = {\n memoizeOptions: undefined\n }; // Normally, the result func or \"output selector\" is the last arg\n\n var resultFunc = funcs.pop(); // If the result func is actually an _object_, assume it's our options object\n\n if (typeof resultFunc === 'object') {\n directlyPassedOptions = resultFunc; // and pop the real result func off\n\n resultFunc = funcs.pop();\n }\n\n if (typeof resultFunc !== 'function') {\n throw new Error(\"createSelector expects an output function after the inputs, but received: [\" + typeof resultFunc + \"]\");\n } // Determine which set of options we're using. Prefer options passed directly,\n // but fall back to options given to createSelectorCreator.\n\n\n var _directlyPassedOption = directlyPassedOptions,\n _directlyPassedOption2 = _directlyPassedOption.memoizeOptions,\n memoizeOptions = _directlyPassedOption2 === void 0 ? memoizeOptionsFromArgs : _directlyPassedOption2; // Simplifying assumption: it's unlikely that the first options arg of the provided memoizer\n // is an array. In most libs I've looked at, it's an equality function or options object.\n // Based on that, if `memoizeOptions` _is_ an array, we assume it's a full\n // user-provided array of options. Otherwise, it must be just the _first_ arg, and so\n // we wrap it in an array so we can apply it.\n\n var finalMemoizeOptions = Array.isArray(memoizeOptions) ? memoizeOptions : [memoizeOptions];\n var dependencies = getDependencies(funcs);\n var memoizedResultFunc = memoize.apply(void 0, [function recomputationWrapper() {\n _recomputations++; // apply arguments instead of spreading for performance.\n\n return resultFunc.apply(null, arguments);\n }].concat(finalMemoizeOptions)); // If a selector is called with the exact same arguments we don't need to traverse our dependencies again.\n\n var selector = memoize(function dependenciesChecker() {\n var params = [];\n var length = dependencies.length;\n\n for (var i = 0; i < length; i++) {\n // apply arguments instead of spreading and mutate a local list of params for performance.\n // @ts-ignore\n params.push(dependencies[i].apply(null, arguments));\n } // apply arguments instead of spreading for performance.\n\n\n _lastResult = memoizedResultFunc.apply(null, params);\n return _lastResult;\n });\n Object.assign(selector, {\n resultFunc: resultFunc,\n memoizedResultFunc: memoizedResultFunc,\n dependencies: dependencies,\n lastResult: function lastResult() {\n return _lastResult;\n },\n recomputations: function recomputations() {\n return _recomputations;\n },\n resetRecomputations: function resetRecomputations() {\n return _recomputations = 0;\n }\n });\n return selector;\n }; // @ts-ignore\n\n\n return createSelector;\n}\nexport var createSelector = /* #__PURE__ */createSelectorCreator(defaultMemoize);\n// Manual definition of state and output arguments\nexport var createStructuredSelector = function createStructuredSelector(selectors, selectorCreator) {\n if (selectorCreator === void 0) {\n selectorCreator = createSelector;\n }\n\n if (typeof selectors !== 'object') {\n throw new Error('createStructuredSelector expects first argument to be an object ' + (\"where each property is a selector, instead received a \" + typeof selectors));\n }\n\n var objectKeys = Object.keys(selectors);\n var resultSelector = selectorCreator( // @ts-ignore\n objectKeys.map(function (key) {\n return selectors[key];\n }), function () {\n for (var _len3 = arguments.length, values = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n values[_key3] = arguments[_key3];\n }\n\n return values.reduce(function (composition, value, index) {\n composition[objectKeys[index]] = value;\n return composition;\n }, {});\n });\n return resultSelector;\n};","import { OneFormState } from 'src/types';\n\nimport { createSelector } from 'reselect';\n\nconst getPoint = (state: OneFormState) => {\n return state.dealersInfo.points;\n};\n\nexport const getPoints = createSelector(getPoint, (getPoint) => getPoint);\n\nconst getGeometryProperty = (state: OneFormState) => {\n return state.formInfo.geometry;\n};\n\nexport const getGeometry = createSelector(getGeometryProperty, (getGeometryProperty) => getGeometryProperty);\n\nconst getUserSuggestionProperty = (state: OneFormState) => {\n return state.formInfo.userSuggestion;\n};\n\nexport const getUserSuggestion = createSelector(\n getUserSuggestionProperty,\n (getUserSuggestionProperty) => getUserSuggestionProperty\n);\n\nconst getUserGeolocationProperty = (state: OneFormState) => {\n return state.formInfo.userGeoLocation;\n};\n\nexport const getUserGeolocation = createSelector(\n getUserGeolocationProperty,\n (getUserGeolocationProperty) => getUserGeolocationProperty\n);\n","import { FeatureAppEnvironment } from '@feature-hub/core';\nimport { Dependencies } from 'src';\n\nlet featureServicesMirror: Dependencies = null;\nlet featureEnvironmentMirror: FeatureAppEnvironment = null;\n\nexport const saveFeatureServices = (featureServices: Dependencies) => {\n featureServicesMirror = featureServices;\n};\nexport const saveEnvironment = (environment: FeatureAppEnvironment) => {\n featureEnvironmentMirror = environment;\n};\nexport const getFeatureServices = () => featureServicesMirror;\nexport const getEnvironment = () => featureEnvironmentMirror;\nexport const getDataServiceConfig = () => featureServicesMirror['service-config-provider'].configs['es-vwdata'];\nexport const getMolecularCdnServiceConfig = () =>\n featureServicesMirror['service-config-provider'].configs['es-molecular-cdn'];\nexport const getMolecularServiceConfig = () => featureServicesMirror['service-config-provider'].configs['es-molecular'];\nexport const getVicciServiceConfig = () => featureServicesMirror['service-config-provider'].configs['oneapi-vicci'];\nexport const getVicciApiKey = () => featureServicesMirror['api-key-provider'].apiKey;\nexport const getGoogleApiKeyServiceConfig = () =>\n featureServicesMirror['service-config-provider'].configs['es-google-apikey'];\nexport const getOneformBFFCdnServiceConfig = () =>\n featureServicesMirror['service-config-provider'].configs['es-oneform-bff-cdn'];\nexport const getOneformBFFServiceConfig = () => featureServicesMirror['service-config-provider'].configs['es-oneform-bff'];\n","import * as React from 'react';\nimport * as Sentry from '@sentry/react';\nimport { CloseHandleV2 } from '@volkswagen-onehub/layer-manager';\nimport { makeMain } from '@sentry/react';\n\ninterface Props {\n hub: Sentry.Hub;\n close?: CloseHandleV2;\n\n}\nclass ErrorBoundary extends React.Component {\n constructor(props: Props) {\n super(props);\n this.state = { eventId: null };\n }\n\n static getDerivedStateFromError() {\n return { hasError: true };\n }\n\n componentDidCatch(error, errorInfo) {\n /** \n * We make use of the Sentry hub passed in props to report the application\n * error to the intended recipient Sentry project.\n * Note: if Sentry.init was used, it looks like they should get a copy of\n * that error in their Sentry project too (though this behaviour might only\n * be applicable in development, to be confirmed.)\n */\n // Sentry.makeMain(this.props.hub);\n this.props.hub.run(currentHub => {\n currentHub.withScope((scope) => {\n scope.setExtras(errorInfo);\n const eventId = currentHub.captureException(error);\n this.setState({eventId});\n });\n\n });\n if (this.props.close) {\n this.props.close({},{},{});\n }\n\n }\n\n render() {\n if (this.state.hasError) {\n //render fallback UI\n return null;\n }\n\n //when there's not an error, render children untouched\n return this.props.children;\n }\n}\n\nexport default ErrorBoundary;\n","import { Integration, WrappedFunction } from '@sentry/types';\nimport { getOriginalFunction } from '@sentry/utils';\n\nlet originalFunctionToString: () => void;\n\n/** Patch toString calls to return proper name for wrapped functions */\nexport class FunctionToString implements Integration {\n /**\n * @inheritDoc\n */\n public static id: string = 'FunctionToString';\n\n /**\n * @inheritDoc\n */\n public name: string = FunctionToString.id;\n\n /**\n * @inheritDoc\n */\n public setupOnce(): void {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n originalFunctionToString = Function.prototype.toString;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Function.prototype.toString = function (this: WrappedFunction, ...args: any[]): string {\n const context = getOriginalFunction(this) || this;\n return originalFunctionToString.apply(context, args);\n };\n }\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/explicit-module-boundary-types */\n\nimport { Primitive } from '@sentry/types';\n\n// eslint-disable-next-line @typescript-eslint/unbound-method\nconst objectToString = Object.prototype.toString;\n\n/**\n * Checks whether given value's type is one of a few Error or Error-like\n * {@link isError}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isError(wat: unknown): wat is Error {\n switch (objectToString.call(wat)) {\n case '[object Error]':\n case '[object Exception]':\n case '[object DOMException]':\n return true;\n default:\n return isInstanceOf(wat, Error);\n }\n}\n\nfunction isBuiltin(wat: unknown, ty: string): boolean {\n return objectToString.call(wat) === `[object ${ty}]`;\n}\n\n/**\n * Checks whether given value's type is ErrorEvent\n * {@link isErrorEvent}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isErrorEvent(wat: unknown): boolean {\n return isBuiltin(wat, 'ErrorEvent');\n}\n\n/**\n * Checks whether given value's type is DOMError\n * {@link isDOMError}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isDOMError(wat: unknown): boolean {\n return isBuiltin(wat, 'DOMError');\n}\n\n/**\n * Checks whether given value's type is DOMException\n * {@link isDOMException}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isDOMException(wat: unknown): boolean {\n return isBuiltin(wat, 'DOMException');\n}\n\n/**\n * Checks whether given value's type is a string\n * {@link isString}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isString(wat: unknown): wat is string {\n return isBuiltin(wat, 'String');\n}\n\n/**\n * Checks whether given value is a primitive (undefined, null, number, boolean, string, bigint, symbol)\n * {@link isPrimitive}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isPrimitive(wat: unknown): wat is Primitive {\n return wat === null || (typeof wat !== 'object' && typeof wat !== 'function');\n}\n\n/**\n * Checks whether given value's type is an object literal\n * {@link isPlainObject}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isPlainObject(wat: unknown): wat is Record {\n return isBuiltin(wat, 'Object');\n}\n\n/**\n * Checks whether given value's type is an Event instance\n * {@link isEvent}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isEvent(wat: unknown): boolean {\n return typeof Event !== 'undefined' && isInstanceOf(wat, Event);\n}\n\n/**\n * Checks whether given value's type is an Element instance\n * {@link isElement}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isElement(wat: unknown): boolean {\n return typeof Element !== 'undefined' && isInstanceOf(wat, Element);\n}\n\n/**\n * Checks whether given value's type is an regexp\n * {@link isRegExp}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isRegExp(wat: unknown): wat is RegExp {\n return isBuiltin(wat, 'RegExp');\n}\n\n/**\n * Checks whether given value has a then function.\n * @param wat A value to be checked.\n */\nexport function isThenable(wat: any): wat is PromiseLike {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n return Boolean(wat && wat.then && typeof wat.then === 'function');\n}\n\n/**\n * Checks whether given value's type is a SyntheticEvent\n * {@link isSyntheticEvent}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isSyntheticEvent(wat: unknown): boolean {\n return isPlainObject(wat) && 'nativeEvent' in wat && 'preventDefault' in wat && 'stopPropagation' in wat;\n}\n\n/**\n * Checks whether given value is NaN\n * {@link isNaN}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isNaN(wat: unknown): boolean {\n return typeof wat === 'number' && wat !== wat;\n}\n\n/**\n * Checks whether given value's type is an instance of provided constructor.\n * {@link isInstanceOf}.\n *\n * @param wat A value to be checked.\n * @param base A constructor to be used in a check.\n * @returns A boolean representing the result.\n */\nexport function isInstanceOf(wat: any, base: any): boolean {\n try {\n return wat instanceof base;\n } catch (_e) {\n return false;\n }\n}\n","import { getGlobalObject } from './global';\nimport { isString } from './is';\n\n/**\n * Given a child DOM element, returns a query-selector statement describing that\n * and its ancestors\n * e.g. [HTMLElement] => body > div > input#foo.btn[name=baz]\n * @returns generated DOM path\n */\nexport function htmlTreeAsString(elem: unknown, keyAttrs?: string[]): string {\n type SimpleNode = {\n parentNode: SimpleNode;\n } | null;\n\n // try/catch both:\n // - accessing event.target (see getsentry/raven-js#838, #768)\n // - `htmlTreeAsString` because it's complex, and just accessing the DOM incorrectly\n // - can throw an exception in some circumstances.\n try {\n let currentElem = elem as SimpleNode;\n const MAX_TRAVERSE_HEIGHT = 5;\n const MAX_OUTPUT_LEN = 80;\n const out = [];\n let height = 0;\n let len = 0;\n const separator = ' > ';\n const sepLength = separator.length;\n let nextStr;\n\n // eslint-disable-next-line no-plusplus\n while (currentElem && height++ < MAX_TRAVERSE_HEIGHT) {\n nextStr = _htmlElementAsString(currentElem, keyAttrs);\n // bail out if\n // - nextStr is the 'html' element\n // - the length of the string that would be created exceeds MAX_OUTPUT_LEN\n // (ignore this limit if we are on the first iteration)\n if (nextStr === 'html' || (height > 1 && len + out.length * sepLength + nextStr.length >= MAX_OUTPUT_LEN)) {\n break;\n }\n\n out.push(nextStr);\n\n len += nextStr.length;\n currentElem = currentElem.parentNode;\n }\n\n return out.reverse().join(separator);\n } catch (_oO) {\n return '';\n }\n}\n\n/**\n * Returns a simple, query-selector representation of a DOM element\n * e.g. [HTMLElement] => input#foo.btn[name=baz]\n * @returns generated DOM path\n */\nfunction _htmlElementAsString(el: unknown, keyAttrs?: string[]): string {\n const elem = el as {\n tagName?: string;\n id?: string;\n className?: string;\n getAttribute(key: string): string;\n };\n\n const out = [];\n let className;\n let classes;\n let key;\n let attr;\n let i;\n\n if (!elem || !elem.tagName) {\n return '';\n }\n\n out.push(elem.tagName.toLowerCase());\n\n // Pairs of attribute keys defined in `serializeAttribute` and their values on element.\n const keyAttrPairs =\n keyAttrs && keyAttrs.length\n ? keyAttrs.filter(keyAttr => elem.getAttribute(keyAttr)).map(keyAttr => [keyAttr, elem.getAttribute(keyAttr)])\n : null;\n\n if (keyAttrPairs && keyAttrPairs.length) {\n keyAttrPairs.forEach(keyAttrPair => {\n out.push(`[${keyAttrPair[0]}=\"${keyAttrPair[1]}\"]`);\n });\n } else {\n if (elem.id) {\n out.push(`#${elem.id}`);\n }\n\n // eslint-disable-next-line prefer-const\n className = elem.className;\n if (className && isString(className)) {\n classes = className.split(/\\s+/);\n for (i = 0; i < classes.length; i++) {\n out.push(`.${classes[i]}`);\n }\n }\n }\n const allowedAttrs = ['type', 'name', 'title', 'alt'];\n for (i = 0; i < allowedAttrs.length; i++) {\n key = allowedAttrs[i];\n attr = elem.getAttribute(key);\n if (attr) {\n out.push(`[${key}=\"${attr}\"]`);\n }\n }\n return out.join('');\n}\n\n/**\n * A safe form of location.href\n */\nexport function getLocationHref(): string {\n const global = getGlobalObject();\n try {\n return global.document.location.href;\n } catch (oO) {\n return '';\n }\n}\n","import { isRegExp, isString } from './is';\n\n/**\n * Truncates given string to the maximum characters count\n *\n * @param str An object that contains serializable values\n * @param max Maximum number of characters in truncated string (0 = unlimited)\n * @returns string Encoded\n */\nexport function truncate(str: string, max: number = 0): string {\n if (typeof str !== 'string' || max === 0) {\n return str;\n }\n return str.length <= max ? str : `${str.substr(0, max)}...`;\n}\n\n/**\n * This is basically just `trim_line` from\n * https://github.com/getsentry/sentry/blob/master/src/sentry/lang/javascript/processor.py#L67\n *\n * @param str An object that contains serializable values\n * @param max Maximum number of characters in truncated string\n * @returns string Encoded\n */\nexport function snipLine(line: string, colno: number): string {\n let newLine = line;\n const lineLength = newLine.length;\n if (lineLength <= 150) {\n return newLine;\n }\n if (colno > lineLength) {\n // eslint-disable-next-line no-param-reassign\n colno = lineLength;\n }\n\n let start = Math.max(colno - 60, 0);\n if (start < 5) {\n start = 0;\n }\n\n let end = Math.min(start + 140, lineLength);\n if (end > lineLength - 5) {\n end = lineLength;\n }\n if (end === lineLength) {\n start = Math.max(end - 140, 0);\n }\n\n newLine = newLine.slice(start, end);\n if (start > 0) {\n newLine = `'{snip} ${newLine}`;\n }\n if (end < lineLength) {\n newLine += ' {snip}';\n }\n\n return newLine;\n}\n\n/**\n * Join values in array\n * @param input array of values to be joined together\n * @param delimiter string to be placed in-between values\n * @returns Joined values\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function safeJoin(input: any[], delimiter?: string): string {\n if (!Array.isArray(input)) {\n return '';\n }\n\n const output = [];\n // eslint-disable-next-line @typescript-eslint/prefer-for-of\n for (let i = 0; i < input.length; i++) {\n const value = input[i];\n try {\n output.push(String(value));\n } catch (e) {\n output.push('[value cannot be serialized]');\n }\n }\n\n return output.join(delimiter);\n}\n\n/**\n * Checks if the value matches a regex or includes the string\n * @param value The string value to be checked against\n * @param pattern Either a regex or a string that must be contained in value\n */\nexport function isMatchingPattern(value: string, pattern: RegExp | string): boolean {\n if (!isString(value)) {\n return false;\n }\n\n if (isRegExp(pattern)) {\n return pattern.test(value);\n }\n if (typeof pattern === 'string') {\n return value.indexOf(pattern) !== -1;\n }\n return false;\n}\n\n/**\n * Given a string, escape characters which have meaning in the regex grammar, such that the result is safe to feed to\n * `new RegExp()`.\n *\n * Based on https://github.com/sindresorhus/escape-string-regexp. Vendored to a) reduce the size by skipping the runtime\n * type-checking, and b) ensure it gets down-compiled for old versions of Node (the published package only supports Node\n * 12+).\n *\n * @param regexString The string to escape\n * @returns An version of the string with all special regex characters escaped\n */\nexport function escapeStringForRegex(regexString: string): string {\n // escape the hyphen separately so we can also replace it with a unicode literal hyphen, to avoid the problems\n // discussed in https://github.com/sindresorhus/escape-string-regexp/issues/20.\n return regexString.replace(/[|\\\\{}()[\\]^$+*?.]/g, '\\\\$&').replace(/-/g, '\\\\x2d');\n}\n","/* eslint-disable max-lines */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { ExtendedError, WrappedFunction } from '@sentry/types';\n\nimport { htmlTreeAsString } from './browser';\nimport { isElement, isError, isEvent, isInstanceOf, isPlainObject, isPrimitive } from './is';\nimport { truncate } from './string';\n\n/**\n * Replace a method in an object with a wrapped version of itself.\n *\n * @param source An object that contains a method to be wrapped.\n * @param name The name of the method to be wrapped.\n * @param replacementFactory A higher-order function that takes the original version of the given method and returns a\n * wrapped version. Note: The function returned by `replacementFactory` needs to be a non-arrow function, in order to\n * preserve the correct value of `this`, and the original method must be called using `origMethod.call(this, )` or `origMethod.apply(this, [])` (rather than being called directly), again to preserve `this`.\n * @returns void\n */\nexport function fill(source: { [key: string]: any }, name: string, replacementFactory: (...args: any[]) => any): void {\n if (!(name in source)) {\n return;\n }\n\n const original = source[name] as () => any;\n const wrapped = replacementFactory(original) as WrappedFunction;\n\n // Make sure it's a function first, as we need to attach an empty prototype for `defineProperties` to work\n // otherwise it'll throw \"TypeError: Object.defineProperties called on non-object\"\n if (typeof wrapped === 'function') {\n try {\n markFunctionWrapped(wrapped, original);\n } catch (_Oo) {\n // This can throw if multiple fill happens on a global object like XMLHttpRequest\n // Fixes https://github.com/getsentry/sentry-javascript/issues/2043\n }\n }\n\n source[name] = wrapped;\n}\n\n/**\n * Defines a non-enumerable property on the given object.\n *\n * @param obj The object on which to set the property\n * @param name The name of the property to be set\n * @param value The value to which to set the property\n */\nexport function addNonEnumerableProperty(obj: { [key: string]: unknown }, name: string, value: unknown): void {\n Object.defineProperty(obj, name, {\n // enumerable: false, // the default, so we can save on bundle size by not explicitly setting it\n value: value,\n writable: true,\n configurable: true,\n });\n}\n\n/**\n * Remembers the original function on the wrapped function and\n * patches up the prototype.\n *\n * @param wrapped the wrapper function\n * @param original the original function that gets wrapped\n */\nexport function markFunctionWrapped(wrapped: WrappedFunction, original: WrappedFunction): void {\n const proto = original.prototype || {};\n wrapped.prototype = original.prototype = proto;\n addNonEnumerableProperty(wrapped, '__sentry_original__', original);\n}\n\n/**\n * This extracts the original function if available. See\n * `markFunctionWrapped` for more information.\n *\n * @param func the function to unwrap\n * @returns the unwrapped version of the function if available.\n */\nexport function getOriginalFunction(func: WrappedFunction): WrappedFunction | undefined {\n return func.__sentry_original__;\n}\n\n/**\n * Encodes given object into url-friendly format\n *\n * @param object An object that contains serializable values\n * @returns string Encoded\n */\nexport function urlEncode(object: { [key: string]: any }): string {\n return Object.keys(object)\n .map(key => `${encodeURIComponent(key)}=${encodeURIComponent(object[key])}`)\n .join('&');\n}\n\n/**\n * Transforms any object into an object literal with all its attributes\n * attached to it.\n *\n * @param value Initial source that we have to transform in order for it to be usable by the serializer\n */\nexport function convertToPlainObject(value: unknown): {\n [key: string]: unknown;\n} {\n let newObj = value as {\n [key: string]: unknown;\n };\n\n if (isError(value)) {\n newObj = {\n message: value.message,\n name: value.name,\n stack: value.stack,\n ...getOwnProperties(value as ExtendedError),\n };\n } else if (isEvent(value)) {\n /**\n * Event-like interface that's usable in browser and node\n */\n interface SimpleEvent {\n [key: string]: unknown;\n type: string;\n target?: unknown;\n currentTarget?: unknown;\n }\n\n const event = value as SimpleEvent;\n\n newObj = {\n type: event.type,\n target: serializeEventTarget(event.target),\n currentTarget: serializeEventTarget(event.currentTarget),\n ...getOwnProperties(event),\n };\n\n if (typeof CustomEvent !== 'undefined' && isInstanceOf(value, CustomEvent)) {\n newObj.detail = event.detail;\n }\n }\n return newObj;\n}\n\n/** Creates a string representation of the target of an `Event` object */\nfunction serializeEventTarget(target: unknown): string {\n try {\n return isElement(target) ? htmlTreeAsString(target) : Object.prototype.toString.call(target);\n } catch (_oO) {\n return '';\n }\n}\n\n/** Filters out all but an object's own properties */\nfunction getOwnProperties(obj: { [key: string]: unknown }): { [key: string]: unknown } {\n const extractedProps: { [key: string]: unknown } = {};\n for (const property in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, property)) {\n extractedProps[property] = obj[property];\n }\n }\n return extractedProps;\n}\n\n/**\n * Given any captured exception, extract its keys and create a sorted\n * and truncated list that will be used inside the event message.\n * eg. `Non-error exception captured with keys: foo, bar, baz`\n */\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nexport function extractExceptionKeysForMessage(exception: any, maxLength: number = 40): string {\n const keys = Object.keys(convertToPlainObject(exception));\n keys.sort();\n\n if (!keys.length) {\n return '[object has no keys]';\n }\n\n if (keys[0].length >= maxLength) {\n return truncate(keys[0], maxLength);\n }\n\n for (let includedKeys = keys.length; includedKeys > 0; includedKeys--) {\n const serialized = keys.slice(0, includedKeys).join(', ');\n if (serialized.length > maxLength) {\n continue;\n }\n if (includedKeys === keys.length) {\n return serialized;\n }\n return truncate(serialized, maxLength);\n }\n\n return '';\n}\n\n/**\n * Given any object, return the new object with removed keys that value was `undefined`.\n * Works recursively on objects and arrays.\n */\nexport function dropUndefinedKeys(val: T): T {\n if (isPlainObject(val)) {\n const rv: { [key: string]: any } = {};\n for (const key of Object.keys(val)) {\n if (typeof val[key] !== 'undefined') {\n rv[key] = dropUndefinedKeys(val[key]);\n }\n }\n return rv as T;\n }\n\n if (Array.isArray(val)) {\n return (val as any[]).map(dropUndefinedKeys) as any;\n }\n\n return val;\n}\n\n/**\n * Ensure that something is an object.\n *\n * Turns `undefined` and `null` into `String`s and all other primitives into instances of their respective wrapper\n * classes (String, Boolean, Number, etc.). Acts as the identity function on non-primitives.\n *\n * @param wat The subject of the objectification\n * @returns A version of `wat` which can safely be used with `Object` class methods\n */\nexport function objectify(wat: unknown): typeof Object {\n let objectified;\n switch (true) {\n case wat === undefined || wat === null:\n objectified = new String(wat);\n break;\n\n // Though symbols and bigints do have wrapper classes (`Symbol` and `BigInt`, respectively), for whatever reason\n // those classes don't have constructors which can be used with the `new` keyword. We therefore need to cast each as\n // an object in order to wrap it.\n case typeof wat === 'symbol' || typeof wat === 'bigint':\n objectified = Object(wat);\n break;\n\n // this will catch the remaining primitives: `String`, `Number`, and `Boolean`\n case isPrimitive(wat):\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n objectified = new (wat as any).constructor(wat);\n break;\n\n // by process of elimination, at this point we know that `wat` must already be an object\n default:\n objectified = wat;\n break;\n }\n return objectified;\n}\n","import { WrappedFunction } from '@sentry/types';\n\nimport { IS_DEBUG_BUILD } from './flags';\nimport { getGlobalObject, getGlobalSingleton } from './global';\n\n// TODO: Implement different loggers for different environments\nconst global = getGlobalObject();\n\n/** Prefix for logging strings */\nconst PREFIX = 'Sentry Logger ';\n\nexport const CONSOLE_LEVELS = ['debug', 'info', 'warn', 'error', 'log', 'assert'] as const;\n\ntype LoggerMethod = (...args: unknown[]) => void;\ntype LoggerConsoleMethods = Record;\n\n/** JSDoc */\ninterface Logger extends LoggerConsoleMethods {\n disable(): void;\n enable(): void;\n}\n\n/**\n * Temporarily disable sentry console instrumentations.\n *\n * @param callback The function to run against the original `console` messages\n * @returns The results of the callback\n */\nexport function consoleSandbox(callback: () => T): T {\n const global = getGlobalObject();\n\n if (!('console' in global)) {\n return callback();\n }\n\n const originalConsole = global.console as Console & Record;\n const wrappedLevels: Partial = {};\n\n // Restore all wrapped console methods\n CONSOLE_LEVELS.forEach(level => {\n // TODO(v7): Remove this check as it's only needed for Node 6\n const originalWrappedFunc =\n originalConsole[level] && (originalConsole[level] as WrappedFunction).__sentry_original__;\n if (level in global.console && originalWrappedFunc) {\n wrappedLevels[level] = originalConsole[level] as LoggerConsoleMethods[typeof level];\n originalConsole[level] = originalWrappedFunc as Console[typeof level];\n }\n });\n\n try {\n return callback();\n } finally {\n // Revert restoration to wrapped state\n Object.keys(wrappedLevels).forEach(level => {\n originalConsole[level] = wrappedLevels[level as typeof CONSOLE_LEVELS[number]];\n });\n }\n}\n\nfunction makeLogger(): Logger {\n let enabled = false;\n const logger: Partial = {\n enable: () => {\n enabled = true;\n },\n disable: () => {\n enabled = false;\n },\n };\n\n if (IS_DEBUG_BUILD) {\n CONSOLE_LEVELS.forEach(name => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n logger[name] = (...args: any[]) => {\n if (enabled) {\n consoleSandbox(() => {\n global.console[name](`${PREFIX}[${name}]:`, ...args);\n });\n }\n };\n });\n } else {\n CONSOLE_LEVELS.forEach(name => {\n logger[name] = () => undefined;\n });\n }\n\n return logger as Logger;\n}\n\n// Ensure we only have a single logger instance, even if multiple versions of @sentry/utils are being used\nlet logger: Logger;\nif (IS_DEBUG_BUILD) {\n logger = getGlobalSingleton('logger', makeLogger);\n} else {\n logger = makeLogger();\n}\n\nexport { logger };\n","/*\n * This file defines flags and constants that can be modified during compile time in order to facilitate tree shaking\n * for users.\n *\n * Debug flags need to be declared in each package individually and must not be imported across package boundaries,\n * because some build tools have trouble tree-shaking imported guards.\n *\n * As a convention, we define debug flags in a `flags.ts` file in the root of a package's `src` folder.\n *\n * Debug flag files will contain \"magic strings\" like `__SENTRY_DEBUG__` that may get replaced with actual values during\n * our, or the user's build process. Take care when introducing new flags - they must not throw if they are not\n * replaced.\n */\n\ndeclare const __SENTRY_DEBUG__: boolean;\n\n/** Flag that is true for debug builds, false otherwise. */\nexport const IS_DEBUG_BUILD = typeof __SENTRY_DEBUG__ === 'undefined' ? true : __SENTRY_DEBUG__;\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Event, Exception, Mechanism, StackFrame } from '@sentry/types';\n\nimport { getGlobalObject } from './global';\nimport { addNonEnumerableProperty } from './object';\nimport { snipLine } from './string';\n\n/**\n * Extended Window interface that allows for Crypto API usage in IE browsers\n */\ninterface MsCryptoWindow extends Window {\n msCrypto?: Crypto;\n}\n\n/**\n * UUID4 generator\n *\n * @returns string Generated UUID4.\n */\nexport function uuid4(): string {\n const global = getGlobalObject() as MsCryptoWindow;\n const crypto = global.crypto || global.msCrypto;\n\n if (!(crypto === void 0) && crypto.getRandomValues) {\n // Use window.crypto API if available\n const arr = new Uint16Array(8);\n crypto.getRandomValues(arr);\n\n // set 4 in byte 7\n // eslint-disable-next-line no-bitwise\n arr[3] = (arr[3] & 0xfff) | 0x4000;\n // set 2 most significant bits of byte 9 to '10'\n // eslint-disable-next-line no-bitwise\n arr[4] = (arr[4] & 0x3fff) | 0x8000;\n\n const pad = (num: number): string => {\n let v = num.toString(16);\n while (v.length < 4) {\n v = `0${v}`;\n }\n return v;\n };\n\n return (\n pad(arr[0]) + pad(arr[1]) + pad(arr[2]) + pad(arr[3]) + pad(arr[4]) + pad(arr[5]) + pad(arr[6]) + pad(arr[7])\n );\n }\n // http://stackoverflow.com/questions/105034/how-to-create-a-guid-uuid-in-javascript/2117523#2117523\n return 'xxxxxxxxxxxx4xxxyxxxxxxxxxxxxxxx'.replace(/[xy]/g, c => {\n // eslint-disable-next-line no-bitwise\n const r = (Math.random() * 16) | 0;\n // eslint-disable-next-line no-bitwise\n const v = c === 'x' ? r : (r & 0x3) | 0x8;\n return v.toString(16);\n });\n}\n\n/**\n * Parses string form of URL into an object\n * // borrowed from https://tools.ietf.org/html/rfc3986#appendix-B\n * // intentionally using regex and not href parsing trick because React Native and other\n * // environments where DOM might not be available\n * @returns parsed URL object\n */\nexport function parseUrl(url: string): {\n host?: string;\n path?: string;\n protocol?: string;\n relative?: string;\n} {\n if (!url) {\n return {};\n }\n\n const match = url.match(/^(([^:/?#]+):)?(\\/\\/([^/?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))?$/);\n\n if (!match) {\n return {};\n }\n\n // coerce to undefined values to empty string so we don't get 'undefined'\n const query = match[6] || '';\n const fragment = match[8] || '';\n return {\n host: match[4],\n path: match[5],\n protocol: match[2],\n relative: match[5] + query + fragment, // everything minus origin\n };\n}\n\nfunction getFirstException(event: Event): Exception | undefined {\n return event.exception && event.exception.values ? event.exception.values[0] : undefined;\n}\n\n/**\n * Extracts either message or type+value from an event that can be used for user-facing logs\n * @returns event's description\n */\nexport function getEventDescription(event: Event): string {\n const { message, event_id: eventId } = event;\n if (message) {\n return message;\n }\n\n const firstException = getFirstException(event);\n if (firstException) {\n if (firstException.type && firstException.value) {\n return `${firstException.type}: ${firstException.value}`;\n }\n return firstException.type || firstException.value || eventId || '';\n }\n return eventId || '';\n}\n\n/**\n * Adds exception values, type and value to an synthetic Exception.\n * @param event The event to modify.\n * @param value Value of the exception.\n * @param type Type of the exception.\n * @hidden\n */\nexport function addExceptionTypeValue(event: Event, value?: string, type?: string): void {\n const exception = (event.exception = event.exception || {});\n const values = (exception.values = exception.values || []);\n const firstException = (values[0] = values[0] || {});\n if (!firstException.value) {\n firstException.value = value || '';\n }\n if (!firstException.type) {\n firstException.type = type || 'Error';\n }\n}\n\n/**\n * Adds exception mechanism data to a given event. Uses defaults if the second parameter is not passed.\n *\n * @param event The event to modify.\n * @param newMechanism Mechanism data to add to the event.\n * @hidden\n */\nexport function addExceptionMechanism(event: Event, newMechanism?: Partial): void {\n const firstException = getFirstException(event);\n if (!firstException) {\n return;\n }\n\n const defaultMechanism = { type: 'generic', handled: true };\n const currentMechanism = firstException.mechanism;\n firstException.mechanism = { ...defaultMechanism, ...currentMechanism, ...newMechanism };\n\n if (newMechanism && 'data' in newMechanism) {\n const mergedData = { ...(currentMechanism && currentMechanism.data), ...newMechanism.data };\n firstException.mechanism.data = mergedData;\n }\n}\n\n// https://semver.org/#is-there-a-suggested-regular-expression-regex-to-check-a-semver-string\nconst SEMVER_REGEXP =\n /^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)(?:-((?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?$/;\n\n/**\n * Represents Semantic Versioning object\n */\ninterface SemVer {\n major?: number;\n minor?: number;\n patch?: number;\n prerelease?: string;\n buildmetadata?: string;\n}\n\n/**\n * Parses input into a SemVer interface\n * @param input string representation of a semver version\n */\nexport function parseSemver(input: string): SemVer {\n const match = input.match(SEMVER_REGEXP) || [];\n const major = parseInt(match[1], 10);\n const minor = parseInt(match[2], 10);\n const patch = parseInt(match[3], 10);\n return {\n buildmetadata: match[5],\n major: isNaN(major) ? undefined : major,\n minor: isNaN(minor) ? undefined : minor,\n patch: isNaN(patch) ? undefined : patch,\n prerelease: match[4],\n };\n}\n\n/**\n * This function adds context (pre/post/line) lines to the provided frame\n *\n * @param lines string[] containing all lines\n * @param frame StackFrame that will be mutated\n * @param linesOfContext number of context lines we want to add pre/post\n */\nexport function addContextToFrame(lines: string[], frame: StackFrame, linesOfContext: number = 5): void {\n const lineno = frame.lineno || 0;\n const maxLines = lines.length;\n const sourceLine = Math.max(Math.min(maxLines, lineno - 1), 0);\n\n frame.pre_context = lines\n .slice(Math.max(0, sourceLine - linesOfContext), sourceLine)\n .map((line: string) => snipLine(line, 0));\n\n frame.context_line = snipLine(lines[Math.min(maxLines - 1, sourceLine)], frame.colno || 0);\n\n frame.post_context = lines\n .slice(Math.min(sourceLine + 1, maxLines), sourceLine + 1 + linesOfContext)\n .map((line: string) => snipLine(line, 0));\n}\n\n/**\n * Strip the query string and fragment off of a given URL or path (if present)\n *\n * @param urlPath Full URL or path, including possible query string and/or fragment\n * @returns URL or path without query string or fragment\n */\nexport function stripUrlQueryAndFragment(urlPath: string): string {\n // eslint-disable-next-line no-useless-escape\n return urlPath.split(/[\\?#]/, 1)[0];\n}\n\n/**\n * Checks whether or not we've already captured the given exception (note: not an identical exception - the very object\n * in question), and marks it captured if not.\n *\n * This is useful because it's possible for an error to get captured by more than one mechanism. After we intercept and\n * record an error, we rethrow it (assuming we've intercepted it before it's reached the top-level global handlers), so\n * that we don't interfere with whatever effects the error might have had were the SDK not there. At that point, because\n * the error has been rethrown, it's possible for it to bubble up to some other code we've instrumented. If it's not\n * caught after that, it will bubble all the way up to the global handlers (which of course we also instrument). This\n * function helps us ensure that even if we encounter the same error more than once, we only record it the first time we\n * see it.\n *\n * Note: It will ignore primitives (always return `false` and not mark them as seen), as properties can't be set on\n * them. {@link: Object.objectify} can be used on exceptions to convert any that are primitives into their equivalent\n * object wrapper forms so that this check will always work. However, because we need to flag the exact object which\n * will get rethrown, and because that rethrowing happens outside of the event processing pipeline, the objectification\n * must be done before the exception captured.\n *\n * @param A thrown exception to check or flag as having been seen\n * @returns `true` if the exception has already been captured, `false` if not (with the side effect of marking it seen)\n */\nexport function checkOrSetAlreadyCaught(exception: unknown): boolean {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n if (exception && (exception as any).__sentry_captured__) {\n return true;\n }\n\n try {\n // set it this way rather than by assignment so that it's not ennumerable and therefore isn't recorded by the\n // `ExtraErrorData` integration\n addNonEnumerableProperty(exception as { [key: string]: unknown }, '__sentry_captured__', true);\n } catch (err) {\n // `exception` is a primitive, so we can't mark it seen\n }\n\n return false;\n}\n","import { Event, EventProcessor, Hub, Integration, StackFrame } from '@sentry/types';\nimport { getEventDescription, isMatchingPattern, logger } from '@sentry/utils';\n\nimport { IS_DEBUG_BUILD } from '../flags';\n\n// \"Script error.\" is hard coded into browsers for errors that it can't read.\n// this is the result of a script being pulled in from an external domain and CORS.\nconst DEFAULT_IGNORE_ERRORS = [/^Script error\\.?$/, /^Javascript error: Script error\\.? on line 0$/];\n\n/** Options for the InboundFilters integration */\nexport interface InboundFiltersOptions {\n allowUrls: Array;\n denyUrls: Array;\n ignoreErrors: Array;\n ignoreInternal: boolean;\n\n /** @deprecated use {@link InboundFiltersOptions.allowUrls} instead. */\n whitelistUrls: Array;\n /** @deprecated use {@link InboundFiltersOptions.denyUrls} instead. */\n blacklistUrls: Array;\n}\n\n/** Inbound filters configurable by the user */\nexport class InboundFilters implements Integration {\n /**\n * @inheritDoc\n */\n public static id: string = 'InboundFilters';\n\n /**\n * @inheritDoc\n */\n public name: string = InboundFilters.id;\n\n public constructor(private readonly _options: Partial = {}) {}\n\n /**\n * @inheritDoc\n */\n public setupOnce(addGlobalEventProcessor: (processor: EventProcessor) => void, getCurrentHub: () => Hub): void {\n addGlobalEventProcessor((event: Event) => {\n const hub = getCurrentHub();\n if (hub) {\n const self = hub.getIntegration(InboundFilters);\n if (self) {\n const client = hub.getClient();\n const clientOptions = client ? client.getOptions() : {};\n const options = _mergeOptions(self._options, clientOptions);\n return _shouldDropEvent(event, options) ? null : event;\n }\n }\n return event;\n });\n }\n}\n\n/** JSDoc */\nexport function _mergeOptions(\n internalOptions: Partial = {},\n clientOptions: Partial = {},\n): Partial {\n return {\n allowUrls: [\n // eslint-disable-next-line deprecation/deprecation\n ...(internalOptions.whitelistUrls || []),\n ...(internalOptions.allowUrls || []),\n // eslint-disable-next-line deprecation/deprecation\n ...(clientOptions.whitelistUrls || []),\n ...(clientOptions.allowUrls || []),\n ],\n denyUrls: [\n // eslint-disable-next-line deprecation/deprecation\n ...(internalOptions.blacklistUrls || []),\n ...(internalOptions.denyUrls || []),\n // eslint-disable-next-line deprecation/deprecation\n ...(clientOptions.blacklistUrls || []),\n ...(clientOptions.denyUrls || []),\n ],\n ignoreErrors: [\n ...(internalOptions.ignoreErrors || []),\n ...(clientOptions.ignoreErrors || []),\n ...DEFAULT_IGNORE_ERRORS,\n ],\n ignoreInternal: internalOptions.ignoreInternal !== undefined ? internalOptions.ignoreInternal : true,\n };\n}\n\n/** JSDoc */\nexport function _shouldDropEvent(event: Event, options: Partial): boolean {\n if (options.ignoreInternal && _isSentryError(event)) {\n IS_DEBUG_BUILD &&\n logger.warn(`Event dropped due to being internal Sentry Error.\\nEvent: ${getEventDescription(event)}`);\n return true;\n }\n if (_isIgnoredError(event, options.ignoreErrors)) {\n IS_DEBUG_BUILD &&\n logger.warn(\n `Event dropped due to being matched by \\`ignoreErrors\\` option.\\nEvent: ${getEventDescription(event)}`,\n );\n return true;\n }\n if (_isDeniedUrl(event, options.denyUrls)) {\n IS_DEBUG_BUILD &&\n logger.warn(\n `Event dropped due to being matched by \\`denyUrls\\` option.\\nEvent: ${getEventDescription(\n event,\n )}.\\nUrl: ${_getEventFilterUrl(event)}`,\n );\n return true;\n }\n if (!_isAllowedUrl(event, options.allowUrls)) {\n IS_DEBUG_BUILD &&\n logger.warn(\n `Event dropped due to not being matched by \\`allowUrls\\` option.\\nEvent: ${getEventDescription(\n event,\n )}.\\nUrl: ${_getEventFilterUrl(event)}`,\n );\n return true;\n }\n return false;\n}\n\nfunction _isIgnoredError(event: Event, ignoreErrors?: Array): boolean {\n if (!ignoreErrors || !ignoreErrors.length) {\n return false;\n }\n\n return _getPossibleEventMessages(event).some(message =>\n ignoreErrors.some(pattern => isMatchingPattern(message, pattern)),\n );\n}\n\nfunction _isDeniedUrl(event: Event, denyUrls?: Array): boolean {\n // TODO: Use Glob instead?\n if (!denyUrls || !denyUrls.length) {\n return false;\n }\n const url = _getEventFilterUrl(event);\n return !url ? false : denyUrls.some(pattern => isMatchingPattern(url, pattern));\n}\n\nfunction _isAllowedUrl(event: Event, allowUrls?: Array): boolean {\n // TODO: Use Glob instead?\n if (!allowUrls || !allowUrls.length) {\n return true;\n }\n const url = _getEventFilterUrl(event);\n return !url ? true : allowUrls.some(pattern => isMatchingPattern(url, pattern));\n}\n\nfunction _getPossibleEventMessages(event: Event): string[] {\n if (event.message) {\n return [event.message];\n }\n if (event.exception) {\n try {\n const { type = '', value = '' } = (event.exception.values && event.exception.values[0]) || {};\n return [`${value}`, `${type}: ${value}`];\n } catch (oO) {\n IS_DEBUG_BUILD && logger.error(`Cannot extract message for event ${getEventDescription(event)}`);\n return [];\n }\n }\n return [];\n}\n\nfunction _isSentryError(event: Event): boolean {\n try {\n // @ts-ignore can't be a sentry error if undefined\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n return event.exception.values[0].type === 'SentryError';\n } catch (e) {\n // ignore\n }\n return false;\n}\n\nfunction _getLastValidUrl(frames: StackFrame[] = []): string | null {\n for (let i = frames.length - 1; i >= 0; i--) {\n const frame = frames[i];\n\n if (frame && frame.filename !== '' && frame.filename !== '[native code]') {\n return frame.filename || null;\n }\n }\n\n return null;\n}\n\nfunction _getEventFilterUrl(event: Event): string | null {\n try {\n if (event.stacktrace) {\n return _getLastValidUrl(event.stacktrace.frames);\n }\n let frames;\n try {\n // @ts-ignore we only care about frames if the whole thing here is defined\n frames = event.exception.values[0].stacktrace.frames;\n } catch (e) {\n // ignore\n }\n return frames ? _getLastValidUrl(frames) : null;\n } catch (oO) {\n IS_DEBUG_BUILD && logger.error(`Cannot extract url for event ${getEventDescription(event)}`);\n return null;\n }\n}\n","/* eslint-disable @typescript-eslint/explicit-function-return-type */\n/* eslint-disable @typescript-eslint/typedef */\n/* eslint-disable @typescript-eslint/explicit-module-boundary-types */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { isThenable } from './is';\n\n/** SyncPromise internal states */\nconst enum States {\n /** Pending */\n PENDING = 0,\n /** Resolved / OK */\n RESOLVED = 1,\n /** Rejected / Error */\n REJECTED = 2,\n}\n\n/**\n * Creates a resolved sync promise.\n *\n * @param value the value to resolve the promise with\n * @returns the resolved sync promise\n */\nexport function resolvedSyncPromise(value: T | PromiseLike): PromiseLike {\n return new SyncPromise(resolve => {\n resolve(value);\n });\n}\n\n/**\n * Creates a rejected sync promise.\n *\n * @param value the value to reject the promise with\n * @returns the rejected sync promise\n */\nexport function rejectedSyncPromise(reason?: any): PromiseLike {\n return new SyncPromise((_, reject) => {\n reject(reason);\n });\n}\n\n/**\n * Thenable class that behaves like a Promise and follows it's interface\n * but is not async internally\n */\nclass SyncPromise implements PromiseLike {\n private _state: States = States.PENDING;\n private _handlers: Array<[boolean, (value: T) => void, (reason: any) => any]> = [];\n private _value: any;\n\n public constructor(\n executor: (resolve: (value?: T | PromiseLike | null) => void, reject: (reason?: any) => void) => void,\n ) {\n try {\n executor(this._resolve, this._reject);\n } catch (e) {\n this._reject(e);\n }\n }\n\n /** JSDoc */\n public then(\n onfulfilled?: ((value: T) => TResult1 | PromiseLike) | null,\n onrejected?: ((reason: any) => TResult2 | PromiseLike) | null,\n ): PromiseLike {\n return new SyncPromise((resolve, reject) => {\n this._handlers.push([\n false,\n result => {\n if (!onfulfilled) {\n // TODO: ¯\\_(ツ)_/¯\n // TODO: FIXME\n resolve(result as any);\n } else {\n try {\n resolve(onfulfilled(result));\n } catch (e) {\n reject(e);\n }\n }\n },\n reason => {\n if (!onrejected) {\n reject(reason);\n } else {\n try {\n resolve(onrejected(reason));\n } catch (e) {\n reject(e);\n }\n }\n },\n ]);\n this._executeHandlers();\n });\n }\n\n /** JSDoc */\n public catch(\n onrejected?: ((reason: any) => TResult | PromiseLike) | null,\n ): PromiseLike {\n return this.then(val => val, onrejected);\n }\n\n /** JSDoc */\n public finally(onfinally?: (() => void) | null): PromiseLike {\n return new SyncPromise((resolve, reject) => {\n let val: TResult | any;\n let isRejected: boolean;\n\n return this.then(\n value => {\n isRejected = false;\n val = value;\n if (onfinally) {\n onfinally();\n }\n },\n reason => {\n isRejected = true;\n val = reason;\n if (onfinally) {\n onfinally();\n }\n },\n ).then(() => {\n if (isRejected) {\n reject(val);\n return;\n }\n\n resolve(val as unknown as any);\n });\n });\n }\n\n /** JSDoc */\n private readonly _resolve = (value?: T | PromiseLike | null) => {\n this._setResult(States.RESOLVED, value);\n };\n\n /** JSDoc */\n private readonly _reject = (reason?: any) => {\n this._setResult(States.REJECTED, reason);\n };\n\n /** JSDoc */\n private readonly _setResult = (state: States, value?: T | PromiseLike | any) => {\n if (this._state !== States.PENDING) {\n return;\n }\n\n if (isThenable(value)) {\n void (value as PromiseLike).then(this._resolve, this._reject);\n return;\n }\n\n this._state = state;\n this._value = value;\n\n this._executeHandlers();\n };\n\n /** JSDoc */\n private readonly _executeHandlers = () => {\n if (this._state === States.PENDING) {\n return;\n }\n\n const cachedHandlers = this._handlers.slice();\n this._handlers = [];\n\n cachedHandlers.forEach(handler => {\n if (handler[0]) {\n return;\n }\n\n if (this._state === States.RESOLVED) {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n handler[1](this._value as unknown as any);\n }\n\n if (this._state === States.REJECTED) {\n handler[2](this._value);\n }\n\n handler[0] = true;\n });\n };\n}\n\nexport { SyncPromise };\n","/* eslint-disable max-lines */\nimport {\n Breadcrumb,\n CaptureContext,\n Context,\n Contexts,\n Event,\n EventHint,\n EventProcessor,\n Extra,\n Extras,\n Primitive,\n RequestSession,\n Scope as ScopeInterface,\n ScopeContext,\n Severity,\n Span,\n Transaction,\n User,\n} from '@sentry/types';\nimport { dateTimestampInSeconds, getGlobalSingleton, isPlainObject, isThenable, SyncPromise } from '@sentry/utils';\n\nimport { Session } from './session';\n\n/**\n * Absolute maximum number of breadcrumbs added to an event.\n * The `maxBreadcrumbs` option cannot be higher than this value.\n */\nconst MAX_BREADCRUMBS = 100;\n\n/**\n * Holds additional event information. {@link Scope.applyToEvent} will be\n * called by the client before an event will be sent.\n */\nexport class Scope implements ScopeInterface {\n /** Flag if notifying is happening. */\n protected _notifyingListeners: boolean = false;\n\n /** Callback for client to receive scope changes. */\n protected _scopeListeners: Array<(scope: Scope) => void> = [];\n\n /** Callback list that will be called after {@link applyToEvent}. */\n protected _eventProcessors: EventProcessor[] = [];\n\n /** Array of breadcrumbs. */\n protected _breadcrumbs: Breadcrumb[] = [];\n\n /** User */\n protected _user: User = {};\n\n /** Tags */\n protected _tags: { [key: string]: Primitive } = {};\n\n /** Extra */\n protected _extra: Extras = {};\n\n /** Contexts */\n protected _contexts: Contexts = {};\n\n /** Fingerprint */\n protected _fingerprint?: string[];\n\n /** Severity */\n protected _level?: Severity;\n\n /** Transaction Name */\n protected _transactionName?: string;\n\n /** Span */\n protected _span?: Span;\n\n /** Session */\n protected _session?: Session;\n\n /** Request Mode Session Status */\n protected _requestSession?: RequestSession;\n\n /**\n * A place to stash data which is needed at some point in the SDK's event processing pipeline but which shouldn't get\n * sent to Sentry\n */\n protected _sdkProcessingMetadata?: { [key: string]: unknown } = {};\n\n /**\n * Inherit values from the parent scope.\n * @param scope to clone.\n */\n public static clone(scope?: Scope): Scope {\n const newScope = new Scope();\n if (scope) {\n newScope._breadcrumbs = [...scope._breadcrumbs];\n newScope._tags = { ...scope._tags };\n newScope._extra = { ...scope._extra };\n newScope._contexts = { ...scope._contexts };\n newScope._user = scope._user;\n newScope._level = scope._level;\n newScope._span = scope._span;\n newScope._session = scope._session;\n newScope._transactionName = scope._transactionName;\n newScope._fingerprint = scope._fingerprint;\n newScope._eventProcessors = [...scope._eventProcessors];\n newScope._requestSession = scope._requestSession;\n }\n return newScope;\n }\n\n /**\n * Add internal on change listener. Used for sub SDKs that need to store the scope.\n * @hidden\n */\n public addScopeListener(callback: (scope: Scope) => void): void {\n this._scopeListeners.push(callback);\n }\n\n /**\n * @inheritDoc\n */\n public addEventProcessor(callback: EventProcessor): this {\n this._eventProcessors.push(callback);\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public setUser(user: User | null): this {\n this._user = user || {};\n if (this._session) {\n this._session.update({ user });\n }\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public getUser(): User | undefined {\n return this._user;\n }\n\n /**\n * @inheritDoc\n */\n public getRequestSession(): RequestSession | undefined {\n return this._requestSession;\n }\n\n /**\n * @inheritDoc\n */\n public setRequestSession(requestSession?: RequestSession): this {\n this._requestSession = requestSession;\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public setTags(tags: { [key: string]: Primitive }): this {\n this._tags = {\n ...this._tags,\n ...tags,\n };\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public setTag(key: string, value: Primitive): this {\n this._tags = { ...this._tags, [key]: value };\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public setExtras(extras: Extras): this {\n this._extra = {\n ...this._extra,\n ...extras,\n };\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public setExtra(key: string, extra: Extra): this {\n this._extra = { ...this._extra, [key]: extra };\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public setFingerprint(fingerprint: string[]): this {\n this._fingerprint = fingerprint;\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public setLevel(level: Severity): this {\n this._level = level;\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public setTransactionName(name?: string): this {\n this._transactionName = name;\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * Can be removed in major version.\n * @deprecated in favor of {@link this.setTransactionName}\n */\n public setTransaction(name?: string): this {\n return this.setTransactionName(name);\n }\n\n /**\n * @inheritDoc\n */\n public setContext(key: string, context: Context | null): this {\n if (context === null) {\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete this._contexts[key];\n } else {\n this._contexts = { ...this._contexts, [key]: context };\n }\n\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public setSpan(span?: Span): this {\n this._span = span;\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public getSpan(): Span | undefined {\n return this._span;\n }\n\n /**\n * @inheritDoc\n */\n public getTransaction(): Transaction | undefined {\n // Often, this span (if it exists at all) will be a transaction, but it's not guaranteed to be. Regardless, it will\n // have a pointer to the currently-active transaction.\n const span = this.getSpan();\n return span && span.transaction;\n }\n\n /**\n * @inheritDoc\n */\n public setSession(session?: Session): this {\n if (!session) {\n delete this._session;\n } else {\n this._session = session;\n }\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public getSession(): Session | undefined {\n return this._session;\n }\n\n /**\n * @inheritDoc\n */\n public update(captureContext?: CaptureContext): this {\n if (!captureContext) {\n return this;\n }\n\n if (typeof captureContext === 'function') {\n const updatedScope = (captureContext as (scope: T) => T)(this);\n return updatedScope instanceof Scope ? updatedScope : this;\n }\n\n if (captureContext instanceof Scope) {\n this._tags = { ...this._tags, ...captureContext._tags };\n this._extra = { ...this._extra, ...captureContext._extra };\n this._contexts = { ...this._contexts, ...captureContext._contexts };\n if (captureContext._user && Object.keys(captureContext._user).length) {\n this._user = captureContext._user;\n }\n if (captureContext._level) {\n this._level = captureContext._level;\n }\n if (captureContext._fingerprint) {\n this._fingerprint = captureContext._fingerprint;\n }\n if (captureContext._requestSession) {\n this._requestSession = captureContext._requestSession;\n }\n } else if (isPlainObject(captureContext)) {\n // eslint-disable-next-line no-param-reassign\n captureContext = captureContext as ScopeContext;\n this._tags = { ...this._tags, ...captureContext.tags };\n this._extra = { ...this._extra, ...captureContext.extra };\n this._contexts = { ...this._contexts, ...captureContext.contexts };\n if (captureContext.user) {\n this._user = captureContext.user;\n }\n if (captureContext.level) {\n this._level = captureContext.level;\n }\n if (captureContext.fingerprint) {\n this._fingerprint = captureContext.fingerprint;\n }\n if (captureContext.requestSession) {\n this._requestSession = captureContext.requestSession;\n }\n }\n\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public clear(): this {\n this._breadcrumbs = [];\n this._tags = {};\n this._extra = {};\n this._user = {};\n this._contexts = {};\n this._level = undefined;\n this._transactionName = undefined;\n this._fingerprint = undefined;\n this._requestSession = undefined;\n this._span = undefined;\n this._session = undefined;\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public addBreadcrumb(breadcrumb: Breadcrumb, maxBreadcrumbs?: number): this {\n const maxCrumbs = typeof maxBreadcrumbs === 'number' ? Math.min(maxBreadcrumbs, MAX_BREADCRUMBS) : MAX_BREADCRUMBS;\n\n // No data has been changed, so don't notify scope listeners\n if (maxCrumbs <= 0) {\n return this;\n }\n\n const mergedBreadcrumb = {\n timestamp: dateTimestampInSeconds(),\n ...breadcrumb,\n };\n this._breadcrumbs = [...this._breadcrumbs, mergedBreadcrumb].slice(-maxCrumbs);\n this._notifyScopeListeners();\n\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public clearBreadcrumbs(): this {\n this._breadcrumbs = [];\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * Applies the current context and fingerprint to the event.\n * Note that breadcrumbs will be added by the client.\n * Also if the event has already breadcrumbs on it, we do not merge them.\n * @param event Event\n * @param hint May contain additional information about the original exception.\n * @hidden\n */\n public applyToEvent(event: Event, hint?: EventHint): PromiseLike {\n if (this._extra && Object.keys(this._extra).length) {\n event.extra = { ...this._extra, ...event.extra };\n }\n if (this._tags && Object.keys(this._tags).length) {\n event.tags = { ...this._tags, ...event.tags };\n }\n if (this._user && Object.keys(this._user).length) {\n event.user = { ...this._user, ...event.user };\n }\n if (this._contexts && Object.keys(this._contexts).length) {\n event.contexts = { ...this._contexts, ...event.contexts };\n }\n if (this._level) {\n event.level = this._level;\n }\n if (this._transactionName) {\n event.transaction = this._transactionName;\n }\n // We want to set the trace context for normal events only if there isn't already\n // a trace context on the event. There is a product feature in place where we link\n // errors with transaction and it relies on that.\n if (this._span) {\n event.contexts = { trace: this._span.getTraceContext(), ...event.contexts };\n const transactionName = this._span.transaction && this._span.transaction.name;\n if (transactionName) {\n event.tags = { transaction: transactionName, ...event.tags };\n }\n }\n\n this._applyFingerprint(event);\n\n event.breadcrumbs = [...(event.breadcrumbs || []), ...this._breadcrumbs];\n event.breadcrumbs = event.breadcrumbs.length > 0 ? event.breadcrumbs : undefined;\n\n event.sdkProcessingMetadata = this._sdkProcessingMetadata;\n\n return this._notifyEventProcessors([...getGlobalEventProcessors(), ...this._eventProcessors], event, hint);\n }\n\n /**\n * Add data which will be accessible during event processing but won't get sent to Sentry\n */\n public setSDKProcessingMetadata(newData: { [key: string]: unknown }): this {\n this._sdkProcessingMetadata = { ...this._sdkProcessingMetadata, ...newData };\n\n return this;\n }\n\n /**\n * This will be called after {@link applyToEvent} is finished.\n */\n protected _notifyEventProcessors(\n processors: EventProcessor[],\n event: Event | null,\n hint?: EventHint,\n index: number = 0,\n ): PromiseLike {\n return new SyncPromise((resolve, reject) => {\n const processor = processors[index];\n if (event === null || typeof processor !== 'function') {\n resolve(event);\n } else {\n const result = processor({ ...event }, hint) as Event | null;\n if (isThenable(result)) {\n void result\n .then(final => this._notifyEventProcessors(processors, final, hint, index + 1).then(resolve))\n .then(null, reject);\n } else {\n void this._notifyEventProcessors(processors, result, hint, index + 1)\n .then(resolve)\n .then(null, reject);\n }\n }\n });\n }\n\n /**\n * This will be called on every set call.\n */\n protected _notifyScopeListeners(): void {\n // We need this check for this._notifyingListeners to be able to work on scope during updates\n // If this check is not here we'll produce endless recursion when something is done with the scope\n // during the callback.\n if (!this._notifyingListeners) {\n this._notifyingListeners = true;\n this._scopeListeners.forEach(callback => {\n callback(this);\n });\n this._notifyingListeners = false;\n }\n }\n\n /**\n * Applies fingerprint from the scope to the event if there's one,\n * uses message if there's one instead or get rid of empty fingerprint\n */\n private _applyFingerprint(event: Event): void {\n // Make sure it's an array first and we actually have something in place\n event.fingerprint = event.fingerprint\n ? Array.isArray(event.fingerprint)\n ? event.fingerprint\n : [event.fingerprint]\n : [];\n\n // If we have something on the scope, then merge it with event\n if (this._fingerprint) {\n event.fingerprint = event.fingerprint.concat(this._fingerprint);\n }\n\n // If we have no data at all, remove empty array default\n if (event.fingerprint && !event.fingerprint.length) {\n delete event.fingerprint;\n }\n }\n}\n\n/**\n * Returns the global event processors.\n */\nfunction getGlobalEventProcessors(): EventProcessor[] {\n return getGlobalSingleton('globalEventProcessors', () => []);\n}\n\n/**\n * Add a EventProcessor to be kept globally.\n * @param callback EventProcessor to add\n */\nexport function addGlobalEventProcessor(callback: EventProcessor): void {\n getGlobalEventProcessors().push(callback);\n}\n","import { Session as SessionInterface, SessionContext, SessionStatus } from '@sentry/types';\nimport { dropUndefinedKeys, timestampInSeconds, uuid4 } from '@sentry/utils';\n\n/**\n * @inheritdoc\n */\nexport class Session implements SessionInterface {\n public userAgent?: string;\n public errors: number = 0;\n public release?: string;\n public sid: string = uuid4();\n public did?: string;\n public timestamp: number;\n public started: number;\n public duration?: number = 0;\n public status: SessionStatus = 'ok';\n public environment?: string;\n public ipAddress?: string;\n public init: boolean = true;\n public ignoreDuration: boolean = false;\n\n public constructor(context?: Omit) {\n // Both timestamp and started are in seconds since the UNIX epoch.\n const startingTime = timestampInSeconds();\n this.timestamp = startingTime;\n this.started = startingTime;\n if (context) {\n this.update(context);\n }\n }\n\n /** JSDoc */\n // eslint-disable-next-line complexity\n public update(context: SessionContext = {}): void {\n if (context.user) {\n if (!this.ipAddress && context.user.ip_address) {\n this.ipAddress = context.user.ip_address;\n }\n\n if (!this.did && !context.did) {\n this.did = context.user.id || context.user.email || context.user.username;\n }\n }\n\n this.timestamp = context.timestamp || timestampInSeconds();\n if (context.ignoreDuration) {\n this.ignoreDuration = context.ignoreDuration;\n }\n if (context.sid) {\n // Good enough uuid validation. — Kamil\n this.sid = context.sid.length === 32 ? context.sid : uuid4();\n }\n if (context.init !== undefined) {\n this.init = context.init;\n }\n if (!this.did && context.did) {\n this.did = `${context.did}`;\n }\n if (typeof context.started === 'number') {\n this.started = context.started;\n }\n if (this.ignoreDuration) {\n this.duration = undefined;\n } else if (typeof context.duration === 'number') {\n this.duration = context.duration;\n } else {\n const duration = this.timestamp - this.started;\n this.duration = duration >= 0 ? duration : 0;\n }\n if (context.release) {\n this.release = context.release;\n }\n if (context.environment) {\n this.environment = context.environment;\n }\n if (!this.ipAddress && context.ipAddress) {\n this.ipAddress = context.ipAddress;\n }\n if (!this.userAgent && context.userAgent) {\n this.userAgent = context.userAgent;\n }\n if (typeof context.errors === 'number') {\n this.errors = context.errors;\n }\n if (context.status) {\n this.status = context.status;\n }\n }\n\n /** JSDoc */\n public close(status?: Exclude): void {\n if (status) {\n this.update({ status });\n } else if (this.status === 'ok') {\n this.update({ status: 'exited' });\n } else {\n this.update();\n }\n }\n\n /** JSDoc */\n public toJSON(): {\n init: boolean;\n sid: string;\n did?: string;\n timestamp: string;\n started: string;\n duration?: number;\n status: SessionStatus;\n errors: number;\n attrs?: {\n release?: string;\n environment?: string;\n user_agent?: string;\n ip_address?: string;\n };\n } {\n return dropUndefinedKeys({\n sid: `${this.sid}`,\n init: this.init,\n // Make sure that sec is converted to ms for date constructor\n started: new Date(this.started * 1000).toISOString(),\n timestamp: new Date(this.timestamp * 1000).toISOString(),\n status: this.status,\n errors: this.errors,\n did: typeof this.did === 'number' || typeof this.did === 'string' ? `${this.did}` : undefined,\n duration: this.duration,\n attrs: {\n release: this.release,\n environment: this.environment,\n ip_address: this.ipAddress,\n user_agent: this.userAgent,\n },\n });\n }\n}\n","/**\n * TODO(v7): Remove this enum and replace with SeverityLevel\n */\nexport enum Severity {\n /** JSDoc */\n Fatal = 'fatal',\n /** JSDoc */\n Error = 'error',\n /** JSDoc */\n Warning = 'warning',\n /** JSDoc */\n Log = 'log',\n /** JSDoc */\n Info = 'info',\n /** JSDoc */\n Debug = 'debug',\n /** JSDoc */\n Critical = 'critical',\n}\n\n// TODO: in v7, these can disappear, because they now also exist in `@sentry/utils`. (Having them there rather than here\n// is nice because then it enforces the idea that only types are exported from `@sentry/types`.)\nexport const SeverityLevels = ['fatal', 'error', 'warning', 'log', 'info', 'debug', 'critical'] as const;\nexport type SeverityLevel = typeof SeverityLevels[number];\n","/* eslint-disable max-lines */\nimport {\n Breadcrumb,\n BreadcrumbHint,\n Client,\n CustomSamplingContext,\n Event,\n EventHint,\n Extra,\n Extras,\n Hub as HubInterface,\n Integration,\n IntegrationClass,\n Primitive,\n SessionContext,\n Severity,\n Span,\n SpanContext,\n Transaction,\n TransactionContext,\n User,\n} from '@sentry/types';\nimport {\n consoleSandbox,\n dateTimestampInSeconds,\n getGlobalObject,\n getGlobalSingleton,\n isNodeEnv,\n logger,\n uuid4,\n} from '@sentry/utils';\n\nimport { IS_DEBUG_BUILD } from './flags';\nimport { Scope } from './scope';\nimport { Session } from './session';\n\n/**\n * API compatibility version of this hub.\n *\n * WARNING: This number should only be increased when the global interface\n * changes and new methods are introduced.\n *\n * @hidden\n */\nexport const API_VERSION = 4;\n\n/**\n * Default maximum number of breadcrumbs added to an event. Can be overwritten\n * with {@link Options.maxBreadcrumbs}.\n */\nconst DEFAULT_BREADCRUMBS = 100;\n\n/**\n * A layer in the process stack.\n * @hidden\n */\nexport interface Layer {\n client?: Client;\n scope?: Scope;\n}\n\n/**\n * An object that contains a hub and maintains a scope stack.\n * @hidden\n */\nexport interface Carrier {\n __SENTRY__?: {\n hub?: Hub;\n /**\n * Extra Hub properties injected by various SDKs\n */\n integrations?: Integration[];\n extensions?: {\n /** Hack to prevent bundlers from breaking our usage of the domain package in the cross-platform Hub package */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n domain?: { [key: string]: any };\n } & {\n /** Extension methods for the hub, which are bound to the current Hub instance */\n // eslint-disable-next-line @typescript-eslint/ban-types\n [key: string]: Function;\n };\n };\n}\n\n/**\n * @hidden\n * @deprecated Can be removed once `Hub.getActiveDomain` is removed.\n */\nexport interface DomainAsCarrier extends Carrier {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n members: { [key: string]: any }[];\n}\n\n/**\n * @inheritDoc\n */\nexport class Hub implements HubInterface {\n /** Is a {@link Layer}[] containing the client and scope */\n private readonly _stack: Layer[] = [{}];\n\n /** Contains the last event id of a captured event. */\n private _lastEventId?: string;\n\n /**\n * Creates a new instance of the hub, will push one {@link Layer} into the\n * internal stack on creation.\n *\n * @param client bound to the hub.\n * @param scope bound to the hub.\n * @param version number, higher number means higher priority.\n */\n public constructor(client?: Client, scope: Scope = new Scope(), private readonly _version: number = API_VERSION) {\n this.getStackTop().scope = scope;\n if (client) {\n this.bindClient(client);\n }\n }\n\n /**\n * @inheritDoc\n */\n public isOlderThan(version: number): boolean {\n return this._version < version;\n }\n\n /**\n * @inheritDoc\n */\n public bindClient(client?: Client): void {\n const top = this.getStackTop();\n top.client = client;\n if (client && client.setupIntegrations) {\n client.setupIntegrations();\n }\n }\n\n /**\n * @inheritDoc\n */\n public pushScope(): Scope {\n // We want to clone the content of prev scope\n const scope = Scope.clone(this.getScope());\n this.getStack().push({\n client: this.getClient(),\n scope,\n });\n return scope;\n }\n\n /**\n * @inheritDoc\n */\n public popScope(): boolean {\n if (this.getStack().length <= 1) return false;\n return !!this.getStack().pop();\n }\n\n /**\n * @inheritDoc\n */\n public withScope(callback: (scope: Scope) => void): void {\n const scope = this.pushScope();\n try {\n callback(scope);\n } finally {\n this.popScope();\n }\n }\n\n /**\n * @inheritDoc\n */\n public getClient(): C | undefined {\n return this.getStackTop().client as C;\n }\n\n /** Returns the scope of the top stack. */\n public getScope(): Scope | undefined {\n return this.getStackTop().scope;\n }\n\n /** Returns the scope stack for domains or the process. */\n public getStack(): Layer[] {\n return this._stack;\n }\n\n /** Returns the topmost scope layer in the order domain > local > process. */\n public getStackTop(): Layer {\n return this._stack[this._stack.length - 1];\n }\n\n /**\n * @inheritDoc\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\n public captureException(exception: any, hint?: EventHint): string {\n const eventId = (this._lastEventId = hint && hint.event_id ? hint.event_id : uuid4());\n let finalHint = hint;\n\n // If there's no explicit hint provided, mimic the same thing that would happen\n // in the minimal itself to create a consistent behavior.\n // We don't do this in the client, as it's the lowest level API, and doing this,\n // would prevent user from having full control over direct calls.\n if (!hint) {\n let syntheticException: Error;\n try {\n throw new Error('Sentry syntheticException');\n } catch (exception) {\n syntheticException = exception as Error;\n }\n finalHint = {\n originalException: exception,\n syntheticException,\n };\n }\n\n this._invokeClient('captureException', exception, {\n ...finalHint,\n event_id: eventId,\n });\n return eventId;\n }\n\n /**\n * @inheritDoc\n */\n public captureMessage(message: string, level?: Severity, hint?: EventHint): string {\n const eventId = (this._lastEventId = hint && hint.event_id ? hint.event_id : uuid4());\n let finalHint = hint;\n\n // If there's no explicit hint provided, mimic the same thing that would happen\n // in the minimal itself to create a consistent behavior.\n // We don't do this in the client, as it's the lowest level API, and doing this,\n // would prevent user from having full control over direct calls.\n if (!hint) {\n let syntheticException: Error;\n try {\n throw new Error(message);\n } catch (exception) {\n syntheticException = exception as Error;\n }\n finalHint = {\n originalException: message,\n syntheticException,\n };\n }\n\n this._invokeClient('captureMessage', message, level, {\n ...finalHint,\n event_id: eventId,\n });\n return eventId;\n }\n\n /**\n * @inheritDoc\n */\n public captureEvent(event: Event, hint?: EventHint): string {\n const eventId = hint && hint.event_id ? hint.event_id : uuid4();\n if (event.type !== 'transaction') {\n this._lastEventId = eventId;\n }\n\n this._invokeClient('captureEvent', event, {\n ...hint,\n event_id: eventId,\n });\n return eventId;\n }\n\n /**\n * @inheritDoc\n */\n public lastEventId(): string | undefined {\n return this._lastEventId;\n }\n\n /**\n * @inheritDoc\n */\n public addBreadcrumb(breadcrumb: Breadcrumb, hint?: BreadcrumbHint): void {\n const { scope, client } = this.getStackTop();\n\n if (!scope || !client) return;\n\n // eslint-disable-next-line @typescript-eslint/unbound-method\n const { beforeBreadcrumb = null, maxBreadcrumbs = DEFAULT_BREADCRUMBS } =\n (client.getOptions && client.getOptions()) || {};\n\n if (maxBreadcrumbs <= 0) return;\n\n const timestamp = dateTimestampInSeconds();\n const mergedBreadcrumb = { timestamp, ...breadcrumb };\n const finalBreadcrumb = beforeBreadcrumb\n ? (consoleSandbox(() => beforeBreadcrumb(mergedBreadcrumb, hint)) as Breadcrumb | null)\n : mergedBreadcrumb;\n\n if (finalBreadcrumb === null) return;\n\n scope.addBreadcrumb(finalBreadcrumb, maxBreadcrumbs);\n }\n\n /**\n * @inheritDoc\n */\n public setUser(user: User | null): void {\n const scope = this.getScope();\n if (scope) scope.setUser(user);\n }\n\n /**\n * @inheritDoc\n */\n public setTags(tags: { [key: string]: Primitive }): void {\n const scope = this.getScope();\n if (scope) scope.setTags(tags);\n }\n\n /**\n * @inheritDoc\n */\n public setExtras(extras: Extras): void {\n const scope = this.getScope();\n if (scope) scope.setExtras(extras);\n }\n\n /**\n * @inheritDoc\n */\n public setTag(key: string, value: Primitive): void {\n const scope = this.getScope();\n if (scope) scope.setTag(key, value);\n }\n\n /**\n * @inheritDoc\n */\n public setExtra(key: string, extra: Extra): void {\n const scope = this.getScope();\n if (scope) scope.setExtra(key, extra);\n }\n\n /**\n * @inheritDoc\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n public setContext(name: string, context: { [key: string]: any } | null): void {\n const scope = this.getScope();\n if (scope) scope.setContext(name, context);\n }\n\n /**\n * @inheritDoc\n */\n public configureScope(callback: (scope: Scope) => void): void {\n const { scope, client } = this.getStackTop();\n if (scope && client) {\n callback(scope);\n }\n }\n\n /**\n * @inheritDoc\n */\n public run(callback: (hub: Hub) => void): void {\n const oldHub = makeMain(this);\n try {\n callback(this);\n } finally {\n makeMain(oldHub);\n }\n }\n\n /**\n * @inheritDoc\n */\n public getIntegration(integration: IntegrationClass): T | null {\n const client = this.getClient();\n if (!client) return null;\n try {\n return client.getIntegration(integration);\n } catch (_oO) {\n IS_DEBUG_BUILD && logger.warn(`Cannot retrieve integration ${integration.id} from the current Hub`);\n return null;\n }\n }\n\n /**\n * @inheritDoc\n */\n public startSpan(context: SpanContext): Span {\n return this._callExtensionMethod('startSpan', context);\n }\n\n /**\n * @inheritDoc\n */\n public startTransaction(context: TransactionContext, customSamplingContext?: CustomSamplingContext): Transaction {\n return this._callExtensionMethod('startTransaction', context, customSamplingContext);\n }\n\n /**\n * @inheritDoc\n */\n public traceHeaders(): { [key: string]: string } {\n return this._callExtensionMethod<{ [key: string]: string }>('traceHeaders');\n }\n\n /**\n * @inheritDoc\n */\n public captureSession(endSession: boolean = false): void {\n // both send the update and pull the session from the scope\n if (endSession) {\n return this.endSession();\n }\n\n // only send the update\n this._sendSessionUpdate();\n }\n\n /**\n * @inheritDoc\n */\n public endSession(): void {\n const layer = this.getStackTop();\n const scope = layer && layer.scope;\n const session = scope && scope.getSession();\n if (session) {\n session.close();\n }\n this._sendSessionUpdate();\n\n // the session is over; take it off of the scope\n if (scope) {\n scope.setSession();\n }\n }\n\n /**\n * @inheritDoc\n */\n public startSession(context?: SessionContext): Session {\n const { scope, client } = this.getStackTop();\n const { release, environment } = (client && client.getOptions()) || {};\n\n // Will fetch userAgent if called from browser sdk\n const global = getGlobalObject<{ navigator?: { userAgent?: string } }>();\n const { userAgent } = global.navigator || {};\n\n const session = new Session({\n release,\n environment,\n ...(scope && { user: scope.getUser() }),\n ...(userAgent && { userAgent }),\n ...context,\n });\n\n if (scope) {\n // End existing session if there's one\n const currentSession = scope.getSession && scope.getSession();\n if (currentSession && currentSession.status === 'ok') {\n currentSession.update({ status: 'exited' });\n }\n this.endSession();\n\n // Afterwards we set the new session on the scope\n scope.setSession(session);\n }\n\n return session;\n }\n\n /**\n * Sends the current Session on the scope\n */\n private _sendSessionUpdate(): void {\n const { scope, client } = this.getStackTop();\n if (!scope) return;\n\n const session = scope.getSession && scope.getSession();\n if (session) {\n if (client && client.captureSession) {\n client.captureSession(session);\n }\n }\n }\n\n /**\n * Internal helper function to call a method on the top client if it exists.\n *\n * @param method The method to call on the client.\n * @param args Arguments to pass to the client function.\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private _invokeClient(method: M, ...args: any[]): void {\n const { scope, client } = this.getStackTop();\n if (client && client[method]) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-explicit-any\n (client as any)[method](...args, scope);\n }\n }\n\n /**\n * Calls global extension method and binding current instance to the function call\n */\n // @ts-ignore Function lacks ending return statement and return type does not include 'undefined'. ts(2366)\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private _callExtensionMethod(method: string, ...args: any[]): T {\n const carrier = getMainCarrier();\n const sentry = carrier.__SENTRY__;\n if (sentry && sentry.extensions && typeof sentry.extensions[method] === 'function') {\n return sentry.extensions[method].apply(this, args);\n }\n IS_DEBUG_BUILD && logger.warn(`Extension method ${method} couldn't be found, doing nothing.`);\n }\n}\n\n/**\n * Returns the global shim registry.\n *\n * FIXME: This function is problematic, because despite always returning a valid Carrier,\n * it has an optional `__SENTRY__` property, which then in turn requires us to always perform an unnecessary check\n * at the call-site. We always access the carrier through this function, so we can guarantee that `__SENTRY__` is there.\n **/\nexport function getMainCarrier(): Carrier {\n const carrier = getGlobalObject();\n carrier.__SENTRY__ = carrier.__SENTRY__ || {\n extensions: {},\n hub: undefined,\n };\n return carrier;\n}\n\n/**\n * Replaces the current main hub with the passed one on the global object\n *\n * @returns The old replaced hub\n */\nexport function makeMain(hub: Hub): Hub {\n const registry = getMainCarrier();\n const oldHub = getHubFromCarrier(registry);\n setHubOnCarrier(registry, hub);\n return oldHub;\n}\n\n/**\n * Returns the default hub instance.\n *\n * If a hub is already registered in the global carrier but this module\n * contains a more recent version, it replaces the registered version.\n * Otherwise, the currently registered hub will be returned.\n */\nexport function getCurrentHub(): Hub {\n // Get main carrier (global for every environment)\n const registry = getMainCarrier();\n\n // If there's no hub, or its an old API, assign a new one\n if (!hasHubOnCarrier(registry) || getHubFromCarrier(registry).isOlderThan(API_VERSION)) {\n setHubOnCarrier(registry, new Hub());\n }\n\n // Prefer domains over global if they are there (applicable only to Node environment)\n if (isNodeEnv()) {\n return getHubFromActiveDomain(registry);\n }\n // Return hub that lives on a global object\n return getHubFromCarrier(registry);\n}\n\n/**\n * Returns the active domain, if one exists\n * @deprecated No longer used; remove in v7\n * @returns The domain, or undefined if there is no active domain\n */\n// eslint-disable-next-line deprecation/deprecation\nexport function getActiveDomain(): DomainAsCarrier | undefined {\n IS_DEBUG_BUILD && logger.warn('Function `getActiveDomain` is deprecated and will be removed in a future version.');\n\n const sentry = getMainCarrier().__SENTRY__;\n\n return sentry && sentry.extensions && sentry.extensions.domain && sentry.extensions.domain.active;\n}\n\n/**\n * Try to read the hub from an active domain, and fallback to the registry if one doesn't exist\n * @returns discovered hub\n */\nfunction getHubFromActiveDomain(registry: Carrier): Hub {\n try {\n const sentry = getMainCarrier().__SENTRY__;\n const activeDomain = sentry && sentry.extensions && sentry.extensions.domain && sentry.extensions.domain.active;\n\n // If there's no active domain, just return global hub\n if (!activeDomain) {\n return getHubFromCarrier(registry);\n }\n\n // If there's no hub on current domain, or it's an old API, assign a new one\n if (!hasHubOnCarrier(activeDomain) || getHubFromCarrier(activeDomain).isOlderThan(API_VERSION)) {\n const registryHubTopStack = getHubFromCarrier(registry).getStackTop();\n setHubOnCarrier(activeDomain, new Hub(registryHubTopStack.client, Scope.clone(registryHubTopStack.scope)));\n }\n\n // Return hub that lives on a domain\n return getHubFromCarrier(activeDomain);\n } catch (_Oo) {\n // Return hub that lives on a global object\n return getHubFromCarrier(registry);\n }\n}\n\n/**\n * This will tell whether a carrier has a hub on it or not\n * @param carrier object\n */\nfunction hasHubOnCarrier(carrier: Carrier): boolean {\n return !!(carrier && carrier.__SENTRY__ && carrier.__SENTRY__.hub);\n}\n\n/**\n * This will create a new {@link Hub} and add to the passed object on\n * __SENTRY__.hub.\n * @param carrier object\n * @hidden\n */\nexport function getHubFromCarrier(carrier: Carrier): Hub {\n return getGlobalSingleton('hub', () => new Hub(), carrier);\n}\n\n/**\n * This will set passed {@link Hub} on the passed object's __SENTRY__.hub attribute\n * @param carrier object\n * @param hub Hub\n * @returns A boolean indicating success or failure\n */\nexport function setHubOnCarrier(carrier: Carrier, hub: Hub): boolean {\n if (!carrier) return false;\n const __SENTRY__ = (carrier.__SENTRY__ = carrier.__SENTRY__ || {});\n __SENTRY__.hub = hub;\n return true;\n}\n","import { StackFrame } from '@sentry/types';\n\nconst STACKTRACE_LIMIT = 50;\n\nexport type StackParser = (stack: string, skipFirst?: number) => StackFrame[];\nexport type StackLineParserFn = (line: string) => StackFrame | undefined;\nexport type StackLineParser = [number, StackLineParserFn];\n\n/**\n * Creates a stack parser with the supplied line parsers\n *\n * StackFrames are returned in the correct order for Sentry Exception\n * frames and with Sentry SDK internal frames removed from the top and bottom\n *\n */\nexport function createStackParser(...parsers: StackLineParser[]): StackParser {\n const sortedParsers = parsers.sort((a, b) => a[0] - b[0]).map(p => p[1]);\n\n return (stack: string, skipFirst: number = 0): StackFrame[] => {\n const frames: StackFrame[] = [];\n\n for (const line of stack.split('\\n').slice(skipFirst)) {\n for (const parser of sortedParsers) {\n const frame = parser(line);\n\n if (frame) {\n frames.push(frame);\n break;\n }\n }\n }\n\n return stripSentryFramesAndReverse(frames);\n };\n}\n\n/**\n * @hidden\n */\nexport function stripSentryFramesAndReverse(stack: StackFrame[]): StackFrame[] {\n if (!stack.length) {\n return [];\n }\n\n let localStack = stack;\n\n const firstFrameFunction = localStack[0].function || '';\n const lastFrameFunction = localStack[localStack.length - 1].function || '';\n\n // If stack starts with one of our API calls, remove it (starts, meaning it's the top of the stack - aka last call)\n if (firstFrameFunction.indexOf('captureMessage') !== -1 || firstFrameFunction.indexOf('captureException') !== -1) {\n localStack = localStack.slice(1);\n }\n\n // If stack ends with one of our internal API calls, remove it (ends, meaning it's the bottom of the stack - aka top-most call)\n if (lastFrameFunction.indexOf('sentryWrapped') !== -1) {\n localStack = localStack.slice(0, -1);\n }\n\n // The frame where the crash happened, should be the last entry in the array\n return localStack\n .slice(0, STACKTRACE_LIMIT)\n .map(frame => ({\n ...frame,\n filename: frame.filename || localStack[0].filename,\n function: frame.function || '?',\n }))\n .reverse();\n}\n\nconst defaultFunctionName = '';\n\n/**\n * Safely extract function name from itself\n */\nexport function getFunctionName(fn: unknown): string {\n try {\n if (!fn || typeof fn !== 'function') {\n return defaultFunctionName;\n }\n return fn.name || defaultFunctionName;\n } catch (e) {\n // Just accessing custom props in some Selenium environments\n // can cause a \"Permission denied\" exception (see raven-js#495).\n return defaultFunctionName;\n }\n}\n","import { IS_DEBUG_BUILD } from './flags';\nimport { getGlobalObject } from './global';\nimport { logger } from './logger';\n\n/**\n * Tells whether current environment supports ErrorEvent objects\n * {@link supportsErrorEvent}.\n *\n * @returns Answer to the given question.\n */\nexport function supportsErrorEvent(): boolean {\n try {\n new ErrorEvent('');\n return true;\n } catch (e) {\n return false;\n }\n}\n\n/**\n * Tells whether current environment supports DOMError objects\n * {@link supportsDOMError}.\n *\n * @returns Answer to the given question.\n */\nexport function supportsDOMError(): boolean {\n try {\n // Chrome: VM89:1 Uncaught TypeError: Failed to construct 'DOMError':\n // 1 argument required, but only 0 present.\n // @ts-ignore It really needs 1 argument, not 0.\n new DOMError('');\n return true;\n } catch (e) {\n return false;\n }\n}\n\n/**\n * Tells whether current environment supports DOMException objects\n * {@link supportsDOMException}.\n *\n * @returns Answer to the given question.\n */\nexport function supportsDOMException(): boolean {\n try {\n new DOMException('');\n return true;\n } catch (e) {\n return false;\n }\n}\n\n/**\n * Tells whether current environment supports Fetch API\n * {@link supportsFetch}.\n *\n * @returns Answer to the given question.\n */\nexport function supportsFetch(): boolean {\n if (!('fetch' in getGlobalObject())) {\n return false;\n }\n\n try {\n new Headers();\n new Request('');\n new Response();\n return true;\n } catch (e) {\n return false;\n }\n}\n/**\n * isNativeFetch checks if the given function is a native implementation of fetch()\n */\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport function isNativeFetch(func: Function): boolean {\n return func && /^function fetch\\(\\)\\s+\\{\\s+\\[native code\\]\\s+\\}$/.test(func.toString());\n}\n\n/**\n * Tells whether current environment supports Fetch API natively\n * {@link supportsNativeFetch}.\n *\n * @returns true if `window.fetch` is natively implemented, false otherwise\n */\nexport function supportsNativeFetch(): boolean {\n if (!supportsFetch()) {\n return false;\n }\n\n const global = getGlobalObject();\n\n // Fast path to avoid DOM I/O\n // eslint-disable-next-line @typescript-eslint/unbound-method\n if (isNativeFetch(global.fetch)) {\n return true;\n }\n\n // window.fetch is implemented, but is polyfilled or already wrapped (e.g: by a chrome extension)\n // so create a \"pure\" iframe to see if that has native fetch\n let result = false;\n const doc = global.document;\n // eslint-disable-next-line deprecation/deprecation\n if (doc && typeof (doc.createElement as unknown) === 'function') {\n try {\n const sandbox = doc.createElement('iframe');\n sandbox.hidden = true;\n doc.head.appendChild(sandbox);\n if (sandbox.contentWindow && sandbox.contentWindow.fetch) {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n result = isNativeFetch(sandbox.contentWindow.fetch);\n }\n doc.head.removeChild(sandbox);\n } catch (err) {\n IS_DEBUG_BUILD &&\n logger.warn('Could not create sandbox iframe for pure fetch check, bailing to window.fetch: ', err);\n }\n }\n\n return result;\n}\n\n/**\n * Tells whether current environment supports ReportingObserver API\n * {@link supportsReportingObserver}.\n *\n * @returns Answer to the given question.\n */\nexport function supportsReportingObserver(): boolean {\n return 'ReportingObserver' in getGlobalObject();\n}\n\n/**\n * Tells whether current environment supports Referrer Policy API\n * {@link supportsReferrerPolicy}.\n *\n * @returns Answer to the given question.\n */\nexport function supportsReferrerPolicy(): boolean {\n // Despite all stars in the sky saying that Edge supports old draft syntax, aka 'never', 'always', 'origin' and 'default'\n // (see https://caniuse.com/#feat=referrer-policy),\n // it doesn't. And it throws an exception instead of ignoring this parameter...\n // REF: https://github.com/getsentry/raven-js/issues/1233\n\n if (!supportsFetch()) {\n return false;\n }\n\n try {\n new Request('_', {\n referrerPolicy: 'origin' as ReferrerPolicy,\n });\n return true;\n } catch (e) {\n return false;\n }\n}\n\n/**\n * Tells whether current environment supports History API\n * {@link supportsHistory}.\n *\n * @returns Answer to the given question.\n */\nexport function supportsHistory(): boolean {\n // NOTE: in Chrome App environment, touching history.pushState, *even inside\n // a try/catch block*, will cause Chrome to output an error to console.error\n // borrowed from: https://github.com/angular/angular.js/pull/13945/files\n const global = getGlobalObject();\n /* eslint-disable @typescript-eslint/no-unsafe-member-access */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const chrome = (global as any).chrome;\n const isChromePackagedApp = chrome && chrome.app && chrome.app.runtime;\n /* eslint-enable @typescript-eslint/no-unsafe-member-access */\n const hasHistoryApi = 'history' in global && !!global.history.pushState && !!global.history.replaceState;\n\n return !isChromePackagedApp && hasHistoryApi;\n}\n","/* eslint-disable max-lines */\n/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/ban-types */\nimport { WrappedFunction } from '@sentry/types';\n\nimport { IS_DEBUG_BUILD } from './flags';\nimport { getGlobalObject } from './global';\nimport { isInstanceOf, isString } from './is';\nimport { CONSOLE_LEVELS, logger } from './logger';\nimport { fill } from './object';\nimport { getFunctionName } from './stacktrace';\nimport { supportsHistory, supportsNativeFetch } from './supports';\n\nconst global = getGlobalObject();\n\ntype InstrumentHandlerType =\n | 'console'\n | 'dom'\n | 'fetch'\n | 'history'\n | 'sentry'\n | 'xhr'\n | 'error'\n | 'unhandledrejection';\ntype InstrumentHandlerCallback = (data: any) => void;\n\n/**\n * Instrument native APIs to call handlers that can be used to create breadcrumbs, APM spans etc.\n * - Console API\n * - Fetch API\n * - XHR API\n * - History API\n * - DOM API (click/typing)\n * - Error API\n * - UnhandledRejection API\n */\n\nconst handlers: { [key in InstrumentHandlerType]?: InstrumentHandlerCallback[] } = {};\nconst instrumented: { [key in InstrumentHandlerType]?: boolean } = {};\n\n/** Instruments given API */\nfunction instrument(type: InstrumentHandlerType): void {\n if (instrumented[type]) {\n return;\n }\n\n instrumented[type] = true;\n\n switch (type) {\n case 'console':\n instrumentConsole();\n break;\n case 'dom':\n instrumentDOM();\n break;\n case 'xhr':\n instrumentXHR();\n break;\n case 'fetch':\n instrumentFetch();\n break;\n case 'history':\n instrumentHistory();\n break;\n case 'error':\n instrumentError();\n break;\n case 'unhandledrejection':\n instrumentUnhandledRejection();\n break;\n default:\n IS_DEBUG_BUILD && logger.warn('unknown instrumentation type:', type);\n return;\n }\n}\n\n/**\n * Add handler that will be called when given type of instrumentation triggers.\n * Use at your own risk, this might break without changelog notice, only used internally.\n * @hidden\n */\nexport function addInstrumentationHandler(type: InstrumentHandlerType, callback: InstrumentHandlerCallback): void {\n handlers[type] = handlers[type] || [];\n (handlers[type] as InstrumentHandlerCallback[]).push(callback);\n instrument(type);\n}\n\n/** JSDoc */\nfunction triggerHandlers(type: InstrumentHandlerType, data: any): void {\n if (!type || !handlers[type]) {\n return;\n }\n\n for (const handler of handlers[type] || []) {\n try {\n handler(data);\n } catch (e) {\n IS_DEBUG_BUILD &&\n logger.error(\n `Error while triggering instrumentation handler.\\nType: ${type}\\nName: ${getFunctionName(handler)}\\nError:`,\n e,\n );\n }\n }\n}\n\n/** JSDoc */\nfunction instrumentConsole(): void {\n if (!('console' in global)) {\n return;\n }\n\n CONSOLE_LEVELS.forEach(function (level: string): void {\n if (!(level in global.console)) {\n return;\n }\n\n fill(global.console, level, function (originalConsoleMethod: () => any): Function {\n return function (...args: any[]): void {\n triggerHandlers('console', { args, level });\n\n // this fails for some browsers. :(\n if (originalConsoleMethod) {\n originalConsoleMethod.apply(global.console, args);\n }\n };\n });\n });\n}\n\n/** JSDoc */\nfunction instrumentFetch(): void {\n if (!supportsNativeFetch()) {\n return;\n }\n\n fill(global, 'fetch', function (originalFetch: () => void): () => void {\n return function (...args: any[]): void {\n const handlerData = {\n args,\n fetchData: {\n method: getFetchMethod(args),\n url: getFetchUrl(args),\n },\n startTimestamp: Date.now(),\n };\n\n triggerHandlers('fetch', {\n ...handlerData,\n });\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n return originalFetch.apply(global, args).then(\n (response: Response) => {\n triggerHandlers('fetch', {\n ...handlerData,\n endTimestamp: Date.now(),\n response,\n });\n return response;\n },\n (error: Error) => {\n triggerHandlers('fetch', {\n ...handlerData,\n endTimestamp: Date.now(),\n error,\n });\n // NOTE: If you are a Sentry user, and you are seeing this stack frame,\n // it means the sentry.javascript SDK caught an error invoking your application code.\n // This is expected behavior and NOT indicative of a bug with sentry.javascript.\n throw error;\n },\n );\n };\n });\n}\n\ntype XHRSendInput = null | Blob | BufferSource | FormData | URLSearchParams | string;\n\n/** JSDoc */\ninterface SentryWrappedXMLHttpRequest extends XMLHttpRequest {\n [key: string]: any;\n __sentry_xhr__?: {\n method?: string;\n url?: string;\n status_code?: number;\n body?: XHRSendInput;\n };\n}\n\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n/** Extract `method` from fetch call arguments */\nfunction getFetchMethod(fetchArgs: any[] = []): string {\n if ('Request' in global && isInstanceOf(fetchArgs[0], Request) && fetchArgs[0].method) {\n return String(fetchArgs[0].method).toUpperCase();\n }\n if (fetchArgs[1] && fetchArgs[1].method) {\n return String(fetchArgs[1].method).toUpperCase();\n }\n return 'GET';\n}\n\n/** Extract `url` from fetch call arguments */\nfunction getFetchUrl(fetchArgs: any[] = []): string {\n if (typeof fetchArgs[0] === 'string') {\n return fetchArgs[0];\n }\n if ('Request' in global && isInstanceOf(fetchArgs[0], Request)) {\n return fetchArgs[0].url;\n }\n return String(fetchArgs[0]);\n}\n/* eslint-enable @typescript-eslint/no-unsafe-member-access */\n\n/** JSDoc */\nfunction instrumentXHR(): void {\n if (!('XMLHttpRequest' in global)) {\n return;\n }\n\n const xhrproto = XMLHttpRequest.prototype;\n\n fill(xhrproto, 'open', function (originalOpen: () => void): () => void {\n return function (this: SentryWrappedXMLHttpRequest, ...args: any[]): void {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const xhr = this;\n const url = args[1];\n const xhrInfo: SentryWrappedXMLHttpRequest['__sentry_xhr__'] = (xhr.__sentry_xhr__ = {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n method: isString(args[0]) ? args[0].toUpperCase() : args[0],\n url: args[1],\n });\n\n // if Sentry key appears in URL, don't capture it as a request\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n if (isString(url) && xhrInfo.method === 'POST' && url.match(/sentry_key/)) {\n xhr.__sentry_own_request__ = true;\n }\n\n const onreadystatechangeHandler = function (): void {\n if (xhr.readyState === 4) {\n try {\n // touching statusCode in some platforms throws\n // an exception\n xhrInfo.status_code = xhr.status;\n } catch (e) {\n /* do nothing */\n }\n\n triggerHandlers('xhr', {\n args,\n endTimestamp: Date.now(),\n startTimestamp: Date.now(),\n xhr,\n });\n }\n };\n\n if ('onreadystatechange' in xhr && typeof xhr.onreadystatechange === 'function') {\n fill(xhr, 'onreadystatechange', function (original: WrappedFunction): Function {\n return function (...readyStateArgs: any[]): void {\n onreadystatechangeHandler();\n return original.apply(xhr, readyStateArgs);\n };\n });\n } else {\n xhr.addEventListener('readystatechange', onreadystatechangeHandler);\n }\n\n return originalOpen.apply(xhr, args);\n };\n });\n\n fill(xhrproto, 'send', function (originalSend: () => void): () => void {\n return function (this: SentryWrappedXMLHttpRequest, ...args: any[]): void {\n if (this.__sentry_xhr__ && args[0] !== undefined) {\n this.__sentry_xhr__.body = args[0];\n }\n\n triggerHandlers('xhr', {\n args,\n startTimestamp: Date.now(),\n xhr: this,\n });\n\n return originalSend.apply(this, args);\n };\n });\n}\n\nlet lastHref: string;\n\n/** JSDoc */\nfunction instrumentHistory(): void {\n if (!supportsHistory()) {\n return;\n }\n\n const oldOnPopState = global.onpopstate;\n global.onpopstate = function (this: WindowEventHandlers, ...args: any[]): any {\n const to = global.location.href;\n // keep track of the current URL state, as we always receive only the updated state\n const from = lastHref;\n lastHref = to;\n triggerHandlers('history', {\n from,\n to,\n });\n if (oldOnPopState) {\n // Apparently this can throw in Firefox when incorrectly implemented plugin is installed.\n // https://github.com/getsentry/sentry-javascript/issues/3344\n // https://github.com/bugsnag/bugsnag-js/issues/469\n try {\n return oldOnPopState.apply(this, args);\n } catch (_oO) {\n // no-empty\n }\n }\n };\n\n /** @hidden */\n function historyReplacementFunction(originalHistoryFunction: () => void): () => void {\n return function (this: History, ...args: any[]): void {\n const url = args.length > 2 ? args[2] : undefined;\n if (url) {\n // coerce to string (this is what pushState does)\n const from = lastHref;\n const to = String(url);\n // keep track of the current URL state, as we always receive only the updated state\n lastHref = to;\n triggerHandlers('history', {\n from,\n to,\n });\n }\n return originalHistoryFunction.apply(this, args);\n };\n }\n\n fill(global.history, 'pushState', historyReplacementFunction);\n fill(global.history, 'replaceState', historyReplacementFunction);\n}\n\nconst debounceDuration = 1000;\nlet debounceTimerID: number | undefined;\nlet lastCapturedEvent: Event | undefined;\n\n/**\n * Decide whether the current event should finish the debounce of previously captured one.\n * @param previous previously captured event\n * @param current event to be captured\n */\nfunction shouldShortcircuitPreviousDebounce(previous: Event | undefined, current: Event): boolean {\n // If there was no previous event, it should always be swapped for the new one.\n if (!previous) {\n return true;\n }\n\n // If both events have different type, then user definitely performed two separate actions. e.g. click + keypress.\n if (previous.type !== current.type) {\n return true;\n }\n\n try {\n // If both events have the same type, it's still possible that actions were performed on different targets.\n // e.g. 2 clicks on different buttons.\n if (previous.target !== current.target) {\n return true;\n }\n } catch (e) {\n // just accessing `target` property can throw an exception in some rare circumstances\n // see: https://github.com/getsentry/sentry-javascript/issues/838\n }\n\n // If both events have the same type _and_ same `target` (an element which triggered an event, _not necessarily_\n // to which an event listener was attached), we treat them as the same action, as we want to capture\n // only one breadcrumb. e.g. multiple clicks on the same button, or typing inside a user input box.\n return false;\n}\n\n/**\n * Decide whether an event should be captured.\n * @param event event to be captured\n */\nfunction shouldSkipDOMEvent(event: Event): boolean {\n // We are only interested in filtering `keypress` events for now.\n if (event.type !== 'keypress') {\n return false;\n }\n\n try {\n const target = event.target as HTMLElement;\n\n if (!target || !target.tagName) {\n return true;\n }\n\n // Only consider keypress events on actual input elements. This will disregard keypresses targeting body\n // e.g.tabbing through elements, hotkeys, etc.\n if (target.tagName === 'INPUT' || target.tagName === 'TEXTAREA' || target.isContentEditable) {\n return false;\n }\n } catch (e) {\n // just accessing `target` property can throw an exception in some rare circumstances\n // see: https://github.com/getsentry/sentry-javascript/issues/838\n }\n\n return true;\n}\n\n/**\n * Wraps addEventListener to capture UI breadcrumbs\n * @param handler function that will be triggered\n * @param globalListener indicates whether event was captured by the global event listener\n * @returns wrapped breadcrumb events handler\n * @hidden\n */\nfunction makeDOMEventHandler(handler: Function, globalListener: boolean = false): (event: Event) => void {\n return (event: Event): void => {\n // It's possible this handler might trigger multiple times for the same\n // event (e.g. event propagation through node ancestors).\n // Ignore if we've already captured that event.\n if (!event || lastCapturedEvent === event) {\n return;\n }\n\n // We always want to skip _some_ events.\n if (shouldSkipDOMEvent(event)) {\n return;\n }\n\n const name = event.type === 'keypress' ? 'input' : event.type;\n\n // If there is no debounce timer, it means that we can safely capture the new event and store it for future comparisons.\n if (debounceTimerID === undefined) {\n handler({\n event: event,\n name,\n global: globalListener,\n });\n lastCapturedEvent = event;\n }\n // If there is a debounce awaiting, see if the new event is different enough to treat it as a unique one.\n // If that's the case, emit the previous event and store locally the newly-captured DOM event.\n else if (shouldShortcircuitPreviousDebounce(lastCapturedEvent, event)) {\n handler({\n event: event,\n name,\n global: globalListener,\n });\n lastCapturedEvent = event;\n }\n\n // Start a new debounce timer that will prevent us from capturing multiple events that should be grouped together.\n clearTimeout(debounceTimerID);\n debounceTimerID = global.setTimeout(() => {\n debounceTimerID = undefined;\n }, debounceDuration);\n };\n}\n\ntype AddEventListener = (\n type: string,\n listener: EventListenerOrEventListenerObject,\n options?: boolean | AddEventListenerOptions,\n) => void;\ntype RemoveEventListener = (\n type: string,\n listener: EventListenerOrEventListenerObject,\n options?: boolean | EventListenerOptions,\n) => void;\n\ntype InstrumentedElement = Element & {\n __sentry_instrumentation_handlers__?: {\n [key in 'click' | 'keypress']?: {\n handler?: Function;\n /** The number of custom listeners attached to this element */\n refCount: number;\n };\n };\n};\n\n/** JSDoc */\nfunction instrumentDOM(): void {\n if (!('document' in global)) {\n return;\n }\n\n // Make it so that any click or keypress that is unhandled / bubbled up all the way to the document triggers our dom\n // handlers. (Normally we have only one, which captures a breadcrumb for each click or keypress.) Do this before\n // we instrument `addEventListener` so that we don't end up attaching this handler twice.\n const triggerDOMHandler = triggerHandlers.bind(null, 'dom');\n const globalDOMEventHandler = makeDOMEventHandler(triggerDOMHandler, true);\n global.document.addEventListener('click', globalDOMEventHandler, false);\n global.document.addEventListener('keypress', globalDOMEventHandler, false);\n\n // After hooking into click and keypress events bubbled up to `document`, we also hook into user-handled\n // clicks & keypresses, by adding an event listener of our own to any element to which they add a listener. That\n // way, whenever one of their handlers is triggered, ours will be, too. (This is needed because their handler\n // could potentially prevent the event from bubbling up to our global listeners. This way, our handler are still\n // guaranteed to fire at least once.)\n ['EventTarget', 'Node'].forEach((target: string) => {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n const proto = (global as any)[target] && (global as any)[target].prototype;\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, no-prototype-builtins\n if (!proto || !proto.hasOwnProperty || !proto.hasOwnProperty('addEventListener')) {\n return;\n }\n\n fill(proto, 'addEventListener', function (originalAddEventListener: AddEventListener): AddEventListener {\n return function (\n this: Element,\n type: string,\n listener: EventListenerOrEventListenerObject,\n options?: boolean | AddEventListenerOptions,\n ): AddEventListener {\n if (type === 'click' || type == 'keypress') {\n try {\n const el = this as InstrumentedElement;\n const handlers = (el.__sentry_instrumentation_handlers__ = el.__sentry_instrumentation_handlers__ || {});\n const handlerForType = (handlers[type] = handlers[type] || { refCount: 0 });\n\n if (!handlerForType.handler) {\n const handler = makeDOMEventHandler(triggerDOMHandler);\n handlerForType.handler = handler;\n originalAddEventListener.call(this, type, handler, options);\n }\n\n handlerForType.refCount += 1;\n } catch (e) {\n // Accessing dom properties is always fragile.\n // Also allows us to skip `addEventListenrs` calls with no proper `this` context.\n }\n }\n\n return originalAddEventListener.call(this, type, listener, options);\n };\n });\n\n fill(\n proto,\n 'removeEventListener',\n function (originalRemoveEventListener: RemoveEventListener): RemoveEventListener {\n return function (\n this: Element,\n type: string,\n listener: EventListenerOrEventListenerObject,\n options?: boolean | EventListenerOptions,\n ): () => void {\n if (type === 'click' || type == 'keypress') {\n try {\n const el = this as InstrumentedElement;\n const handlers = el.__sentry_instrumentation_handlers__ || {};\n const handlerForType = handlers[type];\n\n if (handlerForType) {\n handlerForType.refCount -= 1;\n // If there are no longer any custom handlers of the current type on this element, we can remove ours, too.\n if (handlerForType.refCount <= 0) {\n originalRemoveEventListener.call(this, type, handlerForType.handler, options);\n handlerForType.handler = undefined;\n delete handlers[type]; // eslint-disable-line @typescript-eslint/no-dynamic-delete\n }\n\n // If there are no longer any custom handlers of any type on this element, cleanup everything.\n if (Object.keys(handlers).length === 0) {\n delete el.__sentry_instrumentation_handlers__;\n }\n }\n } catch (e) {\n // Accessing dom properties is always fragile.\n // Also allows us to skip `addEventListenrs` calls with no proper `this` context.\n }\n }\n\n return originalRemoveEventListener.call(this, type, listener, options);\n };\n },\n );\n });\n}\n\nlet _oldOnErrorHandler: OnErrorEventHandler = null;\n/** JSDoc */\nfunction instrumentError(): void {\n _oldOnErrorHandler = global.onerror;\n\n global.onerror = function (msg: any, url: any, line: any, column: any, error: any): boolean {\n triggerHandlers('error', {\n column,\n error,\n line,\n msg,\n url,\n });\n\n if (_oldOnErrorHandler) {\n // eslint-disable-next-line prefer-rest-params\n return _oldOnErrorHandler.apply(this, arguments);\n }\n\n return false;\n };\n}\n\nlet _oldOnUnhandledRejectionHandler: ((e: any) => void) | null = null;\n/** JSDoc */\nfunction instrumentUnhandledRejection(): void {\n _oldOnUnhandledRejectionHandler = global.onunhandledrejection;\n\n global.onunhandledrejection = function (e: any): boolean {\n triggerHandlers('unhandledrejection', e);\n\n if (_oldOnUnhandledRejectionHandler) {\n // eslint-disable-next-line prefer-rest-params\n return _oldOnUnhandledRejectionHandler.apply(this, arguments);\n }\n\n return true;\n };\n}\n","import { Primitive } from '@sentry/types';\n\nimport { isError, isEvent, isNaN, isSyntheticEvent } from './is';\nimport { memoBuilder, MemoFunc } from './memo';\nimport { convertToPlainObject } from './object';\nimport { getFunctionName } from './stacktrace';\n\ntype Prototype = { constructor: (...args: unknown[]) => unknown };\n// This is a hack to placate TS, relying on the fact that technically, arrays are objects with integer keys. Normally we\n// think of those keys as actual numbers, but `arr['0']` turns out to work just as well as `arr[0]`, and doing it this\n// way lets us use a single type in the places where behave as if we are only dealing with objects, even if some of them\n// might be arrays.\ntype ObjOrArray = { [key: string]: T };\n\n/**\n * Recursively normalizes the given object.\n *\n * - Creates a copy to prevent original input mutation\n * - Skips non-enumerable properties\n * - When stringifying, calls `toJSON` if implemented\n * - Removes circular references\n * - Translates non-serializable values (`undefined`/`NaN`/functions) to serializable format\n * - Translates known global objects/classes to a string representations\n * - Takes care of `Error` object serialization\n * - Optionally limits depth of final output\n * - Optionally limits number of properties/elements included in any single object/array\n *\n * @param input The object to be normalized.\n * @param depth The max depth to which to normalize the object. (Anything deeper stringified whole.)\n * @param maxProperties The max number of elements or properties to be included in any single array or\n * object in the normallized output..\n * @returns A normalized version of the object, or `\"**non-serializable**\"` if any errors are thrown during normalization.\n */\nexport function normalize(input: unknown, depth: number = +Infinity, maxProperties: number = +Infinity): any {\n try {\n // since we're at the outermost level, there is no key\n return visit('', input, depth, maxProperties);\n } catch (err) {\n return { ERROR: `**non-serializable** (${err})` };\n }\n}\n\n/** JSDoc */\nexport function normalizeToSize(\n object: { [key: string]: any },\n // Default Node.js REPL depth\n depth: number = 3,\n // 100kB, as 200kB is max payload size, so half sounds reasonable\n maxSize: number = 100 * 1024,\n): T {\n const normalized = normalize(object, depth);\n\n if (jsonSize(normalized) > maxSize) {\n return normalizeToSize(object, depth - 1, maxSize);\n }\n\n return normalized as T;\n}\n\n/**\n * Visits a node to perform normalization on it\n *\n * @param key The key corresponding to the given node\n * @param value The node to be visited\n * @param depth Optional number indicating the maximum recursion depth\n * @param maxProperties Optional maximum number of properties/elements included in any single object/array\n * @param memo Optional Memo class handling decycling\n */\nfunction visit(\n key: string,\n value: unknown,\n depth: number = +Infinity,\n maxProperties: number = +Infinity,\n memo: MemoFunc = memoBuilder(),\n): Primitive | ObjOrArray {\n const [memoize, unmemoize] = memo;\n\n // If the value has a `toJSON` method, see if we can bail and let it do the work\n const valueWithToJSON = value as unknown & { toJSON?: () => Primitive | ObjOrArray };\n if (valueWithToJSON && typeof valueWithToJSON.toJSON === 'function') {\n try {\n return valueWithToJSON.toJSON();\n } catch (err) {\n // pass (The built-in `toJSON` failed, but we can still try to do it ourselves)\n }\n }\n\n // Get the simple cases out of the way first\n if (value === null || (['number', 'boolean', 'string'].includes(typeof value) && !isNaN(value))) {\n return value as Primitive;\n }\n\n const stringified = stringifyValue(key, value);\n\n // Anything we could potentially dig into more (objects or arrays) will have come back as `\"[object XXXX]\"`.\n // Everything else will have already been serialized, so if we don't see that pattern, we're done.\n if (!stringified.startsWith('[object ')) {\n return stringified;\n }\n\n // We're also done if we've reached the max depth\n if (depth === 0) {\n // At this point we know `serialized` is a string of the form `\"[object XXXX]\"`. Clean it up so it's just `\"[XXXX]\"`.\n return stringified.replace('object ', '');\n }\n\n // If we've already visited this branch, bail out, as it's circular reference. If not, note that we're seeing it now.\n if (memoize(value)) {\n return '[Circular ~]';\n }\n\n // At this point we know we either have an object or an array, we haven't seen it before, and we're going to recurse\n // because we haven't yet reached the max depth. Create an accumulator to hold the results of visiting each\n // property/entry, and keep track of the number of items we add to it.\n const normalized = (Array.isArray(value) ? [] : {}) as ObjOrArray;\n let numAdded = 0;\n\n // Before we begin, convert`Error` and`Event` instances into plain objects, since some of each of their relevant\n // properties are non-enumerable and otherwise would get missed.\n const visitable = (isError(value) || isEvent(value) ? convertToPlainObject(value) : value) as ObjOrArray;\n\n for (const visitKey in visitable) {\n // Avoid iterating over fields in the prototype if they've somehow been exposed to enumeration.\n if (!Object.prototype.hasOwnProperty.call(visitable, visitKey)) {\n continue;\n }\n\n if (numAdded >= maxProperties) {\n normalized[visitKey] = '[MaxProperties ~]';\n break;\n }\n\n // Recursively visit all the child nodes\n const visitValue = visitable[visitKey];\n normalized[visitKey] = visit(visitKey, visitValue, depth - 1, maxProperties, memo);\n\n numAdded += 1;\n }\n\n // Once we've visited all the branches, remove the parent from memo storage\n unmemoize(value);\n\n // Return accumulated values\n return normalized;\n}\n\n// TODO remove this in v7 (this means the method will no longer be exported, under any name)\nexport { visit as walk };\n\n/**\n * Stringify the given value. Handles various known special values and types.\n *\n * Not meant to be used on simple primitives which already have a string representation, as it will, for example, turn\n * the number 1231 into \"[Object Number]\", nor on `null`, as it will throw.\n *\n * @param value The value to stringify\n * @returns A stringified representation of the given value\n */\nfunction stringifyValue(\n key: unknown,\n // this type is a tiny bit of a cheat, since this function does handle NaN (which is technically a number), but for\n // our internal use, it'll do\n value: Exclude,\n): string {\n try {\n if (key === 'domain' && value && typeof value === 'object' && (value as { _events: unknown })._events) {\n return '[Domain]';\n }\n\n if (key === 'domainEmitter') {\n return '[DomainEmitter]';\n }\n\n // It's safe to use `global`, `window`, and `document` here in this manner, as we are asserting using `typeof` first\n // which won't throw if they are not present.\n\n if (typeof global !== 'undefined' && value === global) {\n return '[Global]';\n }\n\n // eslint-disable-next-line no-restricted-globals\n if (typeof window !== 'undefined' && value === window) {\n return '[Window]';\n }\n\n // eslint-disable-next-line no-restricted-globals\n if (typeof document !== 'undefined' && value === document) {\n return '[Document]';\n }\n\n // React's SyntheticEvent thingy\n if (isSyntheticEvent(value)) {\n return '[SyntheticEvent]';\n }\n\n if (typeof value === 'number' && value !== value) {\n return '[NaN]';\n }\n\n // this catches `undefined` (but not `null`, which is a primitive and can be serialized on its own)\n if (value === void 0) {\n return '[undefined]';\n }\n\n if (typeof value === 'function') {\n return `[Function: ${getFunctionName(value)}]`;\n }\n\n if (typeof value === 'symbol') {\n return `[${String(value)}]`;\n }\n\n // stringified BigInts are indistinguishable from regular numbers, so we need to label them to avoid confusion\n if (typeof value === 'bigint') {\n return `[BigInt: ${String(value)}]`;\n }\n\n // Now that we've knocked out all the special cases and the primitives, all we have left are objects. Simply casting\n // them to strings means that instances of classes which haven't defined their `toStringTag` will just come out as\n // `\"[object Object]\"`. If we instead look at the constructor's name (which is the same as the name of the class),\n // we can make sure that only plain objects come out that way.\n return `[object ${(Object.getPrototypeOf(value) as Prototype).constructor.name}]`;\n } catch (err) {\n return `**non-serializable** (${err})`;\n }\n}\n\n/** Calculates bytes size of input string */\nfunction utf8Length(value: string): number {\n // eslint-disable-next-line no-bitwise\n return ~-encodeURI(value).split(/%..|./).length;\n}\n\n/** Calculates bytes size of input object */\nfunction jsonSize(value: any): number {\n return utf8Length(JSON.stringify(value));\n}\n","/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n/* eslint-disable @typescript-eslint/no-explicit-any */\n\nexport type MemoFunc = [\n // memoize\n (obj: any) => boolean,\n // unmemoize\n (obj: any) => void,\n];\n\n/**\n * Helper to decycle json objects\n */\nexport function memoBuilder(): MemoFunc {\n const hasWeakSet = typeof WeakSet === 'function';\n const inner: any = hasWeakSet ? new WeakSet() : [];\n function memoize(obj: any): boolean {\n if (hasWeakSet) {\n if (inner.has(obj)) {\n return true;\n }\n inner.add(obj);\n return false;\n }\n // eslint-disable-next-line @typescript-eslint/prefer-for-of\n for (let i = 0; i < inner.length; i++) {\n const value = inner[i];\n if (value === obj) {\n return true;\n }\n }\n inner.push(obj);\n return false;\n }\n\n function unmemoize(obj: any): void {\n if (hasWeakSet) {\n inner.delete(obj);\n } else {\n for (let i = 0; i < inner.length; i++) {\n if (inner[i] === obj) {\n inner.splice(i, 1);\n break;\n }\n }\n }\n }\n return [memoize, unmemoize];\n}\n","import { StackFrame } from '@sentry/types';\nimport { StackLineParser, StackLineParserFn } from '@sentry/utils';\n\n// global reference to slice\nconst UNKNOWN_FUNCTION = '?';\n\nconst OPERA10_PRIORITY = 10;\nconst OPERA11_PRIORITY = 20;\nconst CHROME_PRIORITY = 30;\nconst WINJS_PRIORITY = 40;\nconst GECKO_PRIORITY = 50;\n\nfunction createFrame(filename: string, func: string, lineno?: number, colno?: number): StackFrame {\n const frame: StackFrame = {\n filename,\n function: func,\n // All browser frames are considered in_app\n in_app: true,\n };\n\n if (lineno !== undefined) {\n frame.lineno = lineno;\n }\n\n if (colno !== undefined) {\n frame.colno = colno;\n }\n\n return frame;\n}\n\n// Chromium based browsers: Chrome, Brave, new Opera, new Edge\nconst chromeRegex =\n /^\\s*at (?:(.*?) ?\\((?:address at )?)?((?:file|https?|blob|chrome-extension|address|native|eval|webpack||[-a-z]+:|.*bundle|\\/).*?)(?::(\\d+))?(?::(\\d+))?\\)?\\s*$/i;\nconst chromeEvalRegex = /\\((\\S*)(?::(\\d+))(?::(\\d+))\\)/;\n\nconst chrome: StackLineParserFn = line => {\n const parts = chromeRegex.exec(line);\n\n if (parts) {\n const isEval = parts[2] && parts[2].indexOf('eval') === 0; // start of line\n\n if (isEval) {\n const subMatch = chromeEvalRegex.exec(parts[2]);\n\n if (subMatch) {\n // throw out eval line/column and use top-most line/column number\n parts[2] = subMatch[1]; // url\n parts[3] = subMatch[2]; // line\n parts[4] = subMatch[3]; // column\n }\n }\n\n // Kamil: One more hack won't hurt us right? Understanding and adding more rules on top of these regexps right now\n // would be way too time consuming. (TODO: Rewrite whole RegExp to be more readable)\n const [func, filename] = extractSafariExtensionDetails(parts[1] || UNKNOWN_FUNCTION, parts[2]);\n\n return createFrame(filename, func, parts[3] ? +parts[3] : undefined, parts[4] ? +parts[4] : undefined);\n }\n\n return;\n};\n\nexport const chromeStackParser: StackLineParser = [CHROME_PRIORITY, chrome];\n\n// gecko regex: `(?:bundle|\\d+\\.js)`: `bundle` is for react native, `\\d+\\.js` also but specifically for ram bundles because it\n// generates filenames without a prefix like `file://` the filenames in the stacktrace are just 42.js\n// We need this specific case for now because we want no other regex to match.\nconst geckoREgex =\n /^\\s*(.*?)(?:\\((.*?)\\))?(?:^|@)?((?:file|https?|blob|chrome|webpack|resource|moz-extension|capacitor).*?:\\/.*?|\\[native code\\]|[^@]*(?:bundle|\\d+\\.js)|\\/[\\w\\-. /=]+)(?::(\\d+))?(?::(\\d+))?\\s*$/i;\nconst geckoEvalRegex = /(\\S+) line (\\d+)(?: > eval line \\d+)* > eval/i;\n\nconst gecko: StackLineParserFn = line => {\n const parts = geckoREgex.exec(line);\n\n if (parts) {\n const isEval = parts[3] && parts[3].indexOf(' > eval') > -1;\n if (isEval) {\n const subMatch = geckoEvalRegex.exec(parts[3]);\n\n if (subMatch) {\n // throw out eval line/column and use top-most line number\n parts[1] = parts[1] || 'eval';\n parts[3] = subMatch[1];\n parts[4] = subMatch[2];\n parts[5] = ''; // no column when eval\n }\n }\n\n let filename = parts[3];\n let func = parts[1] || UNKNOWN_FUNCTION;\n [func, filename] = extractSafariExtensionDetails(func, filename);\n\n return createFrame(filename, func, parts[4] ? +parts[4] : undefined, parts[5] ? +parts[5] : undefined);\n }\n\n return;\n};\n\nexport const geckoStackParser: StackLineParser = [GECKO_PRIORITY, gecko];\n\nconst winjsRegex =\n /^\\s*at (?:((?:\\[object object\\])?.+) )?\\(?((?:file|ms-appx|https?|webpack|blob):.*?):(\\d+)(?::(\\d+))?\\)?\\s*$/i;\n\nconst winjs: StackLineParserFn = line => {\n const parts = winjsRegex.exec(line);\n\n return parts\n ? createFrame(parts[2], parts[1] || UNKNOWN_FUNCTION, +parts[3], parts[4] ? +parts[4] : undefined)\n : undefined;\n};\n\nexport const winjsStackParser: StackLineParser = [WINJS_PRIORITY, winjs];\n\nconst opera10Regex = / line (\\d+).*script (?:in )?(\\S+)(?:: in function (\\S+))?$/i;\n\nconst opera10: StackLineParserFn = line => {\n const parts = opera10Regex.exec(line);\n return parts ? createFrame(parts[2], parts[3] || UNKNOWN_FUNCTION, +parts[1]) : undefined;\n};\n\nexport const opera10StackParser: StackLineParser = [OPERA10_PRIORITY, opera10];\n\nconst opera11Regex =\n / line (\\d+), column (\\d+)\\s*(?:in (?:]+)>|([^)]+))\\(.*\\))? in (.*):\\s*$/i;\n\nconst opera11: StackLineParserFn = line => {\n const parts = opera11Regex.exec(line);\n return parts ? createFrame(parts[5], parts[3] || parts[4] || UNKNOWN_FUNCTION, +parts[1], +parts[2]) : undefined;\n};\n\nexport const opera11StackParser: StackLineParser = [OPERA11_PRIORITY, opera11];\n\n/**\n * Safari web extensions, starting version unknown, can produce \"frames-only\" stacktraces.\n * What it means, is that instead of format like:\n *\n * Error: wat\n * at function@url:row:col\n * at function@url:row:col\n * at function@url:row:col\n *\n * it produces something like:\n *\n * function@url:row:col\n * function@url:row:col\n * function@url:row:col\n *\n * Because of that, it won't be captured by `chrome` RegExp and will fall into `Gecko` branch.\n * This function is extracted so that we can use it in both places without duplicating the logic.\n * Unfortunately \"just\" changing RegExp is too complicated now and making it pass all tests\n * and fix this case seems like an impossible, or at least way too time-consuming task.\n */\nconst extractSafariExtensionDetails = (func: string, filename: string): [string, string] => {\n const isSafariExtension = func.indexOf('safari-extension') !== -1;\n const isSafariWebExtension = func.indexOf('safari-web-extension') !== -1;\n\n return isSafariExtension || isSafariWebExtension\n ? [\n func.indexOf('@') !== -1 ? func.split('@')[0] : UNKNOWN_FUNCTION,\n isSafariExtension ? `safari-extension:${filename}` : `safari-web-extension:${filename}`,\n ]\n : [func, filename];\n};\n","import { Event, EventHint, Exception, Severity, StackFrame } from '@sentry/types';\nimport {\n addExceptionMechanism,\n addExceptionTypeValue,\n createStackParser,\n extractExceptionKeysForMessage,\n isDOMError,\n isDOMException,\n isError,\n isErrorEvent,\n isEvent,\n isPlainObject,\n normalizeToSize,\n resolvedSyncPromise,\n} from '@sentry/utils';\n\nimport {\n chromeStackParser,\n geckoStackParser,\n opera10StackParser,\n opera11StackParser,\n winjsStackParser,\n} from './stack-parsers';\n\n/**\n * This function creates an exception from an TraceKitStackTrace\n * @param stacktrace TraceKitStackTrace that will be converted to an exception\n * @hidden\n */\nexport function exceptionFromError(ex: Error): Exception {\n // Get the frames first since Opera can lose the stack if we touch anything else first\n const frames = parseStackFrames(ex);\n\n const exception: Exception = {\n type: ex && ex.name,\n value: extractMessage(ex),\n };\n\n if (frames.length) {\n exception.stacktrace = { frames };\n }\n\n if (exception.type === undefined && exception.value === '') {\n exception.value = 'Unrecoverable error caught';\n }\n\n return exception;\n}\n\n/**\n * @hidden\n */\nexport function eventFromPlainObject(\n exception: Record,\n syntheticException?: Error,\n isUnhandledRejection?: boolean,\n): Event {\n const event: Event = {\n exception: {\n values: [\n {\n type: isEvent(exception) ? exception.constructor.name : isUnhandledRejection ? 'UnhandledRejection' : 'Error',\n value: `Non-Error ${\n isUnhandledRejection ? 'promise rejection' : 'exception'\n } captured with keys: ${extractExceptionKeysForMessage(exception)}`,\n },\n ],\n },\n extra: {\n __serialized__: normalizeToSize(exception),\n },\n };\n\n if (syntheticException) {\n const frames = parseStackFrames(syntheticException);\n if (frames.length) {\n event.stacktrace = { frames };\n }\n }\n\n return event;\n}\n\n/**\n * @hidden\n */\nexport function eventFromError(ex: Error): Event {\n return {\n exception: {\n values: [exceptionFromError(ex)],\n },\n };\n}\n\n/** Parses stack frames from an error */\nexport function parseStackFrames(ex: Error & { framesToPop?: number; stacktrace?: string }): StackFrame[] {\n // Access and store the stacktrace property before doing ANYTHING\n // else to it because Opera is not very good at providing it\n // reliably in other circumstances.\n const stacktrace = ex.stacktrace || ex.stack || '';\n\n const popSize = getPopSize(ex);\n\n try {\n return createStackParser(\n opera10StackParser,\n opera11StackParser,\n chromeStackParser,\n winjsStackParser,\n geckoStackParser,\n )(stacktrace, popSize);\n } catch (e) {\n // no-empty\n }\n\n return [];\n}\n\n// Based on our own mapping pattern - https://github.com/getsentry/sentry/blob/9f08305e09866c8bd6d0c24f5b0aabdd7dd6c59c/src/sentry/lang/javascript/errormapping.py#L83-L108\nconst reactMinifiedRegexp = /Minified React error #\\d+;/i;\n\nfunction getPopSize(ex: Error & { framesToPop?: number }): number {\n if (ex) {\n if (typeof ex.framesToPop === 'number') {\n return ex.framesToPop;\n }\n\n if (reactMinifiedRegexp.test(ex.message)) {\n return 1;\n }\n }\n\n return 0;\n}\n\n/**\n * There are cases where stacktrace.message is an Event object\n * https://github.com/getsentry/sentry-javascript/issues/1949\n * In this specific case we try to extract stacktrace.message.error.message\n */\nfunction extractMessage(ex: Error & { message: { error?: Error } }): string {\n const message = ex && ex.message;\n if (!message) {\n return 'No error message';\n }\n if (message.error && typeof message.error.message === 'string') {\n return message.error.message;\n }\n return message;\n}\n\n/**\n * Creates an {@link Event} from all inputs to `captureException` and non-primitive inputs to `captureMessage`.\n * @hidden\n */\nexport function eventFromException(\n exception: unknown,\n hint?: EventHint,\n attachStacktrace?: boolean,\n): PromiseLike {\n const syntheticException = (hint && hint.syntheticException) || undefined;\n const event = eventFromUnknownInput(exception, syntheticException, attachStacktrace);\n addExceptionMechanism(event); // defaults to { type: 'generic', handled: true }\n event.level = Severity.Error;\n if (hint && hint.event_id) {\n event.event_id = hint.event_id;\n }\n return resolvedSyncPromise(event);\n}\n\n/**\n * Builds and Event from a Message\n * @hidden\n */\nexport function eventFromMessage(\n message: string,\n level: Severity = Severity.Info,\n hint?: EventHint,\n attachStacktrace?: boolean,\n): PromiseLike {\n const syntheticException = (hint && hint.syntheticException) || undefined;\n const event = eventFromString(message, syntheticException, attachStacktrace);\n event.level = level;\n if (hint && hint.event_id) {\n event.event_id = hint.event_id;\n }\n return resolvedSyncPromise(event);\n}\n\n/**\n * @hidden\n */\nexport function eventFromUnknownInput(\n exception: unknown,\n syntheticException?: Error,\n attachStacktrace?: boolean,\n isUnhandledRejection?: boolean,\n): Event {\n let event: Event;\n\n if (isErrorEvent(exception as ErrorEvent) && (exception as ErrorEvent).error) {\n // If it is an ErrorEvent with `error` property, extract it to get actual Error\n const errorEvent = exception as ErrorEvent;\n return eventFromError(errorEvent.error as Error);\n }\n\n // If it is a `DOMError` (which is a legacy API, but still supported in some browsers) then we just extract the name\n // and message, as it doesn't provide anything else. According to the spec, all `DOMExceptions` should also be\n // `Error`s, but that's not the case in IE11, so in that case we treat it the same as we do a `DOMError`.\n //\n // https://developer.mozilla.org/en-US/docs/Web/API/DOMError\n // https://developer.mozilla.org/en-US/docs/Web/API/DOMException\n // https://webidl.spec.whatwg.org/#es-DOMException-specialness\n if (isDOMError(exception as DOMError) || isDOMException(exception as DOMException)) {\n const domException = exception as DOMException;\n\n if ('stack' in (exception as Error)) {\n event = eventFromError(exception as Error);\n } else {\n const name = domException.name || (isDOMError(domException) ? 'DOMError' : 'DOMException');\n const message = domException.message ? `${name}: ${domException.message}` : name;\n event = eventFromString(message, syntheticException, attachStacktrace);\n addExceptionTypeValue(event, message);\n }\n if ('code' in domException) {\n event.tags = { ...event.tags, 'DOMException.code': `${domException.code}` };\n }\n\n return event;\n }\n if (isError(exception)) {\n // we have a real Error object, do nothing\n return eventFromError(exception);\n }\n if (isPlainObject(exception) || isEvent(exception)) {\n // If it's a plain object or an instance of `Event` (the built-in JS kind, not this SDK's `Event` type), serialize\n // it manually. This will allow us to group events based on top-level keys which is much better than creating a new\n // group on any key/value change.\n const objectException = exception as Record;\n event = eventFromPlainObject(objectException, syntheticException, isUnhandledRejection);\n addExceptionMechanism(event, {\n synthetic: true,\n });\n return event;\n }\n\n // If none of previous checks were valid, then it means that it's not:\n // - an instance of DOMError\n // - an instance of DOMException\n // - an instance of Event\n // - an instance of Error\n // - a valid ErrorEvent (one with an error property)\n // - a plain Object\n //\n // So bail out and capture it as a simple message:\n event = eventFromString(exception as string, syntheticException, attachStacktrace);\n addExceptionTypeValue(event, `${exception}`, undefined);\n addExceptionMechanism(event, {\n synthetic: true,\n });\n\n return event;\n}\n\n/**\n * @hidden\n */\nexport function eventFromString(input: string, syntheticException?: Error, attachStacktrace?: boolean): Event {\n const event: Event = {\n message: input,\n };\n\n if (attachStacktrace && syntheticException) {\n const frames = parseStackFrames(syntheticException);\n if (frames.length) {\n event.stacktrace = { frames };\n }\n }\n\n return event;\n}\n","/*\n * This file defines flags and constants that can be modified during compile time in order to facilitate tree shaking\n * for users.\n *\n * Debug flags need to be declared in each package individually and must not be imported across package boundaries,\n * because some build tools have trouble tree-shaking imported guards.\n *\n * As a convention, we define debug flags in a `flags.ts` file in the root of a package's `src` folder.\n *\n * Debug flag files will contain \"magic strings\" like `__SENTRY_DEBUG__` that may get replaced with actual values during\n * our, or the user's build process. Take care when introducing new flags - they must not throw if they are not\n * replaced.\n */\n\ndeclare const __SENTRY_DEBUG__: boolean;\n\n/** Flag that is true for debug builds, false otherwise. */\nexport const IS_DEBUG_BUILD = typeof __SENTRY_DEBUG__ === 'undefined' ? true : __SENTRY_DEBUG__;\n","import { getCurrentHub, Hub, Scope } from '@sentry/hub';\nimport {\n Breadcrumb,\n CaptureContext,\n CustomSamplingContext,\n Event,\n Extra,\n Extras,\n Primitive,\n Severity,\n Transaction,\n TransactionContext,\n User,\n} from '@sentry/types';\n\n/**\n * This calls a function on the current hub.\n * @param method function to call on hub.\n * @param args to pass to function.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction callOnHub(method: string, ...args: any[]): T {\n const hub = getCurrentHub();\n if (hub && hub[method as keyof Hub]) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return (hub[method as keyof Hub] as any)(...args);\n }\n throw new Error(`No hub defined or ${method} was not found on the hub, please open a bug report.`);\n}\n\n/**\n * Captures an exception event and sends it to Sentry.\n *\n * @param exception An exception-like object.\n * @returns The generated eventId.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\nexport function captureException(exception: any, captureContext?: CaptureContext): string {\n const syntheticException = new Error('Sentry syntheticException');\n\n return callOnHub('captureException', exception, {\n captureContext,\n originalException: exception,\n syntheticException,\n });\n}\n\n/**\n * Captures a message event and sends it to Sentry.\n *\n * @param message The message to send to Sentry.\n * @param Severity Define the level of the message.\n * @returns The generated eventId.\n */\nexport function captureMessage(message: string, captureContext?: CaptureContext | Severity): string {\n const syntheticException = new Error(message);\n\n // This is necessary to provide explicit scopes upgrade, without changing the original\n // arity of the `captureMessage(message, level)` method.\n const level = typeof captureContext === 'string' ? captureContext : undefined;\n const context = typeof captureContext !== 'string' ? { captureContext } : undefined;\n\n return callOnHub('captureMessage', message, level, {\n originalException: message,\n syntheticException,\n ...context,\n });\n}\n\n/**\n * Captures a manually created event and sends it to Sentry.\n *\n * @param event The event to send to Sentry.\n * @returns The generated eventId.\n */\nexport function captureEvent(event: Event): string {\n return callOnHub('captureEvent', event);\n}\n\n/**\n * Callback to set context information onto the scope.\n * @param callback Callback function that receives Scope.\n */\nexport function configureScope(callback: (scope: Scope) => void): void {\n callOnHub('configureScope', callback);\n}\n\n/**\n * Records a new breadcrumb which will be attached to future events.\n *\n * Breadcrumbs will be added to subsequent events to provide more context on\n * user's actions prior to an error or crash.\n *\n * @param breadcrumb The breadcrumb to record.\n */\nexport function addBreadcrumb(breadcrumb: Breadcrumb): void {\n callOnHub('addBreadcrumb', breadcrumb);\n}\n\n/**\n * Sets context data with the given name.\n * @param name of the context\n * @param context Any kind of data. This data will be normalized.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function setContext(name: string, context: { [key: string]: any } | null): void {\n callOnHub('setContext', name, context);\n}\n\n/**\n * Set an object that will be merged sent as extra data with the event.\n * @param extras Extras object to merge into current context.\n */\nexport function setExtras(extras: Extras): void {\n callOnHub('setExtras', extras);\n}\n\n/**\n * Set an object that will be merged sent as tags data with the event.\n * @param tags Tags context object to merge into current context.\n */\nexport function setTags(tags: { [key: string]: Primitive }): void {\n callOnHub('setTags', tags);\n}\n\n/**\n * Set key:value that will be sent as extra data with the event.\n * @param key String of extra\n * @param extra Any kind of data. This data will be normalized.\n */\nexport function setExtra(key: string, extra: Extra): void {\n callOnHub('setExtra', key, extra);\n}\n\n/**\n * Set key:value that will be sent as tags data with the event.\n *\n * Can also be used to unset a tag, by passing `undefined`.\n *\n * @param key String key of tag\n * @param value Value of tag\n */\nexport function setTag(key: string, value: Primitive): void {\n callOnHub('setTag', key, value);\n}\n\n/**\n * Updates user context information for future events.\n *\n * @param user User context object to be set in the current context. Pass `null` to unset the user.\n */\nexport function setUser(user: User | null): void {\n callOnHub('setUser', user);\n}\n\n/**\n * Creates a new scope with and executes the given operation within.\n * The scope is automatically removed once the operation\n * finishes or throws.\n *\n * This is essentially a convenience function for:\n *\n * pushScope();\n * callback();\n * popScope();\n *\n * @param callback that will be enclosed into push/popScope.\n */\nexport function withScope(callback: (scope: Scope) => void): void {\n callOnHub('withScope', callback);\n}\n\n/**\n * Calls a function on the latest client. Use this with caution, it's meant as\n * in \"internal\" helper so we don't need to expose every possible function in\n * the shim. It is not guaranteed that the client actually implements the\n * function.\n *\n * @param method The method to call on the client/client.\n * @param args Arguments to pass to the client/fontend.\n * @hidden\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function _callOnClient(method: string, ...args: any[]): void {\n callOnHub('_invokeClient', method, ...args);\n}\n\n/**\n * Starts a new `Transaction` and returns it. This is the entry point to manual tracing instrumentation.\n *\n * A tree structure can be built by adding child spans to the transaction, and child spans to other spans. To start a\n * new child span within the transaction or any span, call the respective `.startChild()` method.\n *\n * Every child span must be finished before the transaction is finished, otherwise the unfinished spans are discarded.\n *\n * The transaction must be finished with a call to its `.finish()` method, at which point the transaction with all its\n * finished child spans will be sent to Sentry.\n *\n * @param context Properties of the new `Transaction`.\n * @param customSamplingContext Information given to the transaction sampling function (along with context-dependent\n * default values). See {@link Options.tracesSampler}.\n *\n * @returns The transaction which was just started\n */\nexport function startTransaction(\n context: TransactionContext,\n customSamplingContext?: CustomSamplingContext,\n): Transaction {\n return callOnHub('startTransaction', { ...context }, customSamplingContext);\n}\n","export const setPrototypeOf =\n Object.setPrototypeOf || ({ __proto__: [] } instanceof Array ? setProtoOf : mixinProperties);\n\n/**\n * setPrototypeOf polyfill using __proto__\n */\n// eslint-disable-next-line @typescript-eslint/ban-types\nfunction setProtoOf(obj: TTarget, proto: TProto): TTarget & TProto {\n // @ts-ignore __proto__ does not exist on obj\n obj.__proto__ = proto;\n return obj as TTarget & TProto;\n}\n\n/**\n * setPrototypeOf polyfill using mixin\n */\n// eslint-disable-next-line @typescript-eslint/ban-types\nfunction mixinProperties(obj: TTarget, proto: TProto): TTarget & TProto {\n for (const prop in proto) {\n if (!Object.prototype.hasOwnProperty.call(obj, prop)) {\n // @ts-ignore typescript complains about indexing so we remove\n obj[prop] = proto[prop];\n }\n }\n\n return obj as TTarget & TProto;\n}\n","import { setPrototypeOf } from './polyfill';\n\n/** An error emitted by Sentry SDKs and related utilities. */\nexport class SentryError extends Error {\n /** Display name of this error instance. */\n public name: string;\n\n public constructor(public message: string) {\n super(message);\n\n this.name = new.target.prototype.constructor.name;\n setPrototypeOf(this, new.target.prototype);\n }\n}\n","import { DsnComponents, DsnLike, DsnProtocol } from '@sentry/types';\n\nimport { SentryError } from './error';\nimport { IS_DEBUG_BUILD } from './flags';\n\n/** Regular expression used to parse a Dsn. */\nconst DSN_REGEX = /^(?:(\\w+):)\\/\\/(?:(\\w+)(?::(\\w+))?@)([\\w.-]+)(?::(\\d+))?\\/(.+)/;\n\nfunction isValidProtocol(protocol?: string): protocol is DsnProtocol {\n return protocol === 'http' || protocol === 'https';\n}\n\n/**\n * Renders the string representation of this Dsn.\n *\n * By default, this will render the public representation without the password\n * component. To get the deprecated private representation, set `withPassword`\n * to true.\n *\n * @param withPassword When set to true, the password will be included.\n */\nexport function dsnToString(dsn: DsnComponents, withPassword: boolean = false): string {\n const { host, path, pass, port, projectId, protocol, publicKey } = dsn;\n return (\n `${protocol}://${publicKey}${withPassword && pass ? `:${pass}` : ''}` +\n `@${host}${port ? `:${port}` : ''}/${path ? `${path}/` : path}${projectId}`\n );\n}\n\nfunction dsnFromString(str: string): DsnComponents {\n const match = DSN_REGEX.exec(str);\n\n if (!match) {\n throw new SentryError(`Invalid Sentry Dsn: ${str}`);\n }\n\n const [protocol, publicKey, pass = '', host, port = '', lastPath] = match.slice(1);\n let path = '';\n let projectId = lastPath;\n\n const split = projectId.split('/');\n if (split.length > 1) {\n path = split.slice(0, -1).join('/');\n projectId = split.pop() as string;\n }\n\n if (projectId) {\n const projectMatch = projectId.match(/^\\d+/);\n if (projectMatch) {\n projectId = projectMatch[0];\n }\n }\n\n return dsnFromComponents({ host, pass, path, projectId, port, protocol: protocol as DsnProtocol, publicKey });\n}\n\nfunction dsnFromComponents(components: DsnComponents): DsnComponents {\n // TODO this is for backwards compatibility, and can be removed in a future version\n if ('user' in components && !('publicKey' in components)) {\n components.publicKey = components.user;\n }\n\n return {\n user: components.publicKey || '',\n protocol: components.protocol,\n publicKey: components.publicKey || '',\n pass: components.pass || '',\n host: components.host,\n port: components.port || '',\n path: components.path || '',\n projectId: components.projectId,\n };\n}\n\nfunction validateDsn(dsn: DsnComponents): boolean | void {\n if (!IS_DEBUG_BUILD) {\n return;\n }\n\n const { port, projectId, protocol } = dsn;\n\n const requiredComponents: ReadonlyArray = ['protocol', 'publicKey', 'host', 'projectId'];\n requiredComponents.forEach(component => {\n if (!dsn[component]) {\n throw new SentryError(`Invalid Sentry Dsn: ${component} missing`);\n }\n });\n\n if (!projectId.match(/^\\d+$/)) {\n throw new SentryError(`Invalid Sentry Dsn: Invalid projectId ${projectId}`);\n }\n\n if (!isValidProtocol(protocol)) {\n throw new SentryError(`Invalid Sentry Dsn: Invalid protocol ${protocol}`);\n }\n\n if (port && isNaN(parseInt(port, 10))) {\n throw new SentryError(`Invalid Sentry Dsn: Invalid port ${port}`);\n }\n\n return true;\n}\n\n/** The Sentry Dsn, identifying a Sentry instance and project. */\nexport function makeDsn(from: DsnLike): DsnComponents {\n const components = typeof from === 'string' ? dsnFromString(from) : dsnFromComponents(from);\n\n validateDsn(components);\n\n return components;\n}\n","import { DsnComponents, DsnLike, SdkMetadata } from '@sentry/types';\nimport { dsnToString, makeDsn, urlEncode } from '@sentry/utils';\n\nconst SENTRY_API_VERSION = '7';\n\n/**\n * Stores details about a Sentry SDK\n */\nexport interface APIDetails {\n /** The DSN as passed to Sentry.init() */\n initDsn: DsnLike;\n /** Metadata about the SDK (name, version, etc) for inclusion in envelope headers */\n metadata: SdkMetadata;\n /** The internally used Dsn object. */\n readonly dsn: DsnComponents;\n /** The envelope tunnel to use. */\n readonly tunnel?: string;\n}\n\n/**\n * Helper class to provide urls, headers and metadata that can be used to form\n * different types of requests to Sentry endpoints.\n * Supports both envelopes and regular event requests.\n *\n * @deprecated Please use APIDetails\n **/\nexport class API {\n /** The DSN as passed to Sentry.init() */\n public dsn: DsnLike;\n\n /** Metadata about the SDK (name, version, etc) for inclusion in envelope headers */\n public metadata: SdkMetadata;\n\n /** The internally used Dsn object. */\n private readonly _dsnObject: DsnComponents;\n\n /** The envelope tunnel to use. */\n private readonly _tunnel?: string;\n\n /** Create a new instance of API */\n public constructor(dsn: DsnLike, metadata: SdkMetadata = {}, tunnel?: string) {\n this.dsn = dsn;\n this._dsnObject = makeDsn(dsn);\n this.metadata = metadata;\n this._tunnel = tunnel;\n }\n\n /** Returns the Dsn object. */\n public getDsn(): DsnComponents {\n return this._dsnObject;\n }\n\n /** Does this transport force envelopes? */\n public forceEnvelope(): boolean {\n return !!this._tunnel;\n }\n\n /** Returns the prefix to construct Sentry ingestion API endpoints. */\n public getBaseApiEndpoint(): string {\n return getBaseApiEndpoint(this._dsnObject);\n }\n\n /** Returns the store endpoint URL. */\n public getStoreEndpoint(): string {\n return getStoreEndpoint(this._dsnObject);\n }\n\n /**\n * Returns the store endpoint URL with auth in the query string.\n *\n * Sending auth as part of the query string and not as custom HTTP headers avoids CORS preflight requests.\n */\n public getStoreEndpointWithUrlEncodedAuth(): string {\n return getStoreEndpointWithUrlEncodedAuth(this._dsnObject);\n }\n\n /**\n * Returns the envelope endpoint URL with auth in the query string.\n *\n * Sending auth as part of the query string and not as custom HTTP headers avoids CORS preflight requests.\n */\n public getEnvelopeEndpointWithUrlEncodedAuth(): string {\n return getEnvelopeEndpointWithUrlEncodedAuth(this._dsnObject, this._tunnel);\n }\n}\n\n/** Initializes API Details */\nexport function initAPIDetails(dsn: DsnLike, metadata?: SdkMetadata, tunnel?: string): APIDetails {\n return {\n initDsn: dsn,\n metadata: metadata || {},\n dsn: makeDsn(dsn),\n tunnel,\n } as APIDetails;\n}\n\n/** Returns the prefix to construct Sentry ingestion API endpoints. */\nfunction getBaseApiEndpoint(dsn: DsnComponents): string {\n const protocol = dsn.protocol ? `${dsn.protocol}:` : '';\n const port = dsn.port ? `:${dsn.port}` : '';\n return `${protocol}//${dsn.host}${port}${dsn.path ? `/${dsn.path}` : ''}/api/`;\n}\n\n/** Returns the ingest API endpoint for target. */\nfunction _getIngestEndpoint(dsn: DsnComponents, target: 'store' | 'envelope'): string {\n return `${getBaseApiEndpoint(dsn)}${dsn.projectId}/${target}/`;\n}\n\n/** Returns a URL-encoded string with auth config suitable for a query string. */\nfunction _encodedAuth(dsn: DsnComponents): string {\n return urlEncode({\n // We send only the minimum set of required information. See\n // https://github.com/getsentry/sentry-javascript/issues/2572.\n sentry_key: dsn.publicKey,\n sentry_version: SENTRY_API_VERSION,\n });\n}\n\n/** Returns the store endpoint URL. */\nfunction getStoreEndpoint(dsn: DsnComponents): string {\n return _getIngestEndpoint(dsn, 'store');\n}\n\n/**\n * Returns the store endpoint URL with auth in the query string.\n *\n * Sending auth as part of the query string and not as custom HTTP headers avoids CORS preflight requests.\n */\nexport function getStoreEndpointWithUrlEncodedAuth(dsn: DsnComponents): string {\n return `${getStoreEndpoint(dsn)}?${_encodedAuth(dsn)}`;\n}\n\n/** Returns the envelope endpoint URL. */\nfunction _getEnvelopeEndpoint(dsn: DsnComponents): string {\n return _getIngestEndpoint(dsn, 'envelope');\n}\n\n/**\n * Returns the envelope endpoint URL with auth in the query string.\n *\n * Sending auth as part of the query string and not as custom HTTP headers avoids CORS preflight requests.\n */\nexport function getEnvelopeEndpointWithUrlEncodedAuth(dsn: DsnComponents, tunnel?: string): string {\n return tunnel ? tunnel : `${_getEnvelopeEndpoint(dsn)}?${_encodedAuth(dsn)}`;\n}\n\n/**\n * Returns an object that can be used in request headers.\n * This is needed for node and the old /store endpoint in sentry\n */\nexport function getRequestHeaders(\n dsn: DsnComponents,\n clientName: string,\n clientVersion: string,\n): { [key: string]: string } {\n // CHANGE THIS to use metadata but keep clientName and clientVersion compatible\n const header = [`Sentry sentry_version=${SENTRY_API_VERSION}`];\n header.push(`sentry_client=${clientName}/${clientVersion}`);\n header.push(`sentry_key=${dsn.publicKey}`);\n if (dsn.pass) {\n header.push(`sentry_secret=${dsn.pass}`);\n }\n return {\n 'Content-Type': 'application/json',\n 'X-Sentry-Auth': header.join(', '),\n };\n}\n\n/** Returns the url to the report dialog endpoint. */\nexport function getReportDialogEndpoint(\n dsnLike: DsnLike,\n dialogOptions: {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n [key: string]: any;\n user?: { name?: string; email?: string };\n },\n): string {\n const dsn = makeDsn(dsnLike);\n const endpoint = `${getBaseApiEndpoint(dsn)}embed/error-page/`;\n\n let encodedOptions = `dsn=${dsnToString(dsn)}`;\n for (const key in dialogOptions) {\n if (key === 'dsn') {\n continue;\n }\n\n if (key === 'user') {\n if (!dialogOptions.user) {\n continue;\n }\n if (dialogOptions.user.name) {\n encodedOptions += `&name=${encodeURIComponent(dialogOptions.user.name)}`;\n }\n if (dialogOptions.user.email) {\n encodedOptions += `&email=${encodeURIComponent(dialogOptions.user.email)}`;\n }\n } else {\n encodedOptions += `&${encodeURIComponent(key)}=${encodeURIComponent(dialogOptions[key] as string)}`;\n }\n }\n\n return `${endpoint}?${encodedOptions}`;\n}\n","import { captureException, getReportDialogEndpoint, withScope } from '@sentry/core';\nimport { DsnLike, Event as SentryEvent, Mechanism, Scope, WrappedFunction } from '@sentry/types';\nimport {\n addExceptionMechanism,\n addExceptionTypeValue,\n addNonEnumerableProperty,\n getGlobalObject,\n getOriginalFunction,\n logger,\n markFunctionWrapped,\n} from '@sentry/utils';\n\nimport { IS_DEBUG_BUILD } from './flags';\n\nconst global = getGlobalObject();\nlet ignoreOnError: number = 0;\n\n/**\n * @hidden\n */\nexport function shouldIgnoreOnError(): boolean {\n return ignoreOnError > 0;\n}\n\n/**\n * @hidden\n */\nexport function ignoreNextOnError(): void {\n // onerror should trigger before setTimeout\n ignoreOnError += 1;\n setTimeout(() => {\n ignoreOnError -= 1;\n });\n}\n\n/**\n * Instruments the given function and sends an event to Sentry every time the\n * function throws an exception.\n *\n * @param fn A function to wrap.\n * @returns The wrapped function.\n * @hidden\n */\nexport function wrap(\n fn: WrappedFunction,\n options: {\n mechanism?: Mechanism;\n } = {},\n before?: WrappedFunction,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n): any {\n // for future readers what this does is wrap a function and then create\n // a bi-directional wrapping between them.\n //\n // example: wrapped = wrap(original);\n // original.__sentry_wrapped__ -> wrapped\n // wrapped.__sentry_original__ -> original\n\n if (typeof fn !== 'function') {\n return fn;\n }\n\n try {\n // if we're dealing with a function that was previously wrapped, return\n // the original wrapper.\n const wrapper = fn.__sentry_wrapped__;\n if (wrapper) {\n return wrapper;\n }\n\n // We don't wanna wrap it twice\n if (getOriginalFunction(fn)) {\n return fn;\n }\n } catch (e) {\n // Just accessing custom props in some Selenium environments\n // can cause a \"Permission denied\" exception (see raven-js#495).\n // Bail on wrapping and return the function as-is (defers to window.onerror).\n return fn;\n }\n\n /* eslint-disable prefer-rest-params */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const sentryWrapped: WrappedFunction = function (this: any): void {\n const args = Array.prototype.slice.call(arguments);\n\n try {\n if (before && typeof before === 'function') {\n before.apply(this, arguments);\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-member-access\n const wrappedArguments = args.map((arg: any) => wrap(arg, options));\n\n // Attempt to invoke user-land function\n // NOTE: If you are a Sentry user, and you are seeing this stack frame, it\n // means the sentry.javascript SDK caught an error invoking your application code. This\n // is expected behavior and NOT indicative of a bug with sentry.javascript.\n return fn.apply(this, wrappedArguments);\n } catch (ex) {\n ignoreNextOnError();\n\n withScope((scope: Scope) => {\n scope.addEventProcessor((event: SentryEvent) => {\n if (options.mechanism) {\n addExceptionTypeValue(event, undefined, undefined);\n addExceptionMechanism(event, options.mechanism);\n }\n\n event.extra = {\n ...event.extra,\n arguments: args,\n };\n\n return event;\n });\n\n captureException(ex);\n });\n\n throw ex;\n }\n };\n /* eslint-enable prefer-rest-params */\n\n // Accessing some objects may throw\n // ref: https://github.com/getsentry/sentry-javascript/issues/1168\n try {\n for (const property in fn) {\n if (Object.prototype.hasOwnProperty.call(fn, property)) {\n sentryWrapped[property] = fn[property];\n }\n }\n } catch (_oO) {} // eslint-disable-line no-empty\n\n // Signal that this function has been wrapped/filled already\n // for both debugging and to prevent it to being wrapped/filled twice\n markFunctionWrapped(sentryWrapped, fn);\n\n addNonEnumerableProperty(fn, '__sentry_wrapped__', sentryWrapped);\n\n // Restore original function name (not all browsers allow that)\n try {\n const descriptor = Object.getOwnPropertyDescriptor(sentryWrapped, 'name') as PropertyDescriptor;\n if (descriptor.configurable) {\n Object.defineProperty(sentryWrapped, 'name', {\n get(): string {\n return fn.name;\n },\n });\n }\n // eslint-disable-next-line no-empty\n } catch (_oO) {}\n\n return sentryWrapped;\n}\n\n/**\n * All properties the report dialog supports\n */\nexport interface ReportDialogOptions {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n [key: string]: any;\n eventId?: string;\n dsn?: DsnLike;\n user?: {\n email?: string;\n name?: string;\n };\n lang?: string;\n title?: string;\n subtitle?: string;\n subtitle2?: string;\n labelName?: string;\n labelEmail?: string;\n labelComments?: string;\n labelClose?: string;\n labelSubmit?: string;\n errorGeneric?: string;\n errorFormEntry?: string;\n successMessage?: string;\n /** Callback after reportDialog showed up */\n onLoad?(): void;\n}\n\n/**\n * Injects the Report Dialog script\n * @hidden\n */\nexport function injectReportDialog(options: ReportDialogOptions = {}): void {\n if (!global.document) {\n return;\n }\n\n if (!options.eventId) {\n IS_DEBUG_BUILD && logger.error('Missing eventId option in showReportDialog call');\n return;\n }\n\n if (!options.dsn) {\n IS_DEBUG_BUILD && logger.error('Missing dsn option in showReportDialog call');\n return;\n }\n\n const script = global.document.createElement('script');\n script.async = true;\n script.src = getReportDialogEndpoint(options.dsn, options);\n\n if (options.onLoad) {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n script.onload = options.onLoad;\n }\n\n const injectionPoint = global.document.head || global.document.body;\n\n if (injectionPoint) {\n injectionPoint.appendChild(script);\n }\n}\n","/* eslint-disable @typescript-eslint/no-unsafe-member-access */\nimport { getCurrentHub } from '@sentry/core';\nimport { Event, EventHint, Hub, Integration, Primitive, Severity } from '@sentry/types';\nimport {\n addExceptionMechanism,\n addInstrumentationHandler,\n getLocationHref,\n isErrorEvent,\n isPrimitive,\n isString,\n logger,\n} from '@sentry/utils';\n\nimport { eventFromUnknownInput } from '../eventbuilder';\nimport { IS_DEBUG_BUILD } from '../flags';\nimport { shouldIgnoreOnError } from '../helpers';\n\ntype GlobalHandlersIntegrationsOptionKeys = 'onerror' | 'onunhandledrejection';\n\n/** JSDoc */\ntype GlobalHandlersIntegrations = Record;\n\n/** Global handlers */\nexport class GlobalHandlers implements Integration {\n /**\n * @inheritDoc\n */\n public static id: string = 'GlobalHandlers';\n\n /**\n * @inheritDoc\n */\n public name: string = GlobalHandlers.id;\n\n /** JSDoc */\n private readonly _options: GlobalHandlersIntegrations;\n\n /**\n * Stores references functions to installing handlers. Will set to undefined\n * after they have been run so that they are not used twice.\n */\n private _installFunc: Record void) | undefined> = {\n onerror: _installGlobalOnErrorHandler,\n onunhandledrejection: _installGlobalOnUnhandledRejectionHandler,\n };\n\n /** JSDoc */\n public constructor(options?: GlobalHandlersIntegrations) {\n this._options = {\n onerror: true,\n onunhandledrejection: true,\n ...options,\n };\n }\n /**\n * @inheritDoc\n */\n public setupOnce(): void {\n Error.stackTraceLimit = 50;\n const options = this._options;\n\n // We can disable guard-for-in as we construct the options object above + do checks against\n // `this._installFunc` for the property.\n // eslint-disable-next-line guard-for-in\n for (const key in options) {\n const installFunc = this._installFunc[key as GlobalHandlersIntegrationsOptionKeys];\n if (installFunc && options[key as GlobalHandlersIntegrationsOptionKeys]) {\n globalHandlerLog(key);\n installFunc();\n this._installFunc[key as GlobalHandlersIntegrationsOptionKeys] = undefined;\n }\n }\n }\n}\n\n/** JSDoc */\nfunction _installGlobalOnErrorHandler(): void {\n addInstrumentationHandler(\n 'error',\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (data: { msg: any; url: any; line: any; column: any; error: any }) => {\n const [hub, attachStacktrace] = getHubAndAttachStacktrace();\n if (!hub.getIntegration(GlobalHandlers)) {\n return;\n }\n const { msg, url, line, column, error } = data;\n if (shouldIgnoreOnError() || (error && error.__sentry_own_request__)) {\n return;\n }\n\n const event =\n error === undefined && isString(msg)\n ? _eventFromIncompleteOnError(msg, url, line, column)\n : _enhanceEventWithInitialFrame(\n eventFromUnknownInput(error || msg, undefined, attachStacktrace, false),\n url,\n line,\n column,\n );\n\n event.level = Severity.Error;\n\n addMechanismAndCapture(hub, error, event, 'onerror');\n },\n );\n}\n\n/** JSDoc */\nfunction _installGlobalOnUnhandledRejectionHandler(): void {\n addInstrumentationHandler(\n 'unhandledrejection',\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (e: any) => {\n const [hub, attachStacktrace] = getHubAndAttachStacktrace();\n if (!hub.getIntegration(GlobalHandlers)) {\n return;\n }\n let error = e;\n\n // dig the object of the rejection out of known event types\n try {\n // PromiseRejectionEvents store the object of the rejection under 'reason'\n // see https://developer.mozilla.org/en-US/docs/Web/API/PromiseRejectionEvent\n if ('reason' in e) {\n error = e.reason;\n }\n // something, somewhere, (likely a browser extension) effectively casts PromiseRejectionEvents\n // to CustomEvents, moving the `promise` and `reason` attributes of the PRE into\n // the CustomEvent's `detail` attribute, since they're not part of CustomEvent's spec\n // see https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent and\n // https://github.com/getsentry/sentry-javascript/issues/2380\n else if ('detail' in e && 'reason' in e.detail) {\n error = e.detail.reason;\n }\n } catch (_oO) {\n // no-empty\n }\n\n if (shouldIgnoreOnError() || (error && error.__sentry_own_request__)) {\n return true;\n }\n\n const event = isPrimitive(error)\n ? _eventFromRejectionWithPrimitive(error)\n : eventFromUnknownInput(error, undefined, attachStacktrace, true);\n\n event.level = Severity.Error;\n\n addMechanismAndCapture(hub, error, event, 'onunhandledrejection');\n return;\n },\n );\n}\n\n/**\n * Create an event from a promise rejection where the `reason` is a primitive.\n *\n * @param reason: The `reason` property of the promise rejection\n * @returns An Event object with an appropriate `exception` value\n */\nfunction _eventFromRejectionWithPrimitive(reason: Primitive): Event {\n return {\n exception: {\n values: [\n {\n type: 'UnhandledRejection',\n // String() is needed because the Primitive type includes symbols (which can't be automatically stringified)\n value: `Non-Error promise rejection captured with value: ${String(reason)}`,\n },\n ],\n },\n };\n}\n\n/**\n * This function creates a stack from an old, error-less onerror handler.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction _eventFromIncompleteOnError(msg: any, url: any, line: any, column: any): Event {\n const ERROR_TYPES_RE =\n /^(?:[Uu]ncaught (?:exception: )?)?(?:((?:Eval|Internal|Range|Reference|Syntax|Type|URI|)Error): )?(.*)$/i;\n\n // If 'message' is ErrorEvent, get real message from inside\n let message = isErrorEvent(msg) ? msg.message : msg;\n let name = 'Error';\n\n const groups = message.match(ERROR_TYPES_RE);\n if (groups) {\n name = groups[1];\n message = groups[2];\n }\n\n const event = {\n exception: {\n values: [\n {\n type: name,\n value: message,\n },\n ],\n },\n };\n\n return _enhanceEventWithInitialFrame(event, url, line, column);\n}\n\n/** JSDoc */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction _enhanceEventWithInitialFrame(event: Event, url: any, line: any, column: any): Event {\n // event.exception\n const e = (event.exception = event.exception || {});\n // event.exception.values\n const ev = (e.values = e.values || []);\n // event.exception.values[0]\n const ev0 = (ev[0] = ev[0] || {});\n // event.exception.values[0].stacktrace\n const ev0s = (ev0.stacktrace = ev0.stacktrace || {});\n // event.exception.values[0].stacktrace.frames\n const ev0sf = (ev0s.frames = ev0s.frames || []);\n\n const colno = isNaN(parseInt(column, 10)) ? undefined : column;\n const lineno = isNaN(parseInt(line, 10)) ? undefined : line;\n const filename = isString(url) && url.length > 0 ? url : getLocationHref();\n\n // event.exception.values[0].stacktrace.frames\n if (ev0sf.length === 0) {\n ev0sf.push({\n colno,\n filename,\n function: '?',\n in_app: true,\n lineno,\n });\n }\n\n return event;\n}\n\nfunction globalHandlerLog(type: string): void {\n IS_DEBUG_BUILD && logger.log(`Global Handler attached: ${type}`);\n}\n\nfunction addMechanismAndCapture(hub: Hub, error: EventHint['originalException'], event: Event, type: string): void {\n addExceptionMechanism(event, {\n handled: false,\n type,\n });\n hub.captureEvent(event, {\n originalException: error,\n });\n}\n\nfunction getHubAndAttachStacktrace(): [Hub, boolean | undefined] {\n const hub = getCurrentHub();\n const client = hub.getClient();\n const attachStacktrace = client && client.getOptions().attachStacktrace;\n return [hub, attachStacktrace];\n}\n","import { Integration, WrappedFunction } from '@sentry/types';\nimport { fill, getFunctionName, getGlobalObject, getOriginalFunction } from '@sentry/utils';\n\nimport { wrap } from '../helpers';\n\nconst DEFAULT_EVENT_TARGET = [\n 'EventTarget',\n 'Window',\n 'Node',\n 'ApplicationCache',\n 'AudioTrackList',\n 'ChannelMergerNode',\n 'CryptoOperation',\n 'EventSource',\n 'FileReader',\n 'HTMLUnknownElement',\n 'IDBDatabase',\n 'IDBRequest',\n 'IDBTransaction',\n 'KeyOperation',\n 'MediaController',\n 'MessagePort',\n 'ModalWindow',\n 'Notification',\n 'SVGElementInstance',\n 'Screen',\n 'TextTrack',\n 'TextTrackCue',\n 'TextTrackList',\n 'WebSocket',\n 'WebSocketWorker',\n 'Worker',\n 'XMLHttpRequest',\n 'XMLHttpRequestEventTarget',\n 'XMLHttpRequestUpload',\n];\n\ntype XMLHttpRequestProp = 'onload' | 'onerror' | 'onprogress' | 'onreadystatechange';\n\n/** JSDoc */\ninterface TryCatchOptions {\n setTimeout: boolean;\n setInterval: boolean;\n requestAnimationFrame: boolean;\n XMLHttpRequest: boolean;\n eventTarget: boolean | string[];\n}\n\n/** Wrap timer functions and event targets to catch errors and provide better meta data */\nexport class TryCatch implements Integration {\n /**\n * @inheritDoc\n */\n public static id: string = 'TryCatch';\n\n /**\n * @inheritDoc\n */\n public name: string = TryCatch.id;\n\n /** JSDoc */\n private readonly _options: TryCatchOptions;\n\n /**\n * @inheritDoc\n */\n public constructor(options?: Partial) {\n this._options = {\n XMLHttpRequest: true,\n eventTarget: true,\n requestAnimationFrame: true,\n setInterval: true,\n setTimeout: true,\n ...options,\n };\n }\n\n /**\n * Wrap timer functions and event targets to catch errors\n * and provide better metadata.\n */\n public setupOnce(): void {\n const global = getGlobalObject();\n\n if (this._options.setTimeout) {\n fill(global, 'setTimeout', _wrapTimeFunction);\n }\n\n if (this._options.setInterval) {\n fill(global, 'setInterval', _wrapTimeFunction);\n }\n\n if (this._options.requestAnimationFrame) {\n fill(global, 'requestAnimationFrame', _wrapRAF);\n }\n\n if (this._options.XMLHttpRequest && 'XMLHttpRequest' in global) {\n fill(XMLHttpRequest.prototype, 'send', _wrapXHR);\n }\n\n const eventTargetOption = this._options.eventTarget;\n if (eventTargetOption) {\n const eventTarget = Array.isArray(eventTargetOption) ? eventTargetOption : DEFAULT_EVENT_TARGET;\n eventTarget.forEach(_wrapEventTarget);\n }\n }\n}\n\n/** JSDoc */\nfunction _wrapTimeFunction(original: () => void): () => number {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return function (this: any, ...args: any[]): number {\n const originalCallback = args[0];\n args[0] = wrap(originalCallback, {\n mechanism: {\n data: { function: getFunctionName(original) },\n handled: true,\n type: 'instrument',\n },\n });\n return original.apply(this, args);\n };\n}\n\n/** JSDoc */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction _wrapRAF(original: any): (callback: () => void) => any {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return function (this: any, callback: () => void): () => void {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n return original.apply(this, [\n wrap(callback, {\n mechanism: {\n data: {\n function: 'requestAnimationFrame',\n handler: getFunctionName(original),\n },\n handled: true,\n type: 'instrument',\n },\n }),\n ]);\n };\n}\n\n/** JSDoc */\nfunction _wrapXHR(originalSend: () => void): () => void {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return function (this: XMLHttpRequest, ...args: any[]): void {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const xhr = this;\n const xmlHttpRequestProps: XMLHttpRequestProp[] = ['onload', 'onerror', 'onprogress', 'onreadystatechange'];\n\n xmlHttpRequestProps.forEach(prop => {\n if (prop in xhr && typeof xhr[prop] === 'function') {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n fill(xhr, prop, function (original: WrappedFunction): () => any {\n const wrapOptions = {\n mechanism: {\n data: {\n function: prop,\n handler: getFunctionName(original),\n },\n handled: true,\n type: 'instrument',\n },\n };\n\n // If Instrument integration has been called before TryCatch, get the name of original function\n const originalFunction = getOriginalFunction(original);\n if (originalFunction) {\n wrapOptions.mechanism.data.handler = getFunctionName(originalFunction);\n }\n\n // Otherwise wrap directly\n return wrap(original, wrapOptions);\n });\n }\n });\n\n return originalSend.apply(this, args);\n };\n}\n\n/** JSDoc */\nfunction _wrapEventTarget(target: string): void {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const global = getGlobalObject() as { [key: string]: any };\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n const proto = global[target] && global[target].prototype;\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, no-prototype-builtins\n if (!proto || !proto.hasOwnProperty || !proto.hasOwnProperty('addEventListener')) {\n return;\n }\n\n fill(proto, 'addEventListener', function (original: () => void): (\n eventName: string,\n fn: EventListenerObject,\n options?: boolean | AddEventListenerOptions,\n ) => void {\n return function (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this: any,\n eventName: string,\n fn: EventListenerObject,\n options?: boolean | AddEventListenerOptions,\n ): (eventName: string, fn: EventListenerObject, capture?: boolean, secure?: boolean) => void {\n try {\n if (typeof fn.handleEvent === 'function') {\n fn.handleEvent = wrap(fn.handleEvent.bind(fn), {\n mechanism: {\n data: {\n function: 'handleEvent',\n handler: getFunctionName(fn),\n target,\n },\n handled: true,\n type: 'instrument',\n },\n });\n }\n } catch (err) {\n // can sometimes get 'Permission denied to access property \"handle Event'\n }\n\n return original.apply(this, [\n eventName,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n wrap(fn as any as WrappedFunction, {\n mechanism: {\n data: {\n function: 'addEventListener',\n handler: getFunctionName(fn),\n target,\n },\n handled: true,\n type: 'instrument',\n },\n }),\n options,\n ]);\n };\n });\n\n fill(\n proto,\n 'removeEventListener',\n function (\n originalRemoveEventListener: () => void,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ): (this: any, eventName: string, fn: EventListenerObject, options?: boolean | EventListenerOptions) => () => void {\n return function (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this: any,\n eventName: string,\n fn: EventListenerObject,\n options?: boolean | EventListenerOptions,\n ): () => void {\n /**\n * There are 2 possible scenarios here:\n *\n * 1. Someone passes a callback, which was attached prior to Sentry initialization, or by using unmodified\n * method, eg. `document.addEventListener.call(el, name, handler). In this case, we treat this function\n * as a pass-through, and call original `removeEventListener` with it.\n *\n * 2. Someone passes a callback, which was attached after Sentry was initialized, which means that it was using\n * our wrapped version of `addEventListener`, which internally calls `wrap` helper.\n * This helper \"wraps\" whole callback inside a try/catch statement, and attached appropriate metadata to it,\n * in order for us to make a distinction between wrapped/non-wrapped functions possible.\n * If a function was wrapped, it has additional property of `__sentry_wrapped__`, holding the handler.\n *\n * When someone adds a handler prior to initialization, and then do it again, but after,\n * then we have to detach both of them. Otherwise, if we'd detach only wrapped one, it'd be impossible\n * to get rid of the initial handler and it'd stick there forever.\n */\n const wrappedEventHandler = fn as unknown as WrappedFunction;\n try {\n const originalEventHandler = wrappedEventHandler && wrappedEventHandler.__sentry_wrapped__;\n if (originalEventHandler) {\n originalRemoveEventListener.call(this, eventName, originalEventHandler, options);\n }\n } catch (e) {\n // ignore, accessing __sentry_wrapped__ will throw in some Selenium environments\n }\n return originalRemoveEventListener.call(this, eventName, wrappedEventHandler, options);\n };\n },\n );\n}\n","export const SeverityLevels = ['fatal', 'error', 'warning', 'log', 'info', 'debug', 'critical'] as const;\nexport type SeverityLevel = typeof SeverityLevels[number];\n","/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n/* eslint-disable max-lines */\nimport { getCurrentHub } from '@sentry/core';\nimport { Event, Integration, Severity } from '@sentry/types';\nimport {\n addInstrumentationHandler,\n getEventDescription,\n getGlobalObject,\n htmlTreeAsString,\n parseUrl,\n safeJoin,\n severityFromString,\n} from '@sentry/utils';\n\n/** JSDoc */\ninterface BreadcrumbsOptions {\n console: boolean;\n dom: boolean | { serializeAttribute: string | string[] };\n fetch: boolean;\n history: boolean;\n sentry: boolean;\n xhr: boolean;\n}\n\n/**\n * Default Breadcrumbs instrumentations\n * TODO: Deprecated - with v6, this will be renamed to `Instrument`\n */\nexport class Breadcrumbs implements Integration {\n /**\n * @inheritDoc\n */\n public static id: string = 'Breadcrumbs';\n\n /**\n * @inheritDoc\n */\n public name: string = Breadcrumbs.id;\n\n /** JSDoc */\n private readonly _options: BreadcrumbsOptions;\n\n /**\n * @inheritDoc\n */\n public constructor(options?: Partial) {\n this._options = {\n console: true,\n dom: true,\n fetch: true,\n history: true,\n sentry: true,\n xhr: true,\n ...options,\n };\n }\n\n /**\n * Create a breadcrumb of `sentry` from the events themselves\n */\n public addSentryBreadcrumb(event: Event): void {\n if (!this._options.sentry) {\n return;\n }\n getCurrentHub().addBreadcrumb(\n {\n category: `sentry.${event.type === 'transaction' ? 'transaction' : 'event'}`,\n event_id: event.event_id,\n level: event.level,\n message: getEventDescription(event),\n },\n {\n event,\n },\n );\n }\n\n /**\n * Instrument browser built-ins w/ breadcrumb capturing\n * - Console API\n * - DOM API (click/typing)\n * - XMLHttpRequest API\n * - Fetch API\n * - History API\n */\n public setupOnce(): void {\n if (this._options.console) {\n addInstrumentationHandler('console', _consoleBreadcrumb);\n }\n if (this._options.dom) {\n addInstrumentationHandler('dom', _domBreadcrumb(this._options.dom));\n }\n if (this._options.xhr) {\n addInstrumentationHandler('xhr', _xhrBreadcrumb);\n }\n if (this._options.fetch) {\n addInstrumentationHandler('fetch', _fetchBreadcrumb);\n }\n if (this._options.history) {\n addInstrumentationHandler('history', _historyBreadcrumb);\n }\n }\n}\n\n/**\n * A HOC that creaes a function that creates breadcrumbs from DOM API calls.\n * This is a HOC so that we get access to dom options in the closure.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction _domBreadcrumb(dom: BreadcrumbsOptions['dom']): (handlerData: { [key: string]: any }) => void {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n function _innerDomBreadcrumb(handlerData: { [key: string]: any }): void {\n let target;\n let keyAttrs = typeof dom === 'object' ? dom.serializeAttribute : undefined;\n\n if (typeof keyAttrs === 'string') {\n keyAttrs = [keyAttrs];\n }\n\n // Accessing event.target can throw (see getsentry/raven-js#838, #768)\n try {\n target = handlerData.event.target\n ? htmlTreeAsString(handlerData.event.target as Node, keyAttrs)\n : htmlTreeAsString(handlerData.event as unknown as Node, keyAttrs);\n } catch (e) {\n target = '';\n }\n\n if (target.length === 0) {\n return;\n }\n\n getCurrentHub().addBreadcrumb(\n {\n category: `ui.${handlerData.name}`,\n message: target,\n },\n {\n event: handlerData.event,\n name: handlerData.name,\n global: handlerData.global,\n },\n );\n }\n\n return _innerDomBreadcrumb;\n}\n\n/**\n * Creates breadcrumbs from console API calls\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction _consoleBreadcrumb(handlerData: { [key: string]: any }): void {\n const breadcrumb = {\n category: 'console',\n data: {\n arguments: handlerData.args,\n logger: 'console',\n },\n level: severityFromString(handlerData.level),\n message: safeJoin(handlerData.args, ' '),\n };\n\n if (handlerData.level === 'assert') {\n if (handlerData.args[0] === false) {\n breadcrumb.message = `Assertion failed: ${safeJoin(handlerData.args.slice(1), ' ') || 'console.assert'}`;\n breadcrumb.data.arguments = handlerData.args.slice(1);\n } else {\n // Don't capture a breadcrumb for passed assertions\n return;\n }\n }\n\n getCurrentHub().addBreadcrumb(breadcrumb, {\n input: handlerData.args,\n level: handlerData.level,\n });\n}\n\n/**\n * Creates breadcrumbs from XHR API calls\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction _xhrBreadcrumb(handlerData: { [key: string]: any }): void {\n if (handlerData.endTimestamp) {\n // We only capture complete, non-sentry requests\n if (handlerData.xhr.__sentry_own_request__) {\n return;\n }\n\n const { method, url, status_code, body } = handlerData.xhr.__sentry_xhr__ || {};\n\n getCurrentHub().addBreadcrumb(\n {\n category: 'xhr',\n data: {\n method,\n url,\n status_code,\n },\n type: 'http',\n },\n {\n xhr: handlerData.xhr,\n input: body,\n },\n );\n\n return;\n }\n}\n\n/**\n * Creates breadcrumbs from fetch API calls\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction _fetchBreadcrumb(handlerData: { [key: string]: any }): void {\n // We only capture complete fetch requests\n if (!handlerData.endTimestamp) {\n return;\n }\n\n if (handlerData.fetchData.url.match(/sentry_key/) && handlerData.fetchData.method === 'POST') {\n // We will not create breadcrumbs for fetch requests that contain `sentry_key` (internal sentry requests)\n return;\n }\n\n if (handlerData.error) {\n getCurrentHub().addBreadcrumb(\n {\n category: 'fetch',\n data: handlerData.fetchData,\n level: Severity.Error,\n type: 'http',\n },\n {\n data: handlerData.error,\n input: handlerData.args,\n },\n );\n } else {\n getCurrentHub().addBreadcrumb(\n {\n category: 'fetch',\n data: {\n ...handlerData.fetchData,\n status_code: handlerData.response.status,\n },\n type: 'http',\n },\n {\n input: handlerData.args,\n response: handlerData.response,\n },\n );\n }\n}\n\n/**\n * Creates breadcrumbs from history API calls\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction _historyBreadcrumb(handlerData: { [key: string]: any }): void {\n const global = getGlobalObject();\n let from = handlerData.from;\n let to = handlerData.to;\n const parsedLoc = parseUrl(global.location.href);\n let parsedFrom = parseUrl(from);\n const parsedTo = parseUrl(to);\n\n // Initial pushState doesn't provide `from` information\n if (!parsedFrom.path) {\n parsedFrom = parsedLoc;\n }\n\n // Use only the path component of the URL if the URL matches the current\n // document (almost all the time when using pushState)\n if (parsedLoc.protocol === parsedTo.protocol && parsedLoc.host === parsedTo.host) {\n to = parsedTo.relative;\n }\n if (parsedLoc.protocol === parsedFrom.protocol && parsedLoc.host === parsedFrom.host) {\n from = parsedFrom.relative;\n }\n\n getCurrentHub().addBreadcrumb({\n category: 'navigation',\n data: {\n from,\n to,\n },\n });\n}\n","import { addGlobalEventProcessor, getCurrentHub } from '@sentry/core';\nimport { Event, EventHint, Exception, ExtendedError, Integration } from '@sentry/types';\nimport { isInstanceOf } from '@sentry/utils';\n\nimport { exceptionFromError } from '../eventbuilder';\n\nconst DEFAULT_KEY = 'cause';\nconst DEFAULT_LIMIT = 5;\n\ninterface LinkedErrorsOptions {\n key: string;\n limit: number;\n}\n\n/** Adds SDK info to an event. */\nexport class LinkedErrors implements Integration {\n /**\n * @inheritDoc\n */\n public static id: string = 'LinkedErrors';\n\n /**\n * @inheritDoc\n */\n public readonly name: string = LinkedErrors.id;\n\n /**\n * @inheritDoc\n */\n private readonly _key: LinkedErrorsOptions['key'];\n\n /**\n * @inheritDoc\n */\n private readonly _limit: LinkedErrorsOptions['limit'];\n\n /**\n * @inheritDoc\n */\n public constructor(options: Partial = {}) {\n this._key = options.key || DEFAULT_KEY;\n this._limit = options.limit || DEFAULT_LIMIT;\n }\n\n /**\n * @inheritDoc\n */\n public setupOnce(): void {\n addGlobalEventProcessor((event: Event, hint?: EventHint) => {\n const self = getCurrentHub().getIntegration(LinkedErrors);\n return self ? _handler(self._key, self._limit, event, hint) : event;\n });\n }\n}\n\n/**\n * @inheritDoc\n */\nexport function _handler(key: string, limit: number, event: Event, hint?: EventHint): Event | null {\n if (!event.exception || !event.exception.values || !hint || !isInstanceOf(hint.originalException, Error)) {\n return event;\n }\n const linkedErrors = _walkErrorTree(limit, hint.originalException as ExtendedError, key);\n event.exception.values = [...linkedErrors, ...event.exception.values];\n return event;\n}\n\n/**\n * JSDOC\n */\nexport function _walkErrorTree(limit: number, error: ExtendedError, key: string, stack: Exception[] = []): Exception[] {\n if (!isInstanceOf(error[key], Error) || stack.length + 1 >= limit) {\n return stack;\n }\n const exception = exceptionFromError(error[key]);\n return _walkErrorTree(limit, error[key], key, [exception, ...stack]);\n}\n","import { addGlobalEventProcessor, getCurrentHub } from '@sentry/core';\nimport { Event, Integration } from '@sentry/types';\nimport { getGlobalObject } from '@sentry/utils';\n\nconst global = getGlobalObject();\n\n/** UserAgent */\nexport class UserAgent implements Integration {\n /**\n * @inheritDoc\n */\n public static id: string = 'UserAgent';\n\n /**\n * @inheritDoc\n */\n public name: string = UserAgent.id;\n\n /**\n * @inheritDoc\n */\n public setupOnce(): void {\n addGlobalEventProcessor((event: Event) => {\n if (getCurrentHub().getIntegration(UserAgent)) {\n // if none of the information we want exists, don't bother\n if (!global.navigator && !global.location && !global.document) {\n return event;\n }\n\n // grab as much info as exists and add it to the event\n const url = (event.request && event.request.url) || (global.location && global.location.href);\n const { referrer } = global.document || {};\n const { userAgent } = global.navigator || {};\n\n const headers = {\n ...(event.request && event.request.headers),\n ...(referrer && { Referer: referrer }),\n ...(userAgent && { 'User-Agent': userAgent }),\n };\n const request = { ...(url && { url }), headers };\n\n return { ...event, request };\n }\n return event;\n });\n }\n}\n","import { Event, EventProcessor, Exception, Hub, Integration, StackFrame } from '@sentry/types';\nimport { logger } from '@sentry/utils';\n\nimport { IS_DEBUG_BUILD } from '../flags';\n\n/** Deduplication filter */\nexport class Dedupe implements Integration {\n /**\n * @inheritDoc\n */\n public static id: string = 'Dedupe';\n\n /**\n * @inheritDoc\n */\n public name: string = Dedupe.id;\n\n /**\n * @inheritDoc\n */\n private _previousEvent?: Event;\n\n /**\n * @inheritDoc\n */\n public setupOnce(addGlobalEventProcessor: (callback: EventProcessor) => void, getCurrentHub: () => Hub): void {\n addGlobalEventProcessor((currentEvent: Event) => {\n const self = getCurrentHub().getIntegration(Dedupe);\n if (self) {\n // Juuust in case something goes wrong\n try {\n if (_shouldDropEvent(currentEvent, self._previousEvent)) {\n IS_DEBUG_BUILD && logger.warn('Event dropped due to being a duplicate of previously captured event.');\n return null;\n }\n } catch (_oO) {\n return (self._previousEvent = currentEvent);\n }\n\n return (self._previousEvent = currentEvent);\n }\n return currentEvent;\n });\n }\n}\n\n/** JSDoc */\nfunction _shouldDropEvent(currentEvent: Event, previousEvent?: Event): boolean {\n if (!previousEvent) {\n return false;\n }\n\n if (_isSameMessageEvent(currentEvent, previousEvent)) {\n return true;\n }\n\n if (_isSameExceptionEvent(currentEvent, previousEvent)) {\n return true;\n }\n\n return false;\n}\n\n/** JSDoc */\nfunction _isSameMessageEvent(currentEvent: Event, previousEvent: Event): boolean {\n const currentMessage = currentEvent.message;\n const previousMessage = previousEvent.message;\n\n // If neither event has a message property, they were both exceptions, so bail out\n if (!currentMessage && !previousMessage) {\n return false;\n }\n\n // If only one event has a stacktrace, but not the other one, they are not the same\n if ((currentMessage && !previousMessage) || (!currentMessage && previousMessage)) {\n return false;\n }\n\n if (currentMessage !== previousMessage) {\n return false;\n }\n\n if (!_isSameFingerprint(currentEvent, previousEvent)) {\n return false;\n }\n\n if (!_isSameStacktrace(currentEvent, previousEvent)) {\n return false;\n }\n\n return true;\n}\n\n/** JSDoc */\nfunction _isSameExceptionEvent(currentEvent: Event, previousEvent: Event): boolean {\n const previousException = _getExceptionFromEvent(previousEvent);\n const currentException = _getExceptionFromEvent(currentEvent);\n\n if (!previousException || !currentException) {\n return false;\n }\n\n if (previousException.type !== currentException.type || previousException.value !== currentException.value) {\n return false;\n }\n\n if (!_isSameFingerprint(currentEvent, previousEvent)) {\n return false;\n }\n\n if (!_isSameStacktrace(currentEvent, previousEvent)) {\n return false;\n }\n\n return true;\n}\n\n/** JSDoc */\nfunction _isSameStacktrace(currentEvent: Event, previousEvent: Event): boolean {\n let currentFrames = _getFramesFromEvent(currentEvent);\n let previousFrames = _getFramesFromEvent(previousEvent);\n\n // If neither event has a stacktrace, they are assumed to be the same\n if (!currentFrames && !previousFrames) {\n return true;\n }\n\n // If only one event has a stacktrace, but not the other one, they are not the same\n if ((currentFrames && !previousFrames) || (!currentFrames && previousFrames)) {\n return false;\n }\n\n currentFrames = currentFrames as StackFrame[];\n previousFrames = previousFrames as StackFrame[];\n\n // If number of frames differ, they are not the same\n if (previousFrames.length !== currentFrames.length) {\n return false;\n }\n\n // Otherwise, compare the two\n for (let i = 0; i < previousFrames.length; i++) {\n const frameA = previousFrames[i];\n const frameB = currentFrames[i];\n\n if (\n frameA.filename !== frameB.filename ||\n frameA.lineno !== frameB.lineno ||\n frameA.colno !== frameB.colno ||\n frameA.function !== frameB.function\n ) {\n return false;\n }\n }\n\n return true;\n}\n\n/** JSDoc */\nfunction _isSameFingerprint(currentEvent: Event, previousEvent: Event): boolean {\n let currentFingerprint = currentEvent.fingerprint;\n let previousFingerprint = previousEvent.fingerprint;\n\n // If neither event has a fingerprint, they are assumed to be the same\n if (!currentFingerprint && !previousFingerprint) {\n return true;\n }\n\n // If only one event has a fingerprint, but not the other one, they are not the same\n if ((currentFingerprint && !previousFingerprint) || (!currentFingerprint && previousFingerprint)) {\n return false;\n }\n\n currentFingerprint = currentFingerprint as string[];\n previousFingerprint = previousFingerprint as string[];\n\n // Otherwise, compare the two\n try {\n return !!(currentFingerprint.join('') === previousFingerprint.join(''));\n } catch (_oO) {\n return false;\n }\n}\n\n/** JSDoc */\nfunction _getExceptionFromEvent(event: Event): Exception | undefined {\n return event.exception && event.exception.values && event.exception.values[0];\n}\n\n/** JSDoc */\nfunction _getFramesFromEvent(event: Event): StackFrame[] | undefined {\n const exception = event.exception;\n\n if (exception) {\n try {\n // @ts-ignore Object could be undefined\n return exception.values[0].stacktrace.frames;\n } catch (_oO) {\n return undefined;\n }\n } else if (event.stacktrace) {\n return event.stacktrace.frames;\n }\n return undefined;\n}\n","export * from './exports';\n\nimport { Integrations as CoreIntegrations } from '@sentry/core';\nimport { getGlobalObject } from '@sentry/utils';\n\nimport * as BrowserIntegrations from './integrations';\nimport * as Transports from './transports';\n\nlet windowIntegrations = {};\n\n// This block is needed to add compatibility with the integrations packages when used with a CDN\nconst _window = getGlobalObject();\nif (_window.Sentry && _window.Sentry.Integrations) {\n windowIntegrations = _window.Sentry.Integrations;\n}\n\nconst INTEGRATIONS = {\n ...windowIntegrations,\n ...CoreIntegrations,\n ...BrowserIntegrations,\n};\n\nexport { INTEGRATIONS as Integrations, Transports };\n","export const SDK_VERSION = '6.19.7';\n","import { addGlobalEventProcessor, getCurrentHub } from '@sentry/hub';\nimport { Integration, Options } from '@sentry/types';\nimport { addNonEnumerableProperty, logger } from '@sentry/utils';\n\nimport { IS_DEBUG_BUILD } from './flags';\n\nexport const installedIntegrations: string[] = [];\n\n/** Map of integrations assigned to a client */\nexport type IntegrationIndex = {\n [key: string]: Integration;\n} & { initialized?: boolean };\n\n/**\n * @private\n */\nfunction filterDuplicates(integrations: Integration[]): Integration[] {\n return integrations.reduce((acc, integrations) => {\n if (acc.every(accIntegration => integrations.name !== accIntegration.name)) {\n acc.push(integrations);\n }\n return acc;\n }, [] as Integration[]);\n}\n\n/** Gets integration to install */\nexport function getIntegrationsToSetup(options: Options): Integration[] {\n const defaultIntegrations = (options.defaultIntegrations && [...options.defaultIntegrations]) || [];\n const userIntegrations = options.integrations;\n\n let integrations: Integration[] = [...filterDuplicates(defaultIntegrations)];\n\n if (Array.isArray(userIntegrations)) {\n // Filter out integrations that are also included in user options\n integrations = [\n ...integrations.filter(integrations =>\n userIntegrations.every(userIntegration => userIntegration.name !== integrations.name),\n ),\n // And filter out duplicated user options integrations\n ...filterDuplicates(userIntegrations),\n ];\n } else if (typeof userIntegrations === 'function') {\n integrations = userIntegrations(integrations);\n integrations = Array.isArray(integrations) ? integrations : [integrations];\n }\n\n // Make sure that if present, `Debug` integration will always run last\n const integrationsNames = integrations.map(i => i.name);\n const alwaysLastToRun = 'Debug';\n if (integrationsNames.indexOf(alwaysLastToRun) !== -1) {\n integrations.push(...integrations.splice(integrationsNames.indexOf(alwaysLastToRun), 1));\n }\n\n return integrations;\n}\n\n/** Setup given integration */\nexport function setupIntegration(integration: Integration): void {\n if (installedIntegrations.indexOf(integration.name) !== -1) {\n return;\n }\n integration.setupOnce(addGlobalEventProcessor, getCurrentHub);\n installedIntegrations.push(integration.name);\n IS_DEBUG_BUILD && logger.log(`Integration installed: ${integration.name}`);\n}\n\n/**\n * Given a list of integration instances this installs them all. When `withDefaults` is set to `true` then all default\n * integrations are added unless they were already provided before.\n * @param integrations array of integration instances\n * @param withDefault should enable default integrations\n */\nexport function setupIntegrations(options: O): IntegrationIndex {\n const integrations: IntegrationIndex = {};\n getIntegrationsToSetup(options).forEach(integration => {\n integrations[integration.name] = integration;\n setupIntegration(integration);\n });\n // set the `initialized` flag so we don't run through the process again unecessarily; use `Object.defineProperty`\n // because by default it creates a property which is nonenumerable, which we want since `initialized` shouldn't be\n // considered a member of the index the way the actual integrations are\n addNonEnumerableProperty(integrations, 'initialized', true);\n return integrations;\n}\n","/* eslint-disable max-lines */\nimport { Scope, Session } from '@sentry/hub';\nimport {\n Client,\n DsnComponents,\n Event,\n EventHint,\n Integration,\n IntegrationClass,\n Options,\n Severity,\n Transport,\n} from '@sentry/types';\nimport {\n checkOrSetAlreadyCaught,\n dateTimestampInSeconds,\n isPlainObject,\n isPrimitive,\n isThenable,\n logger,\n makeDsn,\n normalize,\n rejectedSyncPromise,\n resolvedSyncPromise,\n SentryError,\n SyncPromise,\n truncate,\n uuid4,\n} from '@sentry/utils';\n\nimport { Backend, BackendClass } from './basebackend';\nimport { IS_DEBUG_BUILD } from './flags';\nimport { IntegrationIndex, setupIntegrations } from './integration';\n\nconst ALREADY_SEEN_ERROR = \"Not capturing exception because it's already been captured.\";\n\n/**\n * Base implementation for all JavaScript SDK clients.\n *\n * Call the constructor with the corresponding backend constructor and options\n * specific to the client subclass. To access these options later, use\n * {@link Client.getOptions}. Also, the Backend instance is available via\n * {@link Client.getBackend}.\n *\n * If a Dsn is specified in the options, it will be parsed and stored. Use\n * {@link Client.getDsn} to retrieve the Dsn at any moment. In case the Dsn is\n * invalid, the constructor will throw a {@link SentryException}. Note that\n * without a valid Dsn, the SDK will not send any events to Sentry.\n *\n * Before sending an event via the backend, it is passed through\n * {@link BaseClient._prepareEvent} to add SDK information and scope data\n * (breadcrumbs and context). To add more custom information, override this\n * method and extend the resulting prepared event.\n *\n * To issue automatically created events (e.g. via instrumentation), use\n * {@link Client.captureEvent}. It will prepare the event and pass it through\n * the callback lifecycle. To issue auto-breadcrumbs, use\n * {@link Client.addBreadcrumb}.\n *\n * @example\n * class NodeClient extends BaseClient {\n * public constructor(options: NodeOptions) {\n * super(NodeBackend, options);\n * }\n *\n * // ...\n * }\n */\nexport abstract class BaseClient implements Client {\n /**\n * The backend used to physically interact in the environment. Usually, this\n * will correspond to the client. When composing SDKs, however, the Backend\n * from the root SDK will be used.\n */\n protected readonly _backend: B;\n\n /** Options passed to the SDK. */\n protected readonly _options: O;\n\n /** The client Dsn, if specified in options. Without this Dsn, the SDK will be disabled. */\n protected readonly _dsn?: DsnComponents;\n\n /** Array of used integrations. */\n protected _integrations: IntegrationIndex = {};\n\n /** Number of calls being processed */\n protected _numProcessing: number = 0;\n\n /**\n * Initializes this client instance.\n *\n * @param backendClass A constructor function to create the backend.\n * @param options Options for the client.\n */\n protected constructor(backendClass: BackendClass, options: O) {\n this._backend = new backendClass(options);\n this._options = options;\n\n if (options.dsn) {\n this._dsn = makeDsn(options.dsn);\n }\n }\n\n /**\n * @inheritDoc\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\n public captureException(exception: any, hint?: EventHint, scope?: Scope): string | undefined {\n // ensure we haven't captured this very object before\n if (checkOrSetAlreadyCaught(exception)) {\n IS_DEBUG_BUILD && logger.log(ALREADY_SEEN_ERROR);\n return;\n }\n\n let eventId: string | undefined = hint && hint.event_id;\n\n this._process(\n this._getBackend()\n .eventFromException(exception, hint)\n .then(event => this._captureEvent(event, hint, scope))\n .then(result => {\n eventId = result;\n }),\n );\n\n return eventId;\n }\n\n /**\n * @inheritDoc\n */\n public captureMessage(message: string, level?: Severity, hint?: EventHint, scope?: Scope): string | undefined {\n let eventId: string | undefined = hint && hint.event_id;\n\n const promisedEvent = isPrimitive(message)\n ? this._getBackend().eventFromMessage(String(message), level, hint)\n : this._getBackend().eventFromException(message, hint);\n\n this._process(\n promisedEvent\n .then(event => this._captureEvent(event, hint, scope))\n .then(result => {\n eventId = result;\n }),\n );\n\n return eventId;\n }\n\n /**\n * @inheritDoc\n */\n public captureEvent(event: Event, hint?: EventHint, scope?: Scope): string | undefined {\n // ensure we haven't captured this very object before\n if (hint && hint.originalException && checkOrSetAlreadyCaught(hint.originalException)) {\n IS_DEBUG_BUILD && logger.log(ALREADY_SEEN_ERROR);\n return;\n }\n\n let eventId: string | undefined = hint && hint.event_id;\n\n this._process(\n this._captureEvent(event, hint, scope).then(result => {\n eventId = result;\n }),\n );\n\n return eventId;\n }\n\n /**\n * @inheritDoc\n */\n public captureSession(session: Session): void {\n if (!this._isEnabled()) {\n IS_DEBUG_BUILD && logger.warn('SDK not enabled, will not capture session.');\n return;\n }\n\n if (!(typeof session.release === 'string')) {\n IS_DEBUG_BUILD && logger.warn('Discarded session because of missing or non-string release');\n } else {\n this._sendSession(session);\n // After sending, we set init false to indicate it's not the first occurrence\n session.update({ init: false });\n }\n }\n\n /**\n * @inheritDoc\n */\n public getDsn(): DsnComponents | undefined {\n return this._dsn;\n }\n\n /**\n * @inheritDoc\n */\n public getOptions(): O {\n return this._options;\n }\n\n /**\n * @inheritDoc\n */\n public getTransport(): Transport {\n return this._getBackend().getTransport();\n }\n\n /**\n * @inheritDoc\n */\n public flush(timeout?: number): PromiseLike {\n return this._isClientDoneProcessing(timeout).then(clientFinished => {\n return this.getTransport()\n .close(timeout)\n .then(transportFlushed => clientFinished && transportFlushed);\n });\n }\n\n /**\n * @inheritDoc\n */\n public close(timeout?: number): PromiseLike {\n return this.flush(timeout).then(result => {\n this.getOptions().enabled = false;\n return result;\n });\n }\n\n /**\n * Sets up the integrations\n */\n public setupIntegrations(): void {\n if (this._isEnabled() && !this._integrations.initialized) {\n this._integrations = setupIntegrations(this._options);\n }\n }\n\n /**\n * @inheritDoc\n */\n public getIntegration(integration: IntegrationClass): T | null {\n try {\n return (this._integrations[integration.id] as T) || null;\n } catch (_oO) {\n IS_DEBUG_BUILD && logger.warn(`Cannot retrieve integration ${integration.id} from the current Client`);\n return null;\n }\n }\n\n /** Updates existing session based on the provided event */\n protected _updateSessionFromEvent(session: Session, event: Event): void {\n let crashed = false;\n let errored = false;\n const exceptions = event.exception && event.exception.values;\n\n if (exceptions) {\n errored = true;\n\n for (const ex of exceptions) {\n const mechanism = ex.mechanism;\n if (mechanism && mechanism.handled === false) {\n crashed = true;\n break;\n }\n }\n }\n\n // A session is updated and that session update is sent in only one of the two following scenarios:\n // 1. Session with non terminal status and 0 errors + an error occurred -> Will set error count to 1 and send update\n // 2. Session with non terminal status and 1 error + a crash occurred -> Will set status crashed and send update\n const sessionNonTerminal = session.status === 'ok';\n const shouldUpdateAndSend = (sessionNonTerminal && session.errors === 0) || (sessionNonTerminal && crashed);\n\n if (shouldUpdateAndSend) {\n session.update({\n ...(crashed && { status: 'crashed' }),\n errors: session.errors || Number(errored || crashed),\n });\n this.captureSession(session);\n }\n }\n\n /** Deliver captured session to Sentry */\n protected _sendSession(session: Session): void {\n this._getBackend().sendSession(session);\n }\n\n /**\n * Determine if the client is finished processing. Returns a promise because it will wait `timeout` ms before saying\n * \"no\" (resolving to `false`) in order to give the client a chance to potentially finish first.\n *\n * @param timeout The time, in ms, after which to resolve to `false` if the client is still busy. Passing `0` (or not\n * passing anything) will make the promise wait as long as it takes for processing to finish before resolving to\n * `true`.\n * @returns A promise which will resolve to `true` if processing is already done or finishes before the timeout, and\n * `false` otherwise\n */\n protected _isClientDoneProcessing(timeout?: number): PromiseLike {\n return new SyncPromise(resolve => {\n let ticked: number = 0;\n const tick: number = 1;\n\n const interval = setInterval(() => {\n if (this._numProcessing == 0) {\n clearInterval(interval);\n resolve(true);\n } else {\n ticked += tick;\n if (timeout && ticked >= timeout) {\n clearInterval(interval);\n resolve(false);\n }\n }\n }, tick);\n });\n }\n\n /** Returns the current backend. */\n protected _getBackend(): B {\n return this._backend;\n }\n\n /** Determines whether this SDK is enabled and a valid Dsn is present. */\n protected _isEnabled(): boolean {\n return this.getOptions().enabled !== false && this._dsn !== undefined;\n }\n\n /**\n * Adds common information to events.\n *\n * The information includes release and environment from `options`,\n * breadcrumbs and context (extra, tags and user) from the scope.\n *\n * Information that is already present in the event is never overwritten. For\n * nested objects, such as the context, keys are merged.\n *\n * @param event The original event.\n * @param hint May contain additional information about the original exception.\n * @param scope A scope containing event metadata.\n * @returns A new event with more information.\n */\n protected _prepareEvent(event: Event, scope?: Scope, hint?: EventHint): PromiseLike {\n const { normalizeDepth = 3, normalizeMaxBreadth = 1_000 } = this.getOptions();\n const prepared: Event = {\n ...event,\n event_id: event.event_id || (hint && hint.event_id ? hint.event_id : uuid4()),\n timestamp: event.timestamp || dateTimestampInSeconds(),\n };\n\n this._applyClientOptions(prepared);\n this._applyIntegrationsMetadata(prepared);\n\n // If we have scope given to us, use it as the base for further modifications.\n // This allows us to prevent unnecessary copying of data if `captureContext` is not provided.\n let finalScope = scope;\n if (hint && hint.captureContext) {\n finalScope = Scope.clone(finalScope).update(hint.captureContext);\n }\n\n // We prepare the result here with a resolved Event.\n let result = resolvedSyncPromise(prepared);\n\n // This should be the last thing called, since we want that\n // {@link Hub.addEventProcessor} gets the finished prepared event.\n if (finalScope) {\n // In case we have a hub we reassign it.\n result = finalScope.applyToEvent(prepared, hint);\n }\n\n return result.then(evt => {\n if (evt) {\n // TODO this is more of the hack trying to solve https://github.com/getsentry/sentry-javascript/issues/2809\n // it is only attached as extra data to the event if the event somehow skips being normalized\n evt.sdkProcessingMetadata = {\n ...evt.sdkProcessingMetadata,\n normalizeDepth: `${normalize(normalizeDepth)} (${typeof normalizeDepth})`,\n };\n }\n if (typeof normalizeDepth === 'number' && normalizeDepth > 0) {\n return this._normalizeEvent(evt, normalizeDepth, normalizeMaxBreadth);\n }\n return evt;\n });\n }\n\n /**\n * Applies `normalize` function on necessary `Event` attributes to make them safe for serialization.\n * Normalized keys:\n * - `breadcrumbs.data`\n * - `user`\n * - `contexts`\n * - `extra`\n * @param event Event\n * @returns Normalized event\n */\n protected _normalizeEvent(event: Event | null, depth: number, maxBreadth: number): Event | null {\n if (!event) {\n return null;\n }\n\n const normalized = {\n ...event,\n ...(event.breadcrumbs && {\n breadcrumbs: event.breadcrumbs.map(b => ({\n ...b,\n ...(b.data && {\n data: normalize(b.data, depth, maxBreadth),\n }),\n })),\n }),\n ...(event.user && {\n user: normalize(event.user, depth, maxBreadth),\n }),\n ...(event.contexts && {\n contexts: normalize(event.contexts, depth, maxBreadth),\n }),\n ...(event.extra && {\n extra: normalize(event.extra, depth, maxBreadth),\n }),\n };\n // event.contexts.trace stores information about a Transaction. Similarly,\n // event.spans[] stores information about child Spans. Given that a\n // Transaction is conceptually a Span, normalization should apply to both\n // Transactions and Spans consistently.\n // For now the decision is to skip normalization of Transactions and Spans,\n // so this block overwrites the normalized event to add back the original\n // Transaction information prior to normalization.\n if (event.contexts && event.contexts.trace) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n normalized.contexts.trace = event.contexts.trace;\n }\n\n normalized.sdkProcessingMetadata = { ...normalized.sdkProcessingMetadata, baseClientNormalized: true };\n\n return normalized;\n }\n\n /**\n * Enhances event using the client configuration.\n * It takes care of all \"static\" values like environment, release and `dist`,\n * as well as truncating overly long values.\n * @param event event instance to be enhanced\n */\n protected _applyClientOptions(event: Event): void {\n const options = this.getOptions();\n const { environment, release, dist, maxValueLength = 250 } = options;\n\n if (!('environment' in event)) {\n event.environment = 'environment' in options ? environment : 'production';\n }\n\n if (event.release === undefined && release !== undefined) {\n event.release = release;\n }\n\n if (event.dist === undefined && dist !== undefined) {\n event.dist = dist;\n }\n\n if (event.message) {\n event.message = truncate(event.message, maxValueLength);\n }\n\n const exception = event.exception && event.exception.values && event.exception.values[0];\n if (exception && exception.value) {\n exception.value = truncate(exception.value, maxValueLength);\n }\n\n const request = event.request;\n if (request && request.url) {\n request.url = truncate(request.url, maxValueLength);\n }\n }\n\n /**\n * This function adds all used integrations to the SDK info in the event.\n * @param event The event that will be filled with all integrations.\n */\n protected _applyIntegrationsMetadata(event: Event): void {\n const integrationsArray = Object.keys(this._integrations);\n if (integrationsArray.length > 0) {\n event.sdk = event.sdk || {};\n event.sdk.integrations = [...(event.sdk.integrations || []), ...integrationsArray];\n }\n }\n\n /**\n * Tells the backend to send this event\n * @param event The Sentry event to send\n */\n protected _sendEvent(event: Event): void {\n this._getBackend().sendEvent(event);\n }\n\n /**\n * Processes the event and logs an error in case of rejection\n * @param event\n * @param hint\n * @param scope\n */\n protected _captureEvent(event: Event, hint?: EventHint, scope?: Scope): PromiseLike {\n return this._processEvent(event, hint, scope).then(\n finalEvent => {\n return finalEvent.event_id;\n },\n reason => {\n IS_DEBUG_BUILD && logger.error(reason);\n return undefined;\n },\n );\n }\n\n /**\n * Processes an event (either error or message) and sends it to Sentry.\n *\n * This also adds breadcrumbs and context information to the event. However,\n * platform specific meta data (such as the User's IP address) must be added\n * by the SDK implementor.\n *\n *\n * @param event The event to send to Sentry.\n * @param hint May contain additional information about the original exception.\n * @param scope A scope containing event metadata.\n * @returns A SyncPromise that resolves with the event or rejects in case event was/will not be send.\n */\n protected _processEvent(event: Event, hint?: EventHint, scope?: Scope): PromiseLike {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n const { beforeSend, sampleRate } = this.getOptions();\n const transport = this.getTransport();\n\n type RecordLostEvent = NonNullable;\n type RecordLostEventParams = Parameters;\n\n function recordLostEvent(outcome: RecordLostEventParams[0], category: RecordLostEventParams[1]): void {\n if (transport.recordLostEvent) {\n transport.recordLostEvent(outcome, category);\n }\n }\n\n if (!this._isEnabled()) {\n return rejectedSyncPromise(new SentryError('SDK not enabled, will not capture event.'));\n }\n\n const isTransaction = event.type === 'transaction';\n // 1.0 === 100% events are sent\n // 0.0 === 0% events are sent\n // Sampling for transaction happens somewhere else\n if (!isTransaction && typeof sampleRate === 'number' && Math.random() > sampleRate) {\n recordLostEvent('sample_rate', 'event');\n return rejectedSyncPromise(\n new SentryError(\n `Discarding event because it's not included in the random sample (sampling rate = ${sampleRate})`,\n ),\n );\n }\n\n return this._prepareEvent(event, scope, hint)\n .then(prepared => {\n if (prepared === null) {\n recordLostEvent('event_processor', event.type || 'event');\n throw new SentryError('An event processor returned null, will not send event.');\n }\n\n const isInternalException = hint && hint.data && (hint.data as { __sentry__: boolean }).__sentry__ === true;\n if (isInternalException || isTransaction || !beforeSend) {\n return prepared;\n }\n\n const beforeSendResult = beforeSend(prepared, hint);\n return _ensureBeforeSendRv(beforeSendResult);\n })\n .then(processedEvent => {\n if (processedEvent === null) {\n recordLostEvent('before_send', event.type || 'event');\n throw new SentryError('`beforeSend` returned `null`, will not send event.');\n }\n\n const session = scope && scope.getSession && scope.getSession();\n if (!isTransaction && session) {\n this._updateSessionFromEvent(session, processedEvent);\n }\n\n this._sendEvent(processedEvent);\n return processedEvent;\n })\n .then(null, reason => {\n if (reason instanceof SentryError) {\n throw reason;\n }\n\n this.captureException(reason, {\n data: {\n __sentry__: true,\n },\n originalException: reason as Error,\n });\n throw new SentryError(\n `Event processing pipeline threw an error, original event will not be sent. Details have been sent as a new event.\\nReason: ${reason}`,\n );\n });\n }\n\n /**\n * Occupies the client with processing and event\n */\n protected _process(promise: PromiseLike): void {\n this._numProcessing += 1;\n void promise.then(\n value => {\n this._numProcessing -= 1;\n return value;\n },\n reason => {\n this._numProcessing -= 1;\n return reason;\n },\n );\n }\n}\n\n/**\n * Verifies that return value of configured `beforeSend` is of expected type.\n */\nfunction _ensureBeforeSendRv(rv: PromiseLike | Event | null): PromiseLike | Event | null {\n const nullErr = '`beforeSend` method has to return `null` or a valid event.';\n if (isThenable(rv)) {\n return rv.then(\n event => {\n if (!(isPlainObject(event) || event === null)) {\n throw new SentryError(nullErr);\n }\n return event;\n },\n e => {\n throw new SentryError(`beforeSend rejected with ${e}`);\n },\n );\n } else if (!(isPlainObject(rv) || rv === null)) {\n throw new SentryError(nullErr);\n }\n return rv;\n}\n","import { Envelope } from '@sentry/types';\n\nimport { isPrimitive } from './is';\n\n/**\n * Creates an envelope.\n * Make sure to always explicitly provide the generic to this function\n * so that the envelope types resolve correctly.\n */\nexport function createEnvelope(headers: E[0], items: E[1] = []): E {\n return [headers, items] as E;\n}\n\n/**\n * Add an item to an envelope.\n * Make sure to always explicitly provide the generic to this function\n * so that the envelope types resolve correctly.\n */\nexport function addItemToEnvelope(envelope: E, newItem: E[1][number]): E {\n const [headers, items] = envelope;\n return [headers, [...items, newItem]] as E;\n}\n\n/**\n * Get the type of the envelope. Grabs the type from the first envelope item.\n */\nexport function getEnvelopeType(envelope: E): string {\n const [, [[firstItemHeader]]] = envelope;\n return firstItemHeader.type;\n}\n\n/**\n * Serializes an envelope into a string.\n */\nexport function serializeEnvelope(envelope: Envelope): string {\n const [headers, items] = envelope;\n const serializedHeaders = JSON.stringify(headers);\n\n // Have to cast items to any here since Envelope is a union type\n // Fixed in Typescript 4.2\n // TODO: Remove any[] cast when we upgrade to TS 4.2\n // https://github.com/microsoft/TypeScript/issues/36390\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return (items as any[]).reduce((acc, item: typeof items[number]) => {\n const [itemHeaders, payload] = item;\n // We do not serialize payloads that are primitives\n const serializedPayload = isPrimitive(payload) ? String(payload) : JSON.stringify(payload);\n return `${acc}\\n${JSON.stringify(itemHeaders)}\\n${serializedPayload}`;\n }, serializedHeaders);\n}\n","import {\n Event,\n EventEnvelope,\n EventItem,\n SdkInfo,\n SentryRequest,\n SentryRequestType,\n Session,\n SessionAggregates,\n SessionEnvelope,\n SessionItem,\n} from '@sentry/types';\nimport { createEnvelope, dsnToString, normalize, serializeEnvelope } from '@sentry/utils';\n\nimport { APIDetails, getEnvelopeEndpointWithUrlEncodedAuth, getStoreEndpointWithUrlEncodedAuth } from './api';\n\n/** Extract sdk info from from the API metadata */\nfunction getSdkMetadataForEnvelopeHeader(api: APIDetails): SdkInfo | undefined {\n if (!api.metadata || !api.metadata.sdk) {\n return;\n }\n const { name, version } = api.metadata.sdk;\n return { name, version };\n}\n\n/**\n * Apply SdkInfo (name, version, packages, integrations) to the corresponding event key.\n * Merge with existing data if any.\n **/\nfunction enhanceEventWithSdkInfo(event: Event, sdkInfo?: SdkInfo): Event {\n if (!sdkInfo) {\n return event;\n }\n event.sdk = event.sdk || {};\n event.sdk.name = event.sdk.name || sdkInfo.name;\n event.sdk.version = event.sdk.version || sdkInfo.version;\n event.sdk.integrations = [...(event.sdk.integrations || []), ...(sdkInfo.integrations || [])];\n event.sdk.packages = [...(event.sdk.packages || []), ...(sdkInfo.packages || [])];\n return event;\n}\n\n/** Creates an envelope from a Session */\nexport function createSessionEnvelope(\n session: Session | SessionAggregates,\n api: APIDetails,\n): [SessionEnvelope, SentryRequestType] {\n const sdkInfo = getSdkMetadataForEnvelopeHeader(api);\n const envelopeHeaders = {\n sent_at: new Date().toISOString(),\n ...(sdkInfo && { sdk: sdkInfo }),\n ...(!!api.tunnel && { dsn: dsnToString(api.dsn) }),\n };\n\n // I know this is hacky but we don't want to add `sessions` to request type since it's never rate limited\n const type = 'aggregates' in session ? ('sessions' as SentryRequestType) : 'session';\n\n // TODO (v7) Have to cast type because envelope items do not accept a `SentryRequestType`\n const envelopeItem = [{ type } as { type: 'session' | 'sessions' }, session] as SessionItem;\n const envelope = createEnvelope(envelopeHeaders, [envelopeItem]);\n\n return [envelope, type];\n}\n\n/** Creates a SentryRequest from a Session. */\nexport function sessionToSentryRequest(session: Session | SessionAggregates, api: APIDetails): SentryRequest {\n const [envelope, type] = createSessionEnvelope(session, api);\n return {\n body: serializeEnvelope(envelope),\n type,\n url: getEnvelopeEndpointWithUrlEncodedAuth(api.dsn, api.tunnel),\n };\n}\n\n/**\n * Create an Envelope from an event. Note that this is duplicated from below,\n * but on purpose as this will be refactored in v7.\n */\nexport function createEventEnvelope(event: Event, api: APIDetails): EventEnvelope {\n const sdkInfo = getSdkMetadataForEnvelopeHeader(api);\n const eventType = event.type || 'event';\n\n const { transactionSampling } = event.sdkProcessingMetadata || {};\n const { method: samplingMethod, rate: sampleRate } = transactionSampling || {};\n\n // TODO: Below is a temporary hack in order to debug a serialization error - see\n // https://github.com/getsentry/sentry-javascript/issues/2809,\n // https://github.com/getsentry/sentry-javascript/pull/4425, and\n // https://github.com/getsentry/sentry-javascript/pull/4574.\n //\n // TL; DR: even though we normalize all events (which should prevent this), something is causing `JSON.stringify` to\n // throw a circular reference error.\n //\n // When it's time to remove it:\n // 1. Delete everything between here and where the request object `req` is created, EXCEPT the line deleting\n // `sdkProcessingMetadata`\n // 2. Restore the original version of the request body, which is commented out\n // 3. Search for either of the PR URLs above and pull out the companion hacks in the browser playwright tests and the\n // baseClient tests in this package\n enhanceEventWithSdkInfo(event, api.metadata.sdk);\n event.tags = event.tags || {};\n event.extra = event.extra || {};\n\n // In theory, all events should be marked as having gone through normalization and so\n // we should never set this tag/extra data\n if (!(event.sdkProcessingMetadata && event.sdkProcessingMetadata.baseClientNormalized)) {\n event.tags.skippedNormalization = true;\n event.extra.normalizeDepth = event.sdkProcessingMetadata ? event.sdkProcessingMetadata.normalizeDepth : 'unset';\n }\n\n // prevent this data from being sent to sentry\n // TODO: This is NOT part of the hack - DO NOT DELETE\n delete event.sdkProcessingMetadata;\n\n const envelopeHeaders = {\n event_id: event.event_id as string,\n sent_at: new Date().toISOString(),\n ...(sdkInfo && { sdk: sdkInfo }),\n ...(!!api.tunnel && { dsn: dsnToString(api.dsn) }),\n };\n const eventItem: EventItem = [\n {\n type: eventType,\n sample_rates: [{ id: samplingMethod, rate: sampleRate }],\n },\n event,\n ];\n return createEnvelope(envelopeHeaders, [eventItem]);\n}\n\n/** Creates a SentryRequest from an event. */\nexport function eventToSentryRequest(event: Event, api: APIDetails): SentryRequest {\n const sdkInfo = getSdkMetadataForEnvelopeHeader(api);\n const eventType = event.type || 'event';\n const useEnvelope = eventType === 'transaction' || !!api.tunnel;\n\n const { transactionSampling } = event.sdkProcessingMetadata || {};\n const { method: samplingMethod, rate: sampleRate } = transactionSampling || {};\n\n // TODO: Below is a temporary hack in order to debug a serialization error - see\n // https://github.com/getsentry/sentry-javascript/issues/2809,\n // https://github.com/getsentry/sentry-javascript/pull/4425, and\n // https://github.com/getsentry/sentry-javascript/pull/4574.\n //\n // TL; DR: even though we normalize all events (which should prevent this), something is causing `JSON.stringify` to\n // throw a circular reference error.\n //\n // When it's time to remove it:\n // 1. Delete everything between here and where the request object `req` is created, EXCEPT the line deleting\n // `sdkProcessingMetadata`\n // 2. Restore the original version of the request body, which is commented out\n // 3. Search for either of the PR URLs above and pull out the companion hacks in the browser playwright tests and the\n // baseClient tests in this package\n enhanceEventWithSdkInfo(event, api.metadata.sdk);\n event.tags = event.tags || {};\n event.extra = event.extra || {};\n\n // In theory, all events should be marked as having gone through normalization and so\n // we should never set this tag/extra data\n if (!(event.sdkProcessingMetadata && event.sdkProcessingMetadata.baseClientNormalized)) {\n event.tags.skippedNormalization = true;\n event.extra.normalizeDepth = event.sdkProcessingMetadata ? event.sdkProcessingMetadata.normalizeDepth : 'unset';\n }\n\n // prevent this data from being sent to sentry\n // TODO: This is NOT part of the hack - DO NOT DELETE\n delete event.sdkProcessingMetadata;\n\n let body;\n try {\n // 99.9% of events should get through just fine - no change in behavior for them\n body = JSON.stringify(event);\n } catch (err) {\n // Record data about the error without replacing original event data, then force renormalization\n event.tags.JSONStringifyError = true;\n event.extra.JSONStringifyError = err;\n try {\n body = JSON.stringify(normalize(event));\n } catch (newErr) {\n // At this point even renormalization hasn't worked, meaning something about the event data has gone very wrong.\n // Time to cut our losses and record only the new error. With luck, even in the problematic cases we're trying to\n // debug with this hack, we won't ever land here.\n const innerErr = newErr as Error;\n body = JSON.stringify({\n message: 'JSON.stringify error after renormalization',\n // setting `extra: { innerErr }` here for some reason results in an empty object, so unpack manually\n extra: { message: innerErr.message, stack: innerErr.stack },\n });\n }\n }\n\n const req: SentryRequest = {\n // this is the relevant line of code before the hack was added, to make it easy to undo said hack once we've solved\n // the mystery\n // body: JSON.stringify(sdkInfo ? enhanceEventWithSdkInfo(event, api.metadata.sdk) : event),\n body,\n type: eventType,\n url: useEnvelope\n ? getEnvelopeEndpointWithUrlEncodedAuth(api.dsn, api.tunnel)\n : getStoreEndpointWithUrlEncodedAuth(api.dsn),\n };\n\n // https://develop.sentry.dev/sdk/envelopes/\n\n // Since we don't need to manipulate envelopes nor store them, there is no\n // exported concept of an Envelope with operations including serialization and\n // deserialization. Instead, we only implement a minimal subset of the spec to\n // serialize events inline here.\n if (useEnvelope) {\n const envelopeHeaders = {\n event_id: event.event_id as string,\n sent_at: new Date().toISOString(),\n ...(sdkInfo && { sdk: sdkInfo }),\n ...(!!api.tunnel && { dsn: dsnToString(api.dsn) }),\n };\n const eventItem: EventItem = [\n {\n type: eventType,\n sample_rates: [{ id: samplingMethod, rate: sampleRate }],\n },\n req.body,\n ];\n const envelope = createEnvelope(envelopeHeaders, [eventItem]);\n req.body = serializeEnvelope(envelope);\n }\n\n return req;\n}\n","import { Event, Response, Transport } from '@sentry/types';\nimport { resolvedSyncPromise } from '@sentry/utils';\n\n/** Noop transport */\nexport class NoopTransport implements Transport {\n /**\n * @inheritDoc\n */\n public sendEvent(_: Event): PromiseLike {\n return resolvedSyncPromise({\n reason: 'NoopTransport: Event has been skipped because no Dsn is configured.',\n status: 'skipped',\n });\n }\n\n /**\n * @inheritDoc\n */\n public close(_?: number): PromiseLike {\n return resolvedSyncPromise(true);\n }\n}\n","import { Event, EventHint, Options, Session, Severity, Transport } from '@sentry/types';\nimport { logger, SentryError } from '@sentry/utils';\n\nimport { initAPIDetails } from './api';\nimport { IS_DEBUG_BUILD } from './flags';\nimport { createEventEnvelope, createSessionEnvelope } from './request';\nimport { NewTransport } from './transports/base';\nimport { NoopTransport } from './transports/noop';\n\n/**\n * Internal platform-dependent Sentry SDK Backend.\n *\n * While {@link Client} contains business logic specific to an SDK, the\n * Backend offers platform specific implementations for low-level operations.\n * These are persisting and loading information, sending events, and hooking\n * into the environment.\n *\n * Backends receive a handle to the Client in their constructor. When a\n * Backend automatically generates events, it must pass them to\n * the Client for validation and processing first.\n *\n * Usually, the Client will be of corresponding type, e.g. NodeBackend\n * receives NodeClient. However, higher-level SDKs can choose to instantiate\n * multiple Backends and delegate tasks between them. In this case, an event\n * generated by one backend might very well be sent by another one.\n *\n * The client also provides access to options via {@link Client.getOptions}.\n * @hidden\n */\nexport interface Backend {\n /** Creates an {@link Event} from all inputs to `captureException` and non-primitive inputs to `captureMessage`. */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n eventFromException(exception: any, hint?: EventHint): PromiseLike;\n\n /** Creates an {@link Event} from primitive inputs to `captureMessage`. */\n eventFromMessage(message: string, level?: Severity, hint?: EventHint): PromiseLike;\n\n /** Submits the event to Sentry */\n sendEvent(event: Event): void;\n\n /** Submits the session to Sentry */\n sendSession(session: Session): void;\n\n /**\n * Returns the transport that is used by the backend.\n * Please note that the transport gets lazy initialized so it will only be there once the first event has been sent.\n *\n * @returns The transport.\n */\n getTransport(): Transport;\n}\n\n/**\n * A class object that can instantiate Backend objects.\n * @hidden\n */\nexport type BackendClass = new (options: O) => B;\n\n/**\n * This is the base implemention of a Backend.\n * @hidden\n */\nexport abstract class BaseBackend implements Backend {\n /** Options passed to the SDK. */\n protected readonly _options: O;\n\n /** Cached transport used internally. */\n protected _transport: Transport;\n\n /** New v7 Transport that is initialized alongside the old one */\n protected _newTransport?: NewTransport;\n\n /** Creates a new backend instance. */\n public constructor(options: O) {\n this._options = options;\n if (!this._options.dsn) {\n IS_DEBUG_BUILD && logger.warn('No DSN provided, backend will not do anything.');\n }\n this._transport = this._setupTransport();\n }\n\n /**\n * @inheritDoc\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\n public eventFromException(_exception: any, _hint?: EventHint): PromiseLike {\n throw new SentryError('Backend has to implement `eventFromException` method');\n }\n\n /**\n * @inheritDoc\n */\n public eventFromMessage(_message: string, _level?: Severity, _hint?: EventHint): PromiseLike {\n throw new SentryError('Backend has to implement `eventFromMessage` method');\n }\n\n /**\n * @inheritDoc\n */\n public sendEvent(event: Event): void {\n // TODO(v7): Remove the if-else\n if (\n this._newTransport &&\n this._options.dsn &&\n this._options._experiments &&\n this._options._experiments.newTransport\n ) {\n const api = initAPIDetails(this._options.dsn, this._options._metadata, this._options.tunnel);\n const env = createEventEnvelope(event, api);\n void this._newTransport.send(env).then(null, reason => {\n IS_DEBUG_BUILD && logger.error('Error while sending event:', reason);\n });\n } else {\n void this._transport.sendEvent(event).then(null, reason => {\n IS_DEBUG_BUILD && logger.error('Error while sending event:', reason);\n });\n }\n }\n\n /**\n * @inheritDoc\n */\n public sendSession(session: Session): void {\n if (!this._transport.sendSession) {\n IS_DEBUG_BUILD && logger.warn(\"Dropping session because custom transport doesn't implement sendSession\");\n return;\n }\n\n // TODO(v7): Remove the if-else\n if (\n this._newTransport &&\n this._options.dsn &&\n this._options._experiments &&\n this._options._experiments.newTransport\n ) {\n const api = initAPIDetails(this._options.dsn, this._options._metadata, this._options.tunnel);\n const [env] = createSessionEnvelope(session, api);\n void this._newTransport.send(env).then(null, reason => {\n IS_DEBUG_BUILD && logger.error('Error while sending session:', reason);\n });\n } else {\n void this._transport.sendSession(session).then(null, reason => {\n IS_DEBUG_BUILD && logger.error('Error while sending session:', reason);\n });\n }\n }\n\n /**\n * @inheritDoc\n */\n public getTransport(): Transport {\n return this._transport;\n }\n\n /**\n * Sets up the transport so it can be used later to send requests.\n */\n protected _setupTransport(): Transport {\n return new NoopTransport();\n }\n}\n","import { SentryError } from './error';\nimport { rejectedSyncPromise, resolvedSyncPromise, SyncPromise } from './syncpromise';\n\nexport interface PromiseBuffer {\n // exposes the internal array so tests can assert on the state of it.\n // XXX: this really should not be public api.\n $: Array>;\n add(taskProducer: () => PromiseLike): PromiseLike;\n drain(timeout?: number): PromiseLike;\n}\n\n/**\n * Creates an new PromiseBuffer object with the specified limit\n * @param limit max number of promises that can be stored in the buffer\n */\nexport function makePromiseBuffer(limit?: number): PromiseBuffer {\n const buffer: Array> = [];\n\n function isReady(): boolean {\n return limit === undefined || buffer.length < limit;\n }\n\n /**\n * Remove a promise from the queue.\n *\n * @param task Can be any PromiseLike\n * @returns Removed promise.\n */\n function remove(task: PromiseLike): PromiseLike {\n return buffer.splice(buffer.indexOf(task), 1)[0];\n }\n\n /**\n * Add a promise (representing an in-flight action) to the queue, and set it to remove itself on fulfillment.\n *\n * @param taskProducer A function producing any PromiseLike; In previous versions this used to be `task:\n * PromiseLike`, but under that model, Promises were instantly created on the call-site and their executor\n * functions therefore ran immediately. Thus, even if the buffer was full, the action still happened. By\n * requiring the promise to be wrapped in a function, we can defer promise creation until after the buffer\n * limit check.\n * @returns The original promise.\n */\n function add(taskProducer: () => PromiseLike): PromiseLike {\n if (!isReady()) {\n return rejectedSyncPromise(new SentryError('Not adding Promise due to buffer limit reached.'));\n }\n\n // start the task and add its promise to the queue\n const task = taskProducer();\n if (buffer.indexOf(task) === -1) {\n buffer.push(task);\n }\n void task\n .then(() => remove(task))\n // Use `then(null, rejectionHandler)` rather than `catch(rejectionHandler)` so that we can use `PromiseLike`\n // rather than `Promise`. `PromiseLike` doesn't have a `.catch` method, making its polyfill smaller. (ES5 didn't\n // have promises, so TS has to polyfill when down-compiling.)\n .then(null, () =>\n remove(task).then(null, () => {\n // We have to add another catch here because `remove()` starts a new promise chain.\n }),\n );\n return task;\n }\n\n /**\n * Wait for all promises in the queue to resolve or for timeout to expire, whichever comes first.\n *\n * @param timeout The time, in ms, after which to resolve to `false` if the queue is still non-empty. Passing `0` (or\n * not passing anything) will make the promise wait as long as it takes for the queue to drain before resolving to\n * `true`.\n * @returns A promise which will resolve to `true` if the queue is already empty or drains before the timeout, and\n * `false` otherwise\n */\n function drain(timeout?: number): PromiseLike {\n return new SyncPromise((resolve, reject) => {\n let counter = buffer.length;\n\n if (!counter) {\n return resolve(true);\n }\n\n // wait for `timeout` ms and then resolve to `false` (if not cancelled first)\n const capturedSetTimeout = setTimeout(() => {\n if (timeout && timeout > 0) {\n resolve(false);\n }\n }, timeout);\n\n // if all promises resolve in time, cancel the timer and resolve to `true`\n buffer.forEach(item => {\n void resolvedSyncPromise(item).then(() => {\n // eslint-disable-next-line no-plusplus\n if (!--counter) {\n clearTimeout(capturedSetTimeout);\n resolve(true);\n }\n }, reject);\n });\n });\n }\n\n return {\n $: buffer,\n add,\n drain,\n };\n}\n","// Keeping the key broad until we add the new transports\nexport type RateLimits = Record;\n\nexport const DEFAULT_RETRY_AFTER = 60 * 1000; // 60 seconds\n\n/**\n * Extracts Retry-After value from the request header or returns default value\n * @param header string representation of 'Retry-After' header\n * @param now current unix timestamp\n *\n */\nexport function parseRetryAfterHeader(header: string, now: number = Date.now()): number {\n const headerDelay = parseInt(`${header}`, 10);\n if (!isNaN(headerDelay)) {\n return headerDelay * 1000;\n }\n\n const headerDate = Date.parse(`${header}`);\n if (!isNaN(headerDate)) {\n return headerDate - now;\n }\n\n return DEFAULT_RETRY_AFTER;\n}\n\n/**\n * Gets the time that given category is disabled until for rate limiting\n */\nexport function disabledUntil(limits: RateLimits, category: string): number {\n return limits[category] || limits.all || 0;\n}\n\n/**\n * Checks if a category is rate limited\n */\nexport function isRateLimited(limits: RateLimits, category: string, now: number = Date.now()): boolean {\n return disabledUntil(limits, category) > now;\n}\n\n/**\n * Update ratelimits from incoming headers.\n * Returns true if headers contains a non-empty rate limiting header.\n */\nexport function updateRateLimits(\n limits: RateLimits,\n headers: Record,\n now: number = Date.now(),\n): RateLimits {\n const updatedRateLimits: RateLimits = {\n ...limits,\n };\n\n // \"The name is case-insensitive.\"\n // https://developer.mozilla.org/en-US/docs/Web/API/Headers/get\n const rateLimitHeader = headers['x-sentry-rate-limits'];\n const retryAfterHeader = headers['retry-after'];\n\n if (rateLimitHeader) {\n /**\n * rate limit headers are of the form\n *
,
,..\n * where each
is of the form\n * : : : \n * where\n * is a delay in seconds\n * is the event type(s) (error, transaction, etc) being rate limited and is of the form\n * ;;...\n * is what's being limited (org, project, or key) - ignored by SDK\n * is an arbitrary string like \"org_quota\" - ignored by SDK\n */\n for (const limit of rateLimitHeader.trim().split(',')) {\n const parameters = limit.split(':', 2);\n const headerDelay = parseInt(parameters[0], 10);\n const delay = (!isNaN(headerDelay) ? headerDelay : 60) * 1000; // 60sec default\n if (!parameters[1]) {\n updatedRateLimits.all = now + delay;\n } else {\n for (const category of parameters[1].split(';')) {\n updatedRateLimits[category] = now + delay;\n }\n }\n }\n } else if (retryAfterHeader) {\n updatedRateLimits.all = now + parseRetryAfterHeader(retryAfterHeader, now);\n }\n\n return updatedRateLimits;\n}\n","import { EventStatus } from '@sentry/types';\n/**\n * Converts an HTTP status code to sentry status {@link EventStatus}.\n *\n * @param code number HTTP status code\n * @returns EventStatus\n */\nexport function eventStatusFromHttpCode(code: number): EventStatus {\n if (code >= 200 && code < 300) {\n return 'success';\n }\n\n if (code === 429) {\n return 'rate_limit';\n }\n\n if (code >= 400 && code < 500) {\n return 'invalid';\n }\n\n if (code >= 500) {\n return 'failed';\n }\n\n return 'unknown';\n}\n","import { Envelope, EventStatus } from '@sentry/types';\nimport {\n disabledUntil,\n eventStatusFromHttpCode,\n getEnvelopeType,\n isRateLimited,\n makePromiseBuffer,\n PromiseBuffer,\n RateLimits,\n rejectedSyncPromise,\n resolvedSyncPromise,\n serializeEnvelope,\n updateRateLimits,\n} from '@sentry/utils';\n\nexport const ERROR_TRANSPORT_CATEGORY = 'error';\n\nexport const TRANSACTION_TRANSPORT_CATEGORY = 'transaction';\n\nexport const ATTACHMENT_TRANSPORT_CATEGORY = 'attachment';\n\nexport const SESSION_TRANSPORT_CATEGORY = 'session';\n\ntype TransportCategory =\n | typeof ERROR_TRANSPORT_CATEGORY\n | typeof TRANSACTION_TRANSPORT_CATEGORY\n | typeof ATTACHMENT_TRANSPORT_CATEGORY\n | typeof SESSION_TRANSPORT_CATEGORY;\n\nexport type TransportRequest = {\n body: string;\n category: TransportCategory;\n};\n\nexport type TransportMakeRequestResponse = {\n body?: string;\n headers?: {\n [key: string]: string | null;\n 'x-sentry-rate-limits': string | null;\n 'retry-after': string | null;\n };\n reason?: string;\n statusCode: number;\n};\n\nexport type TransportResponse = {\n status: EventStatus;\n reason?: string;\n};\n\ninterface InternalBaseTransportOptions {\n bufferSize?: number;\n}\n\nexport interface BaseTransportOptions extends InternalBaseTransportOptions {\n // url to send the event\n // transport does not care about dsn specific - client should take care of\n // parsing and figuring that out\n url: string;\n}\n\n// TODO: Move into Browser Transport\nexport interface BrowserTransportOptions extends BaseTransportOptions {\n // options to pass into fetch request\n fetchParams: Record;\n headers?: Record;\n sendClientReports?: boolean;\n}\n\nexport interface NewTransport {\n send(request: Envelope): PromiseLike;\n flush(timeout?: number): PromiseLike;\n}\n\nexport type TransportRequestExecutor = (request: TransportRequest) => PromiseLike;\n\nexport const DEFAULT_TRANSPORT_BUFFER_SIZE = 30;\n\n/**\n * Creates a `NewTransport`\n *\n * @param options\n * @param makeRequest\n */\nexport function createTransport(\n options: InternalBaseTransportOptions,\n makeRequest: TransportRequestExecutor,\n buffer: PromiseBuffer = makePromiseBuffer(options.bufferSize || DEFAULT_TRANSPORT_BUFFER_SIZE),\n): NewTransport {\n let rateLimits: RateLimits = {};\n\n const flush = (timeout?: number): PromiseLike => buffer.drain(timeout);\n\n function send(envelope: Envelope): PromiseLike {\n const envCategory = getEnvelopeType(envelope);\n const category = envCategory === 'event' ? 'error' : (envCategory as TransportCategory);\n const request: TransportRequest = {\n category,\n body: serializeEnvelope(envelope),\n };\n\n // Don't add to buffer if transport is already rate-limited\n if (isRateLimited(rateLimits, category)) {\n return rejectedSyncPromise({\n status: 'rate_limit',\n reason: getRateLimitReason(rateLimits, category),\n });\n }\n\n const requestTask = (): PromiseLike =>\n makeRequest(request).then(({ body, headers, reason, statusCode }): PromiseLike => {\n const status = eventStatusFromHttpCode(statusCode);\n if (headers) {\n rateLimits = updateRateLimits(rateLimits, headers);\n }\n if (status === 'success') {\n return resolvedSyncPromise({ status, reason });\n }\n return rejectedSyncPromise({\n status,\n reason:\n reason ||\n body ||\n (status === 'rate_limit' ? getRateLimitReason(rateLimits, category) : 'Unknown transport error'),\n });\n });\n\n return buffer.add(requestTask);\n }\n\n return {\n send,\n flush,\n };\n}\n\nfunction getRateLimitReason(rateLimits: RateLimits, category: TransportCategory): string {\n return `Too many ${category} requests, backing off until: ${new Date(\n disabledUntil(rateLimits, category),\n ).toISOString()}`;\n}\n","import { forget, getGlobalObject, isNativeFetch, logger, supportsFetch } from '@sentry/utils';\n\nimport { IS_DEBUG_BUILD } from '../flags';\n\nconst global = getGlobalObject();\nlet cachedFetchImpl: FetchImpl;\n\nexport type FetchImpl = typeof fetch;\n\n/**\n * A special usecase for incorrectly wrapped Fetch APIs in conjunction with ad-blockers.\n * Whenever someone wraps the Fetch API and returns the wrong promise chain,\n * this chain becomes orphaned and there is no possible way to capture it's rejections\n * other than allowing it bubble up to this very handler. eg.\n *\n * const f = window.fetch;\n * window.fetch = function () {\n * const p = f.apply(this, arguments);\n *\n * p.then(function() {\n * console.log('hi.');\n * });\n *\n * return p;\n * }\n *\n * `p.then(function () { ... })` is producing a completely separate promise chain,\n * however, what's returned is `p` - the result of original `fetch` call.\n *\n * This mean, that whenever we use the Fetch API to send our own requests, _and_\n * some ad-blocker blocks it, this orphaned chain will _always_ reject,\n * effectively causing another event to be captured.\n * This makes a whole process become an infinite loop, which we need to somehow\n * deal with, and break it in one way or another.\n *\n * To deal with this issue, we are making sure that we _always_ use the real\n * browser Fetch API, instead of relying on what `window.fetch` exposes.\n * The only downside to this would be missing our own requests as breadcrumbs,\n * but because we are already not doing this, it should be just fine.\n *\n * Possible failed fetch error messages per-browser:\n *\n * Chrome: Failed to fetch\n * Edge: Failed to Fetch\n * Firefox: NetworkError when attempting to fetch resource\n * Safari: resource blocked by content blocker\n */\nexport function getNativeFetchImplementation(): FetchImpl {\n if (cachedFetchImpl) {\n return cachedFetchImpl;\n }\n\n /* eslint-disable @typescript-eslint/unbound-method */\n\n // Fast path to avoid DOM I/O\n if (isNativeFetch(global.fetch)) {\n return (cachedFetchImpl = global.fetch.bind(global));\n }\n\n const document = global.document;\n let fetchImpl = global.fetch;\n // eslint-disable-next-line deprecation/deprecation\n if (document && typeof document.createElement === 'function') {\n try {\n const sandbox = document.createElement('iframe');\n sandbox.hidden = true;\n document.head.appendChild(sandbox);\n const contentWindow = sandbox.contentWindow;\n if (contentWindow && contentWindow.fetch) {\n fetchImpl = contentWindow.fetch;\n }\n document.head.removeChild(sandbox);\n } catch (e) {\n IS_DEBUG_BUILD &&\n logger.warn('Could not create sandbox iframe for pure fetch check, bailing to window.fetch: ', e);\n }\n }\n\n return (cachedFetchImpl = fetchImpl.bind(global));\n /* eslint-enable @typescript-eslint/unbound-method */\n}\n\n/**\n * Sends sdk client report using sendBeacon or fetch as a fallback if available\n *\n * @param url report endpoint\n * @param body report payload\n */\nexport function sendReport(url: string, body: string): void {\n const isRealNavigator = Object.prototype.toString.call(global && global.navigator) === '[object Navigator]';\n const hasSendBeacon = isRealNavigator && typeof global.navigator.sendBeacon === 'function';\n\n if (hasSendBeacon) {\n // Prevent illegal invocations - https://xgwang.me/posts/you-may-not-know-beacon/#it-may-throw-error%2C-be-sure-to-catch\n const sendBeacon = global.navigator.sendBeacon.bind(global.navigator);\n return sendBeacon(url, body);\n }\n\n if (supportsFetch()) {\n const fetch = getNativeFetchImplementation();\n return forget(\n fetch(url, {\n body,\n method: 'POST',\n credentials: 'omit',\n keepalive: true,\n }),\n );\n }\n}\n","/**\n * Consumes the promise and logs the error when it rejects.\n * @param promise A promise to forget.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function forget(promise: PromiseLike): void {\n void promise.then(null, e => {\n // TODO: Use a better logging mechanism\n // eslint-disable-next-line no-console\n console.error(e);\n });\n}\n","import {\n APIDetails,\n eventToSentryRequest,\n getEnvelopeEndpointWithUrlEncodedAuth,\n getStoreEndpointWithUrlEncodedAuth,\n initAPIDetails,\n sessionToSentryRequest,\n} from '@sentry/core';\nimport {\n ClientReport,\n Event,\n Outcome,\n Response as SentryResponse,\n SentryRequest,\n SentryRequestType,\n Session,\n Transport,\n TransportOptions,\n} from '@sentry/types';\nimport {\n createClientReportEnvelope,\n disabledUntil,\n dsnToString,\n eventStatusFromHttpCode,\n getGlobalObject,\n isRateLimited,\n logger,\n makePromiseBuffer,\n PromiseBuffer,\n RateLimits,\n serializeEnvelope,\n updateRateLimits,\n} from '@sentry/utils';\n\nimport { IS_DEBUG_BUILD } from '../flags';\nimport { sendReport } from './utils';\n\nfunction requestTypeToCategory(ty: SentryRequestType): string {\n const tyStr = ty as string;\n return tyStr === 'event' ? 'error' : tyStr;\n}\n\nconst global = getGlobalObject();\n\n/** Base Transport class implementation */\nexport abstract class BaseTransport implements Transport {\n /**\n * @deprecated\n */\n public url: string;\n\n /** Helper to get Sentry API endpoints. */\n protected readonly _api: APIDetails;\n\n /** A simple buffer holding all requests. */\n protected readonly _buffer: PromiseBuffer = makePromiseBuffer(30);\n\n /** Locks transport after receiving rate limits in a response */\n protected _rateLimits: RateLimits = {};\n\n protected _outcomes: { [key: string]: number } = {};\n\n public constructor(public options: TransportOptions) {\n this._api = initAPIDetails(options.dsn, options._metadata, options.tunnel);\n // eslint-disable-next-line deprecation/deprecation\n this.url = getStoreEndpointWithUrlEncodedAuth(this._api.dsn);\n\n if (this.options.sendClientReports && global.document) {\n global.document.addEventListener('visibilitychange', () => {\n if (global.document.visibilityState === 'hidden') {\n this._flushOutcomes();\n }\n });\n }\n }\n\n /**\n * @inheritDoc\n */\n public sendEvent(event: Event): PromiseLike {\n return this._sendRequest(eventToSentryRequest(event, this._api), event);\n }\n\n /**\n * @inheritDoc\n */\n public sendSession(session: Session): PromiseLike {\n return this._sendRequest(sessionToSentryRequest(session, this._api), session);\n }\n\n /**\n * @inheritDoc\n */\n public close(timeout?: number): PromiseLike {\n return this._buffer.drain(timeout);\n }\n\n /**\n * @inheritDoc\n */\n public recordLostEvent(reason: Outcome, category: SentryRequestType): void {\n if (!this.options.sendClientReports) {\n return;\n }\n // We want to track each category (event, transaction, session) separately\n // but still keep the distinction between different type of outcomes.\n // We could use nested maps, but it's much easier to read and type this way.\n // A correct type for map-based implementation if we want to go that route\n // would be `Partial>>>`\n const key = `${requestTypeToCategory(category)}:${reason}`;\n IS_DEBUG_BUILD && logger.log(`Adding outcome: ${key}`);\n this._outcomes[key] = (this._outcomes[key] ?? 0) + 1;\n }\n\n /**\n * Send outcomes as an envelope\n */\n protected _flushOutcomes(): void {\n if (!this.options.sendClientReports) {\n return;\n }\n\n const outcomes = this._outcomes;\n this._outcomes = {};\n\n // Nothing to send\n if (!Object.keys(outcomes).length) {\n IS_DEBUG_BUILD && logger.log('No outcomes to flush');\n return;\n }\n\n IS_DEBUG_BUILD && logger.log(`Flushing outcomes:\\n${JSON.stringify(outcomes, null, 2)}`);\n\n const url = getEnvelopeEndpointWithUrlEncodedAuth(this._api.dsn, this._api.tunnel);\n\n const discardedEvents = Object.keys(outcomes).map(key => {\n const [category, reason] = key.split(':');\n return {\n reason,\n category,\n quantity: outcomes[key],\n };\n // TODO: Improve types on discarded_events to get rid of cast\n }) as ClientReport['discarded_events'];\n const envelope = createClientReportEnvelope(discardedEvents, this._api.tunnel && dsnToString(this._api.dsn));\n\n try {\n sendReport(url, serializeEnvelope(envelope));\n } catch (e) {\n IS_DEBUG_BUILD && logger.error(e);\n }\n }\n\n /**\n * Handle Sentry repsonse for promise-based transports.\n */\n protected _handleResponse({\n requestType,\n response,\n headers,\n resolve,\n reject,\n }: {\n requestType: SentryRequestType;\n response: Response | XMLHttpRequest;\n headers: Record;\n resolve: (value?: SentryResponse | PromiseLike | null | undefined) => void;\n reject: (reason?: unknown) => void;\n }): void {\n const status = eventStatusFromHttpCode(response.status);\n\n this._rateLimits = updateRateLimits(this._rateLimits, headers);\n // eslint-disable-next-line deprecation/deprecation\n if (this._isRateLimited(requestType)) {\n IS_DEBUG_BUILD &&\n // eslint-disable-next-line deprecation/deprecation\n logger.warn(`Too many ${requestType} requests, backing off until: ${this._disabledUntil(requestType)}`);\n }\n\n if (status === 'success') {\n resolve({ status });\n return;\n }\n\n reject(response);\n }\n\n /**\n * Gets the time that given category is disabled until for rate limiting\n *\n * @deprecated Please use `disabledUntil` from @sentry/utils\n */\n protected _disabledUntil(requestType: SentryRequestType): Date {\n const category = requestTypeToCategory(requestType);\n return new Date(disabledUntil(this._rateLimits, category));\n }\n\n /**\n * Checks if a category is rate limited\n *\n * @deprecated Please use `isRateLimited` from @sentry/utils\n */\n protected _isRateLimited(requestType: SentryRequestType): boolean {\n const category = requestTypeToCategory(requestType);\n return isRateLimited(this._rateLimits, category);\n }\n\n protected abstract _sendRequest(\n sentryRequest: SentryRequest,\n originalPayload: Event | Session,\n ): PromiseLike;\n}\n","import { ClientReport, ClientReportEnvelope, ClientReportItem } from '@sentry/types';\n\nimport { createEnvelope } from './envelope';\nimport { dateTimestampInSeconds } from './time';\n\n/**\n * Creates client report envelope\n * @param discarded_events An array of discard events\n * @param dsn A DSN that can be set on the header. Optional.\n */\nexport function createClientReportEnvelope(\n discarded_events: ClientReport['discarded_events'],\n dsn?: string,\n timestamp?: number,\n): ClientReportEnvelope {\n const clientReportItem: ClientReportItem = [\n { type: 'client_report' },\n {\n timestamp: timestamp || dateTimestampInSeconds(),\n discarded_events,\n },\n ];\n return createEnvelope(dsn ? { dsn } : {}, [clientReportItem]);\n}\n","import { Event, Response, SentryRequest, Session, TransportOptions } from '@sentry/types';\nimport { SentryError, supportsReferrerPolicy, SyncPromise } from '@sentry/utils';\n\nimport { BaseTransport } from './base';\nimport { FetchImpl, getNativeFetchImplementation } from './utils';\n\n/** `fetch` based transport */\nexport class FetchTransport extends BaseTransport {\n /**\n * Fetch API reference which always points to native browser implementation.\n */\n private _fetch: typeof fetch;\n\n public constructor(options: TransportOptions, fetchImpl: FetchImpl = getNativeFetchImplementation()) {\n super(options);\n this._fetch = fetchImpl;\n }\n\n /**\n * @param sentryRequest Prepared SentryRequest to be delivered\n * @param originalPayload Original payload used to create SentryRequest\n */\n protected _sendRequest(sentryRequest: SentryRequest, originalPayload: Event | Session): PromiseLike {\n // eslint-disable-next-line deprecation/deprecation\n if (this._isRateLimited(sentryRequest.type)) {\n this.recordLostEvent('ratelimit_backoff', sentryRequest.type);\n\n return Promise.reject({\n event: originalPayload,\n type: sentryRequest.type,\n // eslint-disable-next-line deprecation/deprecation\n reason: `Transport for ${sentryRequest.type} requests locked till ${this._disabledUntil(\n sentryRequest.type,\n )} due to too many requests.`,\n status: 429,\n });\n }\n\n const options: RequestInit = {\n body: sentryRequest.body,\n method: 'POST',\n // Despite all stars in the sky saying that Edge supports old draft syntax, aka 'never', 'always', 'origin' and 'default'\n // (see https://caniuse.com/#feat=referrer-policy),\n // it doesn't. And it throws an exception instead of ignoring this parameter...\n // REF: https://github.com/getsentry/raven-js/issues/1233\n referrerPolicy: (supportsReferrerPolicy() ? 'origin' : '') as ReferrerPolicy,\n };\n if (this.options.fetchParameters !== undefined) {\n Object.assign(options, this.options.fetchParameters);\n }\n if (this.options.headers !== undefined) {\n options.headers = this.options.headers;\n }\n\n return this._buffer\n .add(\n () =>\n new SyncPromise((resolve, reject) => {\n void this._fetch(sentryRequest.url, options)\n .then(response => {\n const headers = {\n 'x-sentry-rate-limits': response.headers.get('X-Sentry-Rate-Limits'),\n 'retry-after': response.headers.get('Retry-After'),\n };\n this._handleResponse({\n requestType: sentryRequest.type,\n response,\n headers,\n resolve,\n reject,\n });\n })\n .catch(reject);\n }),\n )\n .then(undefined, reason => {\n // It's either buffer rejection or any other xhr/fetch error, which are treated as NetworkError.\n if (reason instanceof SentryError) {\n this.recordLostEvent('queue_overflow', sentryRequest.type);\n } else {\n this.recordLostEvent('network_error', sentryRequest.type);\n }\n throw reason;\n });\n }\n}\n","import { Event, Response, SentryRequest, Session } from '@sentry/types';\nimport { SentryError, SyncPromise } from '@sentry/utils';\n\nimport { BaseTransport } from './base';\n\n/** `XHR` based transport */\nexport class XHRTransport extends BaseTransport {\n /**\n * @param sentryRequest Prepared SentryRequest to be delivered\n * @param originalPayload Original payload used to create SentryRequest\n */\n protected _sendRequest(sentryRequest: SentryRequest, originalPayload: Event | Session): PromiseLike {\n // eslint-disable-next-line deprecation/deprecation\n if (this._isRateLimited(sentryRequest.type)) {\n this.recordLostEvent('ratelimit_backoff', sentryRequest.type);\n\n return Promise.reject({\n event: originalPayload,\n type: sentryRequest.type,\n // eslint-disable-next-line deprecation/deprecation\n reason: `Transport for ${sentryRequest.type} requests locked till ${this._disabledUntil(\n sentryRequest.type,\n )} due to too many requests.`,\n status: 429,\n });\n }\n\n return this._buffer\n .add(\n () =>\n new SyncPromise((resolve, reject) => {\n const request = new XMLHttpRequest();\n\n request.onreadystatechange = (): void => {\n if (request.readyState === 4) {\n const headers = {\n 'x-sentry-rate-limits': request.getResponseHeader('X-Sentry-Rate-Limits'),\n 'retry-after': request.getResponseHeader('Retry-After'),\n };\n this._handleResponse({ requestType: sentryRequest.type, response: request, headers, resolve, reject });\n }\n };\n\n request.open('POST', sentryRequest.url);\n for (const header in this.options.headers) {\n if (Object.prototype.hasOwnProperty.call(this.options.headers, header)) {\n request.setRequestHeader(header, this.options.headers[header]);\n }\n }\n request.send(sentryRequest.body);\n }),\n )\n .then(undefined, reason => {\n // It's either buffer rejection or any other xhr/fetch error, which are treated as NetworkError.\n if (reason instanceof SentryError) {\n this.recordLostEvent('queue_overflow', sentryRequest.type);\n } else {\n this.recordLostEvent('network_error', sentryRequest.type);\n }\n throw reason;\n });\n }\n}\n","import { BaseBackend, getEnvelopeEndpointWithUrlEncodedAuth, initAPIDetails } from '@sentry/core';\nimport { Event, EventHint, Options, Severity, Transport, TransportOptions } from '@sentry/types';\nimport { supportsFetch } from '@sentry/utils';\n\nimport { eventFromException, eventFromMessage } from './eventbuilder';\nimport { FetchTransport, makeNewFetchTransport, makeNewXHRTransport, XHRTransport } from './transports';\n\n/**\n * Configuration options for the Sentry Browser SDK.\n * @see BrowserClient for more information.\n */\nexport interface BrowserOptions extends Options {\n /**\n * A pattern for error URLs which should exclusively be sent to Sentry.\n * This is the opposite of {@link Options.denyUrls}.\n * By default, all errors will be sent.\n */\n allowUrls?: Array;\n\n /**\n * A pattern for error URLs which should not be sent to Sentry.\n * To allow certain errors instead, use {@link Options.allowUrls}.\n * By default, all errors will be sent.\n */\n denyUrls?: Array;\n\n /** @deprecated use {@link Options.allowUrls} instead. */\n whitelistUrls?: Array;\n\n /** @deprecated use {@link Options.denyUrls} instead. */\n blacklistUrls?: Array;\n}\n\n/**\n * The Sentry Browser SDK Backend.\n * @hidden\n */\nexport class BrowserBackend extends BaseBackend {\n /**\n * @inheritDoc\n */\n public eventFromException(exception: unknown, hint?: EventHint): PromiseLike {\n return eventFromException(exception, hint, this._options.attachStacktrace);\n }\n /**\n * @inheritDoc\n */\n public eventFromMessage(message: string, level: Severity = Severity.Info, hint?: EventHint): PromiseLike {\n return eventFromMessage(message, level, hint, this._options.attachStacktrace);\n }\n\n /**\n * @inheritDoc\n */\n protected _setupTransport(): Transport {\n if (!this._options.dsn) {\n // We return the noop transport here in case there is no Dsn.\n return super._setupTransport();\n }\n\n const transportOptions: TransportOptions = {\n ...this._options.transportOptions,\n dsn: this._options.dsn,\n tunnel: this._options.tunnel,\n sendClientReports: this._options.sendClientReports,\n _metadata: this._options._metadata,\n };\n\n const api = initAPIDetails(transportOptions.dsn, transportOptions._metadata, transportOptions.tunnel);\n const url = getEnvelopeEndpointWithUrlEncodedAuth(api.dsn, api.tunnel);\n\n if (this._options.transport) {\n return new this._options.transport(transportOptions);\n }\n if (supportsFetch()) {\n const requestOptions: RequestInit = { ...transportOptions.fetchParameters };\n this._newTransport = makeNewFetchTransport({ requestOptions, url });\n return new FetchTransport(transportOptions);\n }\n\n this._newTransport = makeNewXHRTransport({\n url,\n headers: transportOptions.headers,\n });\n return new XHRTransport(transportOptions);\n }\n}\n","import {\n BaseTransportOptions,\n createTransport,\n NewTransport,\n TransportMakeRequestResponse,\n TransportRequest,\n} from '@sentry/core';\n\nimport { FetchImpl, getNativeFetchImplementation } from './utils';\n\nexport interface FetchTransportOptions extends BaseTransportOptions {\n requestOptions?: RequestInit;\n}\n\n/**\n * Creates a Transport that uses the Fetch API to send events to Sentry.\n */\nexport function makeNewFetchTransport(\n options: FetchTransportOptions,\n nativeFetch: FetchImpl = getNativeFetchImplementation(),\n): NewTransport {\n function makeRequest(request: TransportRequest): PromiseLike {\n const requestOptions: RequestInit = {\n body: request.body,\n method: 'POST',\n referrerPolicy: 'origin',\n ...options.requestOptions,\n };\n\n return nativeFetch(options.url, requestOptions).then(response => {\n return response.text().then(body => ({\n body,\n headers: {\n 'x-sentry-rate-limits': response.headers.get('X-Sentry-Rate-Limits'),\n 'retry-after': response.headers.get('Retry-After'),\n },\n reason: response.statusText,\n statusCode: response.status,\n }));\n });\n }\n\n return createTransport({ bufferSize: options.bufferSize }, makeRequest);\n}\n","import {\n BaseTransportOptions,\n createTransport,\n NewTransport,\n TransportMakeRequestResponse,\n TransportRequest,\n} from '@sentry/core';\nimport { SyncPromise } from '@sentry/utils';\n\n/**\n * The DONE ready state for XmlHttpRequest\n *\n * Defining it here as a constant b/c XMLHttpRequest.DONE is not always defined\n * (e.g. during testing, it is `undefined`)\n *\n * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/readyState}\n */\nconst XHR_READYSTATE_DONE = 4;\n\nexport interface XHRTransportOptions extends BaseTransportOptions {\n headers?: { [key: string]: string };\n}\n\n/**\n * Creates a Transport that uses the XMLHttpRequest API to send events to Sentry.\n */\nexport function makeNewXHRTransport(options: XHRTransportOptions): NewTransport {\n function makeRequest(request: TransportRequest): PromiseLike {\n return new SyncPromise((resolve, _reject) => {\n const xhr = new XMLHttpRequest();\n\n xhr.onreadystatechange = (): void => {\n if (xhr.readyState === XHR_READYSTATE_DONE) {\n const response = {\n body: xhr.response,\n headers: {\n 'x-sentry-rate-limits': xhr.getResponseHeader('X-Sentry-Rate-Limits'),\n 'retry-after': xhr.getResponseHeader('Retry-After'),\n },\n reason: xhr.statusText,\n statusCode: xhr.status,\n };\n resolve(response);\n }\n };\n\n xhr.open('POST', options.url);\n\n for (const header in options.headers) {\n if (Object.prototype.hasOwnProperty.call(options.headers, header)) {\n xhr.setRequestHeader(header, options.headers[header]);\n }\n }\n\n xhr.send(request.body);\n });\n }\n\n return createTransport({ bufferSize: options.bufferSize }, makeRequest);\n}\n","import { BaseClient, Scope, SDK_VERSION } from '@sentry/core';\nimport { Event, EventHint } from '@sentry/types';\nimport { getGlobalObject, logger } from '@sentry/utils';\n\nimport { BrowserBackend, BrowserOptions } from './backend';\nimport { IS_DEBUG_BUILD } from './flags';\nimport { injectReportDialog, ReportDialogOptions } from './helpers';\nimport { Breadcrumbs } from './integrations';\n\n/**\n * The Sentry Browser SDK Client.\n *\n * @see BrowserOptions for documentation on configuration options.\n * @see SentryClient for usage documentation.\n */\nexport class BrowserClient extends BaseClient {\n /**\n * Creates a new Browser SDK instance.\n *\n * @param options Configuration options for this SDK.\n */\n public constructor(options: BrowserOptions = {}) {\n options._metadata = options._metadata || {};\n options._metadata.sdk = options._metadata.sdk || {\n name: 'sentry.javascript.browser',\n packages: [\n {\n name: 'npm:@sentry/browser',\n version: SDK_VERSION,\n },\n ],\n version: SDK_VERSION,\n };\n\n super(BrowserBackend, options);\n }\n\n /**\n * Show a report dialog to the user to send feedback to a specific event.\n *\n * @param options Set individual options for the dialog\n */\n public showReportDialog(options: ReportDialogOptions = {}): void {\n // doesn't work without a document (React Native)\n const document = getGlobalObject().document;\n if (!document) {\n return;\n }\n\n if (!this._isEnabled()) {\n IS_DEBUG_BUILD && logger.error('Trying to call showReportDialog with Sentry Client disabled');\n return;\n }\n\n injectReportDialog({\n ...options,\n dsn: options.dsn || this.getDsn(),\n });\n }\n\n /**\n * @inheritDoc\n */\n protected _prepareEvent(event: Event, scope?: Scope, hint?: EventHint): PromiseLike {\n event.platform = event.platform || 'javascript';\n return super._prepareEvent(event, scope, hint);\n }\n\n /**\n * @inheritDoc\n */\n protected _sendEvent(event: Event): void {\n const integration = this.getIntegration(Breadcrumbs);\n if (integration) {\n integration.addSentryBreadcrumb(event);\n }\n super._sendEvent(event);\n }\n}\n","import {} from '@sentry/integrations';\nimport * as Sentry from '@sentry/react';\nimport { FeatureAppConfig } from 'src';\nimport { Dependencies } from 'src/feature-app';\n\nconst getOptions = (stage: 'dev' | string): Sentry.BrowserOptions => {\n return {\n dsn: 'https://c72951f5b7c54e769470906bceb05c92@o192159.ingest.sentry.io/6118409',\n integrations: [\n new Sentry.Integrations.InboundFilters(),\n new Sentry.Integrations.FunctionToString(),\n new Sentry.Integrations.TryCatch(),\n new Sentry.Integrations.Breadcrumbs({ console: true, dom: true, fetch: true, history: true, xhr: true }),\n new Sentry.Integrations.GlobalHandlers(),\n new Sentry.Integrations.LinkedErrors(),\n new Sentry.Integrations.Dedupe(),\n new Sentry.Integrations.UserAgent(),\n ],\n tracesSampleRate: 1,\n environment: stage === 'dev' ? 'Stage' : 'Prod',\n release: process.env.VERSION,\n\n beforeSend: (event: Sentry.Event) => {\n // Solo reportamos los errores en producción\n // if (stage === 'dev') {\n // return null;\n // }\n event.exception.values = event.exception.values.map(value => {\n value.mechanism.handled = false;\n return value;\n });\n return event;\n },\n };\n};\n\nlet sentryHub: Sentry.Hub = null;\n\nexport const initSentry = (featureServices: Dependencies, config: FeatureAppConfig) => {\n const stageCustomConfig = featureServices['service-config-provider'].configs?.stage?.customConfig;\n const faContent = featureServices['fa-content-service'].content;\n\n const client = new Sentry.BrowserClient(getOptions(stageCustomConfig?.stage));\n const hub = new Sentry.Hub(client);\n // Sentry.makeMain(hub); // Desactivado ya que provoca que se reporten errores de otros proyectos.\n hub.setContext('Feature App Config', { ...config });\n hub.setContext('Feature App Content', { ...faContent });\n setSentryHub(hub);\n return { hub };\n};\n\nexport const getSentryHub = () => sentryHub;\n\nexport const setSentryTag = (tag:string, value: string) => {\n sentryHub.setTag(tag, value);\n};\n\nconst setSentryHub = (newHub: Sentry.Hub) => {\n sentryHub = newHub;\n};\n","import dayjs from 'dayjs';\nimport { Store } from 'redux';\nimport { getOption, getModelFilter, getWheelsParams } from 'src/bff';\nimport { emptyConfigurationFromVicci } from 'src/feature-app/tracking-objects';\nimport {\n TrackingConfiguration,\n TrackingEventInfo,\n TrackingForm,\n TrackingLink,\n TrackingPartner,\n TrackingProcess,\n} from 'src/feature-app/tracking-types';\nimport { DealersData, FormInfo, OneFormState, Slot, Steps } from 'src/types';\n\nexport const createTrackingLink = (name?: string): TrackingLink | undefined => {\n return {\n url: window ? window.location.href : undefined,\n name: name ? name : undefined,\n };\n};\n\nexport const createPartner = (store: Store, dealerData?: DealersData): TrackingPartner => {\n const { formData, dealersInfo } = store.getState();\n const { dealer } = formData.fields;\n const { selectedDealer } = dealersInfo;\n\n const dealerFromStore = dealer ? dealer : selectedDealer ? selectedDealer : undefined;\n\n const dealerToUse = dealerData ? dealerData : dealerFromStore;\n\n return {\n informationBnr: dealerToUse?.kvps,\n informationDepartment: undefined,\n informationZIP: dealerToUse?.markerInfo?.dealerInfo?.zipCode,\n informationName: dealerToUse?.name,\n };\n};\n\nexport const createPartnerWithSearch = (store: Store, dealerData?: DealersData): TrackingPartner => {\n const { formData, formInfo } = store.getState();\n const basePartner = createPartner(store, dealerData);\n const SearchType = formInfo.suggestionIsDealer\n ? 'DealerSuggestion'\n : !formInfo.suggestionIsDealer\n ? 'GooglePlacesSuggestion'\n : undefined;\n\n return {\n ...basePartner,\n SearchSearchTerm: formData.fields.location,\n SearchType,\n SearchNumberOfResults: undefined,\n };\n};\n\nconst getStepNumber = (formInfo: FormInfo) => {\n const { step } = formInfo;\n\n if (!step) return undefined;\n\n return String(step.screenIndex + 1);\n};\n\nconst getStepName = (formInfo: FormInfo, processInfo?: TrackingProcess): string | undefined => {\n if (processInfo) return processInfo.StepName;\n\n const { step, multiStepScreenIndex, multiSteps } = formInfo;\n\n if (!step) {\n return undefined;\n }\n if (step.multiStep && multiStepScreenIndex >= 0) {\n return multiSteps && multiSteps[multiStepScreenIndex].name ? multiSteps[multiStepScreenIndex].name : undefined;\n } // Devolvemos el nombre del step dentro del multsitep.\n\n\n if(formInfo.formSubmitted) return 'ThankYou';\n\n return step.name ? step.name : undefined;\n};\n\nexport const createTrackingProcess = (store: Store, processInfo?: TrackingProcess): TrackingProcess => {\n const { formInfo } = store.getState();\n\n let StepName = getStepName(formInfo, processInfo);\n let StepNumber = getStepNumber(formInfo);\n\n return {\n StepName,\n StepNumber,\n };\n};\n\nexport const getFormAppointments = (store: Store): TrackingForm => {\n const { formData } = store.getState();\n const { slot }: { slot?: Slot } = formData.fields;\n\n let Appointments;\n let NumberOfAppointments;\n\n if (slot) {\n Appointments = [dayjs(slot.from).utc().format('YYYY-MM-DDTHH:mm:ss[Z]')];\n NumberOfAppointments = 1;\n }\n return {\n Appointments,\n NumberOfAppointments,\n };\n};\n\nexport const getMarketingConsent = (store: Store): TrackingForm => {\n const { formData } = store.getState();\n const { lssi, tmk } = formData.fields;\n\n if (!lssi || !tmk) {\n return {\n MarketingConsent: [],\n };\n }\n\n return {\n MarketingConsent: [\n {\n comunicaciones: lssi === 'PERMITE',\n perfilado: tmk === 'PERMITE',\n },\n ],\n };\n};\n\nexport const getBaseEventInfo = (store: Store, brand: 'V' | 'N'): TrackingEventInfo => {\n const { pageCategory } = store.getState().formData.fields;\n\n const baseEventInfo: TrackingEventInfo = {\n brand: brand === 'N' ? 'commercial' : 'passenger',\n pageCategory,\n sectionName: undefined,\n templateType: 'Feature App Template',\n };\n return baseEventInfo;\n};\n\nexport const getCompleteConfigurationFromVicci = (vicciData: VicciData): TrackingConfiguration => {\n if (!vicciData) return emptyConfigurationFromVicci;\n\n const { vehicleConfiguration } = vicciData.consolidatedData;\n const { COD_VEH_WHEELS, DESC_VEH_WHEELS } = getWheelsParams(vicciData.featuresData.vehicleCatalogue.features);\n return {\n ...emptyConfigurationFromVicci,\n ModelId: vehicleConfiguration.modelKey.split('$')[0],\n ModelModelVersion: vehicleConfiguration.modelVersion,\n ModelName: vehicleConfiguration.modelName,\n ModelYear: vehicleConfiguration.modelYear,\n ExteriorColorCode: vehicleConfiguration.exterior?.code,\n ExteriorColorName: vehicleConfiguration.exterior?.name,\n InteriorColorCode: vehicleConfiguration.interior?.code,\n InteriorColorName: vehicleConfiguration.interior?.name,\n WheelsBasicId: COD_VEH_WHEELS,\n WheelsBasicName: DESC_VEH_WHEELS,\n };\n};\n\nexport const getCarlineConfigurationFromMkc = (marketingCode: any): TrackingConfiguration => {\n if (!marketingCode) return {};\n\n const salesgroup = getOption(\"SALESGROUP\",marketingCode.content.consolidatedData.options);\n const modelyear = getOption(\"MODELYEAR\",marketingCode.content.consolidatedData.options);\n const type = getOption(\"TYPE\",marketingCode.content.consolidatedData.options);\n const baseType = getOption(\"BASETYPE\",marketingCode.content.consolidatedData.options);\n\n const equipmentLine = getModelFilter(\"EquipmentLine\",marketingCode.content.consolidatedData.meta.modelFilter);\n\n return {\n CarlineId: marketingCode.content.consolidatedData.model_code.split(\"_\")[1],\n CarlineName: marketingCode.content.consolidatedData.model_description,\n SalesgroupId: salesgroup.option.code.replace('SALESGROUP:',''),\n SalesgroupName: salesgroup.option.description,\n EquipmentlineName: equipmentLine.modelFilter.text,\n ModelId: baseType.option.code.replace('BASETYPE:',''),\n ModelName: type.option.description,\n ModelYear: modelyear.option.code.replace('MODELYEAR:',''),\n };\n};\n\nexport const getCarlineConfiguration = (store: Store): TrackingConfiguration => {\n const { dealersInfo, formData } = store.getState();\n const { selectedCarline, oferta, salesGroup, match } = dealersInfo;\n const { vicciData, matchMarketingCodeData, marketingCodeResponse } = formData.fields;\n\n if (marketingCodeResponse) {\n return getCarlineConfigurationFromMkc(marketingCodeResponse);\n }\n\n let configuration: TrackingConfiguration = {};\n if (selectedCarline) {\n configuration = {\n CarlineId: String(selectedCarline.code),\n CarlineName: selectedCarline.title,\n };\n }\n if (oferta) {\n configuration = {\n ...configuration,\n CarlineId: String(oferta.carline.code),\n CarlineName: oferta.carline.title,\n };\n }\n if (salesGroup) {\n configuration = {\n ...configuration,\n SalesgroupId: salesGroup.salesGroupId,\n SalesgroupName: salesGroup.salesGroupName,\n };\n }\n\n if (match && matchMarketingCodeData) {\n configuration = {\n ...configuration\n };\n }\n return configuration;\n};\n","import { TrackingConfiguration, TrackingOwnership, TrackingPersonalization, TrackingUser } from './tracking-types';\n\nexport const emptyPersonalization: TrackingPersonalization = {\n status: false,\n moduleId: undefined,\n placeholderId: undefined,\n contentId: undefined,\n activityId: undefined,\n personalizable: undefined,\n activityName: undefined,\n experienceId: undefined,\n experienceName: undefined,\n offerId: undefined,\n offerName: undefined,\n};\n\nexport const emptyPriceConfiguration: TrackingConfiguration = {\n PriceType: 'price',\n PriceTypeParameter: undefined,\n PriceRateCurrency: undefined,\n PriceRateBasic: undefined,\n PriceRateAdditional: undefined,\n PriceRateTotal: undefined,\n PriceRateType: undefined,\n PriceTotalCurrency: undefined,\n PriceTotalBasic: undefined,\n PriceTotalAdditional: undefined,\n PriceTotalTotal: undefined,\n};\n\nexport const emptyCarlineConfig: TrackingConfiguration = {\n SalesgroupId: undefined,\n SalesgroupName: undefined,\n EquipmentlineName: undefined,\n CarlineId: undefined,\n CarlineName: undefined,\n};\n\nexport const emptyLatLongZip: TrackingUser = {\n locationLatitude: undefined,\n locationLongitude: undefined,\n locationZIP: undefined,\n};\n\nexport const emptyConfig = { ...emptyPriceConfiguration, ...emptyCarlineConfig };\n\nexport const emptyOwnership: TrackingOwnership = {\n vehicle: undefined,\n};\n\nexport const emptyConfigurationFromVicci = {\n CarlineIsRecommendation: undefined,\n SalesgroupIsRecommendation: undefined,\n BodyTypeName: undefined,\n PriceTotalTotal: undefined,\n ModelId: undefined,\n ModelTrimFeatures: undefined,\n ModelModelVersion: undefined,\n ModelIsRecommendation: undefined,\n ModelName: undefined,\n ModelDriveType: undefined,\n ModelGearType: undefined,\n ModelYear: undefined,\n EnginePowerHPKW: undefined,\n EngineFuelTypePrimary: undefined,\n EngineFuelTypeNonPrimary: undefined,\n ConsumptionCombinedPrimary: undefined,\n ConsumptionCombinedNonPrimary: undefined,\n EmissionConsumptionEfficiencyClass: undefined,\n EmissionConsumptionTestingMethod: undefined,\n ExteriorColorCode: undefined,\n ExteriorColorName: undefined,\n ExteriorColorIsRecommendation: undefined,\n InteriorColorCode: undefined,\n InteriorColorName: undefined,\n InteriorColorIsRecommendation: undefined,\n WheelsBasicId: undefined,\n WheelsBasicName: undefined,\n WheelsBasicIsRecommendation: undefined,\n PriceCurrency: undefined,\n PriceBasis: undefined,\n PriceExterior: undefined,\n PriceOptions: undefined,\n PriceTotalConfiguration: undefined,\n PriceCampaignID: undefined,\n PriceCampaignDescription: undefined,\n PriceCampaignValue: undefined,\n PriceCustomerType: undefined,\n OptionsNumber: undefined,\n OptionsList: undefined,\n};\n","import React, { useEffect, useRef, useState } from 'react';\nimport { createPincodeEntity } from '../dps-utils';\nimport { dpsSend } from 'src/bff';\nimport { EsOneformCoreServiceV1 } from 'src/feature-service/es-oneform-core-feature-service/types';\nimport { formDataBuilder, formatHeaders } from '../format-fields';\nimport { GenericErrorLayer, LoadingEncuestas } from 'src/components';\nimport { getParamsForm, useFeatureServices, removeWhiteSpace, useNavigate, useTrackingManager, getTrackingForm } from 'src/feature-app';\nimport { FormDataGroup, IdPerson, OneFormState } from 'src/types';\nimport { useDispatch, useStore } from 'react-redux';\nimport { TestIDForm } from '../FormsAdhoc/TestID2023/TestIDForm';\nimport { PlanIdealForm } from '../FormsAdhoc/2023PlanIdeal/PlanIdealForm';\n\ninterface AutosubmitControllerProps {\n action: string;\n}\n\n\nexport function AutosubmitController({ action }: AutosubmitControllerProps): JSX.Element | null {\n const [loading, setLoading] = useState(true);\n const [error, setError] = useState(false);\n const [renderTestID, setRenderTestID] = useState(false);\n const [renderPlanIdeal, setRenderPlanIdeal] = useState(false);\n\n const dpsDataRef = useRef(null);\n const idPersonRef = useRef(null);\n const oneFormService = useFeatureServices()['es:oneform-core'] as EsOneformCoreServiceV1;\n\n const trackingManager = useTrackingManager();\n const dispatch = useDispatch();\n const { navigateToThankyouNewsletter } = useNavigate();\n const store = useStore();\n const { formData }: OneFormState = store.getState();\n\n const initialData: Partial = {\n headers: {\n DESC_BRAND: 'VW',\n DESC_GDPR_ADAPTED: 'true',\n DESC_TOKEN: 'VW_DDB_FRM_NEWSLETTER_ELECTRICOS',\n DESC_FORMOBJECTIVE: 'Suscripción Newsletter',\n COD_FORM_ID: 'vw-oneform-'+action+'-autosubmit',\n },\n fields: {\n formName: action+'-autosubmit',\n formType: 'newsletter',\n pageCategory: 'Suscripción Newsletter',\n }, // Analítica\n };\n dispatch({ type: 'UPDATE_FORM', payload: { ...initialData } });\n\n const sendForm = (): Promise => {\n const idPerson: IdPerson = idPersonRef.current;\n\n const { fields } = formData;\n return new Promise(async (resolve, reject) => {\n const { tc, today, url, device } = getParamsForm();\n\n const data = {\n ...formatHeaders(initialData.headers),\n 'headers[DESC_URLORIGIN]': url,\n 'headers[DESC_CAMPAIGNBLOCK]': '4. VW Newsletter',\n 'headers[DESC_DEVICETYPE]': device,\n 'headers[DESC_ID_CAMPAIGN]': '7011n000000SLXMAA4',\n 'headers[FECHA_INSERTION_DATE]': today,\n 'headers[TC]': tc,\n 'headers[DESC_VN_VO]': 'VN',\n\n 'fields[DESC_NAME]': idPerson?.FirstName ? idPerson.FirstName : null,\n 'fields[DESC_SURNAME_1]': idPerson?.LastName ? idPerson.LastName : null,\n\n 'fields[DESC_FORM_VERSION]': `vw-oneform-${initialData.fields.formName}-${process.env.VERSION}`,\n 'fields[DESC_EMAIL_ADDRESS]': idPerson && idPerson.TXT_Email__c ? idPerson.TXT_Email__c : removeWhiteSpace(fields.email),\n 'fields[DESC_LOPD]': 'NO INFORMADO',\n 'fields[DESC_TRANF_DATA_THIRD]': 'NO INFORMADO',\n 'fields[DESC_LOPD_GDPR_PERFILADO]': 'NO INFORMADO',\n 'fields[DESC_LSSI]': 'NO INFORMADO',\n };\n const dataStringified = JSON.stringify(data);\n const dataParsed = JSON.parse(dataStringified);\n\n const formData = formDataBuilder(dataParsed);\n const response = await dpsSend(formData);\n\n if (response.data && response.data.content && response.data.content.code === '200') {\n dispatch({ type: 'SET_FORM_RESPONSE', payload: response.data });\n trackingManager.trackFormSubmissionSuccessMessageLoad(\n {\n contentId: undefined,\n },\n getTrackingForm(response));\n switch (action){\n case 'newsletter-electricos':\n navigateToThankyouNewsletter(action); // Navegación a Thank You Page\n break;\n case 'newsletter-electricos-adhoc-2023-test_id': // Render de form Test ID como continuación\n setRenderTestID(true);\n break;\n case 'newsletter-electricos-adhoc-2023-plan_ideal': // Render de Plan Ideal como continuación\n setRenderPlanIdeal(true);\n break;\n }\n } else {\n handleError();\n }\n\n });\n };\n\n const handleComplete = () => {\n const dpsData = oneFormService.getDpsData();\n const idPerson = createPincodeEntity(dpsData, 'PERSON');\n trackingManager.trackFormLayerLoad();\n dpsDataRef.current = dpsData;\n idPersonRef.current = idPerson;\n\n if (action === 'newsletter-electricos') {\n if (dpsData.pincode === null || dpsData.pincode.noPincodeFound || dpsData.pincode.pincodeError) {\n handleError();\n } else if (dpsData.pincode.pincodeUsed) {\n handleError();\n } else {\n sendForm();\n }\n } else {\n sendForm();\n setLoading(false);\n };\n };\n\n const handleError = () => {\n setError(true);\n setLoading(false);\n };\n\n useEffect(() => {\n const oneFormCoreDpsIsLoaded = oneFormService.getLoadedState();\n\n oneFormCoreDpsIsLoaded.subscribe({\n next(value) { },\n error(err) {\n console.error(err);\n handleError();\n },\n complete() {\n handleComplete();\n },\n });\n }, []);\n\n if (loading) {\n return ;\n } else if (error) {\n return (\n <>\n \n \n );\n } else if (renderTestID) {\n const idPerson: IdPerson = idPersonRef.current;\n\n return (\n \n );\n } else if (renderPlanIdeal) {\n const idPerson: IdPerson = idPersonRef.current;\n\n return (\n \n );\n }\n return null;\n}\n","import React, { useEffect, useState } from 'react';\nimport { useDispatch, useStore } from 'react-redux';\nimport { dpsSend } from 'src/bff';\nimport { FormController, useOneFormContext, removeWhiteSpace } from 'src/feature-app';\nimport { getParamsForm } from 'src/feature-app/get-params-form';\nimport { OneElementTemplateFullScreen } from 'src/feature-app/Screen';\nimport { FormDataGroup, FormInfo, OneFormState, Steps } from 'src/types';\nimport { ThankYouBaja, BajaComunicacionesFields } from '.';\nimport { formDataBuilder, formatHeaders } from '../format-fields';\nimport { IdPerson } from 'src/types';\nimport { DpsData } from 'src/feature-service/es-oneform-core-feature-service/types';\n\n\n\nlet NuevoFormData: Partial = {\n headers: {\n DESC_BRAND: 'VW',\n DESC_GDPR_ADAPTED: 'true',\n DESC_TOKEN: 'VW_DDB_FRM_BAJA_COMUNICACIONES',\n DESC_FORMOBJECTIVE: 'Baja Comunicaciones',\n COD_FORM_ID: 'vw-oneform-baja-comunicaciones',\n },\n fields: {\n formName: 'baja-comunicaciones',\n formType: 'otherform',\n pageCategory: 'Baja Comunicaciones',\n }, // Analítica\n};\n\ninterface BajaComunicacionesProps {\n idPerson?: IdPerson;\n dpsData?: DpsData;\n campaign: string;\n}\n\nexport const BajaComunicacionesForm = (props: BajaComunicacionesProps) => {\n const { initializeForm } = useOneFormContext();\n const { idPerson, campaign } = props;\n const store = useStore();\n const dispatch = useDispatch();\n const [loading, setLoading] = useState(true);\n\n const steps: Steps[] = [\n {\n title: <>, // El title se renderiza en los fields al ser un form de un solo step con un diseño que incluye un stage.\n fields: } />,\n screenIndex: 0,\n name: 'Form',\n },\n ];\n\n useEffect(() => {\n const urlParams = new URLSearchParams(window.location.search);\n const info = urlParams.get('q');\n if (info) {\n const decodedParms = atob(info);\n const splittedParams = decodedParms.split(';');\n const [DESC_ID_CAMPAIGN, DESC_ID_CLIMAPRO] = splittedParams;\n\n NuevoFormData = {\n headers: { ...NuevoFormData.headers, DESC_ID_CLIMAPRO },\n fields: { ...NuevoFormData.fields },\n };\n }\n setLoading(false);\n }, []);\n\n const getFormInfo = (): {\n firstStep: Steps;\n lastStep: Steps;\n stepsHistory: number[];\n numberOfScreens: number;\n newSteps?: Steps[];\n } => {\n return {\n firstStep: steps[0],\n lastStep: steps[steps.length - 1],\n stepsHistory: [0],\n numberOfScreens: steps.length,\n newSteps: null,\n };\n };\n\n const sendForm = (): Promise => {\n const { formData, dealersInfo }: OneFormState = store.getState();\n\n const { fields, headers } = formData;\n\n return new Promise(async (resolve, reject) => {\n const { tc, today, referalUrl, url, device } = getParamsForm();\n\n //resolve(true);\n const data = {\n ...formatHeaders(headers),\n 'headers[DESC_URLORIGIN]': url,\n 'headers[FECHA_INSERTION_DATE]': today,\n 'headers[TC]': tc,\n 'headers[DESC_DEVICETYPE]': device,\n 'headers[DESC_ID_CAMPAIGN]': campaign ? campaign : '',\n\n 'fields[DESC_FORM_VERSION]': `vw-oneform-baja-comunicaciones-${process.env.VERSION}`,\n 'fields[DESC_EMAIL_ADDRESS]': idPerson && idPerson.TXT_Email__c ? idPerson.TXT_Email__c : removeWhiteSpace(fields.email),\n 'fields[DESC_REASON_CONTACT_CHANGE_REQ]': fields.motivoBaja,\n 'fields[M_OBSERVATION]': fields.masInformacion,\n 'fields[DESC_NAME]' : idPerson && idPerson.FirstName ? idPerson.FirstName : fields.name,\n 'fields[DESC_SURNAME_1]' : idPerson && idPerson.LastName ? idPerson.LastName : fields.surname,\n 'fields[DESC_SURNAME_2]' : idPerson && idPerson.TXT_2_Surname__c ? idPerson.TXT_2_Surname__c : fields.secondSurname,\n 'fields[DESC_LSSI]': 'NO PERMITE',\n };\n const dataStringified = JSON.stringify(data);\n const dataParsed = JSON.parse(dataStringified);\n\n const formData = formDataBuilder(dataParsed);\n\n const response = await dpsSend(formData);\n\n if (response && response.data && response.data.content && response.data.content.code === '200') {\n dispatch({ type: 'SET_FORM_RESPONSE', payload: response.data });\n resolve(true);\n } else {\n resolve(false);\n }\n });\n };\n\n useEffect(() => {\n if (loading) {\n return;\n }\n const { firstStep, lastStep, stepsHistory, numberOfScreens, newSteps } = getFormInfo();\n\n const NuevoFormInfo: Partial = {\n formStarted: true,\n sendFormCallback: sendForm,\n fullScreen: firstStep.fullScreen ? true : false,\n lastStep,\n numberOfScreens,\n formTheme: 'main',\n screenIndex: firstStep.screenIndex,\n step: firstStep,\n steps: newSteps ? newSteps : steps,\n stepsHistory,\n notALayer: true,\n formType: 'inPage',\n alingItemsCenter: true,\n thankYouComponent: ,\n };\n initializeForm(NuevoFormInfo, NuevoFormData);\n }, [loading]);\n\n return !steps ? null : ;\n};\n","import React, { useEffect } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { useTrackingManager, getTrackingForm } from 'src/feature-app';\nimport { RenderController } from 'src/feature-app/Screen';\nimport { OneFormState, Steps } from 'src/types';\nimport { ThankYouTitle, ThankYouFields } from 'src/components';\n\nexport const ThankYouBaja = () => {\n const {formResponse} = useSelector((state: OneFormState) => state.formInfo);\n const trackingManager = useTrackingManager();\n const dispatch = useDispatch();\n\n useEffect(() => {\n // Thank you page no es gestionado como un step pero sí lo haremos en la analítica. Por eso Modificamos formInfo después del submit y antes del RESET\n const screenIndexThankyou = formResponse?.numberOfScreens;\n\n dispatch({ type: 'SET_FORM_SUBMITTED', payload: true });\n dispatch({ type: 'SET_FORM_INFO', payload: { step: { screenIndex: screenIndexThankyou, name: \"ThankYou\" } } });\n\n trackingManager.trackFormSubmissionSuccessMessageLoad(\n {\n contentId: undefined,\n },\n getTrackingForm(formResponse)\n );\n }, []);\n\n const screen: Steps = {\n title: ,\n fields: (\n \n ),\n };\n return (\n \n );\n};\n","import {\n styled,\n Container,\n ContainerPadding,\n CTA,\n Text,\n ContainerGutter,\n InputAppearance,\n BreakpointWrapper,\n Breakpoints,\n TokenTextAppearance\n} from '@volkswagen-onehub/components-core';\nimport { CloseHandleV2, FocusLayerSizeV2, LayerHandleV2, LayerManagerV2 } from '@volkswagen-onehub/layer-manager';\n\nimport {\n InputError,\n PoliticaPrivacidad,\n Email,\n MultipleCTASelection,\n TextAreaExtended,\n KoScreen,\n LoadingScreen,\n Nombre,\n Apellido,\n GeneralInputWidthWrapper,\n} from 'src/components';\nimport { questionTwoOptions } from 'src/feature-app/InputsValues';\nimport React, { useEffect, useState } from 'react';\nimport { useDispatch, useSelector, useStore } from 'react-redux';\nimport { useFormContext } from 'react-hook-form';\nimport {\n LayerManagerWrapper,\n useFeatureAppEnvironment,\n useFeatureServices,\n useOneFormContext,\n useTrackingManager,\n} from 'src/feature-app';\nimport { OneFormState, IdPerson } from 'src/types';\n\nconst TextAreaWrapper = styled.div`\n label {\n width: 100%;\n }\n`;\n\nconst PaddingWrapper = styled.div`\n`;\n\nconst NameLastNameWrapper = styled.div`\n padding-bottom: 2px;\n gap: 20px;\n display: flex;\n flex-direction: column;\n @media all and (min-width: 960px) {\n flex-direction: row;\n gap: 32px;\n }\n`;\n\nconst MotivoBaja = () => {\n const { getValues } = useFormContext();\n const { motivoBaja } = getValues();\n\n return (\n <>\n \n \n );\n};\n\ninterface BajaComunicacionesProps {\n idPerson?: IdPerson;\n}\n\nexport const BajaComunicacionesFields = (props: BajaComunicacionesProps) => {\n const { idPerson } = props;\n const [emailError, setEmailError] = useState(false);\n const [motivoError, setMotivoError] = useState(false);\n const [ masInfoValue, setMasInfoValue ] = useState(null);\n const [ nameError, setNameError ] = useState(false);\n\n return (\n
\n \n \n {\n idPerson && idPerson.FirstName && idPerson.LastName && idPerson.TXT_Email__c ? (\n <>\n \n ¿Por qué quieres dar de baja el email {idPerson.TXT_Email__c}?\n \n \n \n Nos da pena decirte adiós tan pronto. Por eso, antes de darte de baja, nos encantaría entender por qué te\n vas para mejorar la próxima vez.\n \n \n \n ) : (\n <>\n \n ¿Seguro que quieres darte de baja?\n \n \n \n Nos da pena decirte adiós tan pronto. Por eso, antes de darte de baja, nos encantaría entender por qué te\n vas para mejorar la próxima vez.\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n }\n />\n \n )\n }\n\n }\n />\n \n {\n setMasInfoValue(e.currentTarget.value);\n }}\n />\n \n }\n />\n \n \n \n
\n );\n};\n\ninterface FieldProps {\n question?: string;\n input: JSX.Element;\n isRequired?: boolean;\n emailError?: boolean;\n motivoError?: boolean;\n}\nconst Field = (props: FieldProps) => {\n const { question, input, isRequired, emailError, motivoError } = props;\n\n return (\n \n {\n question ? (\n \n {question} {isRequired ? * : null}\n \n ) : null\n }\n \n {input}\n {emailError || motivoError ? Necesitamos esta información para seguir : null}\n \n );\n};\n\ninterface lastNavigationsProps {\n setEmailError: (value: boolean) => void;\n setMotivoError: (value: boolean) => void;\n setNameError: (value: boolean) => void;\n masInfoValue?: null | string;\n idPerson?: IdPerson;\n}\n\nfunction LastNavigation(props: lastNavigationsProps) {\n const { setEmailError, setMotivoError, masInfoValue, idPerson, setNameError } = props;\n // const dispatch = useDispatch();\n const { handleShowFinalScreen, handleSubmit } = useOneFormContext();\n const { getValues, triggerValidation } = useFormContext();\n const [layerVisible, setLayerVisible] = useState(false);\n const [koLayer, setKoLayer] = useState>(null);\n const [koScreen, setKoScreen] = useState(false);\n const layerManager = useFeatureServices()['layer-manager'] as LayerManagerV2;\n const store = useStore();\n const env = useFeatureAppEnvironment();\n const dispatch = useDispatch();\n const trackingManager = useTrackingManager();\n const { formData } = useSelector((state: OneFormState) => state);\n\n //Loading and Ko layers\n\n const handleKoLayer = () => {\n const layer = layerManager.openFocusLayer(renderKoLayer, {}, { size: FocusLayerSizeV2.A });\n setKoLayer(layer);\n };\n\n const renderKoLayer = (state: any, close: CloseHandleV2) => {\n const NoCompraTitle = 'Uy, algo ha pasado';\n const NoCompraBody = 'Por alguna razón no hemos podido enviar tu petición. ¿Lo intentamos de nuevo?';\n\n return (\n \n \n \n );\n };\n\n const handleLoadingScreenLayer = () => {\n const layer = layerManager.openFocusLayer(renderLoadingScreen, {}, { size: FocusLayerSizeV2.A });\n\n return layer;\n };\n\n const renderLoadingScreen = (state: any, close: CloseHandleV2) => {\n return (\n \n \n \n );\n };\n\n\n\n async function handleConfirmarCita(e: any) {\n\n //activar o desactivar mensajes de error\n const values = await getValues();\n\n if( idPerson && idPerson.TXT_Email__c ) {\n setEmailError(false);\n } else if (values.email) {\n setEmailError(false);\n } else {\n setEmailError(true);\n }\n\n if( idPerson && idPerson.FirstName && idPerson.LastName) {\n setNameError(false);\n } else if ( values.name && values.surname ) {\n setNameError(false);\n } else {\n setNameError(true);\n }\n\n if (values.motivoBaja) {\n setMotivoError(false);\n } else {\n setMotivoError(true);\n }\n\n trackingManager.trackFormCTAClick({\n contentId: 'Confirmar la baja',\n });\n\n const isValid = await triggerValidation();\n\n if (isValid) {\n const loadingLayer = handleLoadingScreenLayer();\n setLayerVisible(true);\n\n dispatch({ type: 'UPDATE_FIELDS', payload: { 'email': idPerson && idPerson.TXT_Email__c ? idPerson.TXT_Email__c : values.email } });\n dispatch({ type: 'UPDATE_FIELDS', payload: { 'motivoBaja': values.motivoBaja } });\n dispatch({ type: 'UPDATE_FIELDS', payload: { 'masInformacion': masInfoValue }});\n dispatch({ type: 'UPDATE_FIELDS', payload: { 'name': idPerson && idPerson.FirstName ? idPerson.FirstName : values.name }});\n dispatch({ type: 'UPDATE_FIELDS', payload: { 'surname': idPerson && idPerson.LastName ? idPerson.LastName : values.surname }});\n dispatch({ type: 'UPDATE_FIELDS', payload: { 'secondSurname': idPerson && idPerson.TXT_2_Surname__c ? idPerson.TXT_2_Surname__c : values.secondSurname }});\n\n const value = await handleSubmit(e);\n loadingLayer.close();\n\n if (value) {\n handleShowFinalScreen();\n } else {\n handleKoLayer();\n }\n }\n }\n\n async function retrySubmit(e: any) {\n if (koLayer) {\n koLayer.close();\n }\n setKoScreen(false);\n const loadingLayer = handleLoadingScreenLayer();\n const value = await handleSubmit(e);\n loadingLayer.close();\n if (value) {\n handleShowFinalScreen();\n } else {\n handleKoLayer();\n setKoScreen(true);\n }\n }\n\n useEffect(() => {\n if (!layerVisible && koScreen) setKoScreen(false);\n }, [layerVisible]);\n\n useEffect(() => {\n dispatch({ type: 'UPDATE_FORM_ENDED', payload: true });\n }, []);\n\n return (\n <>\n {\n e.preventDefault();\n handleConfirmarCita(e);\n }}\n stretchContent={window.innerWidth <= 560}\n >\n Confirmar la baja\n \n \n );\n}\n","import React, { useEffect, useRef, useState } from 'react';\nimport { useFeatureServices } from 'src/feature-app';\nimport { EsOneformCoreServiceV1 } from 'src/feature-service/es-oneform-core-feature-service/types';\nimport { IdPerson } from 'src/types';\nimport { BajaComunicacionesForm } from '.';\nimport { createPincodeEntity } from '../dps-utils';\nimport { LoadingEncuestas } from 'src/components';\n\nexport interface BajaComunicacionesProps {\n idPerson: IdPerson;\n handleError: () => void;\n}\n\nexport function BajaComunicacionesController() {\n const [loading, setLoading] = useState(true);\n const [error, setError] = useState(false);\n const [ campaign, setCampaign ] = useState(null);\n\n const dpsDataRef = useRef(null);\n const idPersonRef = useRef(null);\n const oneFormService = useFeatureServices()['es:oneform-core'] as EsOneformCoreServiceV1;\n\n const handleNext = (value: any) => { };\n const handleComplete = () => {\n const dpsData = oneFormService.getDpsData();\n const { campaign } = dpsData;\n setCampaign(campaign);\n\n if (dpsData.pincode === null || dpsData.pincode.noPincodeFound || dpsData.pincode.pincodeError) {\n handleError();\n } else if (dpsData.pincode.pincodeUsed) {\n setLoading(false);\n } else {\n const idPerson = createPincodeEntity(dpsData, 'PERSON');\n\n dpsDataRef.current = dpsData;\n idPersonRef.current = idPerson;\n setLoading(false);\n }\n };\n\n const handleError = () => {\n setError(true);\n setLoading(false);\n };\n\n useEffect(() => {\n const oneFormCoreDpsIsLoaded = oneFormService.getLoadedState();\n\n oneFormCoreDpsIsLoaded.subscribe({\n next(value) {\n handleNext(value);\n },\n error(err) {\n console.error(err);\n handleError();\n },\n complete() {\n handleComplete();\n },\n });\n }, []);\n\n if (loading) {\n return ;\n } else if (error) {\n return (\n \n );\n } else {\n return (\n \n );\n }\n}\n","import {\n Breakpoints,\n BreakpointWrapper,\n Container,\n ContainerGutter,\n CTA,\n Spinner,\n styled,\n Text,\n TextAlignment,\n TokenTextAppearance,\n} from '@volkswagen-onehub/components-core';\nimport { Alert } from 'src/icons-core-imports';\n\nimport { CloseHandleV2 } from '@volkswagen-onehub/layer-manager';\nimport React, { useEffect, useState, useCallback } from 'react';\n\nconst Content = styled.div`\n background-color: white;\n padding: 44px 31px;\n flex: auto;\n text-align: center;\n width: 100%;\n @media screen and (min-width: 560px) {\n padding: 52px 46px;\n }\n @media screen and (min-width: 960px) {\n padding: var(--size-grid001);\n }\n`;\n\ninterface loadingSreenProps {\n isleads?: boolean;\n copy?: string;\n}\n\nexport function LoadingScreen(props: loadingSreenProps) {\n return (\n \n \n {props.copy ? {props.copy} : Enviando tu petición}\n \n );\n}\n\ninterface KoScreenProps {\n retrySubmit: (e: any) => void;\n closeLayerCallback?: CloseHandleV2;\n title?:string;\n bodyCopy?:string;\n isLEM?: boolean;\n hideSecondCTA?: boolean;\n}\n\nexport function KoScreen(props: KoScreenProps) {\n const { retrySubmit, closeLayerCallback, title, bodyCopy, isLEM, hideSecondCTA } = props;\n\n return (\n \n \n
\n \n
\n \n {title? title : 'Uy, algo ha pasado'}\n \n \n \n {bodyCopy? bodyCopy : 'Por alguna razón no hemos podido recoger tus datos. ¿Lo intentamos de nuevo?'}\n \n \n \n \n {\n e.preventDefault();\n retrySubmit(e);\n closeLayerCallback({}, {}, {});\n }}\n stretchContent\n >\n Reintentar\n \n { hideSecondCTA ? null :\n isLEM ? (\n \n Ir a la web\n \n ) : (\n {\n e.preventDefault();\n closeLayerCallback({}, {}, {});\n }}\n stretchContent\n >\n Seguir navegando\n \n )\n }\n \n \n \n \n {\n e.preventDefault();\n retrySubmit(e);\n closeLayerCallback({}, {}, {});\n }}\n >\n Reintentar\n \n { hideSecondCTA ? null :\n isLEM ? (\n \n Ir a la web\n \n ) : (\n {\n e.preventDefault();\n closeLayerCallback({}, {}, {});\n }}\n >\n Seguir navegando\n \n )\n }\n \n \n \n \n \n
\n );\n}\n","import {\n Breakpoints,\n BreakpointWrapper,\n CTA,\n styled,\n Layout,\n} from '@volkswagen-onehub/components-core';\nimport { LegalesFormatoLayer, LssiTkmQuestions, PoliticaPrivacidad } from 'src/components';\nimport { CloseHandleV2, FocusLayerSizeV2, LayerHandleV2, LayerManagerV2 } from '@volkswagen-onehub/layer-manager';\nimport React, { useEffect, useState } from 'react';\nimport { useFormContext } from 'react-hook-form';\nimport { connect, useDispatch, useStore } from 'react-redux';\nimport {\n LayerManagerWrapper,\n useFeatureAppEnvironment,\n useFeatureServices,\n useOneFormContext,\n useTrackingManager,\n} from 'src/feature-app';\nimport { OneFormState } from 'src/types';\nimport { KoScreen, LoadingScreen } from './ConfirmarCallMeLayer';\n\nconst GeneralconfirmacionWrapper = styled.div`\n padding: 72px 0 44px;\n @media all and (min-width: 960px) {\n padding: 86px 0 0;\n }\n`;\n\nfunction ConfirmacionCallMeOferta() {\n const dispatch = useDispatch();\n\n const [lssi, setLssi] = useState(null);\n const [tmk, setTmk] = useState(null);\n const [lssiError, setLssiError] = useState(false);\n const [tmkError, setTmkError] = useState(false);\n\n useEffect(() => {\n if (lssi) {\n const values = { lssi: lssi };\n dispatch({ type: 'UPDATE_FIELDS', payload: values });\n setLssiError(false);\n }\n if (tmk) {\n const values = { tmk: tmk };\n dispatch({ type: 'UPDATE_FIELDS', payload: values });\n setTmkError(false);\n }\n }, [lssi, tmk]);\n\n return (\n \n \n \n \n\n
\n \n
\n \n \n
\n );\n}\n\ninterface LastNavigationProps {\n tmk: string;\n lssi: string;\n setTmkError: React.Dispatch>;\n setLssiError: React.Dispatch>;\n}\n\nfunction LastNavigation(props: LastNavigationProps) {\n const { tmk, lssi, setTmkError, setLssiError } = props;\n // const dispatch = useDispatch();\n const { handleShowFinalScreen, handleSubmit } = useOneFormContext();\n const { triggerValidation } = useFormContext();\n const [layerVisible, setLayerVisible] = useState(false);\n const [koLayer, setKoLayer] = useState>(null);\n const [koScreen, setKoScreen] = useState(false);\n const layerManager = useFeatureServices()['layer-manager'] as LayerManagerV2;\n const store = useStore();\n const env = useFeatureAppEnvironment();\n const dispatch = useDispatch();\n const trackingManager = useTrackingManager();\n\n //Loading and Ko layers\n\n const handleKoLayer = () => {\n const layer = layerManager.openFocusLayer(renderKoLayer, {}, { size: FocusLayerSizeV2.A });\n setKoLayer(layer);\n };\n\n const renderKoLayer = (state: any, close: CloseHandleV2) => {\n return (\n \n \n \n );\n };\n\n const handleLoadingScreenLayer = () => {\n const layer = layerManager.openFocusLayer(renderLoadingScreen, {}, { size: FocusLayerSizeV2.A });\n\n return layer;\n };\n\n const renderLoadingScreen = (state: any, close: CloseHandleV2) => {\n return (\n \n \n \n );\n };\n\n // 1. check de lssi y tmk\n // 2. submit de la cita y activación la pantalla de feedback correspondiente\n // no se hace ninguna validación en este último paso porque esta ya se ha hecho en el edit-guardar de cada campo previamente\n async function handleConfirmarCallMe(e: any) {\n if (tmk === null && tmk === null) {\n setTmkError(true);\n setLssiError(true);\n } else if (tmk === null) {\n setTmkError(true);\n } else if (lssi === null) {\n setLssiError(true);\n } else {\n\n const isValid = await triggerValidation();\n\n if (!isValid) return;\n\n trackingManager.trackFormCTAClick({\n contentId: 'Enviar',\n });\n\n const loadingLayer = handleLoadingScreenLayer();\n setLayerVisible(true);\n\n const value = await handleSubmit(e);\n loadingLayer.close();\n\n if (value) {\n handleShowFinalScreen();\n } else {\n handleKoLayer();\n }\n }\n }\n async function retrySubmit(e: any) {\n if (koLayer) {\n koLayer.close();\n }\n setKoScreen(false);\n const loadingLayer = handleLoadingScreenLayer();\n const value = await handleSubmit(e);\n loadingLayer.close();\n if (value) {\n handleShowFinalScreen();\n } else {\n handleKoLayer();\n setKoScreen(true);\n }\n }\n\n useEffect(() => {\n if (!layerVisible && koScreen) setKoScreen(false);\n }, [layerVisible]);\n\n useEffect(() => {\n dispatch({ type: 'UPDATE_FORM_ENDED', payload: true });\n }, []);\n\n return (\n <>\n \n {\n e.preventDefault();\n handleConfirmarCallMe(e);\n }}\n stretchContent\n >\n Enviar\n \n \n \n {\n e.preventDefault();\n handleConfirmarCallMe(e);\n }}\n >\n Enviar\n \n \n \n );\n}\n\nconst mapStateToProps = (state: OneFormState) => {\n return {\n formInfo: state.formInfo,\n formData: state.formData,\n };\n};\n\nconst ConnectedComponent = connect(mapStateToProps)(ConfirmacionCallMeOferta);\n\nexport { ConnectedComponent as ConfirmacionCallMeOferta };\n","import Axios, { AxiosResponse } from 'axios';\nimport React, { useEffect } from 'react';\nimport {\n Text,\n Container,\n ContainerPadding,\n ContainerGutter,\n TokenTextAppearance,\n} from '@volkswagen-onehub/components-core';\nimport { TwoElementsTemplate } from 'src/feature-app/Screen';\nimport { ConfirmacionCallMeOferta } from './ConfirmacionCallMeOferta';\nimport { Nombre, Telefono, GeneralInputWidthWrapper } from 'src/components';\nimport { useDispatch, useStore } from 'react-redux';\nimport { getParamsForm } from 'src/feature-app/get-params-form';\nimport { FormDataGroup, FormInfo, OneFormState, Steps, MolecularResponse } from 'src/types';\nimport { FormController, useFaContent, useFeatureAppConfig, useOneFormContext } from 'src/feature-app';\nimport { ThankYouCallMeOferta } from '.';\nimport { useGetBrand } from 'src/feature-app/hooks';\n\nexport enum CallMeOfertaSteps {\n NombreTelefono,\n Confirmacion,\n}\n\nexport function CallMeOfertaForm() {\n const { initializeForm } = useOneFormContext();\n const store = useStore();\n const dispatch = useDispatch();\n const faContent = useFaContent();\n const brand = useGetBrand();\n\n const steps: Steps[] = [\n {\n title: (\n \n \n Para llamarte, necesitamos tus datos de contacto\n \n \n Nos pondremos en contacto contigo de lunes a viernes de 9:00 h a 19:30 h (excepto\n festivos nacionales) para darte más información.\n \n \n ),\n fields: (\n \n \n \n \n }\n secondElement={}\n />\n \n ),\n screenIndex: CallMeOfertaSteps.NombreTelefono,\n name: 'NombreTelefono',\n outputs: ['name', 'cellphone'],\n outputsText: ['name', 'cellphone'],\n },\n {\n fields: ,\n screenIndex: CallMeOfertaSteps.Confirmacion,\n name: 'Confirmacion',\n isLastStep: true,\n hidePreviousStep: true,\n },\n ];\n\n const NuevoFormData: Partial = {\n headers: {\n DESC_BRAND: 'VW',\n DESC_VN_VO: 'VN',\n DESC_GDPR_ADAPTED: 'true',\n },\n fields: { formName: 'callme-oferta', formType: 'contact', pageCategory: 'Call Me Oferta' }, // Analítica\n };\n\n const getFormInfo = (): {\n firstStep: Steps;\n lastStep: Steps;\n stepsHistory: number[];\n numberOfScreens: number;\n newSteps?: Steps[];\n } => {\n return {\n firstStep: steps[0],\n lastStep: steps[steps.length - 1],\n stepsHistory: [0],\n numberOfScreens: steps.length,\n newSteps: null,\n };\n };\n\n const sendForm = (): Promise => {\n const { formData }: OneFormState = store.getState();\n const { fields } = formData;\n\n return new Promise(async (resolve, reject) => {\n const { tc, today, referalUrl, url, device } = getParamsForm();\n\n //Set de data para Producción\n const dataPro = {\n name: fields.name,\n // phone: `${fields.prefix}${fields.cellphone}`,\n phone: `${fields.cellphone}`,\n\n DESC_LSSI: fields.lssi === 'PERMITIDO' ? 'S' : 'N',\n DESC_LOPD_GDPR_PERFILADO: fields.tmk === 'PERMITIDO' ? 'S' : 'N',\n\n ref: url,\n\n oferta: faContent.oferta.modalidad + ' ' + faContent.oferta.cuotaText + ' ' + faContent.oferta.financiacionText,\n modelo: faContent.oferta.carline.title + ' ' + faContent.oferta.motorizacion,\n modelo_code: faContent.oferta.carline.code + '_' + faContent.marketingCodeConfig.SalesgroupId,\n };\n\n //Set de data para Preproducción\n const dataPre = {\n PRE: 1,\n name: fields.name,\n // phone: `${fields.prefix}${fields.cellphone}`,\n phone: `${fields.cellphone}`,\n\n DESC_LSSI: fields.lssi === 'PERMITIDO' ? 'S' : 'N',\n DESC_LOPD_GDPR_PERFILADO: fields.tmk === 'PERMITIDO' ? 'S' : 'N',\n\n ref: url,\n\n oferta: faContent.oferta.modalidad + ' ' + faContent.oferta.cuotaText + ' ' + faContent.oferta.financiacionText,\n modelo: faContent.oferta.carline.title + ' ' + faContent.oferta.motorizacion,\n modelo_code: faContent.oferta.carline.code + '_' + faContent.marketingCodeConfig.SalesgroupId,\n };\n\n const response: AxiosResponse = await Axios.post(\n 'https://www.volkswagencomerciales.es/call-me-now/email',\n window.location.hostname === 'www.volkswagen-comerciales.es' ? dataPro : dataPre\n ).catch((err) => {\n return null;\n });\n\n if (response && response.data && response.data.success && response.status == 200) {\n dispatch({ type: 'SET_FORM_RESPONSE', payload: response.data });\n resolve(true);\n } else {\n resolve(false);\n }\n });\n };\n\n useEffect(() => {\n const { firstStep, lastStep, stepsHistory, numberOfScreens, newSteps } = getFormInfo();\n\n const NuevoFormInfo: Partial = {\n formStarted: true,\n sendFormCallback: sendForm,\n fullScreen: firstStep.fullScreen ? true : false,\n lastStep,\n numberOfScreens,\n formTheme: 'inverted',\n screenIndex: firstStep.screenIndex,\n step: firstStep,\n steps: newSteps ? newSteps : steps,\n notALayer: false,\n formType: 'layer',\n stepsHistory,\n thankYouComponent: ,\n };\n\n initializeForm(NuevoFormInfo, NuevoFormData);\n }, []);\n\n return ;\n}\n","import React, { useEffect } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { useTrackingManager, getTrackingForm } from 'src/feature-app';\nimport { RenderController } from 'src/feature-app/Screen';\nimport { OneFormState, Steps } from 'src/types';\nimport { ThankYouTitle, ThankYouFields } from 'src/components';\nimport { useGetBrand } from 'src/feature-app/hooks';\n\n\nexport const ThankYouCallMeOferta = () => {\n const { formInfo } = useSelector((state: OneFormState) => state);\n const { formResponse } = formInfo;\n const brand = useGetBrand();\n\n const trackingManager = useTrackingManager();\n const dispatch = useDispatch();\n\n useEffect(() => {\n // Thank you page no es gestionado como un step pero sí lo haremos en la analítica. Por eso Modificamos formInfo después del submit y antes del RESET\n const screenIndexThankyou = formInfo.numberOfScreens;\n\n dispatch({ type: 'SET_FORM_SUBMITTED', payload: true });\n dispatch({ type: 'SET_FORM_INFO', payload: { step: { screenIndex: screenIndexThankyou, name: 'ThankYou' } } });\n\n trackingManager.trackFormSubmissionSuccessMessageLoad(\n {\n contentId: undefined,\n },\n getTrackingForm(formResponse)\n );\n }, []);\n\n const screen: Steps = {\n title: ,\n fields: ,\n };\n const comercialesScreen: Steps = {\n title: ,\n fields: ,\n };\n return (\n \n );\n};\n","import React, { useState } from 'react';\nimport { RadioButton, styled, Text, TokenTextAppearance, TokenTextColor } from '@volkswagen-onehub/components-core';\nimport { Info } from 'src/icons-core-imports';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { useFormContext } from 'react-hook-form';\nimport { useOneFormContext } from 'src/feature-app/OneForm';\nimport { OneFormState } from 'src/types';\n\nconst LabelInfoWrapper = styled.div`\n width: 100%;\n display: flex;\n justify-content: space-between;\n`;\n\nconst InfoWrapper = styled.div`\n margin-left: 16px;\n cursor: pointer;\n svg {\n fill: #001e50;\n }\n`;\n\ninterface ChecksEnvioProps {\n name: string;\n isPosventa?: boolean;\n isProducto?: boolean;\n}\n\nexport const ctasCheckEnvio = (isPosventa: boolean, isProducto: boolean) => {\n const ctas = [\n { \n label: 'Sí, mis respuestas pueden ser enviadas y analizadas junto a mi nombre y bastidor del vehículo', \n value: (isProducto ? '1' : '3') \n },\n {\n label: 'Mis respuestas pueden ser enviadas pero sin mencionar mi nombre ni el bastidor de mi vehículo',\n extraInfo: 'Seleccionando esta opción, el ' + (isPosventa ? 'Servicio Oficial' : 'punto de venta') + ' no podrá ponerse en contacto contigo en relación a tus comentarios.',\n value: '2'\n },\n {\n label: 'No, mis respuestas solo deben ser analizadas de manera anónima',\n extraInfo: 'Seleccionando esta opción, tus respuestas serán analizadas de modo agregado junto al resto de respuestas de todos los entrevistados y no se trasladarán a los comentarios abiertos.',\n value: '0' \n },\n ];\n return ctas;\n}\n\nexport const ChecksEnvio = (props: ChecksEnvioProps) => {\n const { name, isPosventa, isProducto } = props;\n \n const { handleNextStep } = useOneFormContext();\n const dispatch = useDispatch();\n const { formData } = useSelector((state: OneFormState) => state);\n const { fields } = formData;\n const [firstCta, secondCta, thirdCta] = ctasCheckEnvio(isPosventa, isProducto);\n const [firstOpen, setFirstOpen] = useState(false);\n const [secondOpen, setSecondOpen] = useState(false);\n\n const [value, setValue] = useState(fields[name]);\n const { register } = useFormContext();\n\n const [checkedOne, setCheckedOne] = useState(fields[name] == firstCta.value);\n const [checkedTwo, setCheckedTwo] = useState(fields[name] == secondCta.value);\n const [checkedThree, setCheckedThree] = useState(fields[name] == thirdCta.value);\n\n const handleOnClick = (e: any) => {\n dispatch({ type: 'UPDATE_FIELDS', payload: { [name]: e.currentTarget.value } });\n setTimeout(\n () => {\n handleNextStep();\n }, 0\n );\n };\n\n return (\n
\n
\n {\n setValue(firstCta.value);\n setCheckedOne(true);\n setCheckedTwo(false);\n setCheckedThree(false);\n handleOnClick(e);\n }}\n checked={checkedOne}\n />\n
\n
\n \n {\n setValue(secondCta.value);\n setCheckedOne(false);\n setCheckedTwo(true);\n setCheckedThree(false);\n handleOnClick(e);\n }}\n checked={checkedTwo}\n />\n {\n e.preventDefault();\n setFirstOpen(!firstOpen);\n }}\n >\n \n \n \n {firstOpen ? (\n
\n \n {secondCta.extraInfo}\n \n
\n ) : null}\n
\n
\n \n {\n setValue(thirdCta.value);\n setCheckedOne(false);\n setCheckedTwo(false);\n setCheckedThree(true);\n handleOnClick(e);\n }}\n checked={checkedThree}\n />\n {\n e.preventDefault();\n setSecondOpen(!secondOpen);\n }}\n >\n \n \n \n {secondOpen ? (\n
\n \n {thirdCta.extraInfo}\n \n
\n ) : null}\n
\n \n
\n );\n};\n","import { Breakpoints, styled, Text, Layout, TokenTextAppearance } from '@volkswagen-onehub/components-core';\nimport React, { useEffect, useState } from 'react';\nimport { OneFormState } from 'src/types';\nimport { LssiTkmQuestions, PoliticaPrivacidad, LastNavigation } from 'src/components';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { LegalesCEM, LegalesSinConsentimientosCEM } from '.';\n\n\nconst ContentWrapper = styled.div`\n\tmin-height: calc(100vh - 227px);\n\twidth: 100%;\n\tdisplay: flex;\n\talign-items: center;\n\t@media all and (min-width: 960px) {\n\t\tmin-height: calc(100vh - 227px);\n\t}\n\t.content-wrapper {\n\t\twidth: 100%;\n\t}\n`;\n\nexport const ConfirmacionCem = () => {\n\tconst dispatch = useDispatch();\n\tconst { fields } = useSelector((state: OneFormState) => state.formData);\n\tconst [lssiPincode, setLssiPincode] = useState(null);\n\n\tuseEffect(() => {\n\t\tif (fields) {\n\t\t\tsetLssiPincode(fields.lssiPincode);\n\t\t}\n\t}, [fields]);\n\n\tuseEffect(() => {\n\t\tif (lssiPincode === 'PERMITE') {\n\t\t\tdispatch({ type: 'UPDATE_FIELDS', payload: { lssi: 'NO INFORMADO', tkm: 'NO INFORMADO' } });\n\t\t}\n\t}, [lssiPincode]);\n\n\treturn (\n\t\t<>\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t\t{lssiPincode === 'PERMITE' ?\n\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t¿Listo para enviar?\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t:\n\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\tMantente al día\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t\n\t\t\t{lssiPincode === 'PERMITE' ? \n\t\t\t(\n\t\t\t\t\n\t\t\t) : \n\t\t\t(\n\t\t\t\t\n\t\t\t)}\n\t\t\n\t);\n};\n","import { DomainAttributesValues } from 'src';\nimport { reportErrorSentry } from 'src/bff';\nimport { DpsData } from 'src/feature-service/es-oneform-core-feature-service/types';\n\nexport const handleDescWrongData = (datosIncorrectos: 'Marca' | 'Instalación' | 'Contacto' | 'Modelo') => {\n if (!datosIncorrectos) return '';\n\n switch (datosIncorrectos) {\n case 'Marca':\n return '1';\n case 'Modelo':\n return '2';\n case 'Instalación':\n return '3';\n case 'Contacto':\n return '4';\n default:\n return '';\n }\n};\n\nexport const sanitizeKvps = (kvps: string) => {\n return kvps.replace('ESP', '').replace('V', '').replace('N', '');\n}\n\nexport const formatSinRespuestaValue = (answer: string) => {\n if (!answer) return undefined;\n if (answer == 'Sin respuesta' || Number(answer) == -1) return '9';\n return answer;\n};\n\ninterface Data {\n [key: string]: string;\n}\n\nclass CEMDataError extends Error {\n constructor(message) {\n super(message);\n this.name = 'CEMDataError';\n }\n}\n\nexport const checkUndefinedsInData = (data: Data, form: 'Venta' | 'Posventa') => {\n Object.entries(data).map((entry) => {\n const [field, data] = entry;\n if (data?.includes('undefined')) {\n const error = new CEMDataError(`Undefined en el formulario CEM ${form}. ${field} tiene el valor ${data}`);\n reportErrorSentry(error);\n }\n });\n};\n","import React, { useEffect, useRef, useState } from 'react';\nimport { useDispatch } from 'react-redux';\nimport { useFeatureServices, useFaContent, useTrackingManager } from 'src/feature-app';\nimport { DpsData, EsOneformCoreServiceV1 } from 'src/feature-service/es-oneform-core-feature-service/types';\nimport { IdOrder, IdPerson, IdVehicle, IdDealer } from 'src/types';\nimport { CemFormVenta, CemFormPosventa } from 'src/forms';\nimport { GenericErrorLayer } from 'src/components/layers';\nimport { createPincodeEntity } from 'src/forms/dps-utils';\nimport dayjs from 'dayjs';\nimport { getDealerKvps, getInstallationsLegacy } from 'src/bff';\nimport { DomainAttributesValues } from 'src';\nimport { arrayToObject } from 'src/helpers';\nimport { sanitizeKvps } from 'src/forms/Cem/helpers';\nimport { LoadingEncuestas } from 'src/components';\n\nexport interface CemFormProps {\n idOrder?: IdOrder;\n idPerson: IdPerson;\n idVehicle: IdVehicle;\n idDealer?: IdDealer;\n dpsData: DpsData;\n installation?: IdDealer;\n concesion?: any;\n}\n\nexport function CemController() {\n const [loading, setLoading] = useState(true);\n const [error, setError] = useState(false);\n const [usado, setUsado] = useState(false);\n const [posventa, setPosventa] = useState(false);\n const [venta, setVenta] = useState(false);\n const [caducado, setCaducado] = useState(false);\n const today = dayjs(new Date());\n\n const dpsDataRef = useRef(null);\n const idPersonRef = useRef(null);\n const idVehicleRef = useRef(null);\n const idDealerRef = useRef(null);\n const idOrderRef = useRef(null);\n\n const [concesion, setConcesion] = useState(null);\n const [installation, setInstallation] = useState(null);\n const [installations, setInstallations] = useState(null);\n const [installationCode, setInstallationCode] = useState(null);\n const [kvps, setKvps] = useState(null);\n\n const oneFormService = useFeatureServices()['es:oneform-core'] as EsOneformCoreServiceV1;\n const dispatch = useDispatch();\n const faContent = useFaContent();\n\n const handleNext = (value: any) => { };\n const handleComplete = () => {\n const dpsData = oneFormService.getDpsData();\n\n if (dpsData.pincode === null || dpsData.pincode.noPincodeFound || dpsData.pincode.pincodeError) {\n handleError();\n } else if (dpsData.pincode.pincodeUsed) {\n setUsado(true);\n setLoading(false);\n } else {\n const idPerson = createPincodeEntity(dpsData, 'PERSON');\n const idVehicle = createPincodeEntity(dpsData, 'VEHICLE');\n const idDealer = createPincodeEntity(dpsData, 'DEALER');\n const idOrder = createPincodeEntity(dpsData, 'ORDER');\n\n dpsDataRef.current = dpsData;\n idPersonRef.current = idPerson;\n idVehicleRef.current = idVehicle;\n idDealerRef.current = idDealer;\n idOrderRef.current = idOrder;\n\n const envio = dpsData.env;\n if (!envio || today.diff(dayjs(envio), 'day') > 8) {\n setCaducado(true);\n } else {\n if (faContent.cem === 'POSVENTA' || faContent.encuesta === 'CEM - POSVENTA') {\n if(dpsData.dealer) {\n setInstallationCode(dpsData.dealer);\n }\n else if(typeof idDealer.TXT_V_Installation_Code__c != 'undefined'){\n setInstallationCode(idDealer.TXT_V_Installation_Code__c);\n }\n else if(typeof idDealer.TXT_Code_Concession__c != 'undefined') {\n setInstallationCode(idDealer.TXT_Code_Concession__c)\n }\n } else if ((faContent.cem === 'VENTA' || faContent.encuesta === 'CEM - VENTA') && !installations) {\n getInstallationsLegacy('VW_DDB_FRM_LEM_REC_LEM', true).then((dealers) => {\n const installationsDomainAtt = dealers.map((inst) => inst.attributes);\n setInstallations(installationsDomainAtt);\n setVenta(true);\n\n if(dpsData.kvps) {\n setKvps(dpsData.kvps);\n }\n else if(typeof idDealer.TXT_V_KVPS_code__c != 'undefined'){\n setKvps(idDealer.TXT_V_KVPS_code__c);\n }\n });\n } else {\n handleError();\n }\n }\n setLoading(false);\n }\n };\n\n // POSVENTA\n useEffect(() => {\n if (installationCode && !concesion) {\n if (faContent.cem === 'POSVENTA' || faContent.encuesta === 'CEM - POSVENTA') {\n if (installationCode) {\n getDealerKvps(installationCode).then((dealer) => {\n setConcesion(dealer);\n setPosventa(true);\n });\n }\n }\n }\n }, [installationCode]);\n\n // VENTA\n useEffect(() => {\n if (installations && kvps && !installation) {\n let found = false;\n let i = 0;\n while (i < installations.length && found === false) {\n const found = installations[i].find((ele: DomainAttributesValues) => {\n if (\n typeof ele.value != 'undefined' && typeof ele.name != 'undefined' &&\n ele.name.includes('KVPS') &&\n ele.value.includes(kvps)\n ) {\n return ele;\n }\n return false;\n });\n if (found) {\n let installation = arrayToObject(installations[i]);\n // Parche para SAFA\n if (installation.TXT_V_KVPS_code__c == '00494' || installation.TXT_V_Installation_Data_Name__c == 'SAFA FUENGIROLA') {\n installation.TXT_V_Installation_Data_Name__c = 'SAFAMOTOR';\n }\n setInstallation(installation);\n }\n i++;\n }\n }\n }, [installations, kvps]);\n\n const handleError = () => {\n setError(true);\n setLoading(false);\n };\n\n useEffect(() => {\n const oneFormCoreDpsIsLoaded = oneFormService.getLoadedState();\n\n oneFormCoreDpsIsLoaded.subscribe({\n next(value) {\n handleNext(value);\n },\n error(err) {\n console.error(err);\n handleError();\n },\n complete() {\n handleComplete();\n },\n });\n }, []);\n\n if (loading) {\n return ;\n } else if (error) {\n return (\n <>\n \n \n );\n } else if (caducado) {\n return (\n <>\n \n \n );\n } else if (usado) {\n return (\n <>\n \n \n );\n } else {\n return (\n <>\n {venta ? (\n \n ) : (\n <>\n {posventa ? (\n \n ) : null}\n \n )}\n \n );\n }\n}\n","import React, { useEffect } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { useTrackingManager, getTrackingForm } from 'src/feature-app';\nimport { RenderController } from 'src/feature-app/Screen';\nimport { OneFormState, Steps } from 'src/types';\nimport { ThankYouTitle, ThankYouFields } from 'src/components';\n\nexport function ThankYouCEM() {\n const {formResponse} = useSelector((state: OneFormState) => state.formInfo);\n const trackingManager = useTrackingManager();\n const dispatch = useDispatch();\n\n useEffect(() => {\n // Thank you page no es gestionado como un step pero sí lo haremos en la analítica. Por eso Modificamos formInfo después del submit y antes del RESET\n const screenIndexThankyou = formResponse.numberOfScreens; \n\n dispatch({ type: 'SET_FORM_SUBMITTED', payload: true });\n dispatch({ type: 'SET_FORM_INFO', payload: { step: { screenIndex: screenIndexThankyou, name: \"ThankYou\" } } });\n\n trackingManager.trackFormSubmissionSuccessMessageLoad(\n {\n contentId: undefined,\n },\n getTrackingForm(formResponse)\n );\n }, []);\n\n const screen: Steps = {\n title: ,\n fields: ,\n };\n return (\n \n );\n}\n","import React, { useEffect, useRef, useState } from 'react';\nimport { useDispatch, useSelector, useStore } from 'react-redux';\nimport { dpsSend } from 'src/bff';\nimport { FormController, useOneFormContext,isHighRating, isLowRating, isNoRating } from 'src/feature-app';\nimport { getParamsForm } from 'src/feature-app/get-params-form';\nimport { FormDataGroup, FormInfo, OneFormState, Steps } from 'src/types';\nimport {\n sanitizeKvps,\n checkUndefinedsInData,\n formatSinRespuestaValue,\n handleDescWrongData\n} from './helpers';\nimport { strTitlelize } from 'src/helpers';\nimport { formatHeaders, formDataBuilder } from '../format-fields';\nimport {\n addRemovedStep,\n getArrayOfStepsNames,\n getIndexInSteps,\n removeMultipleStepsAndResetScreenIndex,\n resetStepsScreenIndex\n} from '../helpers/add-remove-steps';\nimport { stepsPosventa, CemFormProps, LastQuestionFlow } from 'src/forms/Cem';\nimport { ThankYouCEM } from './ThankYouCem';\n\n\nexport function CemFormPosventa(props: CemFormProps) {\n const { idOrder, idPerson, idVehicle, idDealer, dpsData, concesion } = props;\n const { initializeForm, handleNextStep, handleShowFinalScreen } = useOneFormContext();\n const { formData } = useSelector((state: OneFormState) => state);\n const store = useStore();\n const dispatch = useDispatch();\n const [loading, setLoading] = useState(false);\n const urlParams = new URLSearchParams(window.location.search);\n const test = urlParams.get('test');\n const adviser = urlParams.get('adviser');\n\n const {\n datosCorrectos,\n datosIncorrectosPosventa,\n satisfaccionTrato,\n satisfaccionOrganizacion,\n satisfaccionTrabajoRealizado,\n satisfaccionConcesion,\n modelo,\n enviarConcesion,\n masPreguntas,\n } = formData.fields;\n\n const modeloRef = useRef(null);\n\n // Necesitamos almacenar el modelo ya que cada vez que el usuario selecciona un modelo se modifican los steps, por lo que necesitamos una referencia para saber que modelo hay que sustituir.\n\n const NuevoFormData: Partial = {\n headers: {\n DESC_BRAND: 'VW',\n DESC_CAMPAIGNBLOCK: 'B19',\n DESC_FORM_DETAIL: 'CEM Posventa',\n DESC_FORMOBJECTIVE: 'Encuesta',\n DESC_GDPR_ADAPTED: 'true',\n DESC_ID_CAMPAIGN: '7011n000001EIK1AAO',\n DESC_TOKEN: test ? 'VW_DDB_FRM_CEM_PV_2023_TEST_INSATISFECHOS' : 'VW_DDB_FRM_CEM_PV2024',\n DESC_WAID_LITERA: 'B09_LCV_CEM_Venta_PV',\n },\n fields: {\n lssiPincode: idPerson.LSSI__c,\n formName: 'cem-posventa',\n formType: 'otherform',\n pageCategory: 'Encuesta',\n name: idPerson.FirstName,\n surname: idPerson.LastName,\n secondSurname: idPerson.TXT_2_Surname__c,\n concesion: concesion ? concesion.name : idDealer ? idDealer.Name : '',\n }, // Analítica\n };\n\n const sendForm = (): Promise => {\n const { formData }: OneFormState = store.getState();\n const { fields, headers } = formData;\n\n return new Promise(async (resolve, reject) => {\n const { tc, today, url, device, location } = getParamsForm();\n\n const data = {\n ...formatHeaders(headers),\n 'headers[COD_FORM_ID]': `vw-oneform-${fields.formName}`,\n 'headers[DESC_DEVICETYPE]': device,\n 'headers[DESC_ID_CLIMAPRO]': idPerson.ID_Person_DIM_IMP__c,\n 'headers[DESC_ID_VEHICLE_CLIMAPRO]': idVehicle.IDClimapro__c,\n 'headers[DESC_URL]': location,\n 'headers[DESC_URLORIGIN]': url,\n 'headers[FECHA_INSERTION_DATE]': today,\n 'headers[PINCODE]': dpsData.pincode.pincodeResponse.params.pincode,\n 'headers[TC]': tc,\n\n 'flags[FLAG_CONF_DATA]': fields.datosCorrectos ? fields.datosCorrectos : fields.datosIncorrectos ? 'false' : 'true',\n\n 'fields[DESC_ANONYMOUS]': fields.enviarConcesion,\n 'fields[DESC_AUXFIELD2]': fields.publicarRespuestas == '1' ? 'PERMITE' : 'NO PERMITE',\n\n 'fields[DAT_REGISTRATION_DATE]': dpsData.dat ? dpsData.dat : '',\n 'fields[DESC_ACTUAL_VEHICLE_MODEL]': fields.modelo ? fields.modelo : null,\n 'fields[COD_ACTUAL_VEHICLE_MODEL]': idVehicle.DESC_Model__c ? idVehicle.DESC_Model__c : dpsData.model ? dpsData.model : null,\n 'fields[DESC_ADDRESS]': idPerson.FORM_Full_Address__c,\n 'fields[DESC_DEALER_CODE_KVPS]': sanitizeKvps(concesion.kvps),\n 'fields[DESC_DEALER_CODE]': concesion.codInstalacion,\n 'fields[DESC_DEALER]': concesion.name,\n 'fields[DESC_EMAIL_ADDRESS]': idPerson.TXT_Email__c,\n 'fields[DESC_EMPLOYEE_ID]': adviser,\n 'fields[DESC_FORM_VERSION]': `vw-oneform-${fields.formName}-${process.env.VERSION}`,\n 'fields[DESC_FRAME]': idVehicle.Frame__c,\n 'fields[DESC_LOPD_GDPR_PERFILADO]': fields.tmk ? fields.tmk : 'NO INFORMADO',\n 'fields[DESC_LOPD]': 'PERMITE',\n 'fields[DESC_LSSI]': fields.lssi ? fields.lssi : 'NO INFORMADO',\n 'fields[DESC_NAME]': fields.name,\n 'fields[DESC_NUMBER_ORDER]': dpsData.or,\n 'fields[DESC_POSTAL_CODE]': idPerson.TXT_Postal_Code__c,\n 'fields[DESC_PROVINCE]': idPerson.TXT_Province__c,\n 'fields[DESC_SURNAME_1]': fields.surname,\n 'fields[DESC_SURNAME_2]': fields.secondSurname,\n 'fields[DESC_TRANF_DATA_THIRD]': 'NO INFORMADO',\n 'fields[DESC_VEH_PLATE]': idVehicle.Registration__c,\n 'fields[DESC_WRONG_DATA]': handleDescWrongData(fields.datosIncorrectosPosventa),\n 'fields[NUM_PHONE]': idPerson.NUM_Phone_mobile__c,\n\n 'fields[CEM_Q01]': formatSinRespuestaValue(fields.satisfaccionTrato),\n 'fields[CEM_C01]': formatSinRespuestaValue(fields.satisfaccionTratoMotivo),\n 'fields[CEM_Q02]': formatSinRespuestaValue(fields.satisfaccionOrganizacion),\n 'fields[CEM_C02]': formatSinRespuestaValue(fields.satisfaccionOrganizacionMotivo),\n 'fields[CEM_Q03]': formatSinRespuestaValue(fields.satisfaccionTrabajoRealizado),\n 'fields[CEM_C03]': formatSinRespuestaValue(fields.satisfaccionTrabajoRealizadoMotivo),\n 'fields[CEM_Q04]': formatSinRespuestaValue(fields.satisfaccionConcesion),\n 'fields[CEM_C04]': formatSinRespuestaValue(fields.satisfaccionConcesionMotivo),\n 'fields[CEM_C05]': formatSinRespuestaValue(fields.aspectoSatisfaccionMotivo),\n 'fields[CEM_Q06]': formatSinRespuestaValue(fields.satisfaccionVehiculo),\n 'fields[CEM_C06]': formatSinRespuestaValue(fields.satisfaccionVehiculoMotivo),\n 'fields[CEM_Q07]': fields.motivoVisita?.split(',').sort((a, b) => a - b).join('|'),\n 'fields[CEM_Q12]': formatSinRespuestaValue(fields.tiempoSatisfaccion),\n 'fields[CEM_Q13]': formatSinRespuestaValue(fields.alternativaTransporte),\n 'fields[CEM_Q30]': fields.informado,\n\n };\n\n if (!fields.datosIncorrectosPosventa || fields.datosCorrectos == \"true\") {\n delete data['fields[DESC_WRONG_DATA]'];\n }\n\n const dataStringified = JSON.stringify(data);\n const dataParsed = JSON.parse(dataStringified);\n\n const formData = formDataBuilder(dataParsed);\n checkUndefinedsInData(data, 'Posventa');\n const response = await dpsSend(formData);\n\n if (response && response.data && response.data.content && response.data.content.code === '200') {\n dispatch({ type: 'SET_FORM_RESPONSE', payload: response.data });\n resolve(true);\n } else {\n resolve(false);\n }\n });\n };\n\n /**\n * Se extrae la lógica para poder utilizarla por separado sin tener que usar las funciones de loading o updateSteps\n * ya que hay una pregunta en la que podemos eliminar y añadir un step en el mismo paso.\n * @param stepsToAdd\n * @param alternativeSteps\n * @returns\n */\n const addingStepsLogic = (stepsToAdd: string[], alternativeSteps?: Steps[]) => {\n const { steps: actualSteps, screenIndex } = store.getState().formInfo;\n const stepsToUse = alternativeSteps ? alternativeSteps : actualSteps;\n // Hay que revertir los steps para que se añadan en el orden correcto\n const indexesInSteps = stepsToAdd.reverse().map((step) => getIndexInSteps(stepsToUse, step));\n let newSteps = [...stepsToUse];\n\n indexesInSteps.forEach((index, i) => {\n if (index === -1) {\n newSteps = addRemovedStep(stepsPosventa, stepsToUse, stepsToAdd[i], screenIndex);\n }\n });\n const finalSteps = resetStepsScreenIndex(newSteps);\n return finalSteps;\n };\n\n const addSteps = (stepsToAdd: string[]) => {\n setLoading(true);\n\n const finalSteps = addingStepsLogic(stepsToAdd);\n updateSteps(finalSteps);\n handleNextStep();\n\n setLoading(false);\n };\n\n const removeSteps = (stepsToDelete: string[]) => {\n const { steps } = store.getState().formInfo;\n setLoading(true);\n const finalSteps = removeMultipleStepsAndResetScreenIndex(steps, stepsToDelete);\n updateSteps(finalSteps);\n setLoading(false);\n };\n\n const updateSteps = (steps: Steps[]) => {\n dispatch({ type: 'UPDATE_STEPS', payload: steps });\n dispatch({ type: 'UPDATE_LAST_STEP', payload: steps[steps.length - 1] });\n dispatch({ type: 'SET_NUMBER_OF_SCREENS', payload: steps.length });\n };\n\n const replaceWithLeadInfo = (string: string) => {\n return string\n .replace('[Modelo]', idVehicle.DESC_Model__c ? idVehicle.DESC_Model__c : dpsData.model ? dpsData.model : 'Volkswagen')\n .replace('[Marca]', idVehicle.PKL_order_brand__c)\n .replace('[Concesionario]', strTitlelize(concesion ? concesion.name : idDealer ? idDealer.Name : ''));\n };\n\n const replaceModelo = (string: string) => {\n if (modeloRef.current) {\n return string.replace(modeloRef.current, modelo);\n } else {\n return string.replace(idVehicle.DESC_Model__c, modelo);\n }\n };\n\n const modifyTitleSteps = (steps: Steps[], replaceCallback: (s: string) => string) => {\n return steps.map((step) => {\n if (!step.title) return step;\n if (Array.isArray(step.title.props.children)) {\n step.title.props.children = step.title.props.children.map((child: any) => {\n if (typeof child === 'object') {\n if (typeof child.props.children === 'object') {\n child.props.children.props.children = replaceCallback(child.props.children.props.children);\n } else {\n child.props.children = replaceCallback(child.props.children);\n }\n } else {\n child = replaceCallback(child);\n }\n return child;\n });\n } else if (typeof step.title.props.children === 'object') {\n step.title.props.children.props.children = replaceCallback(step.title.props.children.props.children);\n } else {\n step.title.props.children = replaceCallback(step.title.props.children);\n }\n return step;\n });\n };\n\n const getOrderStep = (order: number, sc4: number, sc5: number, sc6: number) => {\n return order === 1 ? sc4 : order === 2 ? sc5 : order === 3 ? sc6 : null;\n };\n\n const shuffle = (array: number[]): number[] => array.sort(() => Math.random() - 0.5);\n\n /**\n * El orden de las preguntas Sc_4,Sc_5 y Sc_6 tiene que ser aleatorio.\n * @param steps\n */\n const randomizeSteps = (steps: Steps[]): Steps[] => {\n const sc4 = getIndexInSteps(steps, 'SatisfaccionTrato');\n const sc4Motivo = getIndexInSteps(steps, 'SatisfaccionTratoMotivo');\n\n const sc5 = getIndexInSteps(steps, 'SatisfaccionOrganizacion');\n const sc5Motivo = getIndexInSteps(steps, 'SatisfaccionOrganizacionMotivo');\n\n const sc6 = getIndexInSteps(steps, 'SatisfaccionTrabajoRealizado');\n const sc6Motivo = getIndexInSteps(steps, 'SatisfaccionTrabajoRealizadoMotivo');\n\n let newSteps = [...steps];\n const [first, second, third] = shuffle([1, 2, 3]);\n const firstStep = getOrderStep(first, sc4, sc5, sc6);\n const secondStep = getOrderStep(second, sc4, sc5, sc6);\n const thirdStep = getOrderStep(third, sc4, sc5, sc6);\n newSteps[sc4] = steps[firstStep];\n newSteps[sc4Motivo] = steps[firstStep + 1];\n newSteps[sc5] = steps[secondStep];\n newSteps[sc5Motivo] = steps[secondStep + 1];\n newSteps[sc6] = steps[thirdStep];\n newSteps[sc6Motivo] = steps[thirdStep + 1];\n return newSteps;\n };\n\n const getFormInfo = (steps: Steps[]) => {\n const newSteps = modifyTitleSteps(steps, replaceWithLeadInfo);\n const randomizedSteps = randomizeSteps(newSteps);\n\n return {\n firstStep: randomizedSteps[0],\n lastStep: randomizedSteps[randomizedSteps.length - 1],\n stepsHistory: [0],\n numberOfScreens: randomizedSteps.length,\n newSteps: randomizedSteps,\n };\n };\n\n //\n // Lógica para modificar el flujo del formulario\n //\n\n useEffect(() => {\n if (modelo) {\n const newSteps = modifyTitleSteps(stepsPosventa, replaceModelo);\n modeloRef.current = modelo;\n updateSteps(newSteps);\n }\n }, [modelo]);\n\n useEffect(() => {\n if (datosCorrectos === 'true') {\n const steps = store.getState().formInfo.steps;\n const modelo = getIndexInSteps(steps, 'Modelo');\n // En el caso de elegir que los datos son incorrectos, llegar a confirmación y volver atrás hay que regenerar todos los pasos.\n if (modelo === -1) {\n const initialSteps = store.getState().formInfo.initialSteps;\n const finalSteps = removeMultipleStepsAndResetScreenIndex(initialSteps, ['DatosIncorrectosPosventa', 'Modelo']);\n updateSteps(finalSteps);\n } else {\n removeSteps(['DatosIncorrectosPosventa', 'Modelo', 'ConfirmacionConcesion']);\n }\n } else if (datosCorrectos === 'false') {\n addSteps(['DatosIncorrectosPosventa', 'Modelo']);\n }\n }, [datosCorrectos]);\n\n useEffect(() => {\n if (\n datosIncorrectosPosventa === 'Marca' ||\n datosIncorrectosPosventa === 'Instalación' ||\n datosIncorrectosPosventa === 'Contacto'\n ) {\n const pastSteps = store.getState().formInfo.steps;\n const newsteps = [pastSteps[0], pastSteps[1], pastSteps[pastSteps.length - 1]];\n const finalSteps = resetStepsScreenIndex(newsteps);\n updateSteps(finalSteps);\n }\n if (datosIncorrectosPosventa === 'Modelo') {\n const initialSteps = store.getState().formInfo.initialSteps;\n const finalSteps = resetStepsScreenIndex(initialSteps);\n updateSteps(finalSteps);\n }\n }, [datosIncorrectosPosventa]);\n\n\n useEffect(() => {\n if (!enviarConcesion) {\n return;\n }\n if (enviarConcesion === '3') {\n addSteps(['DatosPersonales']);\n } else {\n removeSteps(['DatosPersonales']);\n }\n }, [enviarConcesion]);\n\n useEffect(() => {\n if (!masPreguntas) {\n return;\n }\n\n if (masPreguntas === 'true') {\n const stepNames = getArrayOfStepsNames(stepsPosventa, 'MasPreguntas', 'EnviarConcesion');\n addSteps(stepNames);\n } else if (masPreguntas === 'false') {\n const { steps } = store.getState().formInfo;\n const stepNames = getArrayOfStepsNames(steps, 'MasPreguntas', 'EnviarConcesion');\n removeSteps(stepNames);\n }\n }, [masPreguntas]);\n\n /**\n * Se tiene que de manera consecutiva y no mediante las otras funciones porque si no, se actualizan los steps\n * dos veces y en el segundo paso (añadir o eliminar el otro step) se hace siempre sobre los steps antiguos y\n * no funciona de la manera esperada.\n *\n * @param stepToRemove\n * @param stepToAdd\n */\n const removeAndAddStepAtTheSameTime = (stepToRemove: string, stepToAdd: string) => {\n const { steps } = store.getState().formInfo;\n setLoading(true);\n const removedSteps = removeMultipleStepsAndResetScreenIndex(steps, [stepToRemove]);\n const addedSteps = addingStepsLogic([stepToAdd], removedSteps);\n const finalSteps = resetStepsScreenIndex(addedSteps);\n handleNextStep();\n updateSteps(finalSteps);\n setLoading(false);\n };\n\n\n const handleShowMotivo = (nameOfMotivoStep: string, value?: string, ) => {\n if(value) {\n if(Number(value) == -1) value = 'Sin respuesta';\n if (isLowRating(value)) {\n addSteps([nameOfMotivoStep]);\n } else if (isHighRating(value) || isNoRating(value)) {\n removeSteps([nameOfMotivoStep]);\n }\n }\n };\n\n useEffect(() => {\n handleShowMotivo('SatisfaccionTratoMotivo', satisfaccionTrato);\n handleShowMotivo('SatisfaccionOrganizacionMotivo', satisfaccionOrganizacion);\n handleShowMotivo('SatisfaccionTrabajoRealizadoMotivo', satisfaccionTrabajoRealizado);\n\n // Verificamos que se han contestado todas y...\n if (!satisfaccionTrato || !satisfaccionOrganizacion || !satisfaccionTrabajoRealizado) {\n return;\n }\n\n // ...verificamos que no estamos antes del step satisfaccionConcesion\n\t\tconst screenIndex = store.getState().formInfo.screenIndex;\n\t\tif (screenIndex < 4) {\n\t\t\treturn;\n\t\t}\n\n const ratings = [satisfaccionTrato, satisfaccionOrganizacion, satisfaccionTrabajoRealizado];\n const { mostrarQlast1, mostrarQlast2 } = LastQuestionFlow(ratings, satisfaccionConcesion);\n\n if (mostrarQlast1 && mostrarQlast2){\n addSteps(['SatisfaccionConcesionMotivo', 'AspectoSatisfaccionMotivo']);\n }\n if(!mostrarQlast1 && !mostrarQlast2) {\n removeSteps(['SatisfaccionConcesionMotivo', 'AspectoSatisfaccionMotivo']);\n }\n if (!mostrarQlast1 && mostrarQlast2) {\n removeAndAddStepAtTheSameTime('SatisfaccionConcesionMotivo', 'AspectoSatisfaccionMotivo');\n }\n if (mostrarQlast1 && !mostrarQlast2) {\n removeAndAddStepAtTheSameTime('AspectoSatisfaccionMotivo', 'SatisfaccionConcesionMotivo');\n }\n \n }, [satisfaccionTrato, satisfaccionOrganizacion, satisfaccionTrabajoRealizado, satisfaccionConcesion]);\n\n\n useEffect(() => {\n if(!concesion) return null;\n \n const { firstStep, lastStep, stepsHistory, numberOfScreens, newSteps } = getFormInfo(stepsPosventa);\n\n const NuevoFormInfo: Partial = {\n formStarted: true,\n sendFormCallback: sendForm,\n fullScreen: firstStep.fullScreen ? true : false,\n lastStep,\n numberOfScreens,\n formTheme: 'main',\n notALayer: true,\n formType: 'inPage',\n screenIndex: firstStep.screenIndex,\n step: firstStep,\n steps: newSteps ? newSteps : stepsPosventa,\n stepsHistory,\n thankYouComponent: ,\n hideLegal: idPerson.LSSI__c === 'PERMITE' ? true : false,\n };\n\n initializeForm(NuevoFormInfo, NuevoFormData);\n }, [concesion]);\n\n return !loading ? : null;\n}\n","import React, { useState, useEffect } from 'react';\nimport { RadioButton } from '@volkswagen-onehub/components-core';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { OneFormState } from 'src/types';\nimport { useOneFormContext } from 'src/feature-app/OneForm';\nimport { useFormContext } from 'react-hook-form';\nimport { ctaEnvioCEM } from 'src/feature-app/InputsValues/CTAsObjects';\nimport { strTitlelize } from 'src/helpers';\n\ninterface ChecksPublicacionProps {\n name: string;\n}\n\nexport const ChecksPublicacion = (props: ChecksPublicacionProps) => {\n const { name } = props;\n\n const dispatch = useDispatch();\n const { formData } = useSelector((state: OneFormState) => state);\n const { fields } = formData;\n const [firstCta, secondCta] = ctaEnvioCEM;\n const { concesion } = useSelector((state: OneFormState) => state.formData.fields);\n\n const { handleNextStep } = useOneFormContext();\n const [value, setValue] = useState(fields[name]);\n const { register } = useFormContext();\n\n const [checkedOne, setCheckedOne] = useState(fields[name] == firstCta.value);\n const [checkedTwo, setCheckedTwo] = useState(fields[name] == secondCta.value);\n\n const handleOnClick = (e: any) => {\n dispatch({ type: 'UPDATE_FIELDS', payload: { [name]: e.currentTarget.value } });\n setTimeout(\n () => {\n handleNextStep();\n }, 0\n );\n \n };\n\n return (\n
\n
\n { \n setValue(firstCta.value);\n setCheckedOne(true);\n setCheckedTwo(false);\n handleOnClick(e);\n }}\n checked={checkedOne}\n />\n
\n
\n { \n setValue(secondCta.value);\n setCheckedOne(false);\n setCheckedTwo(true);\n handleOnClick(e);\n }}\n checked={checkedTwo}\n />\n
\n \n
\n );\n};\n","import {\n Breakpoints,\n BreakpointWrapper,\n Container,\n ContainerPadding,\n styled,\n Text,\n TokenTextAppearance,\n} from '@volkswagen-onehub/components-core';\nimport React, { useEffect, useState } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { MultipleCTASelection, ImageCarNoColorBG } from 'src/components';\nimport { CTAsSiNo } from 'src/feature-app/InputsValues/CTAsObjects';\nimport { OneElementTemplateFullScreen, useFaContent, useGetIdVehicle } from 'src/feature-app';\nimport { getVilmaAssetsLegacy } from 'src/bff';\nimport { useWindowHeight } from '@react-hook/window-size';\nimport { OneFormState } from 'src/types';\nimport { strTitlelize } from 'src/helpers';\n\n\n\nconst LayoutWrapper = styled.div`\n @media all and (min-width: 960px) {\n display: flex;\n }\n`;\n\nconst InfoWrapper = styled.div`\n width: 100%;\n padding-left: var(--size-grid002);\n padding-right: var(--size-grid002);\n @media all and (min-width: 960px) {\n display: flex;\n justify-content: center;\n flex-direction: column;\n width: var(--size-grid012);\n padding-left: var(--size-grid002);\n padding-right: 0;\n padding-top: 0;\n }\n @media all and (min-width: 1280px) {\n padding-left: var(--size-grid003);\n }\n @media all and (min-width: 1600px) {\n padding-left: var(--size-grid002);\n }\n`;\n\n\nexport const FirstStepCEM = () => {\n const { formData } = useSelector((state: OneFormState) => state);\n const dispatch = useDispatch();\n const [model, setModel] = useState(null);\n const { concesion } = formData.fields;\n const [imageSrc, setImageSrc] = useState(null);\n const [dataVilma, setDataVilma] = useState(null);\n const idVehicle = useGetIdVehicle();\n const idVehicleModel = idVehicle.DESC_Model__c;\n //const isElectrico = idVehicle.DESC_Model__c.substring(0, 2) == 'ID';\n const frame = idVehicle.Frame__c.trim();\n const urlParams = new URLSearchParams(window.location.search);\n const modelUrl = urlParams.get('model');\n const faContent = useFaContent();\n const isPosventa = (faContent.cem === 'POSVENTA' || faContent.encuesta === 'CEM - POSVENTA');\n const height = useWindowHeight();\n\n const dataVilmaRequest = async () => {\n const data = await getVilmaAssetsLegacy(frame);\n //Respuesta cuando el bastidor no es correcto {message: 'No image found for VIN [WVWZZZAUZLW025556]', context: 'the requested image is not available'}\n if(data && data.status === 200) {\n setDataVilma(data.data.content);\n }\n };\n\n useEffect(() => {\n if (!dataVilma || !dataVilma.assets) {\n setImageSrc(null);\n } else if (dataVilma) {\n const Front_Left = dataVilma.assets.find((e: any) => e.view === 'Front_Left');\n Front_Left === undefined ? setImageSrc(null) : setImageSrc(Front_Left.url);\n }\n }, [dataVilma]);\n\n useEffect(() => {\n if (idVehicleModel !== 'null') {\n setModel(idVehicleModel);\n dataVilmaRequest();\n } else if (modelUrl) {\n setModel(modelUrl);\n dispatch({ type: 'UPDATE_FIELDS', payload: { modelo: modelUrl } });\n } else {\n setModel(null);\n }\n }, []);\n\n\tconst BodyCopy = () => {\n\t\treturn (\n\t\t\t<>\n\t\t\t\t\n\t\t\t\t\t{isPosventa ?\n\t\t\t\t\t\t(\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\tSegún nuestros datos, visitaste el Servicio Oficial{' '}{strTitlelize(concesion)}{' '}con tu{' '}{model}.\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)\n\t\t\t\t\t\t: \n (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\tSegún nuestros registros compraste un nuevo {model} en nuestro punto de venta {strTitlelize(concesion)}.\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t{isPosventa ?\n\t\t\t\t\t\t(\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t¿Puedes confirmar que estos datos son correctos y que eres la persona que mejor nos puede informar sobre la última visita al taller?\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)\n\t\t\t\t\t\t: \n (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t¿Puedes confirmar que estos datos son correctos?\n\t\t\t\t\t\t\t \n\t\t\t\t\t\t)}\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t);\n\t};\n\n\n\treturn (\n\t\tdataVilma && imageSrc ? (\n\t\t\t\n\t\t\t\t{\n\t\t\t\t\theight <= 600 ? null : (\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t)\n\t\t\t\t}\n\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t) : (\n\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t)\n\t);\n};\n","import {\n Breakpoints,\n Layout,\n LayoutRowGap,\n Text,\n TokenTextAppearance,\n} from '@volkswagen-onehub/components-core';\nimport React from 'react';\nimport {\n CarlineSelect,\n PantallaNombreApellido,\n MultipleCTASelection,\n RatingStars,\n PantallaIntroduccionStars,\n DetalleMotivo,\n} from 'src/components';\nimport { Steps } from 'src/types';\nimport { ChecksEnvio, ctasCheckEnvio } from 'src/forms/Cem/ChecksEnvio';\nimport { ConfirmacionCem } from 'src/forms/Cem/ConfirmacionCem';\nimport { ChecksPublicacion } from 'src/forms/Cem/ChecksPublicacion';\nimport {\n CTAsSiNo,\n ctaTestDrive,\n ctaContactoSatisfaccion,\n} from 'src/feature-app/InputsValues/CTAsObjects';\nimport { FirstStepCEM } from './FirstStepCEM';\n\nenum CemSteps {\n DatosCorrectos,\n DatosIncorrectos,\n Modelo,\n ConfirmacionConcesion,\n Explicacion,\n SatisfaccionTrato,\n SatisfaccionTratoMotivo,\n SatisfaccionOrganizacion,\n SatisfaccionOrganizacionMotivo,\n SatisfaccionAsesor,\n SatisfaccionAsesorMotivo,\n SatisfaccionConcesion,\n SatisfaccionConcesionMotivo,\n AspectoSatisfaccionMotivo,\n TestDrive,\n ContactoSatisfaccion,\n SatisfaccionVehiculo,\n SatisfaccionVehiculoMotivo,\n EnviarConcesion,\n DatosPersonales,\n PublicarRespuestas,\n Confirmacion,\n}\n\nfunction OneElementTemplateFullScreen(props: any) {\n const { element, allowOverflowingContent } = props;\n return (\n \n {element}\n \n );\n}\n\nexport const getStepsVenta = (isElectrico?: boolean) => {\n\n const ctaDatosIncorrectos = [\n { label: 'Marca incorrecta', value: 'Marca' },\n { label: 'Modelo incorrecto', value: 'Modelo' },\n { label: 'Punto de venta incorrecto', value: 'Instalación' },\n { label: 'Persona de contacto incorrecta', value: 'Contacto' },\n ];\n\n const stepsVenta: Steps[] = [\n {\n fields: ,\n screenIndex: CemSteps.DatosCorrectos,\n name: 'DatosCorrectos',\n alternateTitle: ¿Puedes confirmar que estos datos son correctos?,\n outputs: ['datosCorrectos'],\n outputsText: ['datosCorrectos'],\n trueOrFalseQuestion: true,\n },\n {\n title: (\n <>\n Por favor, ¿puedes confirmar qué dato no es correcto?\n \n ),\n fields: (\n }\n />\n ),\n screenIndex: CemSteps.DatosIncorrectos,\n name: 'DatosIncorrectos',\n outputs: ['datosIncorrectos'],\n outputsText: ['datosIncorrectos'],\n },\n {\n title: ¿Compraste tu vehículo en [Concesionario]?,\n fields: (\n }\n />\n ),\n screenIndex: CemSteps.ConfirmacionConcesion,\n name: 'ConfirmacionConcesion',\n outputs: ['confirmacionConcesion'],\n outputsText: ['confirmacionConcesion'],\n },\n {\n title: ¿Cuál es el modelo correcto?,\n fields: (\n \n \n \n }\n />\n ),\n screenIndex: CemSteps.Modelo,\n name: 'Modelo',\n outputs: ['modelo'],\n outputsText: ['modelo'],\n },\n {\n title: (\n <>\n A continuación,{' '}\n \n indica tu nivel de satisfacción con cada uno de estos aspectos relacionados con la compra de tu coche.\n \n \n ),\n fields: ,\n screenIndex: CemSteps.Explicacion,\n name: 'Explicacion',\n },\n {\n title: El trato recibido,\n fields: (\n \n }\n />\n ),\n screenIndex: CemSteps.SatisfaccionTrato,\n name: 'SatisfaccionTrato',\n outputs: ['satisfaccionTrato'],\n outputsText: ['satisfaccionTrato'],\n outputsIsStars: true,\n },\n {\n title: ¿Cuál es la razón por la que has dado esta puntuación?,\n fields: (\n \n }\n />\n ),\n screenIndex: CemSteps.SatisfaccionTratoMotivo,\n name: 'SatisfaccionTratoMotivo',\n outputs: ['satisfaccionTratoMotivo'],\n outputsText: ['satisfaccionTratoMotivo'],\n },\n {\n title: La organización del punto de venta,\n fields: (\n \n \n Por ejemplo, en cuanto a la petición de la cita, la prueba de conducción o la entrega del coche.\n \n \n \n }\n />\n ),\n screenIndex: CemSteps.SatisfaccionOrganizacion,\n name: 'SatisfaccionOrganizacion',\n outputs: ['satisfaccionOrganizacion'],\n outputsText: ['satisfaccionOrganizacion'],\n outputsIsStars: true,\n },\n {\n title: ¿Cuál es la razón por la que has dado esta puntuación?,\n fields: (\n \n }\n />\n ),\n screenIndex: CemSteps.SatisfaccionOrganizacionMotivo,\n name: 'SatisfaccionOrganizacionMotivo',\n outputs: ['satisfaccionOrganizacionMotivo'],\n outputsText: ['satisfaccionOrganizacionMotivo'],\n },\n {\n title: El asesoramiento recibido por parte del asesor comercial Volkswagen,\n fields: (\n \n }\n />\n ),\n screenIndex: CemSteps.SatisfaccionAsesor,\n name: 'SatisfaccionAsesor',\n outputs: ['satisfaccionAsesor'],\n outputsText: ['satisfaccionAsesor'],\n outputsIsStars: true,\n },\n {\n title: ¿Cuál es la razón por la que has dado esta puntuación?,\n fields: (\n \n }\n />\n ),\n screenIndex: CemSteps.SatisfaccionAsesorMotivo,\n name: 'SatisfaccionAsesorMotivo',\n outputs: ['satisfaccionAsesorMotivo'],\n outputsText: ['satisfaccionAsesorMotivo'],\n },\n {\n title: ¿Cuál es tu nivel de satisfacción con nuestros servicios prestados como punto de venta?,\n fields: (\n \n \n Pensando en el proceso de compra en general de tu nuevo vehículo.\n \n \n \n }\n />\n ),\n screenIndex: CemSteps.SatisfaccionConcesion,\n name: 'SatisfaccionConcesion',\n outputs: ['satisfaccionConcesion'],\n outputsText: ['satisfaccionConcesion'],\n outputsIsStars: true,\n },\n {\n title: ¿Cuál es la razón por la que has dado esta puntuación?,\n fields: (\n \n }\n />\n ),\n screenIndex: CemSteps.SatisfaccionConcesionMotivo,\n name: 'SatisfaccionConcesionMotivo',\n outputs: ['satisfaccionConcesionMotivo'],\n outputsText: ['satisfaccionConcesionMotivo'],\n },\n {\n title: ¿Hay algún aspecto con el que no estuvieras satisfecho y que no hayas mencionado aún?,\n fields: (\n \n }\n />\n ),\n screenIndex: CemSteps.AspectoSatisfaccionMotivo,\n name: 'AspectoSatisfaccionMotivo',\n outputs: ['aspectoSatisfaccionMotivo'],\n outputsText: ['aspectoSatisfaccionMotivo'],\n },\n {\n title: ¿Te ofreció el asesor comercial realizar una prueba de conducción?,\n fields: (\n }\n />\n ),\n screenIndex: CemSteps.TestDrive,\n name: 'TestDrive',\n outputs: ['testDrive'],\n outputsText: ['testDrive'],\n },\n {\n title: (\n <>\n \n ¿Te ha contactado [Concesionario] para preguntarte si estás satisfecho con tu [Modelo] después de entregártelo?\n \n \n ),\n fields: (\n }\n />\n ),\n screenIndex: CemSteps.ContactoSatisfaccion,\n name: 'ContactoSatisfaccion',\n outputs: ['contactoSatisfaccion'],\n outputsText: ['contactoSatisfaccion'],\n trueOrFalseQuestion: true,\n },\n {\n title: (\n <>\n Finalmente nos gustaría saber si{' '}\n \n podemos enviar tus respuestas junto con tu nombre\n \n {' '}al punto de venta [Concesionario] y el bastidor del vehículo, y puedan usarlos para análisis adicionales.\n \n ),\n fields: } />,\n screenIndex: CemSteps.EnviarConcesion,\n name: 'EnviarConcesion',\n outputs: ['enviarConcesion'],\n outputsText: ['enviarConcesion'],\n ctas: ctasCheckEnvio(false, false)\n },\n {\n title: (\n <>\n Por favor, introduce o comprueba tus datos:\n \n ),\n fields: (\n \n \n \n }\n />\n ),\n screenIndex: CemSteps.DatosPersonales,\n name: 'DatosPersonales',\n outputs: ['name', 'surname', 'secondSurname'],\n outputsText: ['name', 'surname', 'secondSurname'],\n },\n {\n title: (\n \n ¿Podríamos publicar tus respuestas en la web oficial de Volkswagen y en la de [Concesionario] sin mencionar tu\n nombre?\n \n ),\n fields: (\n \n \n Para compartir tu experiencia con otros clientes.\n \n \n \n }\n />\n ),\n screenIndex: CemSteps.PublicarRespuestas,\n name: 'PublicarRespuestas',\n outputs: ['publicarRespuestas'],\n outputsText: ['publicarRespuestas'],\n },\n {\n fields: ,\n screenIndex: CemSteps.Confirmacion,\n name: 'Confirmacion',\n outputs: ['confirmacion'],\n outputsText: ['confirmacion'],\n },\n];\n\n return stepsVenta;\n}","import {\n Breakpoints, Container,\n ContainerPadding, Layout, LayoutRowGap, Text,\n\n TokenTextAppearance,\n} from '@volkswagen-onehub/components-core';\nimport React from 'react';\nimport {\n CarlineSelect, DetalleMotivo, MultipleCTASelection,\n MultipleOptionCTAs, PantallaIntroduccionStars, PantallaNombreApellido, RatingStars\n} from 'src/components';\n\nimport { ctaEnvioCEM, ctaAlternativaTransporte, ctaDatosIncorrectosPosventa, ctaMotivoVisita, ctaTrabajosAdicionales } from 'src/feature-app/InputsValues/CTAsObjects';\nimport { ChecksEnvio, ctasCheckEnvio } from 'src/forms/Cem/ChecksEnvio';\nimport { ChecksPublicacion } from 'src/forms/Cem/ChecksPublicacion';\nimport { ConfirmacionCem } from 'src/forms/Cem/ConfirmacionCem';\nimport { FirstStepCEM } from './FirstStepCEM';\nimport { Steps } from 'src/types';\n\nfunction OneElementTemplateFullScreen(props: any) {\n const { element, allowOverflowingContent } = props;\n return (\n \n {element}\n \n );\n }\n\nenum CemSteps {\n DatosCorrectos,\n DatosIncorrectos,\n Modelo,\n Explicacion,\n SatisfaccionTrato,\n SatisfaccionTratoMotivo,\n SatisfaccionOrganizacion,\n SatisfaccionOrganizacionMotivo,\n SatisfaccionTrabajoRealizado,\n SatisfaccionTrabajoRealizadoMotivo,\n SatisfaccionConcesion,\n SatisfaccionConcesionMotivo,\n AspectoSatisfaccionMotivo,\n Informado,\n AlternativaTransporte,\n TiempoSatisfaccion,\n MotivoVisita,\n SatisfaccionVehiculo,\n SatisfaccionVehiculoMotivo,\n EnviarConcesion,\n DatosPersonales,\n PublicarRespuestas,\n Confirmacion,\n}\n\nexport const stepsPosventa: Steps[] = [\n {\n fields: ,\n screenIndex: CemSteps.DatosCorrectos,\n name: 'DatosCorrectos',\n alternateTitle: ¿Puedes confirmar que estos datos son correctos y que eres la persona que mejor nos puede informar sobre la última visita al taller?,\n outputs: ['datosCorrectos'],\n outputsText: ['datosCorrectos'],\n },\n {\n title: <>Por favor,{' '}¿puedes confirmar qué dato no es correcto?,\n fields: (\n }\n />\n ),\n screenIndex: CemSteps.DatosIncorrectos,\n name: 'DatosIncorrectosPosventa',\n outputs: ['datosIncorrectosPosventa'],\n outputsText: ['datosIncorrectosPosventa'],\n },\n {\n title: <>¿Cuál es el modelo correcto?,\n fields: } />,\n screenIndex: CemSteps.Modelo,\n name: 'Modelo',\n outputs: ['modelo'],\n outputsText: ['modelo'],\n },\n {\n title: (\n <>A continuación,{' '}indica tu nivel de satisfacción con cada uno de estos aspectos relacionados con tu visita al Servicio Oficial.\n ),\n fields: ,\n screenIndex: CemSteps.Explicacion,\n name: 'Explicacion',\n },\n {\n title: El trato recibido,\n fields: (\n \n }\n />\n ),\n screenIndex: CemSteps.SatisfaccionTrato,\n name: 'SatisfaccionTrato',\n outputs: ['satisfaccionTrato'],\n outputsText: ['satisfaccionTrato'],\n outputsIsStars: true\n },\n {\n title: ¿Cuál es la razón por la que has dado esta puntuación?,\n fields: (\n \n }\n />\n ),\n screenIndex: CemSteps.SatisfaccionTratoMotivo,\n name: 'SatisfaccionTratoMotivo',\n outputs: ['satisfaccionTratoMotivo'],\n outputsText: ['satisfaccionTratoMotivo'],\n },\n {\n title: (\n \n La organización de [Concesionario]\n \n ),\n fields: (\n \n \n Por ejemplo: el establecimiento de la cita, tiempos de espera en el taller, la fecha de entrega o el tiempo que estuvo el coche en el taller. \n \n \n }\n />\n ),\n screenIndex: CemSteps.SatisfaccionOrganizacion,\n name: 'SatisfaccionOrganizacion',\n outputs: ['satisfaccionOrganizacion'],\n outputsText: ['satisfaccionOrganizacion'],\n outputsIsStars: true\n },\n {\n title: ¿Cuál es la razón por la que has dado esta puntuación?,\n fields: (\n \n }\n />\n ),\n screenIndex: CemSteps.SatisfaccionOrganizacionMotivo,\n name: 'SatisfaccionOrganizacionMotivo',\n outputs: ['satisfaccionOrganizacionMotivo'],\n outputsText: ['satisfaccionOrganizacionMotivo'],\n },\n {\n title: (\n La calidad del trabajo realizado en tu [Modelo]\n ),\n fields: (\n \n }\n />\n ),\n screenIndex: CemSteps.SatisfaccionTrabajoRealizado,\n name: 'SatisfaccionTrabajoRealizado',\n outputs: ['satisfaccionTrabajoRealizado'],\n outputsText: ['satisfaccionTrabajoRealizado'],\n outputsIsStars: true\n },\n {\n title: ¿Cuál es la razón por la que has dado esta puntuación?,\n fields: (\n \n }\n />\n ),\n screenIndex: CemSteps.SatisfaccionTrabajoRealizadoMotivo,\n name: 'SatisfaccionTrabajoRealizadoMotivo',\n outputs: ['satisfaccionTrabajoRealizadoMotivo'],\n outputsText: ['satisfaccionTrabajoRealizadoMotivo'],\n },\n {\n title: (\n <>\n Pensando en tu última visita a [Concesionario],{' '}\n \n ¿cuál es tu nivel de satisfacción con nuestros servicios en general?\n \n \n ),\n alternateTitle: (\n \n ¿Cuál es tu nivel de satisfacción con nuestros servicios en general?\n \n ),\n fields: (\n \n \n Pensando en tu última visita.\n \n \n \n }\n />\n ),\n screenIndex: CemSteps.SatisfaccionConcesion,\n name: 'SatisfaccionConcesion',\n outputs: ['satisfaccionConcesion'],\n outputsText: ['satisfaccionConcesion'],\n outputsIsStars: true\n },\n {\n title: ¿Cuál es la razón por la que has dado esta puntuación?,\n fields: (\n \n }\n />\n ),\n screenIndex: CemSteps.SatisfaccionConcesionMotivo,\n name: 'SatisfaccionConcesionMotivo',\n outputs: ['satisfaccionConcesionMotivo'],\n outputsText: ['satisfaccionConcesionMotivo'],\n },\n {\n title: ¿Hay algún aspecto con el que no estuvieras satisfecho y que no hayas mencionado aún?,\n fields: (\n \n }\n />\n ),\n screenIndex: CemSteps.AspectoSatisfaccionMotivo,\n name: 'AspectoSatisfaccionMotivo',\n outputs: ['aspectoSatisfaccionMotivo'],\n outputsText: ['aspectoSatisfaccionMotivo'],\n },\n {\n title: ¿Se te informó de la realización de trabajos adicionales a los inicialmente acordados?,\n fields: (\n \n }\n />\n ),\n screenIndex: CemSteps.Informado,\n name: 'Informado',\n outputs: ['informado'],\n outputsText: ['informado'],\n ctas: ctaTrabajosAdicionales,\n },\n {\n title: <>¿Te ofreció el Servicio Oficial alguna alternativa de de movilidad para volver al trabajo o a casa tras dejar tu vehiculo en el taller?,\n fields: (\n } />\n ),\n screenIndex: CemSteps.AlternativaTransporte,\n name: 'AlternativaTransporte',\n outputs: ['alternativaTransporte'],\n outputsText: ['alternativaTransporte'],\n },\n {\n title: (\n <>\n ¿Cuál es tu nivel de satisfacción con la gestión que hizo el Servicio Oficial de tu tiempo? \n \n ),\n fields: (\n \n\n \n El tiempo total desde que entró y desde que salió tu vehículo del taller.\n \n }\n />\n ),\n screenIndex: CemSteps.TiempoSatisfaccion,\n name: 'TiempoSatisfaccion',\n outputs: ['tiempoSatisfaccion'],\n outputsText: ['tiempoSatisfaccion'],\n outputsIsStars: true\n },\n {\n title: (\n <>\n ¿Cuál o cuáles de los aspectos de la siguiente lista fueron el motivo de tu última visita al Servicio Oficial?\n \n \n Puedes elegir tres opciones\n \n \n ),\n alternateTitle: (\n <>\n ¿Cuál o cuáles de los aspectos de la siguiente lista fueron el motivo de tu última visita al Servicio Oficial?\n \n ),\n fields: (\n \n }\n />\n ),\n screenIndex: CemSteps.MotivoVisita,\n name: 'MotivoVisita',\n outputs: ['motivoVisita'],\n outputsText: ['motivoVisita'],\n },\n {\n title: Pensando en tu actual [Modelo], ¿cuál es tu nivel de satisfacción?,\n fields: (\n \n }\n />\n ),\n screenIndex: CemSteps.SatisfaccionVehiculo,\n name: 'SatisfaccionVehiculo',\n outputs: ['satisfaccionVehiculo'],\n outputsText: ['satisfaccionVehiculo'],\n outputsIsStars: true\n },\n {\n title: (\n <>\n Por favor háblanos de tu experiencia con tu nuevo [Modelo]\n \n ),\n fields: (\n \n }\n />\n ),\n screenIndex: CemSteps.SatisfaccionVehiculoMotivo,\n name: 'SatisfaccionVehiculoMotivo',\n outputs: ['satisfaccionVehiculoMotivo'],\n outputsText: ['satisfaccionVehiculoMotivo'],\n },\n {\n title: (\n <>\n Finalmente nos gustaría saber si{' '}\n \n podemos enviar tus respuestas junto con tu nombre\n \n {' '}al Servicio Oficial [Concesionario] y el bastidor del vehículo, y puedan usarlos para análisis adicionales.\n \n ),\n fields: (\n }\n />\n ),\n screenIndex: CemSteps.EnviarConcesion,\n name: 'EnviarConcesion',\n outputs: ['enviarConcesion'],\n outputsText: ['enviarConcesion'],\n ctas: ctasCheckEnvio(true, false)\n },\n {\n title: (\n <>\n Por favor,{' '}introduce o comprueba tus datos:\n \n ),\n fields: (\n \n \n \n }\n />\n ),\n screenIndex: CemSteps.DatosPersonales,\n name: 'DatosPersonales',\n outputs: ['name', 'surname', 'secondSurname'],\n outputsText: ['name', 'surname', 'secondSurname'],\n },\n {\n title: (\n <>\n ¿Podríamos publicar tus respuestas en la web oficial de Volkswagen y en la de [Concesionario] sin mencionar tu nombre?\n \n ),\n fields: (\n \n \n Para compartir tu experiencia con otros clientes.\n \n \n \n }\n />\n ),\n screenIndex: CemSteps.PublicarRespuestas,\n name: 'PublicarRespuestas',\n outputs: ['publicarRespuestas'],\n outputsText: ['publicarRespuestas'],\n ctas: ctaEnvioCEM,\n },\n {\n fields: ,\n screenIndex: CemSteps.Confirmacion,\n name: 'Confirmacion',\n outputs: ['confirmacion'],\n outputsText: ['confirmacion'],\n },\n];\n","import React, { useEffect, useRef, useState } from 'react';\nimport { useDispatch, useSelector, useStore } from 'react-redux';\nimport { dpsSend } from 'src/bff';\nimport { FormController, useOneFormContext,isHighRating, isLowRating, isNoRating } from 'src/feature-app';\nimport { getParamsForm } from 'src/feature-app/get-params-form';\nimport { FormDataGroup, FormInfo, OneFormState, Steps } from 'src/types';\nimport {\n sanitizeKvps,\n checkUndefinedsInData,\n handleDescWrongData,\n formatSinRespuestaValue\n} from 'src/forms/Cem/helpers';\nimport { strTitlelize } from 'src/helpers';\nimport { formatHeaders, formDataBuilder } from 'src/forms/format-fields';\nimport {\n addRemovedStep,\n getArrayOfStepsNames,\n getIndexInSteps,\n removeMultipleStepsAndResetScreenIndex,\n resetStepsScreenIndex,\n} from 'src/forms/helpers/add-remove-steps';\nimport { getStepsVenta, CemFormProps, LastQuestionFlow } from 'src/forms/Cem';\nimport { ThankYouCEM } from 'src/forms/Cem/ThankYouCem';\n\n\nexport function CemFormVenta(props: CemFormProps) {\n const { idOrder, idPerson, idVehicle, idDealer, dpsData, installation } = props;\n const { initializeForm, handleNextStep, handleShowFinalScreen, setShowPreviousStep, handleScreenChange } =\n useOneFormContext();\n const { formData } = useSelector((state: OneFormState) => state);\n const store = useStore();\n const dispatch = useDispatch();\n const [loading, setLoading] = useState(false);\n const urlParams = new URLSearchParams(window.location.search);\n const test = urlParams.get('test');\n const adviser = urlParams.get('adviser');\n const agency = urlParams.get('agency');\n const {\n datosCorrectos,\n datosIncorrectos,\n confirmacionConcesion,\n satisfaccionTrato,\n satisfaccionOrganizacion,\n satisfaccionAsesor,\n satisfaccionConcesion,\n modelo,\n enviarConcesion,\n masPreguntas,\n } = formData.fields;\n\n const isElectrico = idVehicle.DESC_Model__c.substring(0, 2) == 'ID';\n\n const modeloRef = useRef(null); // Necesitamos almacenar el modelo ya que cada vez que el usuario selecciona un modelo se modifican los steps, por lo que necesitamos una referencia para saber que modelo hay que sustituir.\n\n const NuevoFormData: Partial = {\n headers: {\n DESC_BRAND: 'VW',\n DESC_CAMPAIGNBLOCK: 'B19',\n DESC_FORM_DETAIL: 'CEM Venta',\n DESC_FORMOBJECTIVE: 'Encuesta',\n DESC_GDPR_ADAPTED: 'true',\n DESC_ID_CAMPAIGN: '7011n000001EIJwAAO',\n DESC_TOKEN: test ? 'VW_DDB_FRM_CEM_VN_2023_TEST_INSATISFECHOS' : 'VW_DDB_FRM_CEM_VN2024',\n DESC_WAID_LITERA: 'B09_LCV_CEM_Venta_VN',\n },\n fields: {\n lssiPincode: idPerson.LSSI__c,\n formName: 'cem-venta',\n formType: 'otherform',\n pageCategory: 'Encuesta',\n name: idPerson.FirstName,\n surname: idPerson.LastName,\n secondSurname: idPerson.TXT_2_Surname__c,\n concesion: installation ? installation.TXT_V_Installation_Data_Name__c : idDealer ? idDealer.Name : '',\n }, // Analítica\n };\n\n const sendForm = (): Promise => {\n const { formData }: OneFormState = store.getState();\n\n const { fields, headers } = formData;\n\n return new Promise(async (resolve, reject) => {\n const { tc, today, url, device } = getParamsForm();\n\n const data = {\n ...formatHeaders(headers),\n 'headers[COD_FORM_ID]': `vw-oneform-${fields.formName}`,\n 'headers[DESC_DEVICETYPE]': device,\n 'headers[DESC_ID_CLIMAPRO]': idPerson.ID_Person_DIM_IMP__c,\n 'headers[DESC_ID_VEHICLE_CLIMAPRO]': idVehicle.IDClimapro__c,\n 'headers[DESC_URLORIGIN]': url,\n 'headers[FECHA_INSERTION_DATE]': today,\n 'headers[PINCODE]': dpsData.pincode.pincodeResponse.params.pincode,\n 'headers[TC]': tc,\n\n 'flags[FLAG_CONF_DATA]': fields.datosCorrectos ? fields.datosCorrectos : fields.datosIncorrectos ? 'false' : 'true',\n 'flags[ES_AGENCIA]': agency ? agency == 'AGENCIA' ? 'true' : 'false' : null,\n\n 'fields[DESC_ANONYMOUS]': fields.enviarConcesion,\n 'fields[DESC_AUXFIELD1]': fields.confirmacionConcesion ? (fields.confirmacionConcesion == 'true' ? '1' : '2') : null,\n 'fields[DESC_AUXFIELD2]': fields.publicarRespuestas == '1' ? 'PERMITE' : 'NO PERMITE',\n\n 'fields[TRADICIONAL_AGENCIA]': agency,\n 'fields[DAT_REGISTRATION_DATE]': idOrder.DAT_delivery__c ? idOrder.DAT_delivery__c.substring(0, 10) + ' 12:00:00' : '',\n 'fields[DESC_ACTUAL_VEHICLE_MODEL]': fields.modelo ? fields.modelo : null,\n 'fields[COD_ACTUAL_VEHICLE_MODEL]': idVehicle.DESC_Model__c ? idVehicle.DESC_Model__c : dpsData.model ? dpsData.model : null,\n 'fields[DESC_ADDRESS]': idPerson.FORM_Full_Address__c,\n 'fields[DESC_DEALER_CODE_KVPS]': sanitizeKvps(installation.TXT_V_KVPS_code__c),\n 'fields[DESC_DEALER_CODE]': installation. TXT_Code_Concession__c,\n 'fields[DESC_DEALER]': installation.TXT_V_Installation_Data_Name__c,\n 'fields[DESC_EMAIL_ADDRESS]': idPerson.TXT_Email__c,\n 'fields[DESC_EMPLOYEE_ID]': adviser,\n 'fields[DESC_FORM_VERSION]': `vw-oneform-${fields.formName}-${process.env.VERSION}`,\n 'fields[DESC_FRAME]': idVehicle.Frame__c,\n 'fields[DESC_LOPD_GDPR_PERFILADO]': fields.tmk ? fields.tmk : 'NO INFORMADO',\n 'fields[DESC_LOPD]': 'PERMITE',\n 'fields[DESC_LSSI]': fields.lssi ? fields.lssi : 'NO INFORMADO',\n 'fields[DESC_NAME]': fields.name,\n 'fields[DESC_NUMBER_ORDER]': idOrder.IDClimapro__c,\n 'fields[DESC_POSTAL_CODE]': idPerson.TXT_Postal_Code__c,\n 'fields[DESC_PROVINCE]': idPerson.TXT_Province__c,\n 'fields[DESC_SURNAME_1]': fields.surname,\n 'fields[DESC_SURNAME_2]': fields.secondSurname,\n 'fields[DESC_TRANF_DATA_THIRD]': 'NO INFORMADO',\n 'fields[DESC_VEH_PLATE]': idVehicle.Registration__c,\n 'fields[DESC_WRONG_DATA]': handleDescWrongData(fields.datosIncorrectos),\n 'fields[NUM_PHONE]': idPerson.NUM_Phone_mobile__c,\n\n 'fields[CEM_Q01]': formatSinRespuestaValue(fields.satisfaccionTrato),\n 'fields[CEM_C01]': formatSinRespuestaValue(fields.satisfaccionTratoMotivo),\n 'fields[CEM_Q02]': formatSinRespuestaValue(fields.satisfaccionOrganizacion),\n 'fields[CEM_C02]': formatSinRespuestaValue(fields.satisfaccionOrganizacionMotivo),\n 'fields[CEM_Q03]': formatSinRespuestaValue(fields.satisfaccionAsesor),\n 'fields[CEM_C03]': formatSinRespuestaValue(fields.satisfaccionAsesorMotivo),\n 'fields[CEM_Q04]': formatSinRespuestaValue(fields.satisfaccionConcesion),\n 'fields[CEM_C04]': formatSinRespuestaValue(fields.satisfaccionConcesionMotivo),\n 'fields[CEM_C05]': formatSinRespuestaValue(fields.aspectoSatisfaccionMotivo),\n 'fields[CEM_Q28]': fields.testDrive,\n 'fields[CEM_Q29]': fields.contactoSatisfaccion,\n\n };\n\n if (!fields.datosIncorrectos || fields.datosCorrectos == \"true\") {\n delete data['fields[DESC_WRONG_DATA]'];\n }\n\n const dataStringified = JSON.stringify(data);\n const dataParsed = JSON.parse(dataStringified);\n\n const formData = formDataBuilder(dataParsed);\n\n checkUndefinedsInData(data, 'Venta');\n const response = await dpsSend(formData);\n\n if (response && response.data && response.data.content && response.data.content.code === '200') {\n dispatch({ type: 'SET_FORM_RESPONSE', payload: response.data });\n resolve(true);\n } else {\n resolve(false);\n }\n });\n };\n\n /**\n * Se extrae la lógica para poder utilizarla por separado sin tener que usar las funciones de loading o updateSteps\n * ya que hay una pregunta en la que podemos eliminar y añadir un step en el mismo paso.\n * @param stepsToAdd\n * @param alternativeSteps\n * @returns\n */\n const addingStepsLogic = (stepsToAdd: string[], alternativeSteps?: Steps[]) => {\n const { steps: actualSteps, screenIndex } = store.getState().formInfo;\n const stepsToUse = alternativeSteps ? alternativeSteps : actualSteps;\n // Hay que revertir los steps para que se añadan en el orden correcto\n const indexesInSteps = stepsToAdd.reverse().map((step) => getIndexInSteps(stepsToUse, step));\n let newSteps = [...stepsToUse];\n\n indexesInSteps.forEach((index, i) => {\n if (index === -1) {\n newSteps = addRemovedStep(getStepsVenta(isElectrico), stepsToUse, stepsToAdd[i], screenIndex);\n }\n });\n const finalSteps = resetStepsScreenIndex(newSteps);\n return finalSteps;\n };\n\n const addSteps = (stepsToAdd: string[]) => {\n setLoading(true);\n\n const finalSteps = addingStepsLogic(stepsToAdd);\n updateSteps(finalSteps);\n handleNextStep();\n\n setLoading(false);\n };\n\n const removeSteps = (stepsToDelete: string[]) => {\n const { steps } = store.getState().formInfo;\n setLoading(true);\n const finalSteps = removeMultipleStepsAndResetScreenIndex(steps, stepsToDelete);\n updateSteps(finalSteps);\n setLoading(false);\n };\n\n const updateSteps = (steps: Steps[]) => {\n dispatch({ type: 'UPDATE_STEPS', payload: steps });\n dispatch({ type: 'UPDATE_LAST_STEP', payload: steps[steps.length - 1] });\n dispatch({ type: 'SET_NUMBER_OF_SCREENS', payload: steps.length });\n };\n\n const replaceWithLeadInfo = (string: string) => {\n return string\n .replace('[Modelo]', idVehicle.DESC_Model__c ? idVehicle.DESC_Model__c : dpsData.model ? dpsData.model : 'Volkswagen')\n .replace('[Marca]', idVehicle.PKL_order_brand__c)\n .replace('[Concesionario]', strTitlelize(installation ? installation.TXT_V_Installation_Data_Name__c : idDealer ? idDealer.Name : ''));\n };\n\n const replaceModelo = (string: string) => {\n if (modeloRef.current) {\n return string.replace(modeloRef.current, modelo);\n } else {\n return string.replace(idVehicle.DESC_Model__c, modelo);\n }\n };\n\n const modifyTitleSteps = (steps: Steps[], replaceCallback: (s: string) => string) => {\n return steps.map((step) => {\n if (!step.title) return step;\n if (Array.isArray(step.title.props.children)) {\n step.title.props.children = step.title.props.children.map((child: any) => {\n if (typeof child === 'object') {\n if (typeof child.props.children === 'object') {\n child.props.children.props.children = replaceCallback(child.props.children.props.children);\n } else {\n child.props.children = replaceCallback(child.props.children);\n }\n } else {\n child = replaceCallback(child);\n }\n return child;\n });\n } else if (typeof step.title.props.children === 'object') {\n step.title.props.children.props.children = replaceCallback(step.title.props.children.props.children);\n } else {\n step.title.props.children = replaceCallback(step.title.props.children);\n }\n return step;\n });\n };\n\n const getOrderStep = (order: number, sc4: number, sc5: number, sc6: number) => {\n return order === 1 ? sc4 : order === 2 ? sc5 : order === 3 ? sc6 : null;\n };\n\n const shuffle = (array: number[]): number[] => array.sort(() => Math.random() - 0.5);\n\n /**\n * El orden de las preguntas Sc_4,Sc_5 y Sc_6 tiene que ser aleatorio.\n * @param steps\n */\n const randomizeSteps = (steps: Steps[]): Steps[] => {\n const sc4 = getIndexInSteps(steps, 'SatisfaccionTrato');\n const sc4Motivo = getIndexInSteps(steps, 'SatisfaccionTratoMotivo');\n\n const sc5 = getIndexInSteps(steps, 'SatisfaccionOrganizacion');\n const sc5Motivo = getIndexInSteps(steps, 'SatisfaccionOrganizacionMotivo');\n\n const sc6 = getIndexInSteps(steps, 'SatisfaccionAsesor');\n const sc6Motivo = getIndexInSteps(steps, 'SatisfaccionAsesorMotivo');\n\n let newSteps = [...steps];\n const [first, second, third] = shuffle([1, 2, 3]);\n const firstStep = getOrderStep(first, sc4, sc5, sc6);\n const secondStep = getOrderStep(second, sc4, sc5, sc6);\n const thirdStep = getOrderStep(third, sc4, sc5, sc6);\n newSteps[sc4] = steps[firstStep];\n newSteps[sc4Motivo] = steps[firstStep + 1];\n newSteps[sc5] = steps[secondStep];\n newSteps[sc5Motivo] = steps[secondStep + 1];\n newSteps[sc6] = steps[thirdStep];\n newSteps[sc6Motivo] = steps[thirdStep + 1];\n //console.log([first, second, third], 'orden');\n return newSteps;\n };\n\n const getFormInfo = (steps: Steps[]) => {\n const newSteps = modifyTitleSteps(steps, replaceWithLeadInfo);\n const randomizedSteps = randomizeSteps(newSteps);\n\n return {\n firstStep: randomizedSteps[0],\n lastStep: randomizedSteps[randomizedSteps.length - 1],\n stepsHistory: [0],\n numberOfScreens: randomizedSteps.length,\n newSteps: randomizedSteps,\n };\n };\n\n //\n // Lógica para modificar el flujo del formulario\n //\n\n useEffect(() => {\n if (modelo) {\n const pastSteps = store.getState().formInfo.steps;\n const newSteps = modifyTitleSteps(pastSteps, replaceModelo);\n modeloRef.current = modelo;\n updateSteps(newSteps);\n }\n }, [modelo]);\n\n useEffect(() => {\n if (datosCorrectos === 'true') {\n const steps = store.getState().formInfo.steps;\n const modelo = getIndexInSteps(steps, 'Modelo');\n // En el caso de elegir que los datos son incorrectos, llegar a confirmación y volver atrás hay que regenerar todos los pasos.\n if (modelo === -1) {\n const initialSteps = store.getState().formInfo.initialSteps;\n const finalSteps = removeMultipleStepsAndResetScreenIndex(initialSteps, ['DatosIncorrectos', 'Modelo', 'ConfirmacionConcesion']);\n updateSteps(finalSteps);\n } else {\n removeSteps(['DatosIncorrectos', 'Modelo', 'ConfirmacionConcesion']);\n }\n } else if (datosCorrectos === 'false') {\n addSteps(['DatosIncorrectos', 'Modelo']);\n }\n }, [datosCorrectos]);\n\n useEffect(() => {\n if (datosIncorrectos === 'Marca' || datosIncorrectos === 'Contacto') {\n const pastSteps = store.getState().formInfo.steps;\n const newsteps = [pastSteps[0], pastSteps[1], pastSteps[pastSteps.length - 1]];\n const finalSteps = resetStepsScreenIndex(newsteps);\n updateSteps(finalSteps);\n }\n if (datosIncorrectos === 'Instalación') {\n const initialSteps = store.getState().formInfo.initialSteps;\n const finalSteps = removeMultipleStepsAndResetScreenIndex(initialSteps, ['Modelo']);\n updateSteps(finalSteps);\n }\n if (datosIncorrectos === 'Modelo') {\n const initialSteps = store.getState().formInfo.initialSteps;\n const finalSteps = removeMultipleStepsAndResetScreenIndex(initialSteps, ['ConfirmacionConcesion']);\n updateSteps(finalSteps);\n }\n }, [datosIncorrectos]);\n\n useEffect(() => {\n if (confirmacionConcesion === 'false') {\n const pastSteps = store.getState().formInfo.steps;\n const newsteps = [pastSteps[0], pastSteps[1], pastSteps[2], pastSteps[pastSteps.length - 1]];\n const finalSteps = resetStepsScreenIndex(newsteps);\n updateSteps(finalSteps);\n } else if (confirmacionConcesion === 'true') {\n const initialSteps = store.getState().formInfo.initialSteps;\n const finalSteps = removeMultipleStepsAndResetScreenIndex(initialSteps, ['Modelo']);\n updateSteps(finalSteps);\n }\n }, [confirmacionConcesion])\n\n\n useEffect(() => {\n if (!enviarConcesion) {\n return;\n }\n if (enviarConcesion === '3') {\n addSteps(['DatosPersonales']);\n } else {\n removeSteps(['DatosPersonales']);\n }\n }, [enviarConcesion]);\n\n useEffect(() => {\n if (!masPreguntas) {\n return;\n }\n\n if (masPreguntas === 'true') {\n const stepNames = getArrayOfStepsNames(getStepsVenta(isElectrico), 'MasPreguntas', 'EnviarConcesion');\n addSteps(stepNames);\n } else if (masPreguntas === 'false') {\n const { steps } = store.getState().formInfo;\n const stepNames = getArrayOfStepsNames(steps, 'MasPreguntas', 'EnviarConcesion');\n removeSteps(stepNames);\n }\n }, [masPreguntas]);\n\n /**\n * Se tiene que de manera consecutiva y no mediante las otras funciones porque si no, se actualizan los steps\n * dos veces y en el segundo paso (añadir o eliminar el otro step) se hace siempre sobre los steps antiguos y\n * no funciona de la manera esperada.\n *\n * @param stepToRemove\n * @param stepToAdd\n */\n const removeAndAddStepAtTheSameTime = (stepToRemove: string, stepToAdd: string) => {\n const { steps } = store.getState().formInfo;\n setLoading(true);\n const removedSteps = removeMultipleStepsAndResetScreenIndex(steps, [stepToRemove]);\n const addedSteps = addingStepsLogic([stepToAdd], removedSteps);\n const finalSteps = resetStepsScreenIndex(addedSteps);\n handleNextStep();\n updateSteps(finalSteps);\n setLoading(false);\n };\n\n\n const handleShowMotivo = (nameOfMotivoStep: string, value?: string, ) => {\n if(value) {\n if(Number(value) == -1) value = 'Sin respuesta';\n if (isLowRating(value)) {\n addSteps([nameOfMotivoStep]);\n } else if (isHighRating(value) || isNoRating(value)) {\n removeSteps([nameOfMotivoStep]);\n }\n }\n };\n\n useEffect(() => {\n handleShowMotivo('SatisfaccionTratoMotivo', satisfaccionTrato);\n handleShowMotivo('SatisfaccionOrganizacionMotivo', satisfaccionOrganizacion);\n handleShowMotivo('SatisfaccionAsesorMotivo', satisfaccionAsesor);\n\n // Verificamos que se han contestado todas y...\n if (!satisfaccionTrato || !satisfaccionOrganizacion || !satisfaccionAsesor) {\n return;\n }\n\n // ...verificamos que no estamos antes del step satisfaccionConcesion\n\t\tconst screenIndex = store.getState().formInfo.screenIndex;\n\t\tif (screenIndex < 4) {\n\t\t\treturn;\n\t\t}\n\n const ratings = [satisfaccionTrato, satisfaccionOrganizacion, satisfaccionAsesor];\n const { mostrarQlast1, mostrarQlast2 } = LastQuestionFlow(ratings, satisfaccionConcesion);\n\n if (mostrarQlast1 && mostrarQlast2){\n addSteps(['SatisfaccionConcesionMotivo', 'AspectoSatisfaccionMotivo']);\n }\n if(!mostrarQlast1 && !mostrarQlast2) {\n removeSteps(['SatisfaccionConcesionMotivo', 'AspectoSatisfaccionMotivo']);\n }\n if (!mostrarQlast1 && mostrarQlast2) {\n removeAndAddStepAtTheSameTime('SatisfaccionConcesionMotivo', 'AspectoSatisfaccionMotivo');\n }\n if (mostrarQlast1 && !mostrarQlast2) {\n removeAndAddStepAtTheSameTime('AspectoSatisfaccionMotivo', 'SatisfaccionConcesionMotivo');\n }\n\n }, [satisfaccionTrato, satisfaccionOrganizacion, satisfaccionAsesor, satisfaccionConcesion]);\n\n\n useEffect(() => {\n if(!installation) return null;\n\n const { firstStep, lastStep, stepsHistory, numberOfScreens, newSteps } = getFormInfo(getStepsVenta(isElectrico));\n\n const NuevoFormInfo: Partial = {\n formStarted: true,\n sendFormCallback: sendForm,\n fullScreen: firstStep.fullScreen ? true : false,\n lastStep,\n numberOfScreens,\n formTheme: 'main',\n notALayer: true,\n formType: 'inPage',\n screenIndex: firstStep.screenIndex,\n step: firstStep,\n steps: newSteps ? newSteps : getStepsVenta(isElectrico),\n stepsHistory,\n thankYouComponent: ,\n hideLegal: idPerson.LSSI__c === 'PERMITE' ? true : false,\n };\n\n initializeForm(NuevoFormInfo, NuevoFormData);\n }, [installation]);\n\n return !loading ? : null;\n}\n","import React, { useEffect, useRef, useState } from 'react';\nimport { isHighRating, isLowRating, isNoRating, allHighRatings, allLowRatings, allNoRatings, allHighOrNoRatings } from 'src/feature-app';\n\n\nexport function LastQuestionFlow(ratings: string[], lastQuestion: string) {\n\n\tconst goodRating = allHighRatings(ratings);\n\tconst badRating = allLowRatings(ratings);\n\tconst emptyRating = allNoRatings(ratings);\n\tconst goodOrEmptyRating = allHighOrNoRatings(ratings);\n\n\t/* \n\tQfinal=4,5 AND NOT [Q1=3,2,1 AND Q2=3,2,1 AND Qn=3,2,1]\n\tOR\n\tQfinal=3,2,1 AND Q1=5,4,9 AND Q2=5,4,9 AND Qn=5,4,9\n\t*/\n\tconst mostrarQlast1 =\n\t\t(isHighRating(lastQuestion) && !goodOrEmptyRating)\n\t\t||\n\t\t(isLowRating(lastQuestion) && goodOrEmptyRating);\n\n\t/* \n\tQfinal=3,2,1 \n\tAND\n\tNOT [Q1=5,4,9 AND Q2=5,4,9 AND Qn=5,4,9]\n\tAND\n\tNOT [Q1=3,2,1 AND Q2=3,2,1 AND Qn=3,2,1]\n\t*/\n\tconst mostrarQlast2 = isLowRating(lastQuestion) && !goodOrEmptyRating && !badRating;\n\n\treturn {\n\t\tmostrarQlast1: mostrarQlast1, \n\t\tmostrarQlast2: mostrarQlast2\n\t};\n\n}","import {\n\tLayout,\n\tBreakpoints,\n\tText,\n\tstyled,\n\tContainer,\n\tContainerGutter,\n\tCTA,\n\tTokenTextAppearance,\n} from '@volkswagen-onehub/components-core';\nimport React from 'react';\n\nconst PaddingWrapper = styled.div`\n\tpadding-top: 32px;\n`;\n\nconst TextColor = styled.span`\n\tcolor: #6a767d;\n`;\ninterface LegalesCEMProps {\n\tisPosventa?: boolean;\n}\n\nexport const LegalesCEM = (props: LegalesCEMProps) => {\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\tTexto legal de Volkswagen\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tEl responsable de tus datos es Volkswagen Group España Distribución, S.A.U. Vamos a utilizar\n\t\t\t\t\t\t\ttus datos para realizar un control de calidad sobre los productos y servicios contratados,\n\t\t\t\t\t\t\tmediante la realización de la presente encuesta de satisfacción, y contactarte para resolución\n\t\t\t\t\t\t\tde incidencias, reclamaciones o quejas. Tus datos podrán ser comunicados a las empresas del\n\t\t\t\t\t\t\tgrupo para las finalidades de controlar la calidad de los productos y servicios, así como\n\t\t\t\t\t\t\tcontactarte para resolución de incidencias, reclamaciones o quejas y, en el caso que hayas\n\t\t\t\t\t\t\tconsentido, para elaborar tu perfil como usuario para enviarte comunicaciones comerciales\n\t\t\t\t\t\t\tsegún lo indicado en el consentimiento. También en el supuesto de haber consentido, tus datos y las respuestas de la presente\n\t\t\t\t\t\t\tencuesta de satisfacción serán comunicadas al {props.isPosventa ? 'Servicio Oficial' : 'punto de venta'}.\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tTienes derecho a oponerte\n\t\t\t\t\t\t\tal tratamiento, limitar el mismo, acceder, rectificar, suprimir los datos y ejercer tu\n\t\t\t\t\t\t\tderecho a portabilidad, mediante el envío de un correo electrónico a:{' '}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tatencioncliente@volkswagen.es\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t.\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tPuedes consultar la información adicional en la{' '}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tpolítica de privacidad\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t.\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n","import { Layout, Breakpoints } from '@volkswagen-onehub/components-core';\nimport React from 'react';\nimport { LegalFullScreenSinConsentmientos } from 'src/components';\n\nexport const LegalesSinConsentimientosCEM = () => {\n return (\n \n \n \n );\n};\n","import React, { useEffect } from 'react';\nimport { getDealerKvps } from 'src/bff';\nimport { TriggerProps, useFaContent, useGetDealers, VehicleCalculadora } from 'src/feature-app';\nimport { FormDataFields } from 'src/types';\nimport { AppointmentVehicle, transformMillage } from 'src/forms';\nimport { NuevaCitaPosventaFormController } from 'src/forms/CitaPosventa/NuevaCitaPosventa';\n\nconst getAppointmentVehicle = (vehicle: VehicleCalculadora): AppointmentVehicle => {\n return {\n brand: 'V',\n frame: vehicle.vin,\n millage: transformMillage(vehicle.mileage),\n modelVersion: vehicle.modelDescr,\n modelYear: 0,\n plate: vehicle.plate.toUpperCase(),\n plateDate: `${vehicle.plateDate} 00:00:00`,\n tmaimg: vehicle.modelKey,\n model: {\n code: vehicle.familyCode,\n key: vehicle.familyCode,\n name: vehicle.familyDesc,\n },\n };\n};\n\nexport function CitaPosventaCalculadoraForm({ setSelectedJourney }: TriggerProps) {\n const faContent = useFaContent();\n const { loading } = useGetDealers(faContent?.dealer);\n\n const renderForm = (fields: FormDataFields) => {\n setSelectedJourney(\n ,\n true\n );\n };\n useEffect(() => {\n if (loading) return;\n \n const fields = {\n motivo: 'MANTENIMIENTO',\n formName: 'cita-posventa-calculadora',\n matricula: faContent?.vehicle[0]?.plate,\n vehicleForCalculadora: getAppointmentVehicle(faContent?.vehicle[0]),\n kilometros: transformMillage(faContent?.vehicle[0]?.mileage),\n anoMatriculacion: faContent?.vehicle[0]?.plateDate,\n modelo: faContent?.vehicle[0]?.modelDescr,\n budget: { pvp: faContent?.quotePvp, operations: [...faContent?.quoteOperations] },\n deepLink: faContent?.deepLink,\n };\n const kvps = faContent?.dealer;\n\n getDealerKvps(kvps)\n .then((dealer) => {\n renderForm({ ...fields, dealer });\n })\n .catch((err) => {\n renderForm({ ...fields, dealer: {} }); // Hay que ver que hacer en estos casos.\n });\n }, [loading]);\n\n return <>;\n}\n","import React, { useEffect } from 'react';\nimport { getDealers } from 'src/bff';\nimport { TriggerProps, useFaContent, useGetDealers } from 'src/feature-app';\nimport { FormDataFields } from 'src/types';\nimport { NuevaCitaPosventaFormController } from 'src/forms/CitaPosventa/NuevaCitaPosventa';\n\nexport function CitaPosventaBonosForm({ setSelectedJourney }: TriggerProps) {\n const faContent = useFaContent();\n const { loading } = useGetDealers(faContent?.dealer);\n\n const renderForm = (fields: FormDataFields) => {\n setSelectedJourney(\n ,\n true\n );\n };\n useEffect(() => {\n if (loading) return;\n \n const fields = {\n motivo: 'OTROS',\n formName: 'cita-posventa-bono',\n masInformacion: faContent?.bono[0].desc,\n deepLink: faContent?.deepLink,\n };\n const kvps = faContent?.dealer;\n\n getDealers()\n .then(() => {\n renderForm({ ...fields });\n })\n .catch((err) => {\n renderForm({ ...fields }); // Hay que ver que hacer en estos casos.\n });\n }, [loading]);\n\n return <>;\n}\n","import React, { useEffect } from 'react';\nimport { getDealers } from 'src/bff';\nimport { TriggerProps, useFaContent, useGetDealers, VehicleCalculadora } from 'src/feature-app';\nimport { FormDataFields } from 'src/types';\nimport { AppointmentVehicle, transformMillage } from 'src/forms';\nimport { NuevaCitaPosventaFormController } from 'src/forms/CitaPosventa/NuevaCitaPosventa';\n\nconst getAppointmentVehicle = (vehicle: VehicleCalculadora): AppointmentVehicle => {\n return {\n brand: 'V',\n frame: vehicle.vin,\n millage: transformMillage(vehicle.mileage),\n modelVersion: vehicle.modelDescr,\n modelYear: 0,\n plate: vehicle.plate.toUpperCase(),\n plateDate: `${vehicle.plateDate} 00:00:00`,\n tmaimg: vehicle.modelKey,\n model: {\n code: vehicle.familyCode,\n key: vehicle.familyCode,\n name: vehicle.familyDesc,\n },\n };\n};\n\nexport function CitaPosventaMaintenanceForm({ setSelectedJourney }: TriggerProps) {\n const faContent = useFaContent();\n const { loading } = useGetDealers(faContent?.dealer);\n\n const renderForm = (fields: FormDataFields) => {\n setSelectedJourney(\n ,\n true\n );\n };\n useEffect(() => {\n if (loading) return;\n\n const fields = {\n motivo: 'MANTENIMIENTO',\n formName: 'cita-posventa-maintenance',\n matricula: faContent?.vehicle[0]?.plate,\n vehicleForCalculadora: getAppointmentVehicle(faContent?.vehicle[0]),\n kilometros: transformMillage(faContent?.vehicle[0]?.mileage),\n anoMatriculacion: faContent?.vehicle[0]?.plateDate,\n modelo: faContent?.vehicle[0]?.modelDescr,\n budget: { pvp: faContent?.quotePvp, operations: [...faContent?.quoteOperations] },\n };\n\n getDealers()\n .then(() => {\n renderForm({ ...fields });\n })\n .catch((err) => {\n renderForm({ ...fields }); // Hay que ver que hacer en estos casos.\n });\n }, [loading]);\n\n return <>;\n}\n","import { Breakpoints, BreakpointWrapper } from '@volkswagen-onehub/components-core';\nimport { CloseHandleV2, FocusLayerSizeV2, LayerManagerV2 } from '@volkswagen-onehub/layer-manager';\nimport React, { useCallback, useEffect, useRef, useState } from 'react';\nimport { useDispatch, useSelector, useStore } from 'react-redux';\nimport { AvailabilityErrorLayer } from 'src/components';\nimport {\n getSlots,\n isNull,\n LayerManagerWrapper,\n NewDealerCard,\n useFeatureAppConfig,\n useFeatureAppEnvironment,\n useMapGeneralController,\n weekDay_Day_Hour,\n} from 'src/feature-app';\nimport { LoadingLayer, ReservaCitaLayer } from 'src/forms/CitaPosventa/NuevaCitaPosventa';\nimport {\n Assessors,\n Availability,\n CalendarSlot,\n DealersData,\n DmsInfo,\n Horario,\n OneFormState,\n SelectedTab,\n Points,\n Steps,\n} from 'src/types';\nimport { CalendarioCita, getFirstAndLastDayOfMonth } from 'src/feature-app/CalendarioCita/';\nimport { useOneFormContext } from 'src/feature-app/OneForm';\nimport { useFeatureServices } from 'src/feature-app/hooks/use-feature-services';\nimport {\n getDistanceFromLatLngCenter,\n createNoDmsSlotAndAssessor,\n LayerDesktopView,\n LayerMobileView\n} from 'src/feature-app/NewMap';\nimport { getEarliestSlot, sortPointsByDistance } from 'src/feature-app/NewMap/sort-points';\nimport { useIsComerciales } from 'src/feature-app/hooks';\n\ninterface AvailabilityHistory {\n dealerkvps: string;\n availabilityHistory: AvailabilityHistoryDealer[];\n}\n\ninterface AvailabilityHistoryDealer {\n dealer: DmsInfo;\n from: number;\n to: number;\n availability: Availability;\n}\n\nexport const JourneyCitaPosventaController = () => {\n const { formData, formInfo, dealersInfo } = useSelector((state: OneFormState) => state);\n const { horario, dealer }: { horario?: Horario; dealer?: DealersData } = formData.fields;\n const { formEnded, showCalendarOnLoad } = formInfo;\n const { points, selectedDealer } = dealersInfo;\n const { handleNextStep, handleScreenChange, setIsFullScreen } = useOneFormContext();\n const layerManager = useFeatureServices()['layer-manager'] as LayerManagerV2;\n const store = useStore();\n const dispatch = useDispatch();\n const env = useFeatureAppEnvironment();\n const config = useFeatureAppConfig();\n const [showCalendar, setShowCalendar] = useState(false);\n // const [selectedPoint, handleSelectedPoint] = useState(null);\n const [loading, setLoading] = useState(false);\n const [preSelectedOrderValue, setPreSelectedOrderValue] = useState('ubicacion');\n const pointsByTimeRef = useRef(null);\n const pointsByDistanceRef = useRef(null);\n const isComerciales = useIsComerciales();\n\n const availabilityHistory = useRef([]);\n const loadingLayer = useRef(null);\n const {\n clusters,\n centerToCalculateDistance,\n superClusterRef,\n cardsDistanceRef,\n cardsTimeRef,\n selectedPoint,\n handleSelectedPoint,\n } = useMapGeneralController();\n\n const [pointsToList, setPointsToList] = useState(null);\n const [selectedSlot, setSelectedSlot] = useState(null);\n\n useEffect(() => {\n if ((formEnded && dealer && showCalendarOnLoad) || selectedDealer || showCalendarOnLoad) {\n const point = points.find((point: Points) => {\n if (point.properties.dealer.kvps === dealer?.kvps || point.properties.dealer.kvps === selectedDealer?.kvps) {\n return point;\n }\n });\n handleShowCalendarOnClick(point);\n }\n }, []);\n\n //\n // Este useEffect sustituye a los anteriores.\n //\n useEffect(() => {\n if (clusters && superClusterRef.current) {\n const pointsByDistance = sortPointsByDistance(\n clusters,\n centerToCalculateDistance.current,\n superClusterRef.current\n );\n pointsByDistanceRef.current = pointsByDistance;\n setPointsToList(pointsByDistance);\n }\n }, [clusters, superClusterRef.current]);\n\n const getAvailability = async (\n dealer: DealersData,\n start: number,\n end: number,\n skipHandleAvailability?: boolean\n ): Promise => {\n // if (!dealer.dmsInfo || !dealer.dmsInfo.dmsAvailable) {\n // return null;\n // }\n\n const cachedAvailability = checkIfAvailabilityIsInCache(dealer, start);\n\n if (cachedAvailability) {\n return cachedAvailability;\n } else {\n setLoading(true);\n const response = await getSlots(config, dealer, start, end);\n const availability = response.data;\n\n setLoading(false);\n if (!availability.content.calendar) {\n // Error desde VGED\n // handleAvailabilityErrorLayer();\n // Nuevo layer sin conexión DMS\n saveAvailabilityInCache(dealer, start, end, availability);\n return null;\n } else {\n saveAvailabilityInCache(dealer, start, end, availability);\n return availability;\n }\n }\n };\n\n const checkIfAvailabilityIsInCache = (dealer: DealersData, start: number): Availability | null => {\n const dealerHistory = availabilityHistory.current.find((a) => a.dealerkvps === dealer.kvps);\n\n if (dealerHistory) {\n const availabiliyDealer = dealerHistory.availabilityHistory.find(\n (dealerAv) => dealerAv.from === start || start < dealerAv.to\n );\n return availabiliyDealer ? availabiliyDealer.availability : null;\n }\n return null;\n };\n\n const getAvailabilityFromDealer = (kvps: string): AvailabilityHistory | null => {\n const dealerHistory = availabilityHistory.current.find((a) => a.dealerkvps === kvps);\n\n return dealerHistory ? dealerHistory : null;\n };\n\n const saveAvailabilityInCache = (dealer: DealersData, start: number, end: number, availability: Availability) => {\n const dealerInAvailability = availability.content.dealer;\n const availabilityHistoryDealer: AvailabilityHistoryDealer = {\n dealer: dealerInAvailability ? dealerInAvailability : dealer.dmsInfo,\n from: start,\n to: end,\n availability,\n };\n\n const dealerHistoryIndex = availabilityHistory.current.findIndex((a) => a.dealerkvps === dealer.kvps);\n // Si ya existe el dealer se añade a la array de availability.\n if (dealerHistoryIndex !== -1) {\n availabilityHistory.current[dealerHistoryIndex].availabilityHistory.push(availabilityHistoryDealer); // Testear\n } else {\n // Si no existe el dealer se crea una entrada en el histórico.\n availabilityHistory.current = [\n ...availabilityHistory.current,\n {\n dealerkvps: dealer.kvps,\n availabilityHistory: [availabilityHistoryDealer],\n },\n ];\n }\n };\n\n const getRandomInt = (max: number): number => {\n const min = 1;\n max = Math.floor(max);\n return Math.floor(Math.random() * (max - min + 1)) + min;\n };\n\n const handleDmsMapExit = (slot: CalendarSlot | CalendarSlot[], point: Points) => {\n const { dealer } = point.properties;\n const dealerAvailability = getAvailabilityFromDealer(dealer.kvps);\n if (dealerAvailability && dealerAvailability.availabilityHistory[0].dealer) {\n const dealerFromDms = dealerAvailability.availabilityHistory[0].dealer;\n dealer.dmsInfo = dealerFromDms;\n }\n const { assessors } = dealer.dmsInfo;\n\n let assessor: Assessors;\n // En ocasiones un mismo slot puede tener distintos asesores\n // por lo que hay que seleccionar uno de manera aleatoria.\n if (Array.isArray(slot)) {\n const max = slot.length;\n const index = getRandomInt(max) - 1;\n // slot = slot[selectedIndex];\n assessor = findAssessor(slot[index], assessors);\n } else {\n assessor = findAssessor(slot, assessors);\n }\n\n if (!assessor) {\n assessor = {\n code: 'Undefined',\n name: 'Todos',\n };\n }\n\n handleDealerFlags(dealer);\n\n dispatch({\n type: 'UPDATE_FIELDS',\n payload: { assessor, slot, dealer },\n });\n // setWaitForNextStep(false);\n if (!formEnded) {\n handleNextStep();\n }\n };\n\n const findAssessor = (slot: CalendarSlot, assessors: Assessors[]): Assessors => {\n return assessors.find((assessor) => {\n return assessor.name === slot.assessor || assessor.code === slot.assessorCode;\n });\n };\n\n const handleNoDmsMapExit = (franjaHoraria: string, day: string, point: Points) => {\n let { dealer } = point.properties;\n const dealerAvailability = getAvailabilityFromDealer(dealer.kvps);\n if (dealerAvailability && dealerAvailability.availabilityHistory[0].dealer) {\n const dealerFromDms = dealerAvailability.availabilityHistory[0].dealer;\n dealer.dmsInfo = dealerFromDms;\n }\n\n // Validamos que la cita a crear sea sin DMS mediante el flag dmsAvailable en false\n if(dealer && dealer.dmsInfo){\n dealer.dmsInfo.dmsAvailable = false;\n }\n\n const { slot, assessor } = createNoDmsSlotAndAssessor(franjaHoraria, day);\n\n handleDealerFlags(dealer);\n\n dispatch({\n type: 'UPDATE_FIELDS',\n payload: { slot, assessor, dealer },\n });\n\n if (!formEnded) {\n handleNextStep();\n }\n };\n\n const handleShowSlots = useCallback((point: Points): string | null => {\n const { slots } = point.properties?.dealer;\n let finalSlot;\n\n if (!isNull(slots)) {\n finalSlot = getFinalSlot(getEarliestSlot(slots));\n\n return finalSlot ? finalSlot : null;\n }\n\n return null;\n }, []);\n\n const getFinalSlot = (from: number) => {\n if (!from) {\n return null;\n }\n const momentSlot = weekDay_Day_Hour(from);\n const capitalizedSlot = momentSlot.charAt(0).toUpperCase() + momentSlot.slice(1);\n return capitalizedSlot.replace('-', ' a las ').concat('h');\n };\n\n const handleShowCalendarOnClick = useCallback(async (point: Points) => {\n const { firstDayOfMonth, lastDayOfMonth } = getFirstAndLastDayOfMonth();\n // if (point.properties.dealer.dmsInfo && point.properties.dealer.dmsInfo.dmsAvailable) {\n const availability = await getAvailability(point.properties.dealer, firstDayOfMonth, lastDayOfMonth);\n // if (availability && availability.content.calendar) {\n // handleSelectedPoint(point);\n // setShowCalendar(true);\n // }\n // } else {\n handleSelectedPoint(point);\n setShowCalendar(true);\n // }\n }, []);\n\n const handleHideCalendarOnClick = () => {\n handleSelectedPoint(null);\n setShowCalendar(false);\n };\n\n const handleDealerFlags = (dealer: DealersData) => {\n const { formInfo, formData } = store.getState();\n const { steps } = formInfo;\n const { initialSteps, formEnded }: { initialSteps: Steps[]; formEnded: boolean } = formInfo;\n const {\n cocheSustitucion,\n cocheAlTaller,\n dealer: pastDealer,\n }: {\n cocheSustitucion: 'true' | 'false';\n cocheAlTaller: 'true' | 'false';\n dealer: DealersData;\n } = formData.fields;\n let newSteps = [...steps];\n\n if (isComerciales) {\n return;\n }\n\n if (!dealer || !dealer.dmsInfo || !dealer.dmsInfo.pickupCarServiceAvailabe) {\n const tallerIndex = newSteps.findIndex((step) => step.name === 'CocheAlTaller');\n newSteps.splice(tallerIndex, 1);\n }\n\n if (!dealer || !dealer.dmsInfo || !dealer.dmsInfo.replacementCarServiceAvailable) {\n const sustitucionIndex = newSteps.findIndex((step) => step.name === 'CocheSustitucion');\n newSteps.splice(sustitucionIndex, 1);\n }\n\n const newStepsWithIndex = newSteps.map((step, index) => {\n step.screenIndex = index;\n return step;\n });\n\n // Pasamos de dealer sin dms a uno con dms después de llegar a la pantalla de confirmación y volvemos a atrás con editar.\n let newIndex: number;\n let newCocheAlTaller = cocheAlTaller;\n let newCocheSustitucion = cocheSustitucion;\n if (formEnded) {\n // dispatch({ type: 'UPDATE_FIELDS', payload: { cocheSustitucion: null, cocheAlTaller: null } });\n dispatch({ type: 'UPDATE_FORM_ENDED', payload: false });\n\n if (pastDealer.kvps !== dealer.kvps) {\n if (dealer.dmsInfo.pickupCarServiceAvailabe) {\n if (\n cocheAlTaller === 'false' &&\n pastDealer &&\n pastDealer.dmsInfo &&\n !pastDealer.dmsInfo.pickupCarServiceAvailabe\n ) {\n newIndex = newStepsWithIndex.findIndex((step) => step.name === 'CocheAlTaller');\n newCocheAlTaller = null;\n }\n }\n if (dealer.dmsInfo.replacementCarServiceAvailable) {\n if (\n cocheAlTaller === 'false' &&\n pastDealer &&\n pastDealer.dmsInfo &&\n !pastDealer.dmsInfo.replacementCarServiceAvailable\n ) {\n newIndex = newStepsWithIndex.findIndex((step) => step.name === 'CocheSustitucion');\n newCocheSustitucion = null;\n }\n }\n }\n }\n\n dispatch({ type: 'UPDATE_STEPS', payload: newStepsWithIndex });\n dispatch({\n type: 'UPDATE_LAST_STEP',\n payload: newStepsWithIndex[newStepsWithIndex.length - 1],\n });\n dispatch({\n type: 'SET_NUMBER_OF_SCREENS',\n payload: newStepsWithIndex.length,\n });\n // Solo se llega a esta parte después de finalizar el journey y volver al mapa para editar la concesión.\n if (formEnded) {\n newIndex = newIndex ? newIndex : newStepsWithIndex.length - 1;\n dispatch({\n type: 'UPDATE_FIELDS',\n payload: {\n cocheSustitucion: newCocheSustitucion,\n cocheAlTaller: newCocheAlTaller,\n },\n });\n\n dispatch({\n type: 'UPDATE_STEP',\n payload: newStepsWithIndex[newIndex],\n });\n handleScreenChange(newIndex);\n if (newStepsWithIndex[newIndex].name !== 'Confirmacion') {\n dispatch({ type: 'UPDATE_FULLSCREEN', payload: false });\n setIsFullScreen(false);\n }\n }\n };\n\n const renderCalendar = (): JSX.Element => {\n const { centerToCalculateDistance, userIsGeoLocated } = useMapGeneralController();\n\n return (\n \n );\n };\n\n const renderPoints = (\n points: Points[],\n carPickupSelected?: boolean,\n replacementCarSelected?: boolean\n ): JSX.Element[] => {\n return pointsByDistanceRef.current\n ? pointsByDistanceRef.current.map((point: Points, index: number) => {\n if (!point.properties.cluster) {\n const { dealer } = point.properties;\n const distanceFromCenter = getDistanceFromLatLngCenter(centerToCalculateDistance.current, point);\n\n return (\n {\n cardsDistanceRef.current[index] = el;\n }}\n >\n \n \n );\n }\n return null;\n })\n : null;\n };\n\n // Gestión del point seleccionado y del boton de seleccionar (dms)\n const handleSeleccionarOnClick = useCallback((point: any) => {\n handleSelectedPoint(point);\n handleReservaCitaLayer(point);\n }, []);\n\n //render layers reservar cita\n const renderReservaCita = (state: any, close: CloseHandleV2) => {\n return (\n \n \n \n );\n };\n\n const renderAvailabilityErrorLayer = (state: any, close: CloseHandleV2) => {\n return (\n \n \n \n );\n };\n const renderLoadingLayer = () => {\n return (\n \n \n \n );\n };\n\n //manejadores layers\n const handleReservaCitaLayer = (point: Points) => {\n layerManager.openFocusLayer(renderReservaCita, { selectedPoint: point }, { size: FocusLayerSizeV2.A });\n };\n const handleAvailabilityErrorLayer = () => {\n layerManager.openFocusLayer(renderAvailabilityErrorLayer, {}, { size: FocusLayerSizeV2.A });\n };\n\n const handleLoadingLayer = () => {\n if (loading) {\n const layer = layerManager.openFocusLayer(renderLoadingLayer, {}, { size: FocusLayerSizeV2.A });\n loadingLayer.current = layer;\n } else {\n if (loadingLayer.current) {\n loadingLayer.current.close();\n loadingLayer.current = null;\n }\n }\n };\n\n useEffect(() => {\n handleLoadingLayer();\n }, [loading]);\n\n // availability functions\n\n return (\n
\n <>\n \n \n \n\n \n \n \n \n
\n );\n};\n","import { CloseHandleV2, FocusLayerSizeV2, LayerManagerV2 } from '@volkswagen-onehub/layer-manager';\nimport { AxiosResponse } from 'axios';\nimport React, { useCallback, useEffect, useRef, useState } from 'react';\nimport { useDispatch, useSelector, useStore } from 'react-redux';\nimport { AvailabilityErrorLayer } from 'src/components';\nimport {\n getSlots,\n LayerManagerWrapper,\n useFeatureAppConfig,\n useFeatureAppEnvironment,\n useMapGeneralController,\n} from 'src/feature-app';\nimport { useFeatureServices } from 'src/feature-app/hooks/use-feature-services';\nimport { LoadingLayer } from 'src/forms/CitaPosventa/NuevaCitaPosventa';\nimport {\n Assessors,\n Availability,\n CalendarSlot,\n DealersData,\n DmsInfo,\n Horario,\n OneFormState,\n Points,\n} from 'src/types';\nimport { createNoDmsSlotAndAssessor } from 'src/feature-app/NewMap';\nimport { CalendarioCita } from 'src/feature-app/CalendarioCita';\nimport { useOneFormContext } from 'src/feature-app/OneForm';\n\ninterface AvailabilityHistory {\n dealerkvps: string;\n availabilityHistory: AvailabilityHistoryDealer[];\n}\n\ninterface AvailabilityHistoryDealer {\n dealer: DmsInfo;\n from: number;\n to: number;\n availability: Availability;\n}\n\n\n\n\n\nexport const JourneyCitaPosventaDealerController = () => {\n const { formData, formInfo, dealersInfo } = useSelector((state: OneFormState) => state);\n const { horario, dealer, dealerKvps }: { horario?: Horario; dealer?: DealersData; dealerKvps?: string } =\n formData.fields;\n const { points } = dealersInfo;\n const { handleNextStep } = useOneFormContext();\n const layerManager = useFeatureServices()['layer-manager'] as LayerManagerV2;\n const store = useStore();\n const dispatch = useDispatch();\n const env = useFeatureAppEnvironment();\n const config = useFeatureAppConfig();\n const [showCalendar, setShowCalendar] = useState(false);\n // const [selectedPoint, handleSelectedPoint] = useState(null);\n const [loading, setLoading] = useState(false);\n const [loadingPoint, setLoadingPoint] = useState(true);\n\n const availabilityHistory = useRef([]);\n const loadingLayer = useRef(null);\n const { selectedPoint, handleSelectedPoint } =\n useMapGeneralController();\n\n const [pointsToList, setPointsToList] = useState(null);\n const [selectedSlot, setSelectedSlot] = useState(null);\n\n useEffect(() => {\n setLoadingPoint(true);\n // setTimeout(() => {\n const point = points.find((point: Points) => {\n if (point.properties.dealer.kvps === dealer?.kvps || point.properties.dealer.kvps === dealerKvps) {\n return point;\n }\n });\n // handleShowCalendarOnClick(point);\n setLoadingPoint(false);\n // }, 0);\n }, []);\n\n\n const getAvailability = async (\n dealer: DealersData,\n start: number,\n end: number,\n skipHandleAvailability?: boolean\n ): Promise => {\n \n const cachedAvailability = checkIfAvailabilityIsInCache(dealer, start);\n\n if (cachedAvailability) {\n return cachedAvailability;\n } else {\n setLoading(true);\n let response: AxiosResponse;\n if (availabilityHistory.current.length === 0) {\n \n response = await getSlots(config, dealer);\n } else {\n response = await getSlots(config, dealer, start, end);\n }\n const availability = response.data;\n setLoading(false);\n if (!availability.content.calendar) {\n // Error desde VGED\n // handleAvailabilityErrorLayer();\n // Nuevo layer sin conexión DMS\n saveAvailabilityInCache(dealer, start, end, availability);\n return null;\n } else {\n saveAvailabilityInCache(dealer, start, end, availability);\n return availability;\n }\n }\n };\n\n const checkIfAvailabilityIsInCache = (dealer: DealersData, start: number): Availability | null => {\n const dealerHistory = availabilityHistory.current.find((a) => a.dealerkvps === dealer.kvps);\n\n if (dealerHistory) {\n const availabiliyDealer = dealerHistory.availabilityHistory.find(\n (dealerAv) => dealerAv.from === start || start <= dealerAv.to || Math.abs(start - dealerAv.to) < 1000 // Cuando compara dos valores practicamente identicos no hace bien la resta y devuelve error.\n );\n return availabiliyDealer ? availabiliyDealer.availability : null;\n }\n return null;\n };\n\n const getAvailabilityFromDealer = (kvps: string): AvailabilityHistory | null => {\n const dealerHistory = availabilityHistory.current.find((a) => a.dealerkvps === kvps);\n\n return dealerHistory ? dealerHistory : null;\n };\n\n const saveAvailabilityInCache = (dealer: DealersData, start: number, end: number, availability: Availability) => {\n const dealerInAvailability = availability.content.dealer;\n const availabilityHistoryDealer: AvailabilityHistoryDealer = {\n dealer: dealerInAvailability ? dealerInAvailability : dealer.dmsInfo,\n from: start,\n to: end,\n availability,\n };\n\n const dealerHistoryIndex = availabilityHistory.current.findIndex((a) => a.dealerkvps === dealer.kvps);\n // Si ya existe el dealer se añade a la array de availability.\n if (dealerHistoryIndex !== -1) {\n availabilityHistory.current[dealerHistoryIndex].availabilityHistory.push(availabilityHistoryDealer); // Testear\n } else {\n // Si no existe el dealer se crea una entrada en el histórico.\n availabilityHistory.current = [\n ...availabilityHistory.current,\n { dealerkvps: dealer.kvps, availabilityHistory: [availabilityHistoryDealer] },\n ];\n }\n };\n\n const getRandomInt = (max: number): number => {\n const min = 1;\n max = Math.floor(max);\n return Math.floor(Math.random() * (max - min + 1)) + min;\n };\n\n const handleDmsMapExit = (slot: CalendarSlot | CalendarSlot[], point: Points) => {\n const { dealer } = point.properties;\n const dealerAvailability = getAvailabilityFromDealer(dealer.kvps);\n if (dealerAvailability && dealerAvailability.availabilityHistory[0].dealer) {\n const dealerFromDms = dealerAvailability.availabilityHistory[0].dealer;\n dealer.dmsInfo = dealerFromDms;\n }\n const { assessors } = dealer.dmsInfo;\n let assessor: Assessors;\n // En ocasiones un mismo slot puede tener distintos asesores\n // por lo que hay que seleccionar uno de manera aleatoria.\n if (Array.isArray(slot)) {\n const max = slot.length;\n const index = getRandomInt(max) - 1;\n // slot = slot[selectedIndex];\n assessor = findAssessor(slot[index], assessors);\n } else {\n assessor = findAssessor(slot, assessors);\n }\n\n if (!assessor) {\n assessor = {\n code: 'Undefined',\n name: 'Todos',\n };\n }\n\n const appointmentDealer = createAppointmentDealer(dealer);\n\n dispatch({\n type: 'UPDATE_FIELDS',\n payload: { assessor, slot, dealer, appointmentDealer },\n });\n // setWaitForNextStep(false);\n handleNextStep();\n };\n\n const findAssessor = (slot: CalendarSlot, assessors: Assessors[]): Assessors => {\n return assessors.find((assessor) => {\n return assessor.name === slot.assessor || assessor.code === slot.assessorCode;\n });\n };\n\n const createAppointmentDealer = (dealer: DealersData) => {\n const { markerInfo, dmsInfo } = dealer;\n\n return {\n assessors: dmsInfo.assessors ? [...dmsInfo.assessors] : undefined,\n dealerId: dmsInfo.dealerId ? { ...dmsInfo.dealerId } : { ...markerInfo.dealerInfo.dealerId },\n dmsAvailable: dmsInfo.dmsAvailable ? dmsInfo.dmsAvailable : false,\n email: dmsInfo.email ? dmsInfo.email : markerInfo.dealerInfo.mail,\n name: dmsInfo.name ? dmsInfo.name : markerInfo.dealerInfo.name,\n phone: dmsInfo.phone ? dmsInfo.phone : markerInfo.dealerInfo.phone,\n overhaulingServiceAvialable: dmsInfo.overhaulingServiceAvialable ? dmsInfo.overhaulingServiceAvialable : false,\n pickupCarServiceAvailabe: dmsInfo.pickupCarServiceAvailabe ? dmsInfo.pickupCarServiceAvailabe : false,\n replacementCarServiceAvailable: dmsInfo.replacementCarServiceAvailable\n ? dmsInfo.replacementCarServiceAvailable\n : false,\n reference: dmsInfo.reference,\n };\n };\n\n const handleNoDmsMapExit = (franjaHoraria: string, day: string, point: Points) => {\n let { dealer } = point.properties;\n const { slot, assessor } = createNoDmsSlotAndAssessor(franjaHoraria, day);\n\n dealer = {\n ...dealer,\n dmsInfo: {\n ...dealer.dmsInfo,\n dmsAvailable: false,\n pickupCarServiceAvailabe: false,\n replacementCarServiceAvailable: false,\n overhaulingServiceAvialable: false,\n },\n };\n\n const appointmentDealer = createAppointmentDealer(dealer);\n\n dispatch({\n type: 'UPDATE_FIELDS',\n payload: { slot, assessor, dealer, appointmentDealer },\n });\n\n handleNextStep();\n };\n\n const handleHideCalendarOnClick = () => {\n handleSelectedPoint(null);\n setShowCalendar(false);\n };\n\n const renderCalendar = (): JSX.Element => {\n const { centerToCalculateDistance, userIsGeoLocated } = useMapGeneralController();\n\n return (\n \n );\n };\n\n const renderAvailabilityErrorLayer = (state: any, close: CloseHandleV2) => {\n return (\n \n \n \n );\n };\n const renderLoadingLayer = () => {\n return (\n \n \n \n );\n };\n\n //manejadores layers\n\n const handleLoadingLayer = () => {\n if (loading) {\n const layer = layerManager.openFocusLayer(renderLoadingLayer, {}, { size: FocusLayerSizeV2.A });\n loadingLayer.current = layer;\n } else {\n if (loadingLayer.current) {\n loadingLayer.current.close();\n loadingLayer.current = null;\n }\n }\n };\n\n useEffect(() => {\n handleLoadingLayer();\n }, [loading]);\n\n return !loadingPoint ? renderCalendar() : null;\n};\n","import React from 'react';\nimport { JourneyCitaPosventaDealerController } from './JourneyCitaPosventaDealerController';\nimport { MapGeneralController } from 'src/feature-app/NewMap/MapGeneralController';\n\n/**\n * Este componente está creado únicamente para que JourneyCitaPosventaController tenga acceso a las variables de MapGeneralController.\n */\nexport const JourneyCitaPosventaDealerWrapper = () => {\n return (\n \n \n \n );\n};\n","import React from 'react';\nimport { JourneyCitaPosventaController } from 'src/forms/CitaPosventa';\nimport { MapGeneralController } from 'src/feature-app/NewMap/MapGeneralController';\n\n/**\n * Este componente está creado únicamente para que JourneyCitaPosventaController tenga acceso a las variables de MapGeneralController.\n */\nexport const JourneyCitaPosventaWrapper = () => {\n return (\n \n \n \n );\n};\n","import { styled, Text } from '@volkswagen-onehub/components-core';\nimport React, { useEffect, useState } from 'react';\nimport { useDispatch, useSelector, useStore } from 'react-redux';\nimport { useOneFormContext } from 'src/feature-app';\nimport { RenderController } from 'src/feature-app/Screen';\nimport LoadScriptInstance from 'src/feature-app/NewMap/Loadscript';\nimport { LocateUser } from 'src/forms/CitaPosventa/NuevaCitaPosventa';\nimport { TIME_FOR_TRANSFORM } from 'src/globals';\nimport { DealersData, OneFormState, Steps } from 'src/types';\nimport { updateMapVariables } from 'src/feature-app/';\nimport { JourneyCitaPosventaWrapper } from 'src/forms/CitaPosventa/MapaCita/JourneyCitaPosventaWrapper';\n\nexport enum MapaCitaSteps {\n Dealer,\n SeleccionCita,\n Horario,\n}\n\ninterface MapaCitaProps {\n showHorario?: boolean;\n formName?: string;\n}\n\nconst SaltoDeLinea = styled.div`\n display: none;\n @media all and (min-width: 736px) {\n display: inline;\n }\n`;\n\nconst isLastScreen = (steps: Steps[], multiStepScreenIndex: number) => steps.length - 1 === multiStepScreenIndex;\nconst isFirstScreen = (multiStepScreenIndex: number) => multiStepScreenIndex === 0;\n\nexport function NewMapaCita(props: MapaCitaProps) {\n const { formName, showHorario } = props;\n const dispatch = useDispatch();\n const store = useStore();\n const { formData, formInfo, dealersInfo } = useSelector((state: OneFormState) => state);\n const { dealer }: { dealer?: DealersData } = formData.fields;\n const { selectedDealer } = dealersInfo;\n const { firstMapLoad, multiStepScreenIndex, navigationMovingForward } = formInfo;\n\n const {\n handleScreenChange,\n setNextMultiStep,\n setNextMultiStepScreenIndex,\n setPreviousMultiStep,\n setWaitForPreviousStep,\n waitForPreviousStep,\n setIsFullScreen,\n setShowPreviousStep,\n } = useOneFormContext();\n\n const steps: Steps[] = [\n {\n title: (\n \n Bien, empecemos con los detalles de tu visita.{' '}\n \n
\n
\n \n ¿A dónde quieres llevar tu{' '}\n \n coche?*\n \n \n
\n ),\n fields: ,\n screenIndex: MapaCitaSteps.Dealer,\n name: 'MapSearch',\n outputs: ['location'],\n outputsText: ['location'],\n showOverflow: true,\n },\n {\n screenIndex: MapaCitaSteps.SeleccionCita,\n name: 'MapSelect',\n alternateTitle: (\n \n Esta es la cita que has elegido\n \n ),\n title: <>,\n fields: ,\n outputs: ['slot.from', 'dealer.name'],\n outputsText: ['slot.from', 'en el taller', 'dealer.name'],\n fullScreen: true,\n multiStepLastScreen: true,\n hidePreviousStep: true,\n },\n ];\n\n const [selectedStep, setSelectedStep] = useState(steps[0]);\n\n /**\n * Hay que esperar a que se cree el mapa de google para tener acceso a window.google\n */\n const onMapLoad = () => {\n handleFirstLoad();\n };\n\n //\n //\n //\n // Falta añadir la parte del dealer precargado\n //\n //\n //\n const handleFirstLoad = async () => {\n if (firstMapLoad) {\n // Inicialización\n if (dealer) {\n initializeMultiStep(dealer);\n return;\n } else if (selectedDealer) {\n initializeMultiStep(selectedDealer);\n return;\n } else {\n initializeMultiStep();\n }\n } else {\n if (navigationMovingForward || navigationMovingForward === null || navigationMovingForward === undefined) {\n // Inicialización cuando se va hacia adelante una vez inicializado el mapa o después de cerrar el layer y abrir en el mapa.\n initializeMultiStep();\n } else {\n // En caso de que estemos en la última pantalla, desactivamos el wait for next step.\n const newWaitForNextStep = !isLastScreen(steps, multiStepScreenIndex);\n // Lo mismo para previous, solo le desactivamos si estamos en la primera.\n const newWaitForPreviousStep = !isFirstScreen(multiStepScreenIndex);\n\n updateWaitForNextAndPreviousStep(newWaitForNextStep, newWaitForPreviousStep);\n updateScreenChangeVariables(multiStepScreenIndex);\n\n timeoutPreviousStep();\n // En caso de volver al mapa con el cta de editar en confirmación se muestra el previous step, por lo que añadimos este timeout para asegurarnos de que no se muestra.\n timeoutPreviousStep(1000);\n }\n }\n dispatch({ type: 'UPDATE_FIELDS', payload: { horario: 'before' } }); // Al eliminar la pantalla de horario seleccionamos por defecto \"before\" para preseleccionar el primer slot disponible.\n\n setNextMultiStep(() => nextMapaCita);\n setPreviousMultiStep(() => previousMapaCita);\n };\n\n const initializeMultiStep = async (dealer?: DealersData) => {\n if (dealer) {\n await updateMapVariables(dispatch, dealer);\n updateWaitForNextAndPreviousStep(false, true);\n updateScreenChangeVariables(steps.length - 1);\n timeoutPreviousStep();\n } else {\n updateWaitForNextAndPreviousStep(true, false);\n updateScreenChangeVariables(0);\n }\n };\n\n const updateWaitForNextAndPreviousStep = (waitForNextStep: boolean, waitForPreviousStep: boolean) => {\n if (waitForNextStep !== null) {\n dispatch({ type: 'UPDATE_WAIT_FOR_NEXT_STEP', payload: waitForNextStep });\n }\n if (waitForPreviousStep !== null) {\n setWaitForPreviousStep(waitForPreviousStep);\n }\n };\n\n const nextMapaCita = () => {\n const { multiStepScreenIndex } = store.getState().formInfo;\n\n handleScreenChange();\n\n // Una vez avanzamos dentro de los multisteps se activa el wait\n // previous step para volver hacia atrás dentro del propio multistep.\n if (!waitForPreviousStep || multiStepScreenIndex === 0) {\n updateWaitForNextAndPreviousStep(null, true);\n }\n\n setTimeout(() => {\n updateScreenChangeVariables(multiStepScreenIndex + 1);\n // Si estamos en el último paso del multistep se desactiva el\n // wait next step para poder salir del multistep y avanzar hacia la siguiente pantalla.\n if (steps[multiStepScreenIndex + 1].multiStepLastScreen) {\n updateWaitForNextAndPreviousStep(false, null);\n if(multiStepScreenIndex === 0) {\n setShowPreviousStep(false);\n } else {\n setShowPreviousStep(true);\n } \n }\n }, TIME_FOR_TRANSFORM);\n };\n\n const previousMapaCita = () => {\n const { multiStepScreenIndex, waitForNextStep } = store.getState().formInfo;\n\n handleScreenChange();\n\n // Se desactiva el wait previous step en la segunda pantalla para que\n // en el caso de volver hacia atrás en la primera salte de step y no busque dentro de los multisteps.\n if (multiStepScreenIndex === 1) {\n updateWaitForNextAndPreviousStep(null, false);\n }\n\n if (!waitForNextStep) {\n updateWaitForNextAndPreviousStep(true, null);\n }\n\n // Se fija en la pantalla previa a la primera para que cuando se cambie\n // a la primera pantalla el CTA de anterior pase del multistep al step anterior.\n setTimeout(() => {\n updateScreenChangeVariables(multiStepScreenIndex - 1);\n }, TIME_FOR_TRANSFORM);\n };\n\n /**\n * En algunas ocasiones no funciona correctamente el setShowPreviousStep(false) por lo que conviene aplicar un timeout.\n */\n const timeoutPreviousStep = (ms?: number) => {\n setTimeout(\n () => {\n setShowPreviousStep(false);\n },\n ms ? ms : TIME_FOR_TRANSFORM\n );\n };\n\n const updateScreenChangeVariables = (newMultiStepScreenIndex: number) => {\n setNextMultiStepScreenIndex(newMultiStepScreenIndex);\n dispatch({ type: 'UPDATE_MULTISTEP_SCREENINDEX', payload: newMultiStepScreenIndex });\n setSelectedStep(steps[newMultiStepScreenIndex]);\n setIsFullScreen(steps[newMultiStepScreenIndex].fullScreen);\n setShowPreviousStep(!steps[newMultiStepScreenIndex].hidePreviousStep);\n };\n\n useEffect(() => {\n dispatch({ type: 'UPDATE_MULTISTEPS', payload: steps });\n\n handleFirstLoad();\n\n return () => {\n dispatch({ type: 'UPDATE_FIRST_MAP_LOAD', payload: false });\n setShowPreviousStep(true);\n updateWaitForNextAndPreviousStep(false, false);\n };\n }, []);\n\n return (\n \n \n \n );\n}\n","import { Text } from '@volkswagen-onehub/components-core';\nimport React, { useEffect, useState } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { useOneFormContext } from 'src/feature-app';\nimport { RenderController } from 'src/feature-app/Screen';\nimport { TIME_FOR_TRANSFORM } from 'src/globals';\nimport { DealersData, OneFormState, Steps } from 'src/types';\nimport { updateMapVariables } from 'src/feature-app/';\nimport { MapaCitaSteps } from 'src/forms/CitaPosventa/MapaCita/MapaCita';\nimport { JourneyCitaPosventaDealerWrapper } from 'src/forms/CitaPosventa/MapaCita/JourneyCitaPosventaDealerWrapper';\n\ninterface MapaCitaProps {\n showHorario?: boolean;\n formName?: string;\n}\n\nexport function MapaCitaDealer(props: MapaCitaProps) {\n const dispatch = useDispatch();\n const { formData, dealersInfo } = useSelector((state: OneFormState) => state);\n const { selectedDealer, urlDealer } = dealersInfo;\n\n const { dealer }: { dealer?: DealersData } = formData.fields;\n\n const {\n handleScreenChange,\n setNextMultiStep,\n setNextMultiStepScreenIndex,\n setPreviousMultiStep,\n setWaitForPreviousStep,\n setIsFullScreen,\n setShowPreviousStep,\n } = useOneFormContext();\n\n const steps: Steps[] = [\n {\n screenIndex: 0,\n name: 'MapSelect',\n alternateTitle: (\n \n Esta es la cita que has elegido\n \n ),\n title: <>,\n fields: ,\n outputs: ['slot.from', 'dealer.name'],\n outputsText: ['slot.from', 'en el taller', 'dealer.name'],\n fullScreen: true,\n multiStepLastScreen: true,\n hidePreviousStep: true,\n },\n ];\n\n const [selectedStep, setSelectedStep] = useState(steps[0]);\n\n const handleFirstLoad = async () => {\n if (urlDealer) {\n initializeMultiStep(urlDealer);\n return;\n } else if (selectedDealer) {\n initializeMultiStep(selectedDealer);\n return;\n } else {\n initializeMultiStep();\n }\n\n setNextMultiStep(() => navigateMultiStep);\n setPreviousMultiStep(() => navigateMultiStep);\n };\n\n const initializeMultiStep = async (dealer?: DealersData) => {\n if (dealer) {\n dispatch({ type: 'UPDATE_MULTISTEP_SCREENINDEX', payload: 0 });\n await updateMapVariables(dispatch, dealer);\n updateScreenChangeVariables(0);\n updateWaitForNextAndPreviousStep(false, false);\n timeoutPreviousStep();\n }\n };\n\n const updateWaitForNextAndPreviousStep = (waitForNextStep: boolean, waitForPreviousStep: boolean) => {\n if (waitForNextStep !== null) {\n dispatch({ type: 'UPDATE_WAIT_FOR_NEXT_STEP', payload: waitForNextStep });\n }\n if (waitForPreviousStep !== null) {\n setWaitForPreviousStep(waitForPreviousStep);\n }\n };\n\n const navigateMultiStep = () => {\n handleScreenChange();\n };\n\n /**\n * En algunas ocasiones no funciona correctamente el setShowPreviousStep(false) por lo que conviene aplicar un timeout.\n */\n const timeoutPreviousStep = (ms?: number) => {\n setTimeout(\n () => {\n setShowPreviousStep(false);\n },\n ms ? ms : TIME_FOR_TRANSFORM\n );\n };\n\n const updateScreenChangeVariables = (newMultiStepScreenIndex: number) => {\n setIsFullScreen(true);\n dispatch({ type: 'UPDATE_FULLSCREEN', payload: true });\n setNextMultiStepScreenIndex(newMultiStepScreenIndex);\n dispatch({ type: 'UPDATE_MULTISTEP_SCREENINDEX', payload: newMultiStepScreenIndex });\n setSelectedStep(steps[newMultiStepScreenIndex]);\n setShowPreviousStep(false);\n };\n\n useEffect(() => {\n dispatch({ type: 'UPDATE_MULTISTEPS', payload: steps });\n handleFirstLoad();\n\n return () => {\n dispatch({ type: 'UPDATE_FIRST_MAP_LOAD', payload: false });\n setShowPreviousStep(true);\n updateWaitForNextAndPreviousStep(false, false);\n };\n }, []);\n\n return (\n \n );\n}\n","import {\n Breakpoints,\n BreakpointWrapper,\n Container,\n ContainerGutter,\n ContainerPadding,\n CTA,\n Spinner,\n styled,\n Text,\n TextAlignment,\n TokenTextAppearance,\n} from '@volkswagen-onehub/components-core';\nimport { Alert } from 'src/icons-core-imports';\n\nimport { CloseHandleV2 } from '@volkswagen-onehub/layer-manager';\nimport React, { useEffect, useState, useCallback } from 'react';\nimport { useDispatch, useStore } from 'react-redux';\nimport { Store } from 'redux';\nimport {\n createNoDmsSlotAndAssessor,\n getFranjaAndDayFrom,\n weekDay_DayNumber_De_Month,\n useFeatureAppConfig,\n weekDay_Day_Hour,\n} from 'src/feature-app';\nimport { DealersData, OneFormState, Slot, Horario } from 'src/types';\n\nconst Content = styled.div`\n background-color: white;\n padding: 44px 31px;\n flex: auto;\n text-align: center;\n width: 100%;\n @media screen and (min-width: 560px) {\n padding: 52px 46px;\n }\n @media screen and (min-width: 960px) {\n padding: var(--size-grid001);\n }\n`;\n\nconst CTAWrapper = styled.div`\n display: flex;\n flex-wrap: wrap;\n text-align: left;\n > div {\n text-align: left;\n }\n > button {\n @media screen and (min-width: 560px) {\n width: auto;\n }\n }\n`;\n\ninterface InvalidFormProps {\n notSavedField?: string;\n closeLayerCallback?: CloseHandleV2;\n}\n\nexport function InvalidForm(props: InvalidFormProps) {\n const { notSavedField, closeLayerCallback } = props;\n return (\n \n \n ¿Quieres conservar estos últimos cambios?\n \n \n \n Si es así, necesitamos que guardes los cambios que has hecho {notSavedField} antes de confirmar tu cita.\n \n \n {\n e.preventDefault();\n closeLayerCallback({}, {}, {});\n }}\n stretchContent\n >\n Entendido\n \n \n \n \n );\n}\n\ninterface loadingSreenProps {\n isleads?: boolean;\n copy?: string;\n}\n\nexport function LoadingScreen(props: loadingSreenProps) {\n return (\n \n \n {props.copy ? {props.copy} : Enviando tu petición}\n \n );\n}\n\ninterface KoScreenProps {\n retrySubmit: (e: any) => void;\n closeLayerCallback?: CloseHandleV2;\n title?:string;\n bodyCopy?:string;\n isLEM?: boolean;\n hideSecondCTA?: boolean;\n}\n\nexport function KoScreen(props: KoScreenProps) {\n const { retrySubmit, closeLayerCallback, title, bodyCopy, isLEM, hideSecondCTA } = props;\n\n return (\n \n \n
\n \n
\n \n {title? title : 'Uy, algo ha pasado'}\n \n \n \n {bodyCopy? bodyCopy : 'Por alguna razón no hemos podido recoger tus datos. ¿Lo intentamos de nuevo?'}\n \n \n \n \n {\n e.preventDefault();\n retrySubmit(e);\n closeLayerCallback({}, {}, {});\n }}\n stretchContent\n >\n Reintentar\n \n { hideSecondCTA ? null :\n isLEM ? (\n \n Ir a la web\n \n ) : (\n {\n e.preventDefault();\n closeLayerCallback({}, {}, {});\n }}\n stretchContent\n >\n Seguir navegando\n \n )\n }\n \n \n \n \n {\n e.preventDefault();\n retrySubmit(e);\n closeLayerCallback({}, {}, {});\n }}\n >\n Reintentar\n \n { hideSecondCTA ? null :\n isLEM ? (\n
\n \n Ir a la web\n \n
\n ) : (\n
\n {\n e.preventDefault();\n closeLayerCallback({}, {}, {});\n }}\n >\n Seguir navegando\n \n
\n )\n }\n
\n
\n \n \n \n
\n );\n}\n\ninterface IntermitenciaDMSKoProps {\n retrySubmit: (e: any) => void;\n closeLayerCallback?: CloseHandleV2;\n}\n\nexport function IntermitenciaDMSKo(props: IntermitenciaDMSKoProps) {\n const { retrySubmit, closeLayerCallback } = props;\n const [dmsFailed, setDmsFailed] = useState(false);\n const store: Store = useStore();\n const dispatch = useDispatch();\n const config = useFeatureAppConfig();\n\n const [day, setDay] = useState(null);\n const [franjaHoraria, setFranjaHoraria] = useState(null);\n const [name, setName] = useState(null);\n const [selectedPoint, setSelectedPoint] = useState(null);\n const { horario }: { horario?: Horario } = store.getState().formData.fields;\n\n useEffect(() => {\n const { sendDmsFailed } = store.getState().formInfo;\n let { slot, dealer }: { slot?: Slot; dealer?: DealersData } = store.getState().formData.fields;\n\n setDmsFailed(sendDmsFailed);\n const { franjaHoraria } = getFranjaAndDayFrom(slot.from);\n\n setDay(weekDay_DayNumber_De_Month(slot.from));\n setFranjaHoraria(franjaHoraria.toLowerCase());\n setName(dealer.name);\n setSelectedPoint(slot);\n }, []);\n\n const handleShowSlots = useCallback((): string | null => {\n let { slot }: { slot?: Slot } = store.getState().formData.fields;\n\n const finalSlot = getFinalSlot(slot.from);\n\n return finalSlot ? finalSlot : null;\n }, []);\n\n const getFinalSlot = (from: number) => {\n const momentSlot = weekDay_Day_Hour(from);\n const capitalizedSlot = momentSlot.charAt(0).toUpperCase() + momentSlot.slice(1);\n return capitalizedSlot.replace('-', ' a las ').concat('h');\n };\n\n const createNoDmsSlot = async (e: any) => {\n let { slot, dealer }: { slot?: Slot; dealer?: DealersData } = store.getState().formData.fields;\n dealer = {\n ...dealer,\n dmsInfo: {\n ...dealer.dmsInfo,\n dmsAvailable: false,\n },\n };\n const { franjaHoraria, day } = getFranjaAndDayFrom(slot.from);\n const { slot: newSlot, assessor } = createNoDmsSlotAndAssessor(franjaHoraria, day);\n dispatch({ type: 'UPDATE_FIELDS', payload: { slot: newSlot, assessor, dealer } });\n\n retrySubmit(e);\n };\n return (\n \n \n \n No hemos podido confirmar tu cita para el{' '}\n {handleShowSlots()}\n \n \n \n ¿Quieres que {name} se ponga en contacto contigo para\n cerrar tu cita el {day} por la {franjaHoraria}?\n \n \n {\n e.preventDefault();\n await createNoDmsSlot(e);\n closeLayerCallback({}, {}, {});\n }}\n stretchContent\n >\n Consultar con mi taller\n \n {\n config.trigger === 'cita-posventa-dealer' ? null : (\n
\n {\n e.preventDefault();\n closeLayerCallback({}, {}, {});\n }}\n stretchContent\n >\n Buscar una nueva cita\n \n
\n )\n }\n
\n \n \n
\n );\n}\n","import * as React from 'react';\nexport var ChevronUp = React.forwardRef(Object.assign(function (props, forwardRef) {\n var variant = props.variant || \"default\";\n if (variant === \"default\") {\n return React.createElement(\"svg\", { className: props.className, \"aria-hidden\": props.ariaHidden, role: props.ariaHidden ? undefined : \"img\", tabIndex: props.tabIndex, \"aria-label\": props.ariaLabel, ref: forwardRef, width: \"24\", height: \"24\", viewBox: \"0 0 24 24\", xmlns: \"http://www.w3.org/2000/svg\", fill: \"currentColor\" },\n props.title && React.createElement(\"title\", null, props.title),\n React.createElement(\"path\", { d: \"M22.016 17.708 12.55 7.814c-.28-.298-.418-.397-.551-.397-.145 0-.31.114-.572.393l-9.443 9.897-.962-.918 9.439-9.893A2.108 2.108 0 0 1 12 6.086a2.083 2.083 0 0 1 1.517.813l9.46 9.89z\" }));\n }\n if (variant === \"large\") {\n return React.createElement(\"svg\", { className: props.className, \"aria-hidden\": props.ariaHidden, role: props.ariaHidden ? undefined : \"img\", tabIndex: props.tabIndex, \"aria-label\": props.ariaLabel, ref: forwardRef, width: \"48\", height: \"48\", viewBox: \"0 0 48 48\", xmlns: \"http://www.w3.org/2000/svg\", fill: \"currentColor\" },\n props.title && React.createElement(\"title\", null, props.title),\n React.createElement(\"path\", { d: \"M44.301 35.205 25.344 15.387c-1.085-1.159-1.482-1.338-2.732-.005L3.699 35.204l-1.447-1.381 18.906-19.816A3.943 3.943 0 0 1 24 12.487a3.883 3.883 0 0 1 2.797 1.526l18.95 19.809z\" }));\n }\n if (variant === \"small\") {\n return React.createElement(\"svg\", { className: props.className, \"aria-hidden\": props.ariaHidden, role: props.ariaHidden ? undefined : \"img\", tabIndex: props.tabIndex, \"aria-label\": props.ariaLabel, ref: forwardRef, width: \"12\", height: \"12\", viewBox: \"0 0 12 12\", xmlns: \"http://www.w3.org/2000/svg\", fill: \"currentColor\" },\n props.title && React.createElement(\"title\", null, props.title),\n React.createElement(\"path\", { d: \"M10.784 9.092 6.037 4.13l-.043-.046-.04.041-4.737 4.966-.962-.918 4.734-4.962A1.39 1.39 0 0 1 6 2.703a1.365 1.365 0 0 1 1.003.513l4.742 4.956z\" }));\n }\n return null;\n}, { displayName: 'ChevronUp' }));\n","import * as React from 'react';\nexport var ChevronDown = React.forwardRef(Object.assign(function (props, forwardRef) {\n var variant = props.variant || \"default\";\n if (variant === \"default\") {\n return React.createElement(\"svg\", { className: props.className, \"aria-hidden\": props.ariaHidden, role: props.ariaHidden ? undefined : \"img\", tabIndex: props.tabIndex, \"aria-label\": props.ariaLabel, ref: forwardRef, width: \"24\", height: \"24\", viewBox: \"0 0 24 24\", xmlns: \"http://www.w3.org/2000/svg\", fill: \"currentColor\" },\n props.title && React.createElement(\"title\", null, props.title),\n React.createElement(\"path\", { d: \"m1.984 6.19 9.465 9.893c.28.299.418.397.551.397.145 0 .31-.114.572-.392l9.443-9.898.962.918-9.439 9.893a2.108 2.108 0 0 1-1.538.81 2.083 2.083 0 0 1-1.517-.813l-9.46-9.889z\" }));\n }\n if (variant === \"large\") {\n return React.createElement(\"svg\", { className: props.className, \"aria-hidden\": props.ariaHidden, role: props.ariaHidden ? undefined : \"img\", tabIndex: props.tabIndex, \"aria-label\": props.ariaLabel, ref: forwardRef, width: \"48\", height: \"48\", viewBox: \"0 0 48 48\", xmlns: \"http://www.w3.org/2000/svg\", fill: \"currentColor\" },\n props.title && React.createElement(\"title\", null, props.title),\n React.createElement(\"path\", { d: \"m3.698 12.641 18.957 19.817c1.085 1.16 1.482 1.34 2.732.006l18.912-19.822 1.447 1.381L26.84 33.839a3.943 3.943 0 0 1-2.842 1.52 3.883 3.883 0 0 1-2.797-1.526L2.252 14.023z\" }));\n }\n if (variant === \"small\") {\n return React.createElement(\"svg\", { className: props.className, \"aria-hidden\": props.ariaHidden, role: props.ariaHidden ? undefined : \"img\", tabIndex: props.tabIndex, \"aria-label\": props.ariaLabel, ref: forwardRef, width: \"12\", height: \"12\", viewBox: \"0 0 12 12\", xmlns: \"http://www.w3.org/2000/svg\", fill: \"currentColor\" },\n props.title && React.createElement(\"title\", null, props.title),\n React.createElement(\"path\", { d: \"m1.216 2.805 4.746 4.962.043.046.04-.041 4.738-4.966.962.918L7.01 8.686A1.39 1.39 0 0 1 6 9.195a1.365 1.365 0 0 1-1.004-.514L.255 3.725z\" }));\n }\n return null;\n}, { displayName: 'ChevronDown' }));\n","import {\n Breakpoints,\n Container,\n ContainerGutter,\n ContainerPadding,\n CTA,\n Fieldset,\n Layout,\n LayoutRowGap,\n RadioButton,\n styled,\n Switch,\n Text,\n TextAlignment,\n TokenTextAppearance,\n} from '@volkswagen-onehub/components-core';\nimport { CloseHandleV2, FocusLayerSizeV2, LayerManagerV2 } from '@volkswagen-onehub/layer-manager';\nimport React, { useEffect, useState } from 'react';\nimport { useFormContext } from 'react-hook-form';\nimport { useDispatch, useStore, useSelector } from 'react-redux';\nimport { Store } from 'redux';\nimport {\n Apellido,\n AreYouSureLayer,\n Email,\n LegalesFormatoLayer,\n LssiTkmQuestions,\n MatriculaYModelo,\n Nombre,\n SelectExtended,\n Telefono,\n CarlineSelect,\n PoliticaPrivacidad,\n LastNavigation,\n LegalesFastStart,\n LegalesJarama,\n} from 'src/components';\nimport {\n LayerManagerWrapper,\n useFaContent,\n useFeatureAppConfig,\n useFeatureAppEnvironment,\n useFeatureServices,\n useOneFormContext,\n weekDay_DayNumber_Month,\n weekDay_DayNumber_Month_Hour,\n} from 'src/feature-app';\nimport { VehiclesIdentityKit } from 'src/feature-service/es-oneform-core-feature-service/types';\nimport { TIME_FOR_TRANSFORM } from 'src/globals';\nimport { OneFormState, Steps } from 'src/types';\nimport { useIsComerciales } from 'src/feature-app/hooks';\nimport { getKilometrosInfo, franjaHoraria } from 'src/feature-app/InputsValues';\nimport { ArrowDown, ArrowUp, ChevronDown, ChevronUp } from '@volkswagen-onehub/icons-core';\n\nconst AllWrapper = styled.div`\n padding-top: 82px;\n`;\n\nconst TopInfoBox = styled.div`\n border: 1px solid rgba(255, 255, 255, 0.44);\n padding: 0 20px;\n width: 100%;\n @media all and (min-width: 560px) {\n padding: 0 24px;\n }\n`;\n\ntype BorderType = 'top' | 'bottom' | 'none';\n\ntype ItemProps = {\n boxItem?: boolean;\n border: BorderType;\n showEdit?: boolean;\n noPaddingTop?: boolean;\n showOperacionesMantenimiento?: boolean;\n};\n\nconst ItemWrapper = styled.div`\n width: 100%;\n text-align: left;\n border-bottom: ${(props) => (props.border === 'bottom' ? '1px solid rgba(255,255,255,0.45)' : 'none')};\n border-top: ${(props) => (props.border === 'top' ? '1px solid rgba(255,255,255,0.45)' : 'none')};\n padding: ${(props) => (props.boxItem ? '24px 0' : props.noPaddingTop ? '0 24px 44px' : '44px 24px')};\n\n .item-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding-bottom: ${(props) => (props.showOperacionesMantenimiento ? '32px' : props.showEdit ? '44px' : '12px')};\n button > * {\n font-weight: ${(props) => (props.showEdit ? 'normal' : 'bold')};\n }\n &--legal {\n padding-bottom: ${(props) => (props.showEdit ? 'unset' : '31.5px')};\n }\n }\n .edit-wrapper {\n display: flex;\n flex-direction: column;\n label:first-of-type {\n margin-bottom: 23px;\n }\n }\n .input-error {\n margin-left: 0px !important;\n }\n`;\n\nconst SelectWrapper = styled.div`\n margin-bottom: 2px;\n label {\n width: 100%;\n @media all and (min-width: 560px) {\n width: 303px;\n }\n @media all and (min-width: 960px) {\n width: 320px;\n }\n }\n`;\n\nconst InputWidthWrapper = styled.div`\n width: 100%;\n margin-bottom: 2px;\n @media all and (min-width: 560px) {\n width: 303px;\n }\n @media all and (min-width: 960px) {\n width: 320px;\n }\n`;\n\nconst RadioButtonWrapper = styled.div`\n border: 1px solid white;\n padding: 20px;\n`;\n\nconst MotivoCalculadora = styled.div`\n width: 100%;\n display: flex;\n justify-content: space-between;\n`;\n\nconst isCalculadoraForm = (formName: string) => formName === 'cita-posventa-calculadora';\n\n/**\n * En calculadora se tiene que ocultar el CTA ya que el motivo no es editable.\n * @param formName\n * @returns\n */\nconst showCTAEditMotivo = (formName: string) => !isCalculadoraForm(formName);\n\n/**\n * En calculadora se tiene que ocultar el CTA ya que el taller no es editable.\n * @param formName\n * @returns\n */\nconst showCTAEditTaller = (formName: string) => formName !== 'cita-posventa-calculadora';\n\n/**\n * En calculadora se tiene que ocultar el CTA ya que el vehículo no es editable.\n * @param formName\n * @returns\n */\nconst showCTAEditVW = (formName: string) => formName !== 'cita-posventa-calculadora';\n\nconst getStepNumber = (steps: Steps[], layerName: 'isMotivoLayer' | 'isTimeLayer' | 'isTallerLayer') => {\n const index = steps.findIndex((step) => {\n if (layerName === 'isMotivoLayer' && step.name === 'Motivo') {\n return step;\n }\n if (layerName !== 'isMotivoLayer' && step.name === 'Mapa') {\n return step;\n }\n });\n return index;\n};\n\nconst formatPlateDate = (plateDate: string) => {\n if (plateDate.includes('-')) {\n return plateDate.split('-')[0];\n }\n return plateDate;\n};\n\nexport const ConfirmacionCita = () => {\n const { formData, formInfo } = useSelector((state: OneFormState) => state);\n const { userIsAuthenticated } = formInfo;\n const { fields } = formData;\n const { tmk: tmkData, lssi: lssiData, userVehicles, matricula } = formData.fields;\n const dispatch = useDispatch();\n const { handleScreenChange, setShowPreviousStep } = useOneFormContext();\n const { getValues, register, triggerValidation } = useFormContext();\n const faContent = useFaContent();\n const isComerciales = useIsComerciales();\n const { kilometrosValues, millageValues } = getKilometrosInfo(isComerciales);\n\n const [fechaHora, setFechaHora] = useState('');\n const [cocheAlTaller, setCocheAlTaller] = useState(false);\n const [cocheSustitucion, setCocheSustitucion] = useState(false);\n\n const [showEditServicios, setShowEditServicios] = useState(false);\n const [showEditSobreVW, setShowEditSobreVW] = useState(false);\n const [showEditSobreTi, setShowEditSobreTi] = useState(false);\n\n const [inputValueMatricula, setInputValueMatricula] = useState('');\n const [errorMatricula, setErrorMatricula] = useState(false);\n const [irConOtroCoche, setIrConOtroCoche] = useState(false);\n\n const [lssi, setLssi] = useState(() => (lssiData ? lssiData : null));\n const [tmk, setTmk] = useState(() => (tmkData ? tmkData : null));\n const [lssiError, setLssiError] = useState(false);\n const [tmkError, setTmkError] = useState(false);\n\n const [preselectedDealerForm, setPreselectedDealerForm] = useState(false);\n const config = useFeatureAppConfig();\n\n const useLoggedJourney = false;\n\n // Check para renderizar legales de campaña Jarama PV del 1 de marzo al 31 de marzo\n //El month of index empieza en 0, Enero->0, Febrero->1....\n const [currentDateJarama, startingDateJarama, finishingDateJarama] = [\n new Date(),\n new Date(2024, 2, 1),\n new Date(2024, 2, 31),\n ];\n const isJaramaDate = () => currentDateJarama >= startingDateJarama && currentDateJarama <= finishingDateJarama;\n\n // De momento no es necesario usar todas las funciones del journey logueado/no logueado, tan solo el fill de los datos\n\n useEffect(() => {\n if (config.trigger === 'cita-posventa-dealer') {\n setPreselectedDealerForm(true);\n } else {\n setPreselectedDealerForm(false);\n }\n }, []);\n\n //Layer confirmacion edicion:\n\n const layerManager = useFeatureServices()['layer-manager'] as LayerManagerV2;\n const store: Store = useStore();\n const env = useFeatureAppEnvironment();\n\n const handleEdit = (layerName: 'isMotivoLayer' | 'isTimeLayer' | 'isTallerLayer') => {\n const { steps } = formInfo;\n const stepNumber = getStepNumber(steps, layerName);\n\n handleScreenChange(stepNumber);\n dispatch({ type: 'UPDATE_STEP', payload: steps[stepNumber] });\n if (layerName !== 'isMotivoLayer') {\n dispatch({ type: 'SET_SHOW_CALENDAR_ON_LOAD', payload: layerName === 'isTimeLayer' });\n dispatch({ type: 'UPDATE_MULTISTEP_SCREENINDEX', payload: 1 });\n dispatch({ type: 'SET_NAVIGATION_MOVING_FORWARD', payload: false });\n\n setTimeout(() => {\n setShowPreviousStep(false);\n }, TIME_FOR_TRANSFORM + 200);\n }\n };\n\n const handleAreYouSureLayer = (layerName: string) => {\n const layer = layerManager.openFocusLayer(renderAreYouSureLayer, { layerName }, { size: FocusLayerSizeV2.A });\n return layer;\n };\n\n const renderAreYouSureLayer = (state: any, close: CloseHandleV2) => {\n return (\n \n {\n handleEdit(state.layerName);\n }}\n />\n \n );\n };\n //fin códgo layers\n\n const showLegales = () => userIsAuthenticated && useLoggedJourney && tmk && lssi;\n\n const getKmInitialValue = () => {\n if (fields.kilometros && Array.isArray(fields.kilometros)) {\n const indexOfMillage = millageValues.findIndex((e) => e[0] === fields.kilometros[0]);\n return indexOfMillage !== -1 ? kilometrosValues[indexOfMillage] : kilometrosValues[kilometrosValues.length - 2];\n } else {\n return kilometrosValues[kilometrosValues.length - 2];\n }\n };\n\n const [kilometros, setKilometros] = useState(getKmInitialValue());\n\n const CTAsSiNo = [{ label: 'Sí' }, { label: 'No' }];\n\n const [millageValue, setMillageValue] = useState(null);\n\n function updateKilometros(event: any) {\n const newMillVal = event.currentTarget.value;\n setKilometros(newMillVal);\n newMillVal ? setMillageValue(newMillVal) : setMillageValue(0);\n const newIndex = kilometrosValues?.findIndex((value) => value === event.target.value);\n if (newIndex !== -1) {\n const newValues = millageValues[newIndex];\n dispatch({ type: 'UPDATE_FIELDS', payload: { kilometros: newValues } });\n }\n }\n\n async function updateValues(showEdit: React.Dispatch>) {\n const values = getValues();\n const isValid = await triggerValidation();\n if (isValid) {\n dispatch({ type: 'UPDATE_FIELDS', payload: values });\n showEdit(false);\n }\n }\n\n // función para checkear que no se haya dejado ninguna sección editada sin guardar\n function checkNotSavedFields() {\n if (showEditServicios && !showEditSobreVW && !showEditSobreTi) {\n return 'en Servicios Adicionales';\n } else if (!showEditServicios && showEditSobreVW && !showEditSobreTi) {\n return 'en Sobre tu Volkswagen';\n } else if (!showEditServicios && !showEditSobreVW && showEditSobreTi) {\n return 'en Sobre ti';\n } else if (\n (showEditServicios && showEditSobreVW && !showEditSobreTi) ||\n (showEditServicios && showEditSobreVW && showEditSobreTi) ||\n (showEditServicios && !showEditSobreVW && showEditSobreTi) ||\n (!showEditServicios && showEditSobreVW && showEditSobreTi)\n ) {\n return '';\n } else {\n return null;\n }\n }\n\n useEffect(() => {\n if (inputValueMatricula === '' || inputValueMatricula.length > 10) {\n setErrorMatricula(true);\n } else {\n setErrorMatricula(false);\n }\n }, [inputValueMatricula]);\n\n useEffect(() => {\n if (lssi) {\n const values = { lssi: lssi };\n dispatch({ type: 'UPDATE_FIELDS', payload: values });\n setLssiError(false);\n }\n if (tmk) {\n const values = { tmk: tmk };\n dispatch({ type: 'UPDATE_FIELDS', payload: values });\n setTmkError(false);\n }\n }, [lssi, tmk]);\n\n useEffect(() => {\n dispatch({ type: 'UPDATE_FORM_ENDED', payload: true });\n\n const selectedSlot = fields.slot;\n let fromFormatted;\n\n if (fields.dealer.dmsInfo && fields.dealer.dmsInfo.dmsAvailable) {\n const momentSlot = weekDay_DayNumber_Month_Hour(selectedSlot.from);\n const capitalizedSlot =\n momentSlot.charAt(0).toUpperCase() +\n momentSlot.split(',')[0].slice(1) +\n ' de ' +\n momentSlot.split(',')[1].charAt(0).toLowerCase() +\n momentSlot.split(',')[1].slice(1);\n fromFormatted = capitalizedSlot.replace('-', ' a las ').replace(',', ' de ').concat('h');\n setFechaHora(fromFormatted);\n } else {\n const momentSlot = weekDay_DayNumber_Month(selectedSlot.from);\n const horarioTranslate = franjaHoraria.find((h) => h.code === selectedSlot.dayMoment.code);\n const capitalizedSlot =\n momentSlot.charAt(0).toUpperCase() +\n momentSlot.split(',')[0].slice(1) +\n ' de ' +\n momentSlot.split(',')[1].charAt(0).toLowerCase() +\n momentSlot.split(',')[1].slice(1);\n\n fromFormatted = capitalizedSlot.concat(horarioTranslate.name);\n setFechaHora(fromFormatted);\n }\n if (fields.cocheAlTaller !== null) {\n fields.cocheAlTaller === 'true' ? setCocheAlTaller(true) : setCocheAlTaller(false);\n }\n if (fields.cocheAlTaller !== null) {\n fields.cocheSustitucion === 'true' ? setCocheSustitucion(true) : setCocheSustitucion(false);\n }\n\n setShowPreviousStep(false);\n if (fields.kilometros || fields.kilometros === 0) {\n setMillageValue(fields.kilometros);\n }\n\n if (fields.matricula) setInputValueMatricula(fields.matricula);\n }, []);\n\n useEffect(() => {\n const values = { cocheAlTaller: cocheAlTaller ? 'true' : 'false' };\n dispatch({ type: 'UPDATE_FIELDS', payload: values });\n }, [cocheAlTaller]);\n\n useEffect(() => {\n const values = { cocheSustitucion: cocheSustitucion ? 'true' : 'false' };\n dispatch({ type: 'UPDATE_FIELDS', payload: values });\n }, [cocheSustitucion]);\n\n return (\n \n \n \n \n Así quedaría tu cita. ¿Quieres solicitarla?\n \n \n \n {faContent?.motivo ? null : }\n \n
\n \n Fecha y hora\n \n {\n e.preventDefault();\n handleAreYouSureLayer('isTimeLayer');\n }}\n >\n Editar\n \n
\n {fechaHora}\n
\n \n
\n \n Taller\n \n {preselectedDealerForm || !showCTAEditTaller(fields.formName) ? null : (\n {\n e.preventDefault();\n handleAreYouSureLayer('isTallerLayer');\n }}\n >\n Editar\n \n )}\n
\n \n \n {fields.dealer.name}\n \n \n \n {fields.dealer.markerInfo.dealerInfo.address}, {fields.dealer.markerInfo.dealerInfo.zipCode}{' '}\n {fields.dealer.markerInfo.dealerInfo.city}\n \n {fields.assessor && fields.dealer.dmsInfo && fields.dealer.dmsInfo.dmsAvailable ? (\n \n Asesor {fields.assessor.name}\n \n ) : null}\n
\n
\n\n {isComerciales || fields.dealer?.dmsInfo && fields.dealer?.dmsInfo?.pickupCarServiceAvailabe ||\n fields.dealer?.dmsInfo && fields.dealer?.dmsInfo?.replacementCarServiceAvailable ? (\n \n
\n \n Servicios adicionales\n \n {showEditServicios ? (\n {\n e.preventDefault();\n setShowEditServicios(false);\n }}\n size=\"small\"\n >\n Guardar\n \n ) : (\n {\n e.preventDefault();\n setShowEditServicios(!showEditServicios);\n }}\n >\n Editar\n \n )}\n
\n {showEditServicios ? (\n \n
\n {isComerciales || fields.dealer?.dmsInfo && fields.dealer?.dmsInfo?.replacementCarServiceAvailable ? (\n setCocheSustitucion(!cocheSustitucion)}\n defaultChecked={cocheSustitucion ? true : false}\n >\n Coche de sustitución\n \n ) : null}\n {isComerciales || fields.dealer?.dmsInfo && fields.dealer?.dmsInfo?.pickupCarServiceAvailabe ? (\n setCocheAlTaller(!cocheAlTaller)}\n defaultChecked={cocheAlTaller ? true : false}\n >\n Servicio de recogida y entrega\n \n ) : null}\n
\n
\n ) : (\n <>\n {isComerciales || fields.dealer?.dmsInfo && fields.dealer?.dmsInfo?.replacementCarServiceAvailable ? (\n \n Coche de sustitución: {cocheSustitucion ? 'Sí' : 'No'}\n \n ) : null}\n {isComerciales || fields.dealer?.dmsInfo && fields.dealer?.dmsInfo?.pickupCarServiceAvailabe ? (\n \n Servicio de recogida y entrega: {cocheAlTaller ? 'Sí' : 'No'}\n \n ) : null}\n \n )}\n
\n ) : null}\n\n \n
\n \n Sobre tu Volkswagen\n \n {showCTAEditVW(fields.formName) ? (\n showEditSobreVW ? (\n {\n e.preventDefault();\n updateValues(setShowEditSobreVW);\n setIrConOtroCoche(false);\n }}\n size=\"small\"\n >\n Guardar\n \n ) : (\n {\n e.preventDefault();\n setShowEditSobreVW(!showEditSobreVW);\n }}\n >\n Editar\n \n )\n ) : null}\n
\n {showEditSobreVW ? (\n userVehicles && userIsAuthenticated && useLoggedJourney && !irConOtroCoche ? (\n <>\n
\n {userVehicles.map((vehicle: VehiclesIdentityKit) => {\n return (\n \n }\n onClick={(e) => {\n e.preventDefault();\n dispatch({\n type: 'UPDATE_FIELDS',\n payload: {\n matricula: vehicle.matricula,\n kilometros: vehicle.kilometros,\n modelo: vehicle.modelo,\n },\n });\n }}\n checked={matricula === vehicle.matricula ? true : false}\n />\n \n );\n })}\n \n {\n e.preventDefault();\n setIrConOtroCoche(true);\n }}\n checked={false}\n />\n \n
\n ;\n \n ) : (\n <>\n \n
\n \n
\n \n \n {\n event.preventDefault();\n updateKilometros(event);\n }}\n onClick={() => null}\n updateFields\n setOption={setKilometros}\n isRequired={true}\n />\n \n \n \n )\n ) : (\n <>\n \n {fields.countryPlate} {fields.matricula}\n \n Año {formatPlateDate(fields.anoMatriculacion)}\n {fields.modelo}\n {kilometros === 'No estoy seguro' ? null : kilometros}\n \n )}\n
\n\n \n
\n \n Sobre ti\n \n {showEditSobreTi ? (\n {\n e.preventDefault();\n updateValues(setShowEditSobreTi);\n }}\n size=\"small\"\n >\n Guardar\n \n ) : (\n {\n e.preventDefault();\n setShowEditSobreTi(!showEditSobreTi);\n }}\n >\n Editar\n \n )}\n
\n {showEditSobreTi ? (\n \n \n \n \n \n \n \n \n \n \n
\n \n
\n
\n \n
\n \n ) : (\n <>\n \n {fields.name} {fields.surname} {fields.secondSurname}\n \n \n {fields.prefix} {fields.cellphone}\n \n {fields.email}\n \n )}\n
\n\n {/* START Checks legales */}\n {showLegales() ? null : (\n <>\n
\n \n
\n {/* END Checks legales */}\n
\n \n
\n \n )}\n \n {fields.formName === 'cita-posventa' && isJaramaDate() ? (\n \n ) : (\n \n )}\n \n
\n );\n};\n\nconst VehicleLabel = (props: { vehicle: VehiclesIdentityKit }) => {\n return (\n \n {props.vehicle.matricula}\n \n {props.vehicle.modelo} |{props.vehicle.kilometros}\n \n \n );\n};\n\nconst OperacionDiv = styled(MotivoCalculadora) <{ isLast: boolean }>`\n padding-bottom: ${(props) => (props.isLast ? '0px' : '16px')};\n`;\n\nconst OperacionesDiv = styled.div`\n padding-bottom: 24px;\n`;\n\nconst MotivoCita = ({ fields, handleAreYouSureLayer }: any) => {\n const [showOperacionesMantenimiento, setShowOperacionesMantenimiento] = useState(false);\n const faContent = useFaContent();\n\n const formatPvp = (pvp: string) => `${Number(pvp).toFixed(0)}€`;\n\n const getMotivo = () => {\n let motivo: string\n if (fields.masInformacion == \"Actualización Software ID\") {\n motivo = 'Actualización software ID'\n } else {\n fields.motivoLabel ? motivo = fields.motivoLabel : motivo = fields.motivo\n }\n return motivo\n }\n\n const renderMotivoCalculadora = () => {\n return (\n \n Presupuesto total\n {formatPvp(faContent?.quotePvp)}\n \n );\n };\n\n const renderOperacionesMantenimiento = () => {\n return (\n <>\n \n {faContent?.quoteOperations\n ? faContent?.quoteOperations.map((operation, indx) => {\n return (\n \n {operation.name}\n {formatPvp(operation.pvp)}\n \n );\n })\n : null}\n \n \n \n Presupuesto Total\n \n \n {formatPvp(faContent?.quotePvp)}\n \n \n \n );\n };\n\n return (\n \n
\n \n {isCalculadoraForm(fields.formName) ? 'Operaciones de mantenimiento' : 'Motivo de tu cita'}\n \n {showCTAEditMotivo(fields.formName) ? (\n {\n e.preventDefault();\n handleAreYouSureLayer('isMotivoLayer');\n }}\n >\n Editar\n \n ) : isCalculadoraForm(fields.formName) ? (\n : }\n emphasis=\"primary\"\n onClick={(e) => {\n e.preventDefault();\n setShowOperacionesMantenimiento(!showOperacionesMantenimiento);\n }}\n >\n {showOperacionesMantenimiento ? 'Cerrar' : 'Ver más'}\n \n ) : null}\n
\n {isCalculadoraForm(fields.formName) ? (\n showOperacionesMantenimiento ? null : (\n renderMotivoCalculadora()\n )\n ) : (\n \n {getMotivo()}\n \n )}\n {showOperacionesMantenimiento ? renderOperacionesMantenimiento() : null}\n
\n );\n};\n\n","import {\n Breakpoints,\n Container,\n ContainerGutter,\n Layout,\n Spinner,\n styled,\n Text,\n} from '@volkswagen-onehub/components-core';\nimport React from 'react';\n\nconst Content = styled.div`\n background-color: white;\n padding: 44px 31px;\n flex: auto;\n text-align: center;\n width: 100%;\n @media screen and (min-width: 560px) {\n padding: 52px 46px;\n }\n @media screen and (min-width: 960px) {\n padding: var(--size-grid001);\n }\n`;\n\ninterface loadingComponentProps {\n copy?: string;\n}\n\nexport function LoadingLayer(props: loadingComponentProps) {\n return (\n \n \n \n );\n}\n\n\n\nfunction LoadingComponent(props: loadingComponentProps) {\n\n return (\n \n \n \n {\n props.copy ?(\n {props.copy}\n ) : (\n Confirmando tu cita\n ) \n }\n \n \n );\n}\n","import {\n Breakpoints,\n Container,\n CTA,\n Layout,\n Text,\n TextAlignment,\n ContainerGutter,\n TokenTextAppearance,\n} from '@volkswagen-onehub/components-core';\nimport { PaddingWrapper } from 'src/components';\nimport React from 'react';\nimport { useFormContext } from 'react-hook-form';\nimport { isGooglePlace, Suggest, Suggestion } from 'src/feature-app';\nimport { useLocateUser } from 'src/feature-app/hooks';\nimport { Installation, isDealerData } from 'src/types';\n\ninterface LocateUserProps {\n isFiltrosSuggest?: boolean;\n}\n\nexport function LocateUser(props: LocateUserProps) {\n const { isFiltrosSuggest } = props;\n const { register } = useFormContext();\n const {\n value,\n setValue,\n suggestion,\n setSuggestion,\n icon,\n locationSuccess,\n setLocationSuccess,\n handleLocate,\n loading,\n locationDisabled,\n isLocating,\n onSuggestionSelectedFn,\n } = useLocateUser();\n\n const getSuggestionValue = (suggestion: Suggestion) => {\n if (!isGooglePlace(suggestion) && !isDealerData(suggestion)) {\n return (suggestion as Installation).VGED_CommercialName__c;\n } else {\n return suggestion.name;\n }\n };\n\n return (\n <>\n \n \n \n
\n \n
\n \n {\n e.preventDefault();\n if (!locationSuccess) handleLocate();\n }}\n disabled={loading ? true : false}\n size=\"small\"\n >\n Localiza mi posición actual\n \n {locationDisabled ? (\n
\n \n Tu localización está deshabilitada\n \n
\n ) : null}\n
\n \n
\n \n \n \n );\n}\n","import {\n Breakpoints,\n Container,\n ContainerPadding,\n Layout,\n Text,\n TextAlignment,\n TokenTextAppearance,\n} from '@volkswagen-onehub/components-core';\nimport React, { useEffect, useState } from 'react';\nimport { useDispatch, useSelector, useStore } from 'react-redux';\nimport { appadapAppointmentCreate, getCarlinesCitaLegacy } from 'src/bff';\nimport { getDealerKvps } from 'src/bff/api/get-dealer-kvps';\nimport {\n DetalleMotivo,\n Email,\n Kilometros,\n MatriculaYModelo,\n MultipleCTASelection,\n PantallaNombreApellido,\n Telefono,\n SelectExtendedList,\n} from 'src/components';\nimport {\n formatPrefix,\n getDeviceType,\n getTrackingCode,\n removeWhiteSpace,\n useFaContent,\n useOneFormContext,\n useGetWaidLitera,\n} from 'src/feature-app';\nimport { MapaCitaDealer, NewMapaCita } from 'src/forms/CitaPosventa/MapaCita';\nimport { OneElementTemplate } from 'src/feature-app/Screen';\nimport {\n resetStepsScreenIndex,\n removeMultipleStepsAndResetScreenIndex,\n removeStep,\n addRemovedStep\n} from 'src/forms/helpers/add-remove-steps';\nimport {\n DealerInfo,\n DmsInfo,\n FormDataGroup,\n FormInfo,\n OneFormState,\n Steps\n} from 'src/types';\nimport { NuevaCitaPosventaFormDefault, NuevaCitaPosventaFormLogged } from '..';\nimport { CitaFormDataFields } from '../types';\nimport { ConfirmacionCita } from './ConfirmacionCita';\nimport { CTAsSiNo, CTAsMotivo, CTAsMotivoDef } from 'src/feature-app/InputsValues/CTAsObjects';\nimport { getParamsForm } from 'src/feature-app/get-params-form';\nimport { Store } from 'redux';\nimport { useIsComerciales, useGetBrand } from 'src/feature-app/hooks';\nimport { DealersData, FormDataFields } from 'src';\n\nexport enum CitaPosventaSteps {\n Motivo,\n MasInformacion,\n Mapa,\n NombreApellido,\n Matricula,\n Kilometros,\n Telefono,\n Email,\n CocheSustitucion,\n CocheAlTaller,\n Confirmacion,\n}\n\ninterface NuevaCitaPosventaFormProps {\n isCitaPosventaDealer?: boolean;\n isCitaPosventaEmbeddedCalculadora?: boolean;\n isCitaPosventaEmbeddedBonos?: boolean;\n isCitaPosventaEmbeddedBeneficios?: boolean;\n isCitaPosventaEmbeddedMaintenance?: boolean;\n updatedFormData?: Partial;\n updatedFormInfo?: Partial;\n}\n\nconst spliceSteps = (steps: Steps[], step: string, stepName: string) => {\n if (step) {\n const index = steps.findIndex((step) => step.name === stepName);\n steps.splice(index, 1);\n return steps;\n }\n return steps;\n};\n\nfunction updateTitle(detalles: any): any {\n return (\n <>\n ¿Quieres contarnos algo más sobre {detalles ? detalles : 'el motivo de tu visita?'}?\n \n );\n}\n\nconst getFormName = (\n isCitaPosventaDealer: boolean,\n isCitaPosventaEmbeddedCalculadora: boolean,\n isCitaPosventaEmbeddedBonos: boolean,\n isCitaPosventaEmbeddedBeneficios: boolean,\n isCitaPosventaEmbeddedMaintenance: boolean\n) => {\n return isCitaPosventaDealer\n ? 'cita-posventa-dealer'\n : isCitaPosventaEmbeddedCalculadora\n ? 'cita-posventa-calculadora'\n : isCitaPosventaEmbeddedBonos\n ? 'cita-posventa-bono'\n : isCitaPosventaEmbeddedBeneficios\n ? 'cita-posventa-beneficios'\n : isCitaPosventaEmbeddedMaintenance\n ? 'cita-posventa-maintenance'\n : 'cita-posventa';\n};\n\nexport const NuevaCitaPosventaFormController = ({\n isCitaPosventaDealer,\n isCitaPosventaEmbeddedCalculadora,\n isCitaPosventaEmbeddedBonos,\n isCitaPosventaEmbeddedBeneficios,\n isCitaPosventaEmbeddedMaintenance,\n updatedFormData,\n}: NuevaCitaPosventaFormProps) => {\n const { initializeForm, nextScreenIndex, handleNextStep } = useOneFormContext();\n const { formData, formInfo, dealersInfo } = useSelector((state: OneFormState) => state);\n const { motivo } = formData.fields;\n const { selectedDealer } = dealersInfo;\n const { userIsAuthenticated, numberOfScreens } = formInfo;\n const dispatch = useDispatch();\n const store: Store = useStore();\n const faContent = useFaContent();\n const [loaded, setLoaded] = useState(false);\n const [steps, setSteps] = useState([]);\n const [firstStep, setFirstStep] = useState(null);\n const [stepsHistory, setStepsHistory] = useState(null);\n const isComerciales = useIsComerciales();\n const groupBrand = useGetBrand();\n const waid = useGetWaidLitera();\n const useLoggedJourney = false; // De momento no es necesario usar todas las funciones del journey logueado/no logueado, tan solo el fill de los datos\n\n const CitaPosventaData: Partial = {\n headers: {\n DESC_BRAND: 'VW',\n DESC_CAMPAIGNBLOCK: '7011n000000Ajm0AAC',\n DESC_FORMOBJECTIVE: 'Call Me Now',\n DESC_ID_CAMPAIGN: '9. VW LEM',\n DESC_TOKEN: 'VW_DDB_FRM_CALL_ME',\n DESC_VN_VO: 'VN',\n DESC_GDPR_ADAPTED: 'true',\n ...updatedFormData?.headers,\n },\n fields: {\n formName: getFormName(\n isCitaPosventaDealer,\n isCitaPosventaEmbeddedCalculadora,\n isCitaPosventaEmbeddedBonos,\n isCitaPosventaEmbeddedBeneficios,\n isCitaPosventaEmbeddedMaintenance\n ),\n formType: 'servicerequest',\n pageCategory: 'Cita Posventa',\n ...updatedFormData?.fields,\n },\n };\n const [citaPosventaData, setCitaPosventaData] = useState(CitaPosventaData);\n\n // Lógica común a los formularios independientemente del estado del login.\n const getMotivoTitle = (): JSX.Element => {\n if (!formData.fields || !formData.fields.motivo)\n return (\n <>\n ¿Quieres contarnos algo más sobre el motivo de tu{' '}\n visita?\n \n );\n else {\n const selectedMotivo = CTAsMotivo.find((motivo) => motivo.value === formData.fields.motivo);\n const detalles = selectedMotivo ? selectedMotivo.detalles : 'string';\n return (\n <>\n ¿Quieres contarnos algo más sobre {detalles ? detalles : 'el motivo de tu visita?'}?\n \n );\n }\n };\n\n const updateSteps = (steps: Steps[]) => {\n dispatch({ type: 'UPDATE_STEPS', payload: steps });\n dispatch({ type: 'UPDATE_LAST_STEP', payload: steps[steps.length - 1] });\n dispatch({ type: 'SET_NUMBER_OF_SCREENS', payload: steps.length });\n };\n\n const isMotivoSoftware = () => {\n const selectedMotivo = CTAsMotivo.find((ctaMotivo) => ctaMotivo.value === motivo);\n return selectedMotivo?.detalles === \"Actualización Software ID\"\n }\n\n useEffect(() => {\n const selectedMotivo = CTAsMotivo.find((ctaMotivo) => ctaMotivo.value === motivo);\n const { steps: actualSteps, screenIndex } = store.getState().formInfo;\n let newSteps = [...steps];\n\n\n if (isMotivoSoftware()) {\n newSteps = removeStep(newSteps, 'MasInformacion');\n dispatch({ type: 'UPDATE_FIELDS', payload: { masInformacion: 'Actualización Software ID' } });\n updateSteps(newSteps);\n } else if (selectedMotivo && actualSteps.length < defaultSteps.length) {\n updateSteps(newSteps);\n }\n\n if (selectedMotivo && formInfo?.steps && !isMotivoSoftware()) {\n dispatch({ type: 'UPDATE_FIELDS', payload: { masInformacion: '' } });\n\n const formSteps = formInfo.steps;\n\n const masInformacionIndex = formSteps.findIndex((step) => step.name === 'MasInformacion');\n\n if (masInformacionIndex !== -1) {\n formSteps[masInformacionIndex].title = updateTitle(selectedMotivo.detalles);\n }\n }\n }, [motivo]);\n\n const defaultSteps: Steps[] = [\n {\n title: (\n <>\n ¿Por qué motivo quieres{' '}\n \n visitarnos?*\n \n \n ),\n alternateTitle: (\n \n ¿Por qué motivo quieres{' '}\n \n visitarnos?*\n \n \n ),\n\n fields: (\n <>\n \n {nextScreenIndex !== null && nextScreenIndex === 1 ? null : (\n \n Selecciona la razón principal de tu visita.\n \n )}\n \n \n \n \n \n ),\n hidePreviousStep: false,\n isFirstStep: true,\n screenIndex: CitaPosventaSteps.Motivo,\n name: 'Motivo',\n outputs: ['motivo'],\n outputsText: ['motivo'],\n },\n {\n title: getMotivoTitle(),\n fields: } />,\n screenIndex: CitaPosventaSteps.MasInformacion,\n name: 'MasInformacion',\n outputs: ['masInformacion'],\n outputsText: ['masInformacion'],\n },\n {\n screenIndex: CitaPosventaSteps.Mapa,\n name: 'Mapa',\n multiStep: true,\n component: isCitaPosventaDealer ? : ,\n },\n {\n title: (\n <>\n Para poder preparar tu visita, necesitamos saber quién eres\n \n ),\n fields: (\n \n \n \n }\n />\n ),\n screenIndex: CitaPosventaSteps.NombreApellido,\n name: 'NombreApellido',\n outputs: ['name', 'surname', 'secondSurname'],\n outputsText: ['name', 'surname', 'secondSurname'],\n },\n {\n title: (\n <>\n Cuéntanos más sobre tu coche. ¿Qué matrícula tiene y qué modelo es?\n \n ),\n fields: (\n \n \n \n }\n />\n ),\n screenIndex: CitaPosventaSteps.Matricula,\n name: 'Matricula',\n outputs: ['modelo', 'matricula'],\n outputsText: ['modelo', 'con matrícula', 'matricula'],\n },\n {\n title: (\n <>\n Y, ¿cuántos kilómetros?\n *\n \n ),\n fields: ,\n screenIndex: CitaPosventaSteps.Kilometros,\n name: 'Kilometros',\n outputs: ['kilometros'],\n outputsText: ['kilometros'],\n },\n {\n title: (\n <>\n En caso de necesitar contactar contigo, ¿a qué número podemos llamarte?\n \n ),\n fields: } />,\n screenIndex: CitaPosventaSteps.Telefono,\n name: 'Telefono',\n outputs: ['cellphone'],\n outputsText: ['cellphone'],\n },\n\n {\n title: (\n <>\n Y, ¿a qué email te enviamos la confirmación y los datos de tu cita?\n \n ),\n fields: (\n \n \n \n }\n />\n ),\n screenIndex: CitaPosventaSteps.Email,\n name: 'Email',\n outputs: ['email'],\n outputsText: ['email'],\n },\n {\n title: (\n <>\n ¿Necesitarás otro coche mientras el tuyo está en el{' '}\n \n taller?\n *\n \n \n ),\n fields: (\n \n \n \n \n Coche de sustitución: desde 20€ al día o totalmente gratuito si tienes un Volkswagen\n con My Renting, eres de Volkswagen Long Drive o has sufrido una avería en el periodo de garantía de tu\n coche. Una vez seleccionado este servicio, un asesor te llamará para confirmar el precio final.\n \n \n \n }\n />\n ),\n screenIndex: CitaPosventaSteps.CocheSustitucion,\n name: 'CocheSustitucion',\n outputs: ['cocheSustitucion'],\n outputsText: ['cocheSustitucion', 'quiero otro coche'],\n trueOrFalseQuestion: true,\n },\n {\n title: (\n <>\n Y para facilitar tu visita,{' '}\n \n ¿llevamos tu coche al{' '}\n \n taller?*\n \n \n \n ),\n fields: (\n \n \n \n \n Recogida a domicilio: desde 20€ (IVA incluido) por trayecto solo en Madrid, Barcelona, Sevilla, Málaga, Valencia, Bilbao o Zaragoza. Una vez seleccionado este servicio, el Servicio Oficial acabará de confirmarte el precio final.\n \n \n \n }\n />\n ),\n screenIndex: CitaPosventaSteps.CocheAlTaller,\n name: 'CocheAlTaller',\n outputs: ['cocheAlTaller'],\n outputsText: ['cocheAlTaller', 'quiero servicio de recogida y entrega'],\n trueOrFalseQuestion: true,\n },\n {\n title: <>,\n fields: ,\n screenIndex: CitaPosventaSteps.Confirmacion,\n name: 'Confirmacion',\n isLastStep: true,\n hidePreviousStep: true,\n },\n ];\n\n const getLssiTmk = (value: string) => {\n switch (value) {\n case 'PERMITE':\n return 'PERMITIDO';\n break;\n case 'NO PERMITE':\n return 'ROBINSON';\n break;\n default:\n return null;\n }\n };\n\n const getModelo = (fields: FormDataFields, carlines: SelectExtendedList[]) => {\n return fields.modeloList\n ? fields.modeloList\n : carlines?.length > 0 && fields.modelo\n ? carlines.find((carline) => carline.name === fields.modelo)\n : {\n code: null,\n key: null,\n name: null,\n };\n };\n\n const sendForm = async (): Promise => {\n return new Promise(async (resolve) => {\n const { formData, dealersInfo } = store.getState();\n const { fields } = formData;\n const { citaCarlines } = dealersInfo;\n const { dealer } = fields;\n const { tc, today, url, device } = getParamsForm();\n const ctaLabel = CTAsMotivo.find((ctaMotivo) => ctaMotivo.value === fields.motivo).label;\n\n const { dmsInfo, markerInfo }: { dmsInfo: DmsInfo; markerInfo: DealerInfo } = dealer;\n const appointmentDealer = createAppointmentDealer(dealer);\n\n const data: CitaFormDataFields = {\n group_brand: groupBrand,\n kvps: dealer.kvps,\n cod_instalacion: dealer.codInstalacion,\n appointment: {\n comments: fields.masInformacion,\n customer: {\n contactPhone: `${formatPrefix(fields.prefix)}${fields.cellphone}`,\n customerType: 'F',\n documentNumber: null,\n documentType: null, // Parametrizar [DNI,NIF,NIE] || null\n email: removeWhiteSpace(fields.email),\n gender: 'M', // Parametrizar [M,V]\n name: fields.name.trim(),\n owner: false,\n surname: fields.surname?.trim(),\n surname2: fields.secondSurname?.trim(),\n },\n vehicle: fields.vehicleForCalculadora\n ? fields.vehicleForCalculadora\n : {\n brand: groupBrand,\n frame: null,\n millage: Array.isArray(fields.kilometros) ? fields.kilometros[0] : fields.kilometros,\n modelVersion: \"NO INFORMADO\",\n modelYear: 0,\n plate: fields.matricula?.toUpperCase(),\n // countryPlate: fields.countryPlate,\n plateDate: `${fields.anoMatriculacion}-1-1 00:00:00`,\n tmaimg: null,\n model: getModelo(fields, citaCarlines),\n },\n dealer: appointmentDealer,\n slot: {\n from: fields.slot.from,\n to: fields.slot.to,\n replacementCarServiceAvailable: fields.slot.replacementCarServiceAvailable,\n dayMoment: fields.slot.dayMoment,\n assessorCode: fields.slot.assessorCode,\n },\n assessor: {\n code: fields.assessor.code,\n name: fields.assessor.name,\n },\n intervention: {\n code: fields.motivo, // Parametrizar [NEUMATICOS, OTROS, MANTENIMIENTO, CARROCERIA, REPARACION, ACCESORIOS, EA189, PREITV, ITV]\n name: ctaLabel === 'Actualización Software ID' ? 'Otros' : ctaLabel, // motivo literal excepto si es software tiene que tener el mismo valor que OTROS\n },\n lopd: 'PERMITIDO',\n lssi: getLssiTmk(fields.lssi),\n pickupServiceRequired:\n typeof fields.cocheAlTaller === 'string' ? JSON.parse(fields.cocheAlTaller) : undefined,\n replacementCarServiceRequired:\n typeof fields.cocheSustitucion === 'string' ? JSON.parse(fields.cocheSustitucion) : undefined,\n status: 'P',\n tmk: getLssiTmk(fields.tmk),\n sms: null\n },\n survey: {\n dealer: {\n dmsInfo: dmsInfo,\n markerInfo: markerInfo,\n },\n deviceType: getDeviceType(),\n formId: `vw-oneform-${fields.formName}`,\n formVersion: `vw-oneform-${fields.formName}-${process.env.VERSION}`,\n tc: getTrackingCode(),\n url,\n urlOrigin: document.referrer || null,\n deepLink: fields.deepLink,\n budget: fields.budget,\n waid\n },\n };\n\n let customFormData = new FormData();\n\n for (const key in data) {\n if (typeof data[key] === 'object') customFormData.append(key, JSON.stringify(data[key]));\n else customFormData.append(key, data[key]);\n }\n\n const result = await appadapAppointmentCreate(customFormData);\n\n if (result?.data?.status?.result === 'success') {\n dispatch({ type: 'SET_FORM_RESPONSE', payload: result.data });\n return resolve(true);\n } else if (!result?.data?.contentNDPS && dmsInfo?.dmsAvailable) {\n dispatch({ type: 'SET_SEND_DMS_FAILED', payload: true });\n resolve(false);\n } else {\n resolve(false);\n }\n });\n };\n\n const createAppointmentDealer = (dealer: DealersData) => {\n const { markerInfo, dmsInfo } = dealer;\n\n return {\n assessors: dmsInfo.assessors ? [...dmsInfo.assessors] : undefined,\n dealerId: dmsInfo.dealerId,\n dmsAvailable: dmsInfo.dmsAvailable ? dmsInfo.dmsAvailable : false,\n email: dmsInfo.email ? dmsInfo.email : markerInfo.dealerInfo.mail,\n name: dmsInfo.name ? dmsInfo.name : markerInfo.dealerInfo.name,\n phone: dmsInfo.phone ? dmsInfo.phone : markerInfo.dealerInfo.phone,\n overhaulingServiceAvialable: dmsInfo.overhaulingServiceAvialable ? dmsInfo.overhaulingServiceAvialable : false,\n pickupCarServiceAvailabe: dmsInfo.pickupCarServiceAvailabe ? dmsInfo.pickupCarServiceAvailabe : false,\n replacementCarServiceAvailable: dmsInfo.replacementCarServiceAvailable\n ? dmsInfo.replacementCarServiceAvailable\n : false,\n reference: dmsInfo.reference,\n };\n };\n\n const repeatKvpsRequest = async (kvps: string) => {\n const newSelectedDealer = await getDealerKvps(kvps);\n\n if (newSelectedDealer) {\n setCitaPosventaData({ ...citaPosventaData, fields: { ...citaPosventaData.fields, dealer: newSelectedDealer } });\n // CitaPosventaData.fields.dealer = newSelectedDealer;\n }\n };\n\n const getFinalSteps = (steps: Steps[], motivo: string, observaciones: string) => {\n let newSteps = [...steps];\n\n newSteps = spliceSteps(newSteps, motivo, 'Motivo');\n newSteps = spliceSteps(newSteps, observaciones, 'MasInformacion');\n\n const finalSteps = resetStepsScreenIndex(newSteps);\n\n return finalSteps;\n };\n\n /**\n * Dependiendo del journey que siga el usuario se empezará en una pantalla o en otra, pero hay que adaptar stepHistory para que aun así pueda volver hacia atrás.\n */\n const getFirstStepAndStepsHistory = (): { firstStep: Steps; stepsHistory: number[]; finalSteps: Steps[] } => {\n // Obtención de los parametros de la url\n let selectedMotivo: CTAsMotivoDef = null;\n let motivo: string;\n let observaciones = faContent?.observaciones;\n\n if (isCitaPosventaEmbeddedCalculadora || isCitaPosventaEmbeddedMaintenance) { // En los forms de Calculadora y Mi Manteniemto nos saltamos algunos pasos\n const stepsWithoutMap = removeMultipleStepsAndResetScreenIndex(defaultSteps, [\n 'Motivo',\n 'MasInformacion',\n 'Matricula',\n 'Kilometros',\n ]);\n\n return { finalSteps: stepsWithoutMap, stepsHistory: [0], firstStep: stepsWithoutMap[0] };\n }\n\n if (isCitaPosventaEmbeddedBonos) {\n const stepsWithoutMap = removeMultipleStepsAndResetScreenIndex(defaultSteps, ['Motivo', 'MasInformacion']);\n\n return { finalSteps: stepsWithoutMap, stepsHistory: [0], firstStep: stepsWithoutMap[0] };\n }\n\n if (window && window.location) {\n const urlParams = new URLSearchParams(window.location.search);\n const motivo = urlParams.get('motivo');\n const dealer = urlParams.get('dealer');\n\n if (motivo) {\n selectedMotivo = CTAsMotivo.find((CTAmotivo) => {\n return CTAmotivo.value === motivo;\n });\n }\n if (dealer && selectedDealer) {\n // CitaPosventaData.fields.dealer = selectedDealer;\n setCitaPosventaData({ ...citaPosventaData, fields: { ...citaPosventaData.fields, dealer: selectedDealer } });\n } else if (dealer && !selectedDealer) {\n // En caso de que por algun motivo haya dealer pero no se haya cargado correctamente en el cms repetimos la request\n repeatKvpsRequest(dealer);\n }\n }\n\n motivo = faContent?.motivo ? faContent.motivo : motivo;\n const finalSteps = getFinalSteps(defaultSteps, motivo, observaciones);\n\n const defaultFirstStep = finalSteps[CitaPosventaSteps.Motivo];\n\n let firstStep = finalSteps.find((step: Steps) => {\n if (selectedMotivo && (!faContent || !faContent.motivo)) {\n return step.screenIndex === CitaPosventaSteps.MasInformacion;\n } else {\n return step.screenIndex === defaultFirstStep.screenIndex;\n }\n });\n\n firstStep = firstStep ? firstStep : defaultFirstStep;\n firstStep.isFirstStep = true;\n\n let stepsHistory = [0];\n if (firstStep.screenIndex === defaultFirstStep.screenIndex) {\n stepsHistory = [0];\n } else {\n stepsHistory = [0, firstStep.screenIndex];\n }\n\n const motivoData = faContent?.motivo ? faContent.motivo : selectedMotivo ? selectedMotivo.value : null;\n const masInformacionData = faContent?.observaciones ? faContent.observaciones : isMotivoSoftware() ? selectedMotivo.detalles : null;\n\n setCitaPosventaData({\n ...citaPosventaData,\n fields: { ...citaPosventaData.fields, motivo: motivoData, masInformacion: masInformacionData },\n });\n\n return { firstStep, stepsHistory, finalSteps };\n };\n\n const handleStepsOfCitaDealer = (steps: Steps[], dealer: DealersData) => {\n let newSteps = [...steps];\n\n if (isComerciales) {\n return;\n }\n\n if (!dealer.dmsInfo?.pickupCarServiceAvailabe) {\n newSteps = removeMultipleStepsAndResetScreenIndex(newSteps, ['CocheAlTaller']);\n }\n if (!dealer.dmsInfo?.replacementCarServiceAvailable) {\n newSteps = removeMultipleStepsAndResetScreenIndex(newSteps, ['CocheSustitucion']);\n }\n\n setSteps(newSteps);\n setFirstStep(newSteps[0]);\n setStepsHistory(stepsHistory);\n setLoaded(true);\n };\n\n const getSteps = (steps: Steps[]) => {\n if (isCitaPosventaDealer && selectedDealer) {\n handleStepsOfCitaDealer(defaultSteps, selectedDealer);\n return;\n }\n const { firstStep, stepsHistory, finalSteps } = getFirstStepAndStepsHistory();\n setSteps(finalSteps);\n setFirstStep(firstStep);\n setStepsHistory(stepsHistory);\n setLoaded(true);\n };\n\n useEffect(() => {\n getSteps(defaultSteps);\n getCarlinesCitaLegacy(isComerciales).then((response) => {\n dispatch({ type: 'SET_CITA_CARLINES', payload: response });\n });\n }, []);\n\n return loaded ? (\n userIsAuthenticated && useLoggedJourney ? (\n \n ) : (\n \n )\n ) : null;\n};\n","import {\n Breakpoints,\n BreakpointWrapper,\n Container,\n ContainerGutter,\n ContainerPadding,\n CTA,\n Layout,\n styled,\n Text,\n TextAlignment,\n TokenTextAppearance,\n} from '@volkswagen-onehub/components-core';\nimport Axios from 'axios';\nimport FileDownload from 'js-file-download';\nimport React, { useEffect, useState } from 'react';\nimport { connect, useDispatch, useSelector } from 'react-redux';\nimport { getMolecularUrl } from 'src/bff';\nimport {\n useFeatureAppConfig,\n weekDay_DayNumber_Month,\n weekDay_DayNumber_Month_Hour,\n useTrackingManager,\n TrackingForm,\n} from 'src/feature-app';\nimport { RenderController } from 'src/feature-app/Screen';\nimport { DealersData, FormDataFields, FormInfo, OneFormState, Steps } from 'src/types';\nimport { keyframes } from 'styled-components';\n\nconst lineKeyframe = keyframes`\n 0% {\n transform: rotate(-360deg);\n }\n 80% {\n transform: rotate(45deg);\n }\n 100% {\n transform: rotate(0deg);\n }\n`;\n\nconst AnimatedCheckmark = styled.div`\n animation: ${lineKeyframe} 0.5s ease-in;\n`;\n\ninterface FieldProps {\n copyBook?: string;\n}\n\ninterface NDPSField {\n name: string;\n value: string;\n}\n\nfunction Fields(props: FieldProps) {\n const { formData, formInfo } = useSelector((state: OneFormState) => state);\n const { dealer }: { dealer?: DealersData } = formData.fields;\n const { pincode }: { pincode: string } = formInfo.formResponse.content;\n const config = useFeatureAppConfig();\n\n const handleGuardar = async () => {\n \n const MOLECULAR_URL = getMolecularUrl(); // Legacy\n // const pincode: string = undefined;\n\n const response = await Axios.get(\n `${MOLECULAR_URL}/request-eapi-appointment-ics.php?group_brand=V&pincode=${pincode}`\n );\n\n FileDownload(response.data, 'cita.ics');\n };\n\n return (\n \n
\n \n \n {props.copyBook}\n \n \n {dealer.dmsInfo.dmsAvailable ? (\n \n {\n e.preventDefault();\n handleGuardar();\n }}\n >\n Guárdala en tu calendario\n \n \n ) : null}\n
\n \n );\n}\n\ninterface ThankYouProps {\n formData: FormDataFields;\n formInfo: FormInfo;\n}\n\nfunction ThankYouNuevaCita(props: ThankYouProps) {\n const { formData, formInfo } = props;\n const { formResponse } = formInfo;\n const [fechaHora, setFechaHora] = useState('');\n const [copyBook, setCopyBook] = useState('');\n\n const trackingManager = useTrackingManager();\n const dispatch = useDispatch();\n const getTrackingForm = (): TrackingForm => {\n let LeadID;\n if (\n formResponse &&\n formResponse.contentNDPS &&\n formResponse.contentNDPS.data &&\n formResponse.contentNDPS.data.fields\n ) {\n const leadField: NDPSField = formResponse.contentNDPS.data.fields.find(\n (field: NDPSField) => field.name === 'COD_LEAD_ID'\n );\n LeadID = leadField ? leadField.value : undefined;\n }\n return {\n LeadID,\n FormFields: undefined,\n };\n };\n\n useEffect(() => {\n // Thank you page no es gestionado como un step pero sí lo haremos en la analítica. Por eso Modificamos formInfo después del submit y antes del RESET\n const screenIndexThankyou = formInfo.numberOfScreens;\n\n dispatch({ type: 'SET_FORM_SUBMITTED', payload: true });\n dispatch({ type: 'SET_FORM_INFO', payload: { step: { screenIndex: screenIndexThankyou, name: \"ThankYou\" } } });\n\n const selectedSlot = formData.slot;\n const franjaHoraria = [\n { code: 'MANANA', name: ' por la mañana' },\n { code: 'MEDIODIA', name: ' al mediodía' },\n { code: 'TARDE', name: ' por la tarde' },\n ];\n let fromFormatted;\n\n if (formInfo.sendDmsFailed) {\n const momentSlot = weekDay_DayNumber_Month(selectedSlot.from);\n const formattedSlot =\n momentSlot.split(',')[0] +\n ' de ' +\n momentSlot.split(',')[1].charAt(0).toLowerCase() +\n momentSlot.split(',')[1].slice(1);\n const horarioTranslate = franjaHoraria.find((h) => h.code === selectedSlot.dayMoment.code);\n fromFormatted = formattedSlot.replace(',', ' de ').concat(horarioTranslate.name);\n setFechaHora(fromFormatted);\n } else {\n if (formData.dealer.dmsInfo.dmsAvailable) {\n const momentSlot = weekDay_DayNumber_Month_Hour(selectedSlot.from);\n const formattedSlot =\n momentSlot.split(',')[0] +\n ' de ' +\n momentSlot.split(',')[1].charAt(0).toLowerCase() +\n momentSlot.split(',')[1].slice(1);\n fromFormatted = formattedSlot.replace('-', ' a las ').concat('h');\n setFechaHora(fromFormatted);\n } else {\n const momentSlot = weekDay_DayNumber_Month(selectedSlot.from);\n const formattedSlot =\n momentSlot.split(',')[0] +\n ' de ' +\n momentSlot.split(',')[1].charAt(0).toLowerCase() +\n momentSlot.split(',')[1].slice(1);\n const horarioTranslate = franjaHoraria.find((h) => h.code === selectedSlot.dayMoment.code);\n fromFormatted = formattedSlot.replace(',', ' de ').concat(horarioTranslate.name);\n setFechaHora(fromFormatted);\n }\n }\n\n trackingManager.trackFormSubmissionSuccessMessageLoad(\n {\n contentId: undefined,\n },\n getTrackingForm()\n );\n }, []);\n\n useEffect(() => {\n const copyDms =\n 'Tu asesor te contactará pronto para confirmar la cita. Te acabamos de enviar un email con toda la información.';\n const copySinDms =\n 'Tu asesor te contactará pronto para confirmar la cita. Te acabamos de enviar un email con toda la información.';\n\n if (formData.dealer.dmsInfo.dmsAvailable) {\n setCopyBook(copyDms);\n } else {\n setCopyBook(copySinDms);\n }\n }, []);\n\n const renderTitle = (dmsFailed: boolean) => {\n if (!dmsFailed && formData.dealer.dmsInfo.dmsAvailable) {\n return (\n <>\n \n \n Hemos enviado tu solicitud para el {fechaHora} en{' '}\n {formData.dealer.name}\n \n \n \n \n Hemos enviado tu solicitud para el {fechaHora} en{' '}\n {formData.dealer.name}\n \n \n \n );\n } else {\n return (\n <>\n \n \n Hemos enviado tu solicitud para {fechaHora} en{' '}\n {formData.dealer.name}\n \n \n \n \n Hemos enviado tu solicitud para {fechaHora} en{' '}\n {formData.dealer.name}\n \n \n \n );\n }\n };\n\n const screen: Steps = {\n title: <>{renderTitle(formInfo.sendDmsFailed)},\n fields: ,\n };\n return (\n \n );\n}\n\nconst mapStateToProps = (state: OneFormState) => {\n return {\n formData: state.formData.fields,\n formInfo: state.formInfo,\n };\n};\n\nconst ConnectedComponent = connect(mapStateToProps)(ThankYouNuevaCita);\n\nexport { ConnectedComponent as ThankYouNuevaCita };\n","import React, { useEffect } from 'react';\nimport { FormController, useOneFormContext } from 'src/feature-app';\nimport { FormDataGroup, FormInfo, Steps } from 'src/types';\nimport { ThankYouNuevaCita } from './ThankYouNuevaCita';\n\ninterface NuevaCitaPosventaFormProps {\n isCitaPosventaDealer?: boolean;\n}\n\ninterface FormProps {\n defaultSteps: Steps[];\n sendForm: any;\n firstStep: Steps;\n CitaPosventaData: Partial;\n stepsHistory?: number[];\n}\n\nexport function NuevaCitaPosventaFormDefault({ defaultSteps, sendForm, firstStep, CitaPosventaData, stepsHistory }: FormProps) {\n const { initializeForm, nextScreenIndex } = useOneFormContext();\n\n useEffect(() => {\n const lastStep = defaultSteps[defaultSteps.length - 1];\n\n const CitaPosventaInfo: Partial = {\n formEnded: false,\n formStarted: true,\n sendFormCallback: sendForm,\n fullScreen: firstStep.fullScreen ? true : false,\n lastStep,\n numberOfScreens: defaultSteps.length,\n screenIndex: firstStep.screenIndex,\n step: firstStep,\n notALayer: false,\n formType: 'layer',\n formTheme: 'inverted',\n steps: defaultSteps,\n stepsHistory: stepsHistory ? stepsHistory : [],\n thankYouComponent: ,\n };\n\n initializeForm(CitaPosventaInfo, CitaPosventaData);\n }, []);\n\n return ;\n}\n","import React, { useEffect } from 'react';\nimport { useDispatch, useSelector, useStore } from 'react-redux';\nimport {\n FormController,\n useFaContent,\n useFeatureAppConfig,\n useFeatureServices,\n useOneFormContext,\n} from 'src/feature-app';\nimport { VehiclesIdentityKit } from 'src/feature-service/es-oneform-core-feature-service/types';\nimport { removeStep, resetStepsScreenIndex } from 'src/forms/helpers/add-remove-steps';\nimport { FormDataGroup, FormInfo, OneFormState, Steps } from 'src/types';\nimport { ThankYouNuevaCita } from './ThankYouNuevaCita';\n\ninterface NuevaCitaPosventaFormProps {\n isCitaPosventaDealer?: boolean;\n}\n\ninterface FormProps {\n defaultSteps: Steps[];\n sendForm: any;\n firstStep: Steps;\n CitaPosventaData: Partial;\n}\n\nexport function NuevaCitaPosventaFormLogged({ defaultSteps, sendForm, firstStep, CitaPosventaData }: FormProps) {\n const { initializeForm, nextScreenIndex } = useOneFormContext();\n const { formData, formInfo, dealersInfo } = useSelector((state: OneFormState) => state);\n const dispatch = useDispatch();\n\n const oneFormService = useFeatureServices()['es:oneform-core'];\n const { person } = oneFormService.get();\n const config = useFeatureAppConfig();\n\n const userHasFavouriteDealer = (steps: Steps[]) => {\n if (person?.favouriteDealer) {\n const selectedDealer = dealersInfo.dealers?.find((dealer) => dealer.kvps === person.favouriteDealer);\n if (selectedDealer) {\n // Sobreescribir el selected dealer en el caso de cita posventa da problemas a la hora de cargar el calendario.\n if (config.trigger !== 'cita-posventa-dealer') {\n dispatch({ type: 'SET_SELECTED_DEALER', payload: selectedDealer });\n dispatch({ type: 'UPDATE_SUGGESTION', payload: selectedDealer });\n }\n dispatch({ type: 'SET_FAVOURITE_DEALER', payload: selectedDealer });\n dispatch({ type: 'SET_SHOW_CALENDAR_ON_LOAD', payload: true });\n }\n }\n\n return steps;\n };\n const userHasPersonalData = (steps: Steps[]) => {\n let personalDataSteps = [...steps];\n\n if (person?.name && person?.surname) {\n personalDataSteps = removeStep(personalDataSteps, 'NombreApellido');\n }\n if (person?.cellphone) {\n personalDataSteps = removeStep(personalDataSteps, 'Telefono');\n }\n personalDataSteps = removeStep(personalDataSteps, 'Email');\n personalDataSteps = resetStepsScreenIndex(personalDataSteps);\n return personalDataSteps;\n };\n\n const userHasVehicleData = (steps: Steps[]) => {\n let vehicleDataSteps = [...steps];\n\n if (person?.userVehicles && person?.userVehicles.length > 0) {\n const { userVehicles } = person;\n let mainVehicle: VehiclesIdentityKit;\n if (userVehicles.length === 1) {\n mainVehicle = userVehicles[0];\n } else {\n mainVehicle = userVehicles.find((vehicle) => vehicle.isMainVehicle);\n }\n\n dispatch({\n type: 'UPDATE_FIELDS',\n payload: { matricula: mainVehicle.matricula, kilometros: mainVehicle.kilometros, modelo: mainVehicle.modelo },\n });\n\n // Consultar si se eliminan las páginas en caso de que falte algún dato (año de matriculación no parece estar disponible desde identity kit)\n if (mainVehicle.matricula && mainVehicle.modelo && mainVehicle.anoMatriculacion) {\n vehicleDataSteps = removeStep(vehicleDataSteps, 'Matricula');\n }\n if (mainVehicle.kilometros) {\n vehicleDataSteps = removeStep(vehicleDataSteps, 'Kilometros');\n }\n\n vehicleDataSteps = resetStepsScreenIndex(vehicleDataSteps);\n }\n return vehicleDataSteps;\n };\n\n const getLoggedSteps = (steps: Steps[]) => {\n let finalSteps = [...steps];\n finalSteps = userHasFavouriteDealer(finalSteps);\n finalSteps = userHasPersonalData(finalSteps);\n finalSteps = userHasVehicleData(finalSteps);\n\n return finalSteps;\n };\n\n useEffect(() => {\n const finalSteps = getLoggedSteps(defaultSteps);\n\n const lastStep = finalSteps[finalSteps.length - 1];\n\n const CitaPosventaInfo: Partial = {\n formEnded: false,\n formStarted: true,\n sendFormCallback: sendForm,\n fullScreen: firstStep.fullScreen ? true : false,\n lastStep,\n numberOfScreens: defaultSteps.length,\n screenIndex: firstStep.screenIndex,\n step: firstStep,\n steps: finalSteps,\n notALayer: false,\n formType: 'layer',\n stepsHistory: [],\n thankYouComponent: ,\n };\n\n initializeForm(CitaPosventaInfo, CitaPosventaData);\n }, []);\n\n return ;\n}\n","import {\n Breakpoints,\n BreakpointWrapper,\n Container,\n ContainerGutter,\n ContainerPadding,\n CTA,\n Spinner,\n styled,\n Text,\n TextAlignment,\n TokenTextAppearance,\n} from '@volkswagen-onehub/components-core';\nimport { CloseHandleV2 } from '@volkswagen-onehub/layer-manager';\nimport React, { useEffect, useRef, useState } from 'react';\nimport { useSelector } from 'react-redux';\nimport {\n getFranjaAndDayFrom,\n isNull,\n weekDay_DayNumber_De_Month,\n year_MonthNumber_DayNumber,\n getToAndFromForCheckCita,\n} from 'src/feature-app';\nimport { useTrackingManager } from 'src/feature-app/hooks/use-tracking-manager';\nimport {\n Assessors,\n Availability,\n CalendarSlot,\n DealersData,\n Horario as HorarioType,\n OneFormState,\n Points,\n Slot,\n SlotsTime,\n} from 'src/types';\nimport { getEarliestSlot } from 'src/feature-app/NewMap/sort-points';\nimport { Close } from '@volkswagen-onehub/icons-core';\n\nconst ZIndexLayer = styled.div`\n z-index: 25;\n position: relative;\n`;\n\nconst Content = styled.div`\n background-color: white;\n position: relative;\n padding: 44px 31px;\n flex: auto;\n text-align: center;\n width: 100%;\n @media screen and (min-width: 560px) {\n padding: 52px 46px;\n }\n @media screen and (min-width: 960px) {\n padding: var(--size-grid001);\n }\n`;\n\nconst CloseDiv = styled.div`\n position: absolute;\n top: var(--size-dynamic0050);\n right: var(--size-dynamic0050);\n cursor: pointer;\n`;\n\nconst CTAWrapper = styled.div`\n display: flex;\n flex-direction: column;\n padding-top: 44px;\n\n @media screen and (min-width: 960px) {\n flex-direction: row;\n align-items: center;\n }\n`;\ninterface LayerComponentProps {\n selectedPoint: Points;\n handleShowSlots: (point: Points) => string | null;\n handleDmsMapExit: (slot: CalendarSlot, point: Points) => void;\n handleNoDmsMapExit: (franjaHoraria: string, day: string, point: Points) => void;\n getAvailability: (dealer: DealersData, start: number, end: number) => Promise;\n // handleAvailability: (a: Availability, d: DealersData) => void;\n closeLayerCallback?: CloseHandleV2;\n // waitForNextStep: any;\n handleShowCalendarOnClick: (point: Points) => void;\n}\n\nexport function ReservaCitaLayer(props: LayerComponentProps) {\n return (\n \n \n \n );\n}\n\ninterface SlotHorario {\n from: number;\n to: number;\n}\n\nfunction ReservaCita(props: LayerComponentProps) {\n const {\n selectedPoint,\n handleShowSlots,\n handleDmsMapExit,\n handleNoDmsMapExit,\n getAvailability,\n // handleAvailability,\n closeLayerCallback,\n // waitForNextStep\n handleShowCalendarOnClick,\n } = props;\n\n const trackingManager = useTrackingManager();\n const [assessorName, setAssessorName] = useState('');\n\n const { dealer } = selectedPoint.properties;\n const { motivo, horario, motivoLabel }: { motivo: string; motivoLabel: string; horario: HorarioType } = useSelector(\n (state: OneFormState) => state.formData.fields\n );\n const { name, address, city, zipCode } = dealer.markerInfo.dealerInfo;\n\n const [loading, setLoading] = useState(false);\n const [DMSError, setDMSError] = useState(false);\n const [slotNotAvailable, setSlotNotAvailable] = useState(false);\n const slotHorarioRef = useRef(null);\n\n useEffect(() => {\n checkSlot();\n if (selectedPoint) {\n getAssessorName();\n }\n }, []);\n\n const checkSlot = () => {\n const { slots } = dealer;\n let from: number;\n let to: number = null;\n if (!isNull(slots)) {\n from = getEarliestSlot(slots);\n }\n\n slotHorarioRef.current = { from, to };\n };\n\n const getAssessorName = () => {\n const { assessors } = dealer.dmsInfo;\n if (horario !== 'before' && dealer?.slots[horario]) {\n const assessorCode = dealer.slots[horario].assessorCode;\n const assessor = findAssessor(assessors, assessorCode);\n setAssessorName(assessor.name);\n } else {\n // Primero se comprueba si el dealer tiene disponibles slots en mañana, mediodía o tarde\n // y luego se comparan estos slots con el earliestSlot para seleccionarlo.\n const { slots } = selectedPoint.properties.dealer;\n const keys = Object.keys(slots) as SlotsTime[];\n keys.map((time: SlotsTime) => {\n if (slots[time] && selectedPoint.properties.earliestSlot === slots[time].from) {\n const slot: Slot = slots[time];\n const assessor = findAssessor(assessors, slot.assessorCode);\n setAssessorName(assessor.name);\n }\n });\n }\n };\n\n const findAssessor = (assessors: Assessors[], code: string) => {\n return assessors.find((assessor) => assessor.code === code);\n };\n\n const handleCitaDisponible = (slot: CalendarSlot, assessors: Assessors[]) => {\n setLoading(false);\n closeLayerCallback({}, {}, {});\n handleDmsMapExit(slot, selectedPoint);\n return;\n };\n\n const handleCitaNoDisponible = (availability: Availability) => {\n setLoading(false);\n if (availability?.content?.calendar) {\n setSlotNotAvailable(true);\n setDMSError(false);\n } else {\n const { franjaHoraria } = getFranjaAndDayFrom(slotHorarioRef.current.from);\n setDay(weekDay_DayNumber_De_Month(slotHorarioRef.current.from));\n setFranjaHoraria(franjaHoraria.toLowerCase());\n setDMSError(true);\n setSlotNotAvailable(false);\n }\n };\n\n //\n const [day, setDay] = useState(null);\n const [franjaHoraria, setFranjaHoraria] = useState(null);\n\n const continueWithoutDms = (from: number, point: Points) => {\n const { day, franjaHoraria } = getFranjaAndDayFrom(from);\n\n handleNoDmsMapExit(franjaHoraria, day, point);\n };\n\n const checkCita = async () => {\n setLoading(true);\n const { from, to } = getToAndFromForCheckCita(slotHorarioRef.current.from);\n\n const availability = await getAvailability(dealer, from, to);\n\n if (availability?.content?.calendar) {\n const fromFormatted = year_MonthNumber_DayNumber(slotHorarioRef.current.from);\n const selectedDay = availability.content.calendar.find((day) => day.date === fromFormatted);\n const assessors = dealer.dmsInfo.assessors;\n\n if (selectedDay) {\n const finalSlot = selectedDay.slots\n .map((slot) => {\n if (slot.from === slotHorarioRef.current.from) {\n return slot;\n }\n })\n .filter((a) => a !== undefined);\n\n finalSlot.length > 0 ? handleCitaDisponible(finalSlot[0], assessors) : handleCitaNoDisponible(availability);\n } else {\n handleCitaNoDisponible(availability);\n }\n } else {\n handleCitaNoDisponible(availability);\n }\n };\n\n return (\n <>\n {\n e.preventDefault();\n closeLayerCallback({}, {}, {});\n }}\n >\n \n \n \n {!loading && !slotNotAvailable && !DMSError ? (\n <>\n \n ¿Quieres reservar esta cita?\n \n \n
\n \n Motivo de tu visita\n \n \n {motivoLabel ? motivoLabel : motivo ? motivo : 'Revisión de mantenimiento'}\n \n
\n
\n \n Fecha y hora\n \n \n {handleShowSlots(selectedPoint)}\n \n
\n
\n \n Taller\n \n \n {name}\n \n \n {address},
{zipCode} {city}\n
\n {assessorName ? (\n \n Asesor {assessorName}\n \n ) : null}\n
\n \n \n \n {\n e.preventDefault();\n trackingManager.trackFormCTAClick(\n {\n contentId: 'Sí, quiero esta cita',\n },\n dealer\n );\n checkCita();\n }}\n stretchContent\n >\n Sí­, quiero esta cita\n \n
\n {\n e.preventDefault();\n trackingManager.trackFormButtonClick(\n {\n contentId: 'Ver más horas',\n },\n dealer\n );\n handleShowCalendarOnClick(selectedPoint);\n closeLayerCallback({}, {}, {});\n }}\n stretchContent\n >\n Ver más horas\n \n \n \n {\n e.preventDefault();\n trackingManager.trackFormCTAClick(\n {\n contentId: 'Sí, quiero esta cita',\n },\n dealer\n );\n checkCita();\n }}\n >\n Sí, quiero esta cita\n \n
\n {\n e.preventDefault();\n trackingManager.trackFormButtonClick(\n {\n contentId: 'Ver más horas',\n },\n dealer\n );\n handleShowCalendarOnClick(selectedPoint);\n closeLayerCallback({}, {}, {});\n }}\n >\n Ver más horas\n \n \n \n \n ) : null}\n\n {loading ? (\n <>\n \n Confirmando con la agenda del taller\n \n ) : null}\n {!loading && DMSError ? (\n <>\n \n \n No hemos podido confirmar tu cita para el{' '}\n {handleShowSlots(selectedPoint)}\n \n \n ¿Quieres continuar con el proceso y que {name} se\n ponga en contacto contigo para cerrar tu cita el {day} por la {franjaHoraria}?\n \n \n \n \n {\n e.preventDefault();\n trackingManager.trackFormCTAClick(\n {\n contentId: 'Continuar',\n },\n dealer\n );\n checkCita();\n }}\n stretchContent\n >\n Continuar\n \n
\n {\n e.preventDefault();\n trackingManager.trackFormButtonClick(\n {\n contentId: 'Buscar una nueva cita',\n },\n dealer\n );\n closeLayerCallback({}, {}, {});\n }}\n stretchContent\n >\n Buscar una nueva cita\n \n \n \n {\n e.preventDefault();\n trackingManager.trackFormCTAClick(\n {\n contentId: 'Continuar',\n },\n dealer\n );\n continueWithoutDms(slotHorarioRef.current.from, selectedPoint);\n closeLayerCallback({}, {}, {});\n }}\n >\n Continuar\n \n
\n {\n e.preventDefault();\n trackingManager.trackFormButtonClick(\n {\n contentId: 'Buscar una nueva cita',\n },\n dealer\n );\n closeLayerCallback({}, {}, {});\n }}\n >\n Buscar una nueva cita\n \n \n \n \n ) : null}\n {!loading && slotNotAvailable ? (\n \n Lamentablemente la cita seleccionada no está disponible\n {\n e.preventDefault();\n trackingManager.trackFormButtonClick(\n {\n contentId: 'Seguir buscando',\n },\n dealer\n );\n handleShowCalendarOnClick(selectedPoint);\n closeLayerCallback({}, {}, {});\n }}\n >\n Seguir buscando\n \n \n ) : null}\n \n \n );\n}\n","import {\n Breakpoints,\n BreakpointWrapper,\n Container,\n ContainerPadding,\n Layout,\n styled,\n Text,\n TextAlignment,\n CTA,\n TokenTextAppearance,\n TokenTextColor,\n} from '@volkswagen-onehub/components-core';\nimport { getFirstAndLastDayOfMonth, isNull, useOneFormContext } from 'src/feature-app';\nimport { ArrowLeft } from 'src/icons-core-imports';\n\nimport React, { createRef, useEffect, useState } from 'react';\nimport { useSelector } from 'react-redux';\nimport { DealerCard } from 'src/components';\nimport { SeleccionDealerTabs } from 'src/feature-app';\nimport { CloseComponent } from 'src/feature-app/Screen';\nimport { Availability, DealersData, OneFormState, Points, Center } from 'src/types';\n\ninterface SeleccionDealerProps {\n pointsByDistance: Points[];\n pointsByTime: Points[];\n // setShowMap: React.Dispatch>;\n setShowCards: React.Dispatch>;\n setLoading: React.Dispatch>;\n setSelectedPoint: React.Dispatch>;\n getAvailability: (dealer: DealersData, start: number, end: number) => Promise;\n selectedPoint: Points;\n\n handleShowSlots: (point: Points) => string | null;\n showAllCardsMobile: boolean;\n center: Center;\n handleReservaCitaLayer: (p: Points) => void;\n hideCards?: () => void;\n}\n\ninterface BoxProps {\n selected: boolean;\n oneCard: boolean;\n}\n\nconst GoBackWrapper = styled.div`\n padding-top: 24px;\n\n & button {\n color: #ffffff;\n }\n`;\n\nconst Box = styled.div`\n width: 100%;\n border: ${(props) => (props.selected ? '2px solid #FFFFFF' : '1px solid rgba(255,255,255,0.44)')};\n padding: 24px;\n margin-top: ${(props) => (props.oneCard ? '0' : '44px')};\n\n :hover {\n border: ${(props) => (props.selected ? '2px solid #FFFFFF' : '1px solid #4cc7f4')};\n }\n`;\nconst ScrollWrapper = styled.div`\n height: calc(100vh - 80px);\n overflow-y: auto;\n margin: auto;\n`;\n\nconst TabsWrapper = styled.div`\n width: 83vw;\n padding-top: 24px;\n height: 100%;\n\n @media all and (min-width: 960px) {\n width: 380px;\n overflow-y: auto;\n margin: auto;\n }\n ul {\n padding-left: 5px;\n }\n\n & > div {\n padding-bottom: 24px;\n }\n`;\n\nconst ArrowLeftWrapper = styled.div`\n padding: 24px 0px;\n\n & svg {\n fill: #ffffff;\n }\n`;\n\ninterface Ref {\n ref: React.RefObject;\n kvps: string;\n}\n\nexport function SeleccionDealer(props: SeleccionDealerProps) {\n const {\n pointsByDistance,\n pointsByTime,\n selectedPoint,\n setSelectedPoint,\n getAvailability,\n setLoading,\n handleShowSlots,\n handleReservaCitaLayer,\n center,\n hideCards,\n setShowCards,\n } = props;\n\n const { horario } = useSelector((state: OneFormState) => state.formData.fields);\n const { handleAreYouSureLayer } = useOneFormContext();\n\n const [defaultIndex, setDefaultIndex] = useState(0);\n const [selectedPoints, setSelectedPoints] = useState(null);\n\n const createRefs = (points: Points[]) => {\n const refs = [];\n const length = points.length;\n for (let ix = 0; ix < length; ix++) {\n let refObject: Ref = { ref: createRef(), kvps: points[ix].properties.dealer.kvps };\n refs.push(refObject);\n refObject = null;\n }\n return refs;\n };\n const [isTimeSelected, setIsTimeSelected] = useState(false);\n const [timeRefs, setTimeRefs] = useState(null);\n const [distanceRefs, setDistanceRefs] = useState(null);\n\n useEffect(() => {\n if (horario === 'before') {\n setIsTimeSelected(true);\n setDefaultIndex(1);\n }\n }, []);\n\n useEffect(() => {\n // setSelectedPoint(null);\n setTimeRefs(null);\n setDistanceRefs(null);\n\n const timeRefs = createRefs(pointsByTime);\n const distanceRefs = createRefs(pointsByDistance);\n setTimeRefs(timeRefs);\n setDistanceRefs(distanceRefs);\n }, [pointsByDistance]);\n\n useEffect(() => {\n setSelectedPoints(pointsByDistance); // Actualizar con el que está seleccionado.\n }, [selectedPoints]);\n\n const handleShowCalendarOnClick = async (point: Points) => {\n setSelectedPoint(point);\n setLoading(true);\n const { firstDayOfMonth, lastDayOfMonth } = getFirstAndLastDayOfMonth();\n const availability = await getAvailability(point.properties.dealer, firstDayOfMonth, lastDayOfMonth); // Devuelve el availability.\n setLoading(false);\n };\n\n const handleSeleccionarOnClick = (point: any) => {\n setSelectedPoint(point);\n handleReservaCitaLayer(point);\n };\n\n const renderPoints = (points: any, isTime?: boolean): JSX.Element => {\n return points.map((point: Points, i: number) => {\n const { kvps } = point.properties.dealer;\n const { cluster } = point.properties;\n const selected = selectedPoint && selectedPoint.properties.dealer.kvps === kvps ? true : false;\n\n if (selected && !cluster) {\n if (\n isTimeSelected &&\n timeRefs[i] &&\n timeRefs[i].ref &&\n timeRefs[i].ref.current &&\n timeRefs[i].kvps === selectedPoint.properties.dealer.kvps\n ) {\n timeRefs[i].ref.current.scrollIntoView({ block: 'center', behavior: 'smooth' });\n } else if (\n !isTimeSelected &&\n distanceRefs[i] &&\n distanceRefs[i].ref &&\n distanceRefs[i].ref.current &&\n distanceRefs[i].kvps === selectedPoint.properties.dealer.kvps\n ) {\n distanceRefs[i].ref.current.scrollIntoView({ block: 'center', behavior: 'smooth' });\n }\n }\n return (\n <>\n {\n if (!cluster && !isNull(timeRefs) && timeRefs.length > 0 && !isNull(ref) && isTime) {\n if (timeRefs[i] && timeRefs[i].ref) {\n timeRefs[i].ref.current = ref;\n }\n } else if (!cluster && !isNull(distanceRefs) && distanceRefs.length > 0 && !isNull(ref) && !isTime) {\n if (distanceRefs[i] && distanceRefs[i].ref) {\n distanceRefs[i].ref.current = ref;\n }\n }\n }}\n className=\"Box\"\n >\n \n \n \n );\n });\n };\n\n return selectedPoints ? (\n <>\n \n {props.showAllCardsMobile ? (\n \n \n \n }\n onClick={(e) => {\n e.preventDefault();\n hideCards();\n }}\n >\n \n Ir al mapa\n \n \n \n \n Ordenar por:\n \n \n {/* \n \n Ordenar por:\n \n {\n setDefaultIndex(index);\n setIsTimeSelected(!isTimeSelected);\n }}\n defaultIndex={defaultIndex}\n >\n {{\n title: 'Ubicación',\n content: renderPoints(pointsByDistance, false),\n key: 'ubicacion',\n }}\n {{ title: 'Horario', content: renderPoints(pointsByTime, true), key: 'horario' }}\n \n */}\n \n \n ) : null}\n \n\n \n \n \n \n \n \n Ordenar por:\n \n \n \n \n \n \n \n \n \n ) : null;\n}\n","import { Breakpoints, Layout } from '@volkswagen-onehub/components-core';\nimport { \n LegalesFormatoLayer, \n LssiTkmQuestions, \n PoliticaPrivacidad, \n LastNavigation, \n GeneralConfirmacionLayerWrapper \n} from 'src/components';\nimport React from 'react';\n\nexport const ConfirmacionEmpresas = () => {\n\n return (\n \n \n \n \n\n \n\n \n \n \n );\n};\n","import React, { useEffect, useState } from 'react';\nimport { Text, styled } from '@volkswagen-onehub/components-core';\nimport { useFormContext } from 'react-hook-form';\nimport { CodigoPostal, InputError, TextInputExtended } from 'src/components';\n\nconst ContentWrapper = styled.div`\n margin-top: 4px;\n @media screen and (min-width: 960px) {\n display: flex;\n justify-content: space-between;\n flex-wrap: wrap;\n margin-top: 0;\n }\n label {\n margin-top: 40px;\n @media screen and (min-width: 560px) {\n width: 303px;\n }\n @media screen and (min-width: 960px) {\n width: 320px;\n margin-top: 44px;\n }\n @media all and (max-height: 624px) {\n margin-top: 24px;\n }\n }\n`;\n\nconst WidthWrapper = styled.div`\n width: 100%;\n @media all and (min-width: 560px) {\n width: 303px;\n }\n @media all and (min-width: 960px) {\n width: 320px;\n }\n`;\n\nexport const EmpresaInfoComponent = () => {\n const { register } = useFormContext();\n\n // Nombre de la empresa\n const [inputValueName, setInputValueName] = useState('');\n const [pristineName, setPristineName] = useState(true);\n const [errorName, setErrorName] = useState(false);\n const regExpName = /[a-zA-Z]/gi;\n\n const handleChangeName = (e: any) => {\n setInputValueName(e.target.value);\n setPristineName(false);\n };\n\n useEffect(() => {\n if (!pristineName && inputValueName.match(regExpName) === null) {\n setErrorName(true);\n } else {\n setErrorName(false);\n }\n }, [inputValueName, pristineName]);\n\n // CIF\n const [inputValueCIF, setInputValueCIF] = useState('');\n const [pristineCIF, setPristineCIF] = useState(true);\n const [errorCIF, setErrorCIF] = useState(false);\n const regExpCIF = /[A-Z]\\d{8}/gi;\n\n const handleChangeCIF = (e: any) => {\n setInputValueCIF(e.target.value);\n setPristineCIF(false);\n };\n\n useEffect(() => {\n if (!pristineCIF && inputValueCIF.match(regExpCIF) === null) {\n setErrorCIF(true);\n } else {\n setErrorCIF(false);\n }\n }, [inputValueCIF, pristineCIF]);\n\n\n\n return (\n <>\n \n \n handleChangeName(e)}\n required\n />\n {errorName && Solo se aceptan letras}\n \n \n handleChangeCIF(e)}\n required\n />\n {errorCIF && Ejemplo: A00000000}\n \n \n \n \n \n \n\n \n \n );\n};\n","import React, { useState } from 'react';\nimport { MultipleCTASelection} from 'src/components';\n\nconst fleetOptions = [\n {\n value: '1 - 2',\n label: '1 o 2',\n },\n {\n value: '3 - 10',\n label: 'De 3 a 10',\n },\n {\n value: '11 - 50',\n label: 'De 11 a 50',\n },\n];\n\nexport const Fleet = () => {\n\n return (\n \n );\n};\n","import React, { useEffect } from 'react';\nimport { Text, styled } from '@volkswagen-onehub/components-core';\nimport { OneElementTemplate } from 'src/feature-app/Screen';\nimport { Email, PantallaNombreApellido, Telefono, CarlineSelect, ContactInfoWrapper } from 'src/components';\nimport { MapaEmpresas, EmpresaInfoComponent, ConfirmacionEmpresas, ThankYouEmpresas } from 'src/forms';\nimport { useDispatch, useStore } from 'react-redux';\nimport { oneformBFFNdpsSend } from 'src/bff';\nimport { getParamsForm } from 'src/feature-app/get-params-form';\nimport { FormDataGroup, FormInfo, OneFormState, Steps } from 'src/types';\nimport {\n formatPrefix,\n FormController,\n removeWhiteSpace,\n useFaContent,\n useGetInstalaciones,\n useOneFormContext,\n} from 'src/feature-app';\nimport { useInitializeLeadForm } from '../Leads';\nimport { Fleet } from './Fleet';\nimport { formatHeaders, formatFlags, formDataBuilder, getDpsFields } from '../format-fields';\nimport { useGetWaidLitera } from 'src/feature-app/hooks/use-get-waid-litera';\n\nexport enum EmpresasFormSteps {\n Modelo,\n Mapa,\n NombreApellido,\n EmailTelefono,\n Empresa,\n Fleet,\n Confirmacion,\n}\n\nexport function EmpresasForm() {\n const { initializeForm } = useOneFormContext();\n const store = useStore();\n const installations = useGetInstalaciones('VW_DDB_FRM_VWEMPRESAS'); // Inicialización de las instalaciones\n const dispatch = useDispatch();\n const faContent = useFaContent();\n const waid = useGetWaidLitera();\n\n const defaultSteps: Steps[] = [\n {\n title: (\n <>\n ¿Qué modelo te interesa para tu flota?\n \n ),\n fields:
} />,\n screenIndex: EmpresasFormSteps.Modelo,\n name: 'Modelo',\n outputs: ['modelo'],\n outputsText: ['modelo'],\n },\n {\n screenIndex: EmpresasFormSteps.Mapa,\n name: 'Mapa',\n multiStep: true,\n component: ,\n },\n {\n title: (\n <>\n Estamos deseando hacerte una propuesta. Pero antes, nos gustaría saber quién eres\n \n ),\n fields:
} allowOverflowingContent />,\n screenIndex: EmpresasFormSteps.NombreApellido,\n name: 'NombreApellido',\n outputs: ['name', 'surname', 'secondSurname'],\n outputsText: ['name', 'surname', 'secondSurname'],\n showOverflow: true,\n },\n {\n title: (\n <>\n ¿En qué teléfono e email podemos localizarte?\n \n ),\n fields: (\n \n \n \n \n }\n />\n ),\n screenIndex: EmpresasFormSteps.EmailTelefono,\n name: 'EmailTelefono',\n outputs: ['cellphone', 'email'],\n outputsText: ['cellphone', '/', 'email'],\n },\n {\n title: (\n <>\n Ahora, nos gustaría conocer algunos detalles sobre tu empresa\n \n ),\n fields:
} />,\n screenIndex: EmpresasFormSteps.Empresa,\n name: 'Empresa',\n outputs: ['businessName', 'CIF', 'postalCode'],\n outputsText: ['businessName', '/', 'CIF', '/', 'postalCode'],\n },\n {\n title: (\n <>\n ¿Cuántos coches necesitas para tu{' '}\n \n flota?\n *\n \n \n ),\n fields: } />,\n screenIndex: EmpresasFormSteps.Fleet,\n name: 'Fleet',\n outputs: ['fleet'],\n outputsText: ['fleet'],\n },\n {\n fields: ,\n screenIndex: EmpresasFormSteps.Confirmacion,\n name: 'Confirmacion',\n isLastStep: true,\n hidePreviousStep: true,\n },\n ];\n\n\n const EmpresasFormData: Partial = {\n headers: {\n FORM_NAME: 'vw-oneform-empresas',\n FORM_OBJECTIVE: 'Más Información',\n SF_CAMPAIGN_ID: '7010Y0000001rdOQAQ',\n FORM_ID: waid ? waid : 'B10C01_LDEMPR_WA1',\n DPS_TOKEN: 'VW_DDB_FRM_VWEMPRESAS',\n },\n flags: {\n PERSON_RGPD_ADAPTED: 'true',\n FLAG_IS_MYSTERY_LEAD: 'false',\n FLAG_RELACION_MARCA_SIN_IC: 'false',\n FLAG_SF_INTEGRATION: 'true',\n FLAG_ALLOWS_DATA_ENRICHMENT: 'false',\n // FLAG_ISQUALIFIED: 'false',\n // FLAG_MAILRECEPCIONLEAD: 'true',\n // REQUIERE_CONTACTO_DEALER: 'false',\n },\n fields: {\n formName: 'empresas',\n formType: 'contact',\n pageCategory: 'Más Información',\n formularioFlag: 'masInformacion',\n }, // Analítica\n };\n \n const sendForm = (): Promise => {\n const { formData, dealersInfo }: OneFormState = store.getState();\n \n const { fields, flags, headers } = formData;\n \n const { selectedInstallation, carlines } = dealersInfo;\n\n const {\n VGED_CommercialName__c,\n BillingStreet,\n BillingPostalCode,\n BillingCity,\n BillingLatitude,\n BillingLongitude,\n VGED_DealerCode__c,\n BillingStateCode,\n KVPSCode__c,\n Id\n } = selectedInstallation;\n\n\n return new Promise(async (resolve, reject) => {\n const { tc, today, referalUrl, url, device } = getParamsForm();\n\n const data = {\n ...formatHeaders(headers),\n\n 'headers[FORM_URL]': url,\n 'headers[ORIGIN_DEVICE_TYPE]': device,\n 'headers[FORM_DATE_INSERTION]': today,\n 'headers[ORIGIN_TRACKING_CODE]': tc,\n 'headers[FORM_VERSION]': `vw-oneform-empresas-${process.env.VERSION}`,\n 'headers[SF_CAMPAIGN_NAME]': 'PENDIENTE',\n //'headers[SF_CAMPAIGN_ORIGIN_ID]': 'PENDIENTE',\n\n ...formatFlags(flags),\n\n 'fields[DPS_BRAND]': 'Volkswagen',\n 'fields[SF_LEAD_RECORDTYPE_ID]': '0121i000000D7NyAAK',\n 'fields[SF_LEAD_RECORDTYPE_NAME]': 'Sales Assistant',\n 'fields[SF_LEAD_SALES_INITIAL_ACTION]': 'Direct to Sales Assistant',\n 'fields[PERSON_NAME]': fields.name,\n 'fields[PERSON_SURNAME_1]': fields.surname,\n 'fields[PERSON_SURNAME_2]': fields.secondSurname,\n 'fields[PERSON_EMAIL]': removeWhiteSpace(fields.email),\n 'fields[PERSON_PHONE_MOBILE_FULL]': `${formatPrefix(fields.prefix)}${fields.cellphone}`,\n 'fields[PERSON_PHONE_MOBILE]': fields.cellphone,\n 'fields[PERSON_PHONE_PREFIX]': formatPrefix(fields.prefix),\n 'fields[PERSON_POSTAL_CP]': fields.postalCode,\n 'fields[COMPANY_NAME]': fields.businessName,\n 'fields[COMPANY_CIF]': fields.CIF,\n 'fields[COMMENTS_PERSON]': 'Tamaño flota: ' + fields.fleet,\n 'fields[SF_LEAD_INSTALLATION_ADDRESS]': BillingStreet,\n 'fields[SF_LEAD_INSTALLATION_CODE]': VGED_DealerCode__c,\n 'fields[SF_LEAD_INSTALLATION_ID]': Id,\n 'fields[SF_LEAD_INSTALLATION_NAME]': VGED_CommercialName__c,\n 'fields[SF_LEAD_INSTALLATION_PROVINCE_CODE]': BillingStateCode.toString().padStart(2, '0'),\n // 'fields[VEH_INTEREST_FUEL]': 'PENDIENTE',\n 'fields[VEH_INTEREST_BRAND]': 'Volkswagen',\n 'fields[VEH_INTEREST_ID]': fields.carlineCode,\n 'fields[VEH_INTEREST_MODEL]': fields.modelo,\n 'fields[VEH_INTEREST_NEW_OR_USED]': 'New Car',\n 'fields[PERSON_RGPD_COM_COMERCIALES]': fields.lssi ? fields.lssi : 'NO INFORMADO',\n 'fields[PERSON_RGPD_PERFILADO]': fields.tmk ? fields.tmk : 'NO INFORMADO',\n ...getDpsFields(faContent),\n };\n\n delete data['headers[DETALLE_TIPO_PETICION_SIM]'];\n delete data['headers[DESC_FORM_DETAIL]'];\n\n const dataStringified = JSON.stringify(data);\n const dataParsed = JSON.parse(dataStringified);\n\n const formData = formDataBuilder(dataParsed);\n\n const response = await oneformBFFNdpsSend(formData);\n\n if (response && response.data && response.data.status && response.data.status.code && response.data.status.code == '200') {\n dispatch({ type: 'SET_FORM_RESPONSE', payload: response.data });\n resolve(true);\n } else {\n resolve(false);\n }\n });\n };\n\n const { loading, steps, firstStep, lastStep } = useInitializeLeadForm(defaultSteps);\n\n useEffect(() => {\n if (loading) {\n return;\n }\n\n const EmpresasFormInfo: Partial = {\n formStarted: true,\n sendFormCallback: sendForm,\n fullScreen: firstStep.fullScreen ? true : false,\n lastStep,\n numberOfScreens: steps.length,\n screenIndex: firstStep.screenIndex,\n step: firstStep,\n steps: steps,\n notALayer: false,\n formType: 'layer',\n formTheme: 'inverted',\n stepsHistory: [0],\n thankYouComponent: ,\n };\n\n initializeForm(EmpresasFormInfo, EmpresasFormData);\n }, [loading]);\n\n return loading ? null : ;\n}\n","import React, { useEffect } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { useTrackingManager, getTrackingForm } from 'src/feature-app';\nimport { RenderController } from 'src/feature-app/Screen';\nimport { OneFormState, Steps } from 'src/types';\nimport { ThankYouTitle, ThankYouFields } from 'src/components';\n\nexport const ThankYouEmpresas = () => {\n const { formInfo } = useSelector((state: OneFormState) => state);\n const { formResponse } = formInfo;\n\n const trackingManager = useTrackingManager();\n const dispatch = useDispatch();\n\n useEffect(() => {\n // Thank you page no es gestionado como un step pero sí lo haremos en la analítica. Por eso Modificamos formInfo después del submit y antes del RESET\n const screenIndexThankyou = formInfo.numberOfScreens;\n\n dispatch({ type: 'SET_FORM_SUBMITTED', payload: true });\n dispatch({ type: 'SET_FORM_INFO', payload: { step: { screenIndex: screenIndexThankyou, name: \"ThankYou\" } } });\n\n trackingManager.trackFormSubmissionSuccessMessageLoad(\n {\n contentId: undefined,\n },\n getTrackingForm(formResponse)\n );\n }, []);\n\n const screen: Steps = {\n title: ,\n fields: ,\n };\n return (\n \n );\n};\n","import { Breakpoints, BreakpointWrapper } from '@volkswagen-onehub/components-core';\nimport { CloseHandleV2, FocusLayerSizeV2, LayerManagerV2 } from '@volkswagen-onehub/layer-manager';\nimport React, { useCallback, useEffect, useRef, useState } from 'react';\nimport { useDispatch, useSelector, useStore } from 'react-redux';\nimport { AvailabilityErrorLayer } from 'src/components';\nimport {\n LayerManagerWrapper,\n useFeatureAppEnvironment,\n useMapGeneralController,\n sortPoints,\n useOneFormContext,\n useFeatureServices,\n NewDealerCard,\n} from 'src/feature-app';\nimport { LoadingLayer } from 'src/forms/CitaPosventa/NuevaCitaPosventa';\nimport { Horario, OneFormState, Points } from 'src/types';\nimport { fetchProvince, fetchProvinceLegacy } from 'src/bff';\nimport { useIsComerciales } from 'src/feature-app/hooks';\nimport { \n getDistanceFromLatLngCenter, \n LayerDesktopView, \n LayerMobileView \n} from 'src/feature-app/NewMap';\n\n\nexport const JourneyEmpresasController = () => {\n const { formData } = useSelector((state: OneFormState) => state);\n const { horario }: { horario?: Horario } = formData.fields;\n const { handleNextStep } = useOneFormContext();\n const layerManager = useFeatureServices()['layer-manager'] as LayerManagerV2;\n const store = useStore();\n const dispatch = useDispatch();\n const env = useFeatureAppEnvironment();\n const [loading, setLoading] = useState(false);\n const pointsByDistanceRef = useRef(null);\n const isComerciales = useIsComerciales();\n\n const loadingLayer = useRef(null);\n const {\n clusters,\n centerToCalculateDistance,\n superClusterRef,\n cardsDistanceRef,\n } = useMapGeneralController();\n\n const [pointsToList, setPointsToList] = useState(null);\n\n useEffect(() => {\n if (clusters && superClusterRef.current) {\n const { pointsByDistance } = sortPoints(\n clusters,\n horario,\n centerToCalculateDistance.current,\n superClusterRef.current\n );\n pointsByDistanceRef.current = pointsByDistance;\n setPointsToList(pointsByDistance);\n }\n }, [clusters, superClusterRef.current]);\n\n const renderPoints = (points: Points[], isTime?: boolean, isCarouselCard?: boolean): JSX.Element[] => {\n // const pointsToRender = isTime ? pointsByTime : pointsByDistance;\n\n return points.map((point: Points, index: number) => {\n if (!point.properties.cluster) {\n const { dealer } = point.properties;\n const distanceFromCenter = getDistanceFromLatLngCenter(centerToCalculateDistance.current, point);\n\n return (\n {\n cardsDistanceRef.current[index] = el;\n }}\n >\n \n
\n );\n }\n return null;\n });\n };\n\n // Gestión del point seleccionado y del boton de seleccionar (dms)\n const handleSeleccionarOnClick = useCallback((point: Points) => {\n // Añadir lógica para guardar el dealer seleccionado\n dispatch({ type: 'SET_SELECTED_INSTALLATION', payload: point.properties.installation });\n // Necesitamos el nombre de la provincia, y éste no está disponible en la request de instalaciones.\n if(isComerciales) {\n fetchProvinceLegacy('LCV_DDB_FRM_LEM_REC_LEM').then((response) => {\n const province = response.content.find((att) =>\n att.attributes.find((prov) => prov.value === point.properties.installation.FRML_TXT_codVentaProvincia__c)\n );\n const provinceName = province.attributes[1].value;\n \n dispatch({ type: 'UPDATE_FIELDS', payload: { provinceName } });\n });\n }\n else {\n fetchProvince('VW_DDB_FRM_LEM_REC_LEM').then((response) => {\n const province = response.content.find((att) =>\n att.attributes.find((prov) => prov.value === point.properties.installation.FRML_TXT_codVentaProvincia__c)\n );\n const provinceName = province.attributes[1].value;\n \n dispatch({ type: 'UPDATE_FIELDS', payload: { provinceName } });\n });\n }\n handleNextStep();\n }, []);\n\n const renderAvailabilityErrorLayer = (state: any, close: CloseHandleV2) => {\n return (\n \n \n \n );\n };\n const renderLoadingLayer = () => {\n return (\n \n \n \n );\n };\n\n const handleLoadingLayer = () => {\n if (loading) {\n const layer = layerManager.openFocusLayer(renderLoadingLayer, {}, { size: FocusLayerSizeV2.A });\n loadingLayer.current = layer;\n } else {\n if (loadingLayer.current) {\n loadingLayer.current.close();\n loadingLayer.current = null;\n }\n }\n };\n\n useEffect(() => {\n handleLoadingLayer();\n }, [loading]);\n\n return (\n
\n \n \n \n\n \n \n \n
\n );\n};\n","import React from 'react';\nimport { JourneyEmpresasController } from '.';\nimport { MapGeneralController } from 'src/feature-app';\n\n/**\n * Este componente está creado únicamente para que JourneyEmpresasController tenga acceso a las variables de MapGeneralController.\n */\nexport const JourneyEmpresasWrapper = () => {\n return (\n \n \n \n );\n};\n","import { Text } from '@volkswagen-onehub/components-core';\nimport React, { useEffect, useState } from 'react';\nimport { useDispatch, useSelector, useStore } from 'react-redux';\nimport { useOneFormContext } from 'src/feature-app';\nimport { RenderController } from 'src/feature-app/Screen';\nimport LoadScriptInstance from 'src/feature-app/NewMap/Loadscript';\nimport { LocateUser } from 'src/forms/CitaPosventa/NuevaCitaPosventa';\nimport { TIME_FOR_TRANSFORM } from 'src/globals';\nimport { DealersData, OneFormState, Steps } from 'src/types';\nimport { JourneyEmpresasWrapper } from './JourneyEmpresasWrapper';\n\nenum MapaEmpresasSteps {\n Dealer,\n Horario,\n SeleccionCita,\n SeleccionFecha,\n}\n\nconst CTAsHorario = [\n { label: 'Por la mañana', value: 'morning' },\n { label: 'Al mediodía', value: 'afternon' },\n { label: 'Por la tarde', value: 'evening' },\n];\n\ninterface MapaEmpresasProps {\n showHorario?: boolean;\n formName: string;\n}\n\nconst isLastScreen = (steps: Steps[], multiStepScreenIndex: number) => steps.length - 1 === multiStepScreenIndex;\nconst isFirstScreen = (multiStepScreenIndex: number) => multiStepScreenIndex === 0;\n\nexport function MapaEmpresas(props: MapaEmpresasProps) {\n const { formName, showHorario } = props;\n const dispatch = useDispatch();\n const store = useStore();\n const { formData, formInfo } = useSelector((state: OneFormState) => state);\n const { dealer }: { dealer?: DealersData } = formData.fields;\n const { firstMapLoad, multiStepScreenIndex, navigationMovingForward } = formInfo;\n\n const {\n handleScreenChange,\n // setWaitForNextStep,\n setNextMultiStep,\n setNextMultiStepScreenIndex,\n setPreviousMultiStep,\n setWaitForPreviousStep,\n waitForPreviousStep,\n // waitForNextStep,\n setIsFullScreen,\n setShowPreviousStep,\n } = useOneFormContext();\n\n const steps: Steps[] = [\n {\n title: (\n \n ¿Qué experto quieres que se{' '}\n \n encargue?*\n \n \n ),\n fields: ,\n screenIndex: MapaEmpresasSteps.Dealer,\n name: 'MapSearch',\n outputs: ['location'],\n outputsText: ['location'],\n showOverflow: true,\n },\n {\n screenIndex: 1,\n name: 'MapSelect',\n alternateTitle: (\n \n ¿Qué experto quieres que se{' '}\n \n encargue?*\n \n \n ),\n title: <>,\n fields: ,\n outputs: ['installation'],\n outputsText: ['installation'],\n fullScreen: true,\n multiStepLastScreen: true,\n hidePreviousStep: true,\n },\n ];\n\n const [selectedStep, setSelectedStep] = useState(null);\n\n /**\n * Hay que esperar a que se cree el mapa de google para tener acceso a window.google\n */\n const onMapLoad = () => {\n handleFirstLoad();\n };\n\n const handleFirstLoad = async () => {\n if (firstMapLoad) {\n // Inicialización\n initializeMultiStep();\n } else {\n if (navigationMovingForward || navigationMovingForward === null || navigationMovingForward === undefined) {\n // Inicialización cuando se va hacia adelante una vez inicializado el mapa o después de cerrar el layer y abrir en el mapa.\n initializeMultiStep();\n } else {\n // En caso de que estemos en la última pantalla, desactivamos el wait for next step.\n const newWaitForNextStep = !isLastScreen(steps, multiStepScreenIndex);\n // Lo mismo para previous, solo le desactivamos si estamos en la primera.\n const newWaitForPreviousStep = !isFirstScreen(multiStepScreenIndex);\n\n updateWaitForNextAndPreviousStep(newWaitForNextStep, newWaitForPreviousStep);\n updateScreenChangeVariables(multiStepScreenIndex);\n\n setTimeout(() => {\n setShowPreviousStep(false);\n }, TIME_FOR_TRANSFORM);\n }\n }\n setNextMultiStep(() => nextMapaEmpresas);\n setPreviousMultiStep(() => previousMapaEmpresas);\n };\n\n const initializeMultiStep = () => {\n updateWaitForNextAndPreviousStep(true, false);\n updateScreenChangeVariables(0);\n };\n\n const updateWaitForNextAndPreviousStep = (waitForNextStep: boolean, waitForPreviousStep: boolean) => {\n if (waitForNextStep !== null) {\n dispatch({ type: 'UPDATE_WAIT_FOR_NEXT_STEP', payload: waitForNextStep });\n }\n if (waitForPreviousStep !== null) {\n setWaitForPreviousStep(waitForPreviousStep);\n }\n };\n\n const nextMapaEmpresas = () => {\n const { multiStepScreenIndex } = store.getState().formInfo;\n\n handleScreenChange();\n\n // Una vez avanzamos dentro de los multisteps se activa el wait\n // previous step para volver hacia atrás dentro del propio multistep.\n if (!waitForPreviousStep || multiStepScreenIndex === 0) {\n updateWaitForNextAndPreviousStep(null, true);\n }\n\n setTimeout(() => {\n updateScreenChangeVariables(multiStepScreenIndex + 1);\n // Si estamos en el último paso del multistep se desactiva el\n // wait next step para poder salir del multistep y avanzar hacia la siguiente pantalla.\n if (steps[multiStepScreenIndex + 1].multiStepLastScreen) {\n updateWaitForNextAndPreviousStep(false, null);\n if(multiStepScreenIndex === 0) {\n setShowPreviousStep(false);\n } else {\n setShowPreviousStep(true);\n }\n }\n }, TIME_FOR_TRANSFORM);\n };\n\n const previousMapaEmpresas = () => {\n const { multiStepScreenIndex, waitForNextStep } = store.getState().formInfo;\n\n handleScreenChange();\n\n // Se desactiva el wait previous step en la segunda pantalla para que\n // en el caso de volver hacia atrás en la primera salte de step y no busque dentro de los multisteps.\n if (multiStepScreenIndex === 1) {\n updateWaitForNextAndPreviousStep(null, false);\n }\n\n if (!waitForNextStep) {\n updateWaitForNextAndPreviousStep(true, null);\n }\n\n // Se fija en la pantalla previa a la primera para que cuando se cambie\n // a la primera pantalla el CTA de anterior pase del multistep al step anterior.\n setTimeout(() => {\n updateScreenChangeVariables(multiStepScreenIndex - 1);\n }, TIME_FOR_TRANSFORM);\n };\n\n const updateScreenChangeVariables = (newMultiStepScreenIndex: number) => {\n setNextMultiStepScreenIndex(newMultiStepScreenIndex);\n dispatch({ type: 'UPDATE_MULTISTEP_SCREENINDEX', payload: newMultiStepScreenIndex });\n setSelectedStep(steps[newMultiStepScreenIndex]);\n setIsFullScreen(steps[newMultiStepScreenIndex].fullScreen);\n setShowPreviousStep(!steps[newMultiStepScreenIndex].hidePreviousStep);\n };\n\n useEffect(() => {\n dispatch({ type: 'UPDATE_MULTISTEPS', payload: steps });\n\n handleFirstLoad();\n\n return () => {\n dispatch({ type: 'UPDATE_FIRST_MAP_LOAD', payload: false });\n setShowPreviousStep(true);\n updateWaitForNextAndPreviousStep(false, false);\n };\n }, []);\n\n return selectedStep ? (\n \n \n \n ) : null;\n}\n","import React, { useEffect, useRef, useState } from 'react';\nimport { AutosubmitController } from 'src/forms/Autosubmit/AutosubmitController';\nimport { createPincodeEntity } from '../../dps-utils';\nimport { EsOneformCoreServiceV1 } from 'src/feature-service/es-oneform-core-feature-service/types';\nimport { GenericErrorLayer } from 'src/components/layers';\nimport { LoadingEncuestas } from 'src/components';\nimport { useFeatureServices, useTrackingManager } from 'src/feature-app';\nimport { PlanIdealForm } from './PlanIdealForm';\n\nexport function PlanIdealController() {\n const [loading, setLoading] = useState(true);\n const [error, setError] = useState(false);\n const [pincodeAvailable, setPincodeAvailable] = useState(false);\n const trackingManager = useTrackingManager();\n const dpsDataRef = useRef(null);\n const idPersonRef = useRef(null);\n const oneFormService = useFeatureServices()['es:oneform-core'] as EsOneformCoreServiceV1;\n\n const handleNext = (value: any) => { };\n const handleComplete = () => {\n const dpsData = oneFormService.getDpsData();\n\n if (dpsData.pincode === null || dpsData.pincode.noPincodeFound || dpsData.pincode.pincodeError) {\n setPincodeAvailable(false);\n setLoading(false);\n } else {\n setPincodeAvailable(true);\n const idPerson = createPincodeEntity(dpsData, 'PERSON');\n\n dpsDataRef.current = dpsData;\n idPersonRef.current = idPerson;\n\n setLoading(false);\n }\n };\n\n const handleError = () => {\n setError(true);\n setLoading(false);\n };\n\n const trackFormLoad = () => {\n trackingManager.trackFormLoad();\n };\n\n useEffect(() => {\n const oneFormCoreDpsIsLoaded = oneFormService.getLoadedState();\n\n oneFormCoreDpsIsLoaded.subscribe({\n next(value) {\n handleNext(value);\n },\n error(err) {\n console.error(err);\n handleError();\n },\n complete() {\n handleComplete();\n },\n });\n }, []);\n\n if (loading) {\n return ;\n } else if (error) {\n return (\n <>\n \n \n );\n } else {\n return (\n <>\n {\n pincodeAvailable ?\n \n :\n \n }\n \n );\n }\n}\n","import React, { useState } from 'react';\nimport { RadioButton } from '@volkswagen-onehub/components-core';\nimport { InputButton } from 'src/components/inputs/InputButton';\nimport { useOneFormContext } from 'src/feature-app/OneForm';\nimport { useFormContext } from 'react-hook-form';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { OneFormState } from 'src/types';\n\ninterface ChecksProps {\n questionName: string;\n avoidNextStep?: boolean;\n answers: string[];\n skippable: boolean;\n}\n\nexport const Checks = (props: ChecksProps) => {\n const { questionName, answers, skippable} = props;\n const [checkedIndex, setCheckedIndex] = useState(null);\n const dispatch = useDispatch();\n\n const { handleNextStep } = useOneFormContext();\n const [value, setValue] = useState(null);\n const { register } = useFormContext();\n\n const handleOnClick = (e: any) => {\n setTimeout(() => {\n dispatch({ type: 'UPDATE_FIELDS', payload: { [questionName]: e.target.value } });\n handleNextStep();\n }, 0);\n };\n\n return (\n
\n {answers.map((answer, index) => {\n return (\n
\n {\n setValue(answer);\n setCheckedIndex(index);\n handleOnClick(e);\n }}\n checked={checkedIndex === index}\n />\n
\n )\n })}\n\n {\n skippable ? (\n
\n {\n setValue(\"No, eso es todo\");\n handleOnClick(e);\n }}\n />\n
\n ) : null\n }\n\n \n
\n );\n};\n","import React, { useEffect, useState } from \"react\";\nimport {\n Breakpoints,\n BreakpointWrapper,\n Container,\n ContainerPadding,\n styled,\n Text,\n} from '@volkswagen-onehub/components-core';\nimport { Checks } from './Checks';\nimport { useWindowHeight, useWindowWidth } from '@react-hook/window-size';\n\nconst LayoutWrapper = styled.div`\n @media all and (min-width: 960px) {\n padding-left: var(--size-grid002);\n display: flex;\n }\n`;\n\nconst InfoWrapper = styled.div`\n width: 100%;\n padding-left: var(--size-grid002);\n padding-right: var(--size-grid002);\n @media all and (min-width: 960px) {\n display: flex;\n justify-content: center;\n flex-direction: column;\n width: var(--size-grid012);\n padding-left: var(--size-grid002);\n padding-right: 0;\n padding-top: 0;\n }\n @media all and (min-width: 1280px) {\n padding-left: var(--size-grid003);\n }\n @media all and (min-width: 1600px) {\n padding-left: var(--size-grid002);\n }\n`;\n\ninterface VideoProps {\n isMediumScreen: boolean;\n};\n\nconst Video = styled.video`\n display: block;\n max-height: ${(props) => props.isMediumScreen ? \"auto\" : \"25%\"};\n width: ${(props) => props.isMediumScreen ? \"35%\" : \"100%\"};\n margin: ${(props) => props.isMediumScreen ? \"auto\" : \"0 auto\"};\n padding-bottom: var(--size-grid001);\n`;\n\ninterface QuestionWithImageProps {\n answers: string[];\n imageSrc: string;\n videoSrc: string;\n skippable: boolean;\n\n index: number;\n questionName: string;\n intro: JSX.Element | string;\n title: JSX.Element | string;\n}\n\nexport const QuestionWithImage = (props: QuestionWithImageProps) => {\n const {\n answers,\n imageSrc,\n videoSrc,\n index,\n questionName,\n intro,\n title,\n skippable\n } = props;\n const height = useWindowHeight();\n const windowWidth = useWindowWidth();\n const [isMediumScreen, setIsMediumScreen] = useState(false);\n\n useEffect(() => {\n console.log(\"setIsMediumScreen\", windowWidth >= 960);\n setIsMediumScreen(windowWidth >= 960);\n}, [windowWidth]);\n\n return (\n \n {\n height <= 600 ? null : (\n \n
\n \n
\n
\n )\n }\n \n \n \n \n \n \n <>\n {intro}\n \n \n \n <>\n {title}\n \n \n \n \n \n
\n )\n};\n","import React, { useEffect, useState } from 'react';\nimport { ConfirmationPlanIdeal, ThankYouPlanIdeal } from './';\nimport { QuestionWithImage } from './QuestionWithImage';\nimport { dpsSend } from 'src/bff';\nimport { getParamsForm } from 'src/feature-app/get-params-form';\nimport {\n formatPrefix,\n FormController,\n useOneFormContext,\n} from 'src/feature-app';\nimport {\n FormDataGroup,\n FormInfo,\n OneFormState,\n Steps,\n} from 'src/types';\nimport { formDataBuilder } from 'src/forms/format-fields';\nimport { useTrackingManager } from 'src/feature-app/hooks/use-tracking-manager';\nimport { useDispatch, useStore, useSelector } from 'react-redux';\nimport { OneElementTemplate } from 'src/feature-app/Screen';\nimport {\n DetalleMotivo,\n} from 'src/components';\nimport {\n Text,\n} from '@volkswagen-onehub/components-core';\nimport { addRemovedStep, getIndexInSteps, removeStep, resetStepsScreenIndex } from '../../helpers/add-remove-steps';\n\nexport enum PlanIdealSteps {\n PlanIDeal1,\n PlanIDeal2,\n PlanIDeal3,\n PlanIDeal3Otros,\n Confirmacion\n}\n\nconst questions = [\n {\n questionName: 'PlanIDeal1',\n screenIndex: PlanIdealSteps.PlanIDeal1,\n intro: <>En tus escapadas...,\n title: <>¿Cuánto te gusta conducir?,\n answers: [\n 'Mucho, mi coche es mi segundo hogar',\n 'Ni fu ni na, de copiloto se va mejor',\n 'Poco, solo si es necesario'\n ],\n videoSrc: 'https://assets.volkswagen.com/is/content/volkswagenag/video01-0x720-3000k',\n imageSrc: 'https://assets.volkswagen.com/is/image/volkswagenag/DB2023AU00207_medium%201?Zml0PWNyb3AlMkMxJndpZD00NjQmaGVpPTQ2NCZmbXQ9cG5nLWFscGhhJmJmYz1vZmYmNjA2Mg==',\n skippable: false\n },\n {\n questionName: 'PlanIDeal2',\n screenIndex: PlanIdealSteps.PlanIDeal2,\n intro: <>En tus escapadas...,\n title: <>¿Quién suele acompañarte?,\n answers: [\n 'Voy solo y sin que nadie me toque la música',\n 'Mi familia, nada nos separa',\n 'Mi pareja es mi mejor copiloto',\n 'Mis amigxs, con ellxs a todos lados'\n ],\n videoSrc: 'https://assets.volkswagen.com/is/content/volkswagenag/video02-0x720-3000k',\n imageSrc: 'https://assets.volkswagen.com/is/image/volkswagenag/DB2023AU00207_medium%201?Zml0PWNyb3AlMkMxJndpZD00NjQmaGVpPTQ2NCZmbXQ9cG5nLWFscGhhJmJmYz1vZmYmNjA2Mg==',\n skippable: false\n },\n {\n questionName: 'PlanIDeal3',\n screenIndex: PlanIdealSteps.PlanIDeal3,\n intro: <>Ahora es tu turno.,\n title: <>¿Hay algo que quieras saber de nuestros eléctricos?,\n answers: [\n 'La autonomía que tienen',\n 'El tiempo y lugar de carga',\n 'Lo que me ahorro',\n 'Otros'\n ],\n videoSrc: 'https://assets.volkswagen.com/is/content/volkswagenag/video03-0x720-3000k',\n imageSrc: 'https://assets.volkswagen.com/is/image/volkswagenag/DB2023AU00207_medium%201?Zml0PWNyb3AlMkMxJndpZD00NjQmaGVpPTQ2NCZmbXQ9cG5nLWFscGhhJmJmYz1vZmYmNjA2Mg==',\n skippable: true\n }\n];\n\ninterface PlanIdealFormProps {\n dpsData?: any;\n idPerson?: any;\n handleError?: any;\n email?: string;\n name?: string;\n surname?: string;\n}\n\nexport function PlanIdealForm(props: PlanIdealFormProps) {\n const { idPerson } = props;\n const { initializeForm, handleNextStep } = useOneFormContext();\n const trackingManager = useTrackingManager();\n const store = useStore();\n const dispatch = useDispatch();\n const { formData } = useSelector((state: OneFormState) => state);\n const [loading, setLoading] = useState(true);\n\n const name: string = props.name ? props.name : props.idPerson?.FirstName;\n const surname: string = props.surname ? props.surname : props.idPerson?.LastName;\n const email: string = props.email ? props.email : props.idPerson?.TXT_Email__c;\n\n useEffect(() => {\n dispatch({ type: 'UPDATE_FIELDS', payload: { email, name, surname } });\n setLoading(false);\n }, []);\n\n //Logica eliminar o añadir PlanIdeal3Otros\n const { PlanIDeal3 } = formData.fields;\n const handlePlanIDeal3Otros = (PlanIDeal3: String) => {\n const { steps: actualSteps, screenIndex } = store.getState().formInfo;\n let newSteps = [...actualSteps];\n\n if (PlanIDeal3 === \"Otros\") {\n const stepIndex = getIndexInSteps(newSteps, 'PlanIDeal3Otros');\n\n if (stepIndex === -1) {\n newSteps = addRemovedStep(steps, actualSteps, 'PlanIDeal3Otros', screenIndex);\n setTimeout(() => {\n handleNextStep();\n }, 0);\n }\n } else {\n newSteps = removeStep(newSteps, 'PlanIDeal3Otros');\n }\n\n const newStepsWithIndex = resetStepsScreenIndex(newSteps);\n\n dispatch({ type: 'UPDATE_STEPS', payload: newStepsWithIndex });\n dispatch({ type: 'UPDATE_LAST_STEP', payload: newStepsWithIndex[newStepsWithIndex.length - 1] });\n dispatch({ type: 'SET_NUMBER_OF_SCREENS', payload: newStepsWithIndex.length });\n };\n\n const steps: Steps[] = [\n ...questions.map((question, index) => {\n return {\n fields: ,\n screenIndex: question.screenIndex,\n name: question.questionName,\n showOverflow: true,\n }\n }),\n {\n title: <>¿Nos das más detalles?,\n fields: } />,\n screenIndex: PlanIdealSteps.PlanIDeal3Otros,\n name: 'PlanIDeal3Otros'\n },\n {\n fields: ,\n screenIndex: PlanIdealSteps.Confirmacion,\n name: 'Confirmacion',\n outputs: ['confirmacion'],\n outputsText: ['confirmacion'],\n },\n ];\n\n const NuevoFormData: Partial = {\n fields: {\n formName: 'adhoc-2023-plan_ideal',\n formType: 'otherform',\n pageCategory: 'Concurso'\n }, // Analítica\n };\n\n const getFormInfo = (): {\n firstStep: Steps;\n lastStep: Steps;\n stepsHistory: number[];\n numberOfScreens: number;\n newSteps?: Steps[];\n } => {\n return {\n firstStep: steps[0],\n lastStep: steps[steps.length - 1],\n stepsHistory: [0],\n numberOfScreens: steps.length,\n newSteps: null,\n };\n };\n\n const generateData = (data?: Partial) => {\n const { formData }: OneFormState = store.getState();\n const { fields } = formData;\n const { tc, today, url, device } = getParamsForm();\n\n return {\n 'headers[COD_FORM_ID]': fields.formName ? `vw-oneform-${fields.formName}` : `vw-oneform-${data.fields.formName}`,\n 'headers[DESC_BRAND]': 'VW',\n 'headers[DESC_CAMPAIGNBLOCK]': '16. OneShots',\n 'headers[DESC_DEVICETYPE]': device,\n 'headers[DESC_FORM_DETAIL]': 'Plan IDeal 2023',\n 'headers[DESC_FORMOBJECTIVE]': 'Concurso',\n 'headers[DESC_GDPR_ADAPTED]': 'true',\n 'headers[DESC_ID_CAMPAIGN]': '7017Q000000DYShQAO',\n 'headers[DESC_TOKEN]': 'VW_DDB_FRM_PLAN_IDEAL_2023',\n 'headers[DESC_URLORIGIN]': url,\n 'headers[DESC_VN_VO]': 'VN',\n 'headers[FECHA_INSERTION_DATE]': today,\n 'headers[TC]': tc,\n 'headers[DESC_ID_CLIMAPRO]': idPerson ? idPerson.ID_Person_DIM_IMP__c : \"\",\n\n 'fields[DESC_AUXFIELD1]': fields.PlanIDeal1, // Primera Respuesta\n 'fields[DESC_AUXFIELD2]': fields.PlanIDeal2, // Segunda Respuesta\n 'fields[DESC_AUXFIELD3]': fields.PlanIDeal3, // Tercera Respuesta\n 'fields[M_OBSERVATION]': fields.PlanIDeal3 === 'Otros' ? fields.PlanIDeal3Otros : '', // Mensaje en caso otros en Tercera Respuesta\n\n 'fields[DESC_EMAIL_ADDRESS]': fields.email ? fields.email : idPerson? idPerson.TXT_Email__c : null,\n 'fields[DESC_FORM_VERSION]': fields.formName\n ? `vw-oneform-${fields.formName}-${process.env.VERSION}`\n : `vw-oneform-${data.fields.formName}-${process.env.VERSION}`,\n 'fields[DESC_LOPD_GDPR_PERFILADO]': fields.tmk ? fields.tmk : 'NO INFORMADO',\n 'fields[DESC_LOPD]': 'PERMITE',\n 'fields[DESC_LSSI]': fields.lssi ? fields.lssi : 'NO INFORMADO',\n 'fields[DESC_NAME]': fields.name ? fields.name : idPerson.FirstName,\n 'fields[DESC_SURNAME_1]': fields.surname ? fields.surname : idPerson.LastName,\n 'fields[DESC_TRANF_DATA_THIRD]': 'NO INFORMADO',\n 'fields[NUM_CELLPHONE]': fields.telefono ? `${formatPrefix(fields.prefix)}${fields.telefono}` : idPerson.NUM_Phone_mobile__c,\n\n };\n };\n\n const generateSubmitData = () => generateData();\n\n const sendForm = async (): Promise => {\n return new Promise(async (resolve, reject) => {\n const data = generateSubmitData();\n const dataStringified = JSON.stringify(data);\n const dataParsed = JSON.parse(dataStringified);\n\n const formData = formDataBuilder(dataParsed);\n\n const response = await dpsSend(formData);\n\n if (response.data?.content?.code === '200') {\n dispatch({ type: 'SET_FORM_RESPONSE', payload: response.data });\n resolve(true);\n } else {\n resolve(false);\n }\n });\n };\n\n useEffect(() => {\n const { firstStep, lastStep, stepsHistory, numberOfScreens, newSteps } = getFormInfo();\n\n const NuevoFormInfo: Partial = {\n formStarted: true,\n sendFormCallback: sendForm,\n fullScreen: firstStep.fullScreen ? true : false,\n lastStep,\n numberOfScreens,\n screenIndex: firstStep.screenIndex,\n formTheme: 'main',\n notALayer: true,\n formType: 'inPage',\n step: firstStep,\n steps: newSteps ? newSteps : steps,\n stepsHistory,\n thankYouComponent: ,\n };\n\n if (!loading) {\n initializeForm(NuevoFormInfo, NuevoFormData, true);\n trackingManager.trackFormLoad();\n }\n }, [loading]);\n\n useEffect(() => {\n if (PlanIDeal3) handlePlanIDeal3Otros(PlanIDeal3);\n }, [PlanIDeal3]);\n\n return loading || !steps ? null : ;\n}\n","import {\n Breakpoints,\n Container,\n ContainerPadding,\n styled,\n Text,\n Layout,\n BreakpointWrapper,\n CTA,\n ContainerGutter,\n TokenTextAppearance,\n} from '@volkswagen-onehub/components-core';\nimport React, { useState } from 'react';\nimport {\n PoliticaPrivacidad,\n LastNavigation,\n LabelInputWidthWrapper,\n Nombre,\n Apellido,\n Telefono,\n Email,\n LegalItem\n} from 'src/components';\nimport { IdPerson } from 'src/types';\nimport { LayerManagerWrapper, useFeatureAppEnvironment, useFeatureServices } from 'src/feature-app';\nimport { CloseHandleV2, FocusLayerSizeV2, LayerManagerV2 } from '@volkswagen-onehub/layer-manager';\nimport { useStore } from 'react-redux';\nimport { Checks } from './Checks';\n\nconst GridWrapper = styled.div`\n width: 90%;\n display: grid;\n grid-template-rows: repeat(2, auto);\n grid-gap: 5%;\n height: 180px;\n @media all and (min-width: 1600px) {\n height: 200px;\n }\n`;\n\nconst GridItem = styled.div <{ row: string }>`\n grid-row: ${props => props.row};\n`;\n\nconst TextBlue = styled(Text)`\n color: #001e50;\n`;\n\nconst InputErrorLegales = styled.p`\n position: relative;\n margin-top: 10px;\n background-color: #e4002c;\n color: white;\n width: max-content;\n max-width: 280px;\n padding: 4px 8px;\n border-radius: 4px;\n font-size: 14px;\n`;\n\nconst QuestionWrapper = styled.div`\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n width: 100%;\n padding-top: 10%;\n @media all and (max-width: 1280px) {\n padding-top: 2%;\n }\n`;\ninterface ConfirmacionTestIDProps {\n idPerson: IdPerson;\n}\n\nconst legalesPlanIdeal = 'https://crm.volkswagen.es/email/2023/service/planideal/Sorteo%20Plan%20Ideal.pdf'\n\nconst infoLayerCopies = {\n lssi: {\n title: 'Estarás mejor informado.',\n body: 'Si nos das tu consentimiento desde Volkswagen Group España Distribución, S.A. como responsable de la marca Volkswagen podremos enviarte por cualquier medio, ya sea por teléfono, correo electrónico, sms o aplicaciones de mensajería instantánea información comercial lo que puede incluir, a título enunciativo, pero no limitativo, descuentos, novedades, próximos lanzamientos, invitaciones a eventos o a concursos, entre otras comunicaciones comerciales.',\n },\n};\n\nexport const ConfirmationPlanIdeal = (props: ConfirmacionTestIDProps) => {\n const { idPerson } = props;\n const [compartir, setCompartir] = useState(null);\n const [compartirError, setCompartirError] = useState(false);\n const layerManager = useFeatureServices()['layer-manager'] as LayerManagerV2;\n const env = useFeatureAppEnvironment();\n const store = useStore();\n const handleInfoLayer = (\n key: 'lssi',\n renderFn: (state: any, close: CloseHandleV2) => JSX.Element\n ) => {\n const layer = layerManager.openFocusLayer(\n renderFn,\n { ...infoLayerCopies[key] },\n { size: FocusLayerSizeV2.A, userCloseable: true }\n );\n\n return layer;\n };\n\n\n const renderInfo = (state: { title: string; body: string }, close: CloseHandleV2) => {\n return (\n \n \n \n {state.title}\n {state.body}\n \n {\n e.preventDefault();\n close({}, {}, {});\n }}\n size={'small'}\n >\n Entendido\n \n \n \n );\n };\n\n return (\n <>\n \n \n \n Genial, ya está todo a punto. Confírmanos tus datos, para participar en el sorteo del planazo que tenemos para ti junto a uno de nuestros eléctricos 😉\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n
\n \n
\n
\n
\n \n\n \n \n {!idPerson &&\n handleInfoLayer('lssi', renderInfo)}\n themeColor={'main'}\n name='lssi'\n />\n }\n \n\n \n \n \n Consulta las bases legales de la promoción{' '}\n \n aquí\n .\n \n \n \n \n \n Consulta las bases legales de la promoción{' '}\n \n aquí\n .\n \n \n \n \n\n \n \n \n\n {compartirError && Necesitamos esta información para seguir}\n \n \n \n \n \n );\n};\n","import React, { useEffect } from 'react';\nimport { OneFormState, Steps } from 'src/types';\nimport { OneElementTemplate, RenderController } from 'src/feature-app/Screen';\nimport {\n CTA,\n Container,\n ContainerPadding,\n Text,\n TokenTextAppearance\n} from '@volkswagen-onehub/components-core';\nimport { TrackingForm, useTrackingManager } from 'src/feature-app';\nimport { useDispatch, useSelector } from 'react-redux';\n\nexport function ThankYouPlanIdeal() {\n const { formInfo } = useSelector((state: OneFormState) => state);\n const trackingManager = useTrackingManager();\n const dispatch = useDispatch();\n const getTrackingForm = (): TrackingForm => ({\n LeadID: undefined,\n FormFields: undefined,\n });\n\n useEffect(() => {\n // Thank you page no es gestionado como un step pero sí lo haremos en la analítica. Por eso Modificamos formInfo después del submit y antes del RESET\n const screenIndexThankyou = formInfo?.numberOfScreens;\n\n dispatch({ type: 'SET_FORM_SUBMITTED', payload: true });\n dispatch({ type: 'SET_FORM_INFO', payload: { step: { screenIndex: screenIndexThankyou, name: \"ThankYou\" } } });\n\n trackingManager.trackFormSubmissionSuccessMessageLoad(\n {\n contentId: undefined,\n },\n getTrackingForm()\n );\n }, []);\n\n const screen: Steps = {\n title: (\n <>\n ¡Gracias por participar, {formInfo.formResponse.params.fields.DESC_NAME}!\n \n ),\n fields: (\n \n \n El día 7 de noviembre realizaremos el sorteo y comunicaremos el ganador/a, ¡te deseamos mucha suerte!\n \n\n \n Mientras tanto, puedes mantenerte al día de todas nuestras novedades sobre la movilidad eléctrica y resolver tus dudas aquí.\n \n\n \n Además, nuestros eléctricos son los nuevos protagonistas de un nuevo evento muy especial, el ID.Street, ¿Quieres saber más? Descúbrelo aquí.\n \n \n } />\n )\n };\n return (\n \n );\n}\n","import React from 'react';\nimport {\n Text,\n ThemeProvider,\n CTA,\n styled,\n TokenTextAppearance,\n} from '@volkswagen-onehub/components-core';\nimport { TriggerProps, useFaContent } from 'src/feature-app';\nimport { DiaDeLaMadreForm } from 'src/forms/FormsAdhoc/DiaDeLaMadre';\n\nconst MarginWrapper = styled.div`\n width: var(--size-grid020);\n padding: var(--size-grid002) var(--size-grid001) var(--size-grid006) var(--size-grid003);\n display: flex;\n flex-direction: column;\n\n @media all and (min-width: 560px) {\n margin-top: 40px;\n width: var(--size-grid008);\n margin-bottom: var(--size-grid004);\n padding: 0;\n }\n @media all and (min-width: 960px) {\n margin-top: 64px;\n width: var(--size-grid007);\n margin-bottom: calc(var(--size-grid002) + 40px);\n }\n @media all and (min-width: 1280px) {\n width: var(--size-grid006);\n margin-bottom: 0;\n }\n @media all and (min-width: 1600px) {\n margin-top: 80px;\n }\n @media all and (min-width: 1920px) {\n margin: 52px 0 72px var(--size-grid002);\n width: var(--size-grid005);\n }\n`;\n\nexport const CajaCTATrigger = (props: TriggerProps) => {\n const { setSelectedJourney, setCTALabel } = props;\n\n const faContent = useFaContent();\n\n const getCtaLabel = () => (faContent?.cta ? faContent.cta : 'Dale amor');\n\n return (\n \n \n
\n \n Solo falta la tuya\n \n
\n
\n \n A veces un {'\"'}te quiero{'\"'} no puede esperar. Díselo ahora para entrar en el{' '}\n sorteo* de un finde para dos personas en tu parador favorito al volante del nuevo ID.4\n , haciendo lo que más desea tu madre:{' '}pasar tiempo contigo.\n \n
\n
\n {\n setCTALabel(getCtaLabel());\n setSelectedJourney();\n }}\n >\n {getCtaLabel()}\n \n
\n
\n \n *Sorteo exclusivo para clientes de Volkswagen.\n \n
\n
\n
\n );\n};\n","import {\n Breakpoints,\n BreakpointWrapper,\n Container,\n ContainerPadding,\n CTA,\n styled,\n Text,\n TextAlignment,\n Layout,\n TokenTextAppearance,\n} from '@volkswagen-onehub/components-core';\nimport { LegalesFormatoLayer, LssiTkmQuestions } from 'src/components';\nimport { CloseHandleV2, FocusLayerSizeV2, LayerHandleV2, LayerManagerV2 } from '@volkswagen-onehub/layer-manager';\nimport React, { useEffect, useState } from 'react';\nimport { useFormContext } from 'react-hook-form';\nimport { connect, useDispatch, useStore } from 'react-redux';\nimport {\n LayerManagerWrapper,\n useFeatureAppEnvironment,\n useFeatureServices,\n useOneFormContext,\n useTrackingManager,\n} from 'src/feature-app';\nimport { OneFormState } from 'src/types';\nimport { KoScreen, LoadingScreen } from 'src/forms/CitaPosventa/NuevaCitaPosventa/ConfirmarCitaLayer';\n\nconst GeneralconfirmacionWrapper = styled.div`\n padding: 72px 0 44px;\n @media all and (min-width: 960px) {\n padding: 86px 0 0;\n }\n`;\n\nconst WhiteLinkWrapper = styled.span`\n a {\n color: #ffffff;\n font-weight: bold;\n }\n`;\n\nfunction ConfirmacionDiaDeLaMadre() {\n const dispatch = useDispatch();\n\n const [lssi, setLssi] = useState(null);\n const [tmk, setTmk] = useState(null);\n const [lssiError, setLssiError] = useState(false);\n const [tmkError, setTmkError] = useState(false);\n\n useEffect(() => {\n if (lssi) {\n const values = { lssi: lssi };\n dispatch({ type: 'UPDATE_FIELDS', payload: values });\n setLssiError(false);\n }\n if (tmk) {\n const values = { tmk: tmk };\n dispatch({ type: 'UPDATE_FIELDS', payload: values });\n setTmkError(false);\n }\n }, [lssi, tmk]);\n\n return (\n \n \n \n \n ¡Gracias! Unas últimas preguntas para tenerlo todo claro\n \n \n \n \n ¡Gracias! Unas últimas preguntas para tenerlo todo claro\n \n \n\n \n \n \n Enviando este formulario declaras estar informado de la{' '}\n \n \n política de privacidad.\n \n \n \n \n\n
\n \n
\n \n \n
\n );\n}\n\ninterface LastNavigationProps {\n tmk: string;\n lssi: string;\n setTmkError: React.Dispatch>;\n setLssiError: React.Dispatch>;\n}\n\nfunction LastNavigation(props: LastNavigationProps) {\n const { tmk, lssi, setTmkError, setLssiError } = props;\n // const dispatch = useDispatch();\n const { handleShowFinalScreen, handleSubmit } = useOneFormContext();\n const { reset } = useFormContext();\n const [layerVisible, setLayerVisible] = useState(false);\n const [koLayer, setKoLayer] = useState>(null);\n const [koScreen, setKoScreen] = useState(false);\n const layerManager = useFeatureServices()['layer-manager'] as LayerManagerV2;\n const store = useStore();\n const env = useFeatureAppEnvironment();\n const dispatch = useDispatch();\n const trackingManager = useTrackingManager();\n\n //Loading and Ko layers\n\n const handleKoLayer = () => {\n const layer = layerManager.openFocusLayer(renderKoLayer, {}, { size: FocusLayerSizeV2.A });\n setKoLayer(layer);\n };\n\n const renderKoLayer = (state: any, close: CloseHandleV2) => {\n return (\n \n \n \n );\n };\n\n const handleLoadingScreenLayer = () => {\n const layer = layerManager.openFocusLayer(renderLoadingScreen, {}, { size: FocusLayerSizeV2.A });\n\n return layer;\n };\n\n const renderLoadingScreen = (state: any, close: CloseHandleV2) => {\n return (\n \n \n \n );\n };\n\n // 1. check de lssi y tmk\n // 2. submit de la cita y activación la pantalla de feedback correspondiente\n // no se hace ninguna validación en este último paso porque esta ya se ha hecho en el edit-guardar de cada campo previamente\n async function handleConfirmarCita(e: any) {\n if (tmk === null && tmk === null) {\n setTmkError(true);\n setLssiError(true);\n } else if (tmk === null) {\n setTmkError(true);\n } else if (lssi === null) {\n setLssiError(true);\n } else {\n trackingManager.trackFormCTAClick({\n contentId: 'Enviar',\n });\n\n const loadingLayer = handleLoadingScreenLayer();\n setLayerVisible(true);\n\n const value = await handleSubmit(e);\n loadingLayer.close();\n\n if (value) {\n handleShowFinalScreen();\n } else {\n handleKoLayer();\n }\n }\n }\n async function retrySubmit(e: any) {\n if (koLayer) {\n koLayer.close();\n }\n setKoScreen(false);\n const loadingLayer = handleLoadingScreenLayer();\n const value = await handleSubmit(e);\n loadingLayer.close();\n if (value) {\n handleShowFinalScreen();\n } else {\n handleKoLayer();\n setKoScreen(true);\n }\n }\n\n useEffect(() => {\n if (!layerVisible && koScreen) setKoScreen(false);\n }, [layerVisible]);\n\n useEffect(() => {\n dispatch({ type: 'UPDATE_FORM_ENDED', payload: true });\n }, []);\n\n return (\n <>\n \n {\n e.preventDefault();\n handleConfirmarCita(e);\n }}\n stretchContent\n >\n Enviar\n \n \n \n {\n e.preventDefault();\n handleConfirmarCita(e);\n }}\n >\n Enviar\n \n \n \n );\n}\n\nconst mapStateToProps = (state: OneFormState) => {\n return {\n formInfo: state.formInfo,\n formData: state.formData,\n };\n};\n\nconst ConnectedComponent = connect(mapStateToProps)(ConfirmacionDiaDeLaMadre);\n\nexport { ConnectedComponent as ConfirmacionDiaDeLaMadre };\n","import React, { useEffect, useState } from 'react';\nimport {\n Text,\n styled,\n ThemeProvider,\n BreakpointWrapper,\n Breakpoints,\n Container,\n ContainerPadding,\n} from '@volkswagen-onehub/components-core';\nimport { CajaCTATrigger } from '.';\nimport { CarouselComponent } from 'src/components';\nimport { TriggerProps } from 'src/feature-app';\nimport imageOne from 'src/forms/DiaDeLaMadre/assets/turismos_campana_dia-de-la-madre_USP-1_1280x853px.jpg';\nimport imageTwo from 'src/forms/DiaDeLaMadre/assets/turismos_campana_dia-de-la-madre_USP-2_1280x768px.jpg';\nimport imageThree from 'src/forms/DiaDeLaMadre/assets/turismos_campana_dia-de-la-madre_USP-3_1280x768px.jpg';\n\nconst BackgroundBlue = styled.div`\n margin-right: var(--size-grid002);\n margin-top: calc(var(--size-grid002) * -1);\n background-color: #001e50;\n width: var(--size-grid022);\n position: absolute;\n height: 100%;\n z-index: -1;\n\n @media all and (min-width: 560px) {\n width: var(--size-grid022);\n margin-left: var(--size-grid002);\n margin-right: 0;\n margin-top: 0;\n }\n @media all and (min-width: 960px) {\n margin-left: var(--size-grid003);\n margin-right: var(--size-grid001);\n width: var(--size-grid020);\n height: calc(100% - 24px);\n margin-top: 24px;\n }\n @media all and (min-width: 1280px) {\n margin-left: var(--size-grid004);\n margin-right: var(--size-grid002);\n width: var(--size-grid018);\n }\n @media all and (min-width: 1600px) {\n margin-top: 28px;\n height: calc(100% - 28px);\n }\n @media all and (min-width: 1920px) {\n margin-left: var(--size-grid004);\n margin-right: var(--size-grid009);\n width: var(--size-grid011);\n margin-top: 72px;\n margin-bottom: 72px;\n height: calc(100% - 72px);\n }\n`;\n\nconst ImageOneAndTextWrapper = styled.div`\n display: flex;\n margin-left: var(--size-grid001);\n\n @media all and (min-width: 960px) {\n margin-left: var(--size-grid002);\n }\n @media all and (min-width: 1280px) {\n margin-left: var(--size-grid003);\n }\n @media all and (min-width: 1920px) {\n flex-direction: column;\n align-items: flex-start;\n justify-content: flex-start;\n }\n\n .image-one {\n width: var(--size-grid013);\n margin-right: var(--size-grid001);\n height: fit-content;\n @media all and (min-width: 960px) {\n width: var(--size-grid012);\n margin-bottom: var(--size-grid002);\n }\n @media all and (min-width: 1280px) {\n width: var(--size-grid011);\n }\n @media all and (min-width: 1920px) {\n width: var(--size-grid010);\n margin-right: 0;\n margin-bottom: 0;\n }\n }\n`;\n\nconst ImageTwoWrapper = styled.div`\n margin-top: calc(var(--size-grid002) * -1);\n margin-left: var(--size-grid001);\n\n @media all and (min-width: 960px) {\n margin-left: var(--size-grid002);\n margin-top: calc((var(--size-grid001) + 20px) * -1);\n }\n @media all and (min-width: 1280px) {\n margin-left: var(--size-grid003);\n margin-top: calc(var(--size-grid001) * -1);\n }\n @media all and (min-width: 1920px) {\n margin-left: var(--size-grid001);\n margin-top: 0;\n }\n\n .image-two {\n width: var(--size-grid010);\n margin-right: var(--size-grid002);\n @media all and (min-width: 960px) {\n width: var(--size-grid009);\n }\n @media all and (min-width: 1280px) {\n width: var(--size-grid008);\n }\n @media all and (min-width: 1920px) {\n width: var(--size-grid007);\n margin-right: 0;\n }\n }\n`;\n\nconst ImageThreeWrapper = styled.div`\n margin-top: calc(var(--size-grid002) * -1);\n\n @media all and (min-width: 960px) {\n margin-top: calc((var(--size-grid001) + 20px) * -1);\n }\n @media all and (min-width: 1280px) {\n margin-top: calc(var(--size-grid001) * -1);\n }\n @media all and (min-width: 1920px) {\n margin-top: calc((var(--size-grid003) + 20px) * -1);\n margin-left: var(--size-grid012);\n }\n\n .image-three {\n width: var(--size-grid010);\n @media all and (min-width: 960px) {\n width: var(--size-grid009);\n }\n @media all and (min-width: 1280px) {\n width: var(--size-grid008);\n }\n @media all and (min-width: 1920px) {\n width: var(--size-grid007);\n }\n }\n`;\n\nconst BottomImagesWrapper = styled.div`\n width: 100%;\n display: flex;\n`;\n\nconst RelativeWrapper = styled.div`\n position: relative;\n\n @media all and (min-width: 1920px) {\n display: flex;\n }\n`;\n\nconst imageArray = [\n {\n src: 'imageOne',\n name: 'turismos_campana_dia-de-la-madre',\n className: 'image-one',\n },\n {\n src: 'imageTwo',\n name: 'turismos_campana_dia-de-la-madre',\n className: 'image-two',\n },\n {\n src: 'imageThree',\n name: 'turismos_campana_dia-de-la-madre',\n className: 'image-three',\n },\n];\n\nconst CarouselImageWrapper = styled.div`\n padding: 0 2.5%;\n width: 83.2vw;\n height: 83.2vw;\n overflow: hidden;\n\n .wrapper-image-one {\n padding-left: 6.32%;\n }\n\n .image-one {\n transform: scale(0.6) translate(-82%, -54%);\n @media all and (min-width: 450px) {\n transform: scale(0.6) translate(-71%, -47%);\n }\n }\n .image-two {\n transform: scale(0.5) translate(-65%, -63%);\n @media all and (min-width: 450px) {\n transform: scale(0.6) translate(-50%, -37%);\n }\n }\n .image-three {\n transform: scale(0.5) translate(-62%, -63%);\n @media all and (min-width: 450px) {\n transform: scale(0.6) translate(-50%, -37%);\n }\n }\n`;\n\nconst MovileImageWrapper = styled.div`\n margin: 0 auto;\n width: var(--size-grid020);\n height: var(--size-grid020);\n overflow: hidden;\n margin-left: var(--size-grid002);\n .wrapper-image-one {\n }\n\n .image-one {\n transform: scale(0.6) translate(-82%, -54%);\n @media all and (min-width: 450px) {\n transform: scale(0.6) translate(-71%, -47%);\n }\n }\n`;\n\nexport const DisplayImagenesYCTATrigger = (props: TriggerProps) => {\n const { setSelectedJourney, setCTALabel } = props;\n\n const renderList = (imageArray: Array) => {\n return imageArray.map((image, ind) => {\n return (\n \n
\n {image.name}\n
\n
\n );\n });\n };\n\n return (\n
\n \n \n
\n \n
\n
\n \n \n \n \n
\n {/* maquetación breakpoints a partir de 560*/}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n );\n};\n","import React, { useState } from 'react';\nimport {\n Container,\n ContainerGutter,\n ContainerPadding,\n styled,\n InputAppearance,\n} from '@volkswagen-onehub/components-core';\nimport { TextAreaExtended } from 'src/components';\nimport { useOneFormContext } from 'src/feature-app';\nimport { useFormContext } from 'react-hook-form';\nimport { useTrackingManager } from 'src/feature-app/hooks/use-tracking-manager';\n\nconst ButtonWrapper = styled.div`\n display: flex;\n justify-content: flex-start;\n`;\ninterface DetalleMotivoProps {\n hideCTA?: boolean;\n}\n\nexport function Mensaje(props: DetalleMotivoProps) {\n const { hideCTA } = props;\n const { register } = useFormContext();\n const { handleNextStep } = useOneFormContext();\n const [currentValue, setCurrentValue] = useState('');\n const trackingManager = useTrackingManager();\n\n const handleChange = (e: any) => {\n const aux = e.currentTarget.value;\n e.preventDefault();\n setCurrentValue(aux);\n };\n\n return (\n \n handleChange(e)}\n appearance={InputAppearance.Default}\n isFloating={false}\n innerRef={register({\n required: {\n value: true,\n message: 'Requerido',\n },\n })}\n placeholder=\"Por ejemplo: Feliz yo de tenerte, mamá <3. Un solo día se te queda corto. Te quiero hoy y los 364 restantes.\"\n rows={3}\n />\n \n );\n}\n","import React, { useState, useEffect } from 'react';\nimport {\n styled,\n Text,\n ThemeProvider,\n TokenTextAppearance,\n} from '@volkswagen-onehub/components-core';\nimport { CSSTransition } from 'react-transition-group';\n\nconst CardsWrapper = styled.div`\n position: relative;\n height: calc((2 *var(--size-grid003)/1.04) + 89px);\n @media screen and (max-width: 780px) {\n height: calc((2 *var(--size-grid003)/1.04) + 140px);\n }\n @media screen and (max-width: 712px) {\n height: 369px;\n }\n @media screen and (max-width: 654px) {\n height: 410px;\n }\n @media screen and (max-width: 654px) {\n height: 388px;\n }\n @media screen and (max-width: 420px) {\n height: 375px;\n }\n`;\n\ntype CardProps = {\n bgColor: string,\n number: number,\n size?: number,\n position: {\n top?: string,\n right?: string,\n bottom?: string,\n left?: string\n }\n}\n\nconst Card = styled.article`\n position: absolute;\n width: var(--size-grid003);\n height: calc(var(--size-grid003)/1.04);\n display: flex;\n align-items: center;\n justify-content: center;\n color: #ffffff;\n text-align: center;\n top: ${props => props.position.top ? `${props.position.top}` : 'unset'};\n right: ${props => props.position.right ? `${props.position.right}` : 'unset'};\n bottom: ${props => props.position.bottom ? `${props.position.bottom}` : 'unset'};\n left: ${props => props.position.left ? `${props.position.left}` : 'unset'};\n background: ${props => props.bgColor === 'dark' ? '#001E50' : '#00B0F0'};\n padding: 16px;\n display: none;\n &.card-enter {\n transform: scale(0);\n display: flex;\n }\n &.card-enter-active {\n transform: scale(1.1);\n transition: transform 150ms;\n display: flex;\n }\n &.card-enter-done {\n transform: scale(1);\n transition: transform 150ms;\n display: flex;\n }\n @media screen and (max-width: 1188px) {\n width: max-content;\n max-width: 165px;\n height: 131px;\n }\n @media screen and (max-width: 654px) {\n text-align: left;\n }\n @media screen and (max-width: 420px) {\n max-width: unset;\n width: ${\n props => props.number === 0 ? '120px'\n : props.number === 1 ? '120px'\n : props.number === 2 ? '164px'\n : props.number === 3 ? '144px'\n : '140px'\n};\n height: ${\n props => props.number === 0 ? '125px'\n : props.number === 1 ? '121px'\n : props.number === 2 ? '145px'\n : props.number === 3 ? '161px'\n : '140px'\n};\n }\n`;\n\nconst mensajes = [\n {\n bgColor: 'light',\n text: 'Mamá, éste sí que es nuestro año. ¡Te quiero!'\n },\n {\n bgColor: 'dark',\n text: 'Mamá, ¿te ape un plan juntos, solos tú y yo?'\n },\n {\n bgColor: 'light',\n text: '¡Felicidades, Carmen! Prepárate, porque se vienen cositas hihi'\n },\n {\n bgColor: 'dark',\n text: 'Madre no hay más que una, y en eso eres la mejor del mundo <3'\n },\n {\n bgColor: 'dark',\n text: 'Feliz día a ti, mami. ¡Eres mi mayor referente!'},\n];\n\nconst mensajesPosition = {\n default: [\n { name: 'default'},\n {\n top: '25%',\n right: '22%',\n },\n {\n top: '45%',\n left: '22%',\n },\n {\n top: '10.5%',\n left: '0px',\n },\n {\n top: '0px',\n right: '0px',\n },\n {\n right: '0px',\n bottom: '0px'\n }\n ],\n b1188: [\n { name: 'b1188'},\n {\n top: '25%',\n right: '22%',\n },\n {\n top: '45%',\n left: '7%',\n },\n {\n top: '11.5%',\n left: '0px',\n },\n {\n top: '0px',\n right: '0px',\n },\n {\n right: '0px',\n bottom: '0px'\n }\n ],\n b960: [\n { name: 'b960'},\n {\n top: '25%',\n right: '25%',\n },\n {\n top: '47%',\n left: '10%',\n },\n {\n top: '11.5%',\n left: '0px',\n },\n {\n top: '0px',\n right: '0px',\n },\n {\n right: '0px',\n bottom: '0px'\n }\n ],\n b654: [\n { name: 'b654'},\n {\n top: '25%',\n right: '25%',\n },\n {\n top: '37%',\n left: '30%',\n },\n {\n top: '16.5%',\n left: '0px',\n },\n {\n top: '0px',\n right: '0px',\n },\n {\n right: '0px',\n bottom: '0px'\n }\n ],\n b420: [\n { name: 'b654'},\n {\n top: '25%',\n right: '14%',\n },\n {\n top: '34%',\n left: '24%',\n },\n {\n top: '6.5%',\n left: '0px',\n },\n {\n top: '0px',\n right: '0px',\n },\n {\n right: '0px',\n bottom: '0px'\n }\n ]\n};\n\nexport function MensajesCards(props: {showMessages: boolean}) {\n const { showMessages } = props;\n const [ showCard1, setShowCard1 ] = useState(false);\n const [ showCard2, setShowCard2 ] = useState(false);\n const [ showCard3, setShowCard3 ] = useState(false);\n const [ showCard4, setShowCard4 ] = useState(false);\n const [ showCard5, setShowCard5 ] = useState(false);\n\n const [positionsArray, setPositionsArray] = useState(mensajesPosition.default);\n\n function activateTriggers(num: number) {\n switch(num) {\n case 2:\n setTimeout(() => {\n setShowCard2(true);\n activateTriggers(3);\n }, 450);\n break;\n case 3:\n setTimeout(() => {\n setShowCard3(true);\n activateTriggers(4);\n }, 450);\n break;\n case 4:\n setTimeout(() => {\n setShowCard4(true);\n activateTriggers(5);\n }, 450);\n break;\n case 5:\n setTimeout(() => {\n setShowCard5(true);\n }, 450);\n break;\n default:\n break;\n }\n }\n\n useEffect(() => {\n if (showMessages) {\n setShowCard1(true);\n activateTriggers(2);\n } else {\n setShowCard1(false);\n setShowCard2(false);\n setShowCard3(false);\n setShowCard4(false);\n setShowCard5(false);\n }\n }, [showMessages]);\n\n useEffect(() => {\n function changeCardsPosition(bp: string) {\n if (bp === '959' && positionsArray[0].name !== 'b960') {\n setPositionsArray(mensajesPosition.b960);\n } else if (bp === '654' && positionsArray[0].name !== 'b654') {\n setPositionsArray(mensajesPosition.b654);\n } else if (bp === '420' && positionsArray[0].name !== 'b420') {\n setPositionsArray(mensajesPosition.b420);\n } else if (bp === '1188' && positionsArray[0].name !== 'b1188') {\n setPositionsArray(mensajesPosition.b1188);\n } else {\n setPositionsArray(mensajesPosition.default);\n }\n }\n\n const mediaQueryListObject1188 = window.matchMedia('(max-width: 1188px)');\n try {\n mediaQueryListObject1188.addEventListener('change', () => changeCardsPosition('1188'));\n } catch (e) {\n try {\n mediaQueryListObject1188.addListener(() => changeCardsPosition('1188'));\n }\n catch(e) {\n console.log(e);\n }\n }\n\n const mediaQueryListObject959 = window.matchMedia('(max-width: 959px)');\n try {\n mediaQueryListObject959.addEventListener('change', () => changeCardsPosition('959'));\n } catch (e) {\n try {\n mediaQueryListObject959.addListener(() => changeCardsPosition('959'));\n }\n catch(e) {\n console.log(e);\n }\n }\n\n const mediaQueryListObject654 = window.matchMedia('(max-width: 654px)');\n try {\n mediaQueryListObject654.addEventListener('change', () => changeCardsPosition('654'));\n } catch (e) {\n try {\n mediaQueryListObject654.addListener(() => changeCardsPosition('654'));\n }\n catch(e) {\n console.log(e);\n }\n }\n\n const mediaQueryListObject420 = window.matchMedia('(max-width: 420px)');\n try {\n mediaQueryListObject420.addEventListener('change', () => changeCardsPosition('420'));\n } catch (e) {\n try {\n mediaQueryListObject420.addListener(() => changeCardsPosition('420'));\n }\n catch(e) {\n console.log(e);\n }\n }\n\n if (window.matchMedia('(max-width:420px)').matches) {\n setPositionsArray(mensajesPosition.b420);\n } else if (window.matchMedia('(max-width:654px)').matches) {\n setPositionsArray(mensajesPosition.b654);\n } else if (window.matchMedia('(max-width:959px)').matches) {\n setPositionsArray(mensajesPosition.b960);\n } else if (window.matchMedia('(max-width:1188px)').matches) {\n setPositionsArray(mensajesPosition.b1188);\n }\n\n return () => {\n mediaQueryListObject1188.removeEventListener('change', () => changeCardsPosition('1188'));\n mediaQueryListObject959.removeEventListener('change', () => changeCardsPosition('959'));\n mediaQueryListObject654.removeEventListener('change', () => changeCardsPosition('654'));\n mediaQueryListObject420.removeEventListener('change', () => changeCardsPosition('420'));\n };\n }, []);\n\n return (\n \n \n {mensajes.map((mensaje, i) => {\n return (\n \n \n {mensaje.text}\n \n \n );\n })}\n \n \n );\n}\n","import React, { useEffect, useState } from 'react';\nimport {\n Breakpoints,\n BreakpointWrapper,\n styled,\n Text,\n ThemeProvider,\n TokenTextAppearance\n} from '@volkswagen-onehub/components-core';\nimport { MensajesCards } from '.';\nimport { keyframes } from 'styled-components';\nimport { useFaContent } from 'src/feature-app';\n\nconst spinnerKeyframe = keyframes`\n 0% {\n stroke-dasharray: 0 100;\n }\n`;\n\nconst Wrapper = styled.div`\n position: relative;\n margin-left: var(--size-grid003);\n margin-right: var(--size-grid003);\n width: var(--size-grid018);\n display: flex;\n justify-content: space-between;\n .cards {\n width: var(--size-grid009);\n @media screen and (max-width: 990px) {\n width: var(--size-grid011);\n }\n @media screen and (max-width: 959px) {\n margin-left: auto;\n width: 56%;\n }\n @media screen and (max-width: 910px) {\n margin-left: auto;\n width: 60%;\n }\n @media screen and (max-width: 840px) {\n margin-left: auto;\n width: 63%;\n }\n @media screen and (max-width: 780px) {\n margin-left: auto;\n width: 70%;\n }\n @media screen and (max-width: 712px) {\n margin-left: auto;\n width: 85%;\n }\n @media screen and (max-width: 654px) {\n width: 100%;\n }\n }\n .info {\n width: var(--size-grid007);\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n @media screen and (max-width: 959px) {\n width: 80%;\n }\n @media screen and (max-width: 560px) {\n margin-bottom: 10px;\n width: 90%;\n }\n #number-messages {\n display: inline-block;\n min-width: 100px;\n }\n }\n @media screen and (max-width: 990px) {\n margin-left: var(--size-grid002);\n margin-right: var(--size-grid002);\n width: var(--size-grid020);\n }\n @media screen and (max-width: 959px) {\n flex-wrap: wrap-reverse;\n }\n`;\n\nconst Spinner = styled.div`\n width: 200px;\n height: 200px;\n margin-left: auto;\n margin-bottom: 17px;\n border-radius: 100%;\n position: relative;\n .dashed-circumference {\n position: absolute;\n top: 5.5%;\n left: 4.5%;\n z-index: -1;\n width: 90%;\n height: 90%;\n border-radius: 100%;\n border: 1px dotted #001E50;\n }\n .percentage-bar {\n .circle {\n stroke: #071e50;\n fill: none;\n stroke-width: 0.75;\n animation: ${spinnerKeyframe} 3.5s ease-out forwards;\n }\n }\n .percentage-text {\n position: absolute;\n top: 50%;\n right: 50%;\n transform: translate3d(50%, -50%, 0);\n #percentage-messages {\n width: 28px;\n display: inline-block;\n text-align: right;\n @media screen and (min-width: 960px) {\n width: 40px;\n }\n @media screen and (min-width: 1600px) {\n width: 56px;\n }\n }\n }\n @media screen and (max-width: 959px) {\n width: 150px;\n height: 150px;\n position: absolute;\n margin: 0;\n bottom: 0;\n left: 0;\n }\n @media screen and (max-width: 559px) {\n width: 123px;\n height: 123px;\n }\n`;\n\nfunction animateNumber(id: string, start: number, end: number, duration: number) {\n const range = end - start;\n let current = start;\n const increment = id === 'number-messages' ? 2 : 1;\n const stepTime = Math.abs(Math.floor(duration / range));\n let obj = document.getElementById(id);\n const timer = setInterval(function() {\n current += increment;\n if (id === 'percentage-messages' && current < 10) {\n obj.innerHTML = `${current}`;\n } else {\n obj.innerHTML = current.toString();\n }\n if (current === end) {\n clearInterval(timer);\n }\n }, stepTime);\n}\n\nexport function SectionMensajes() {\n const [ showMessages, setShowMessages ] = useState(false);\n const [ madres, setMadres ] = useState(1000);\n const [ porcentaje, setPorcentaje ] = useState(25);\n const faContent = useFaContent();\n\n useEffect(() => {\n if (faContent.madres) setMadres(parseInt(faContent.madres));\n if (faContent.porcentaje) setPorcentaje(parseInt(faContent.porcentaje));\n }, [faContent]);\n\n useEffect(() => {\n if (showMessages) {\n animateNumber('number-messages', 10, madres, 4000);\n animateNumber('percentage-messages', 0, porcentaje, 3000);\n }\n }, [showMessages]);\n\n useEffect(() => {\n const options = { threshold: 0.8 };\n const element = document.querySelector('#mensajes');\n const observer = new IntersectionObserver((entries) => {\n entries.forEach((entry) => {\n if (entry.intersectionRatio > 0 && !showMessages) {\n setShowMessages(true);\n }\n });\n }, options);\n observer.observe(element);\n }, []);\n\n return (\n \n
\n \n
\n
\n \n \n Más de 10 madres han recibido\n {' '}\n su carga de amor\n \n \n {showMessages ? (\n \n
\n \n \n \n
\n 0%\n
\n \n ) : null}\n \n \n
\n \n {showMessages ? (\n \n
\n \n \n \n
\n 0%\n
\n \n ) : null}\n \n \n );\n}\n","import { styled } from '@volkswagen-onehub/components-core';\nimport React from 'react';\n\nconst Svg = styled.svg`\n width: 100%;\n height: auto;\n fill: #ffffff;\n`;\nconst SvgWrapper = styled.div`\n width: 44px;\n height: 44px;\n`;\n\nexport const FacebookSvg = () => (\n \n \n 631056F4-6CA7-4833-8173-D917CE902E32\n Created with sketchtool.\n \n \n \n \n \n \n \n \n);\n\nexport const TwitterSvg = () => (\n \n \n 13918EB6-6D62-43B8-99A2-2965833D2774\n Created with sketchtool.\n \n \n \n \n \n \n \n \n);\n\nexport const WhatsappSvg = () => (\n \n \n ic_whatsapp\n Created with Sketch.\n \n \n \n \n \n \n);\n","import {\n Breakpoints,\n BreakpointWrapper,\n Container,\n ContainerGutter,\n ContainerPadding,\n Layout,\n styled,\n Text,\n TextAlignment,\n TokenTextAppearance,\n} from '@volkswagen-onehub/components-core';\nimport React, { useEffect } from 'react';\nimport { connect, useDispatch, useSelector } from 'react-redux';\nimport { useFeatureAppConfig, useTrackingManager, TrackingForm } from 'src/feature-app';\nimport { RenderController } from 'src/feature-app/Screen';\nimport { FormDataFields, FormInfo, OneFormState, Steps } from 'src/types';\nimport { FacebookSvg, TwitterSvg, WhatsappSvg } from '../assets/Svgs';\n\ninterface FieldProps {\n copyBook?: string;\n cliente: string;\n}\n\ninterface NDPSField {\n name: string;\n value: string;\n}\n\nconst Anchor = styled.a`\n outline: none;\n color: none;\n`;\n\nfunction Fields() {\n const { formData, formInfo } = useSelector((state: OneFormState) => state);\n const config = useFeatureAppConfig();\n\n return (\n \n
\n \n \n {formData.fields.cliente === 'true'\n ? 'Tu madre recibirá tu “te quiero” en su bandeja de entrada y, quizá, también un fin de semana contigo al volante del Nuevo ID.4. ¡Mucha suerte! '\n : 'Tu madre está a punto de recibir tu “te quiero” en su bandeja de entrada. ¡Le alegrarás el día! '}\n \n \n ¿Conoces a más conductores/as Volkswagen? Comparte esta página para que ninguna madre se quede sin su “te\n quiero”.\n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n \n );\n}\n\ninterface ThankYouProps {\n formData: FormDataFields;\n formInfo: FormInfo;\n}\n\nfunction ThankYouDiaDeLaMadre(props: ThankYouProps) {\n const { formData, formInfo } = props;\n const { formResponse } = formInfo;\n\n const trackingManager = useTrackingManager();\n const dispatch = useDispatch();\n const getTrackingForm = (): TrackingForm => {\n let LeadID;\n if (formResponse && formResponse.content && formResponse.content.data && formResponse.content.data.fields) {\n const leadField: NDPSField = formResponse.content.data.fields.find(\n (field: NDPSField) => field.name === 'COD_LEAD_ID'\n );\n LeadID = leadField ? leadField.value : undefined;\n }\n return {\n LeadID,\n FormFields: undefined,\n };\n };\n\n useEffect(() => {\n dispatch({ type: 'SET_FORM_SUBMITTED', payload: true });\n\n trackingManager.trackFormSubmissionSuccessMessageLoad(\n {\n contentId: undefined,\n },\n getTrackingForm()\n );\n }, []);\n\n const renderTitle = () => {\n return (\n <>\n \n \n Seguro que le encanta tu mensaje\n \n \n \n \n Seguro que le encanta tu mensaje\n \n \n \n );\n };\n\n const screen: Steps = {\n title: <>{renderTitle()},\n fields: ,\n };\n return (\n \n );\n}\n\nconst mapStateToProps = (state: OneFormState) => {\n return {\n formData: state.formData.fields,\n formInfo: state.formInfo,\n };\n};\n\nconst ConnectedComponent = connect(mapStateToProps)(ThankYouDiaDeLaMadre);\n\nexport { ConnectedComponent as ThankYouDiaDeLaMadre };\n","import Axios, { AxiosResponse } from 'axios';\nimport React, { useEffect, useState } from 'react';\nimport { Text, styled, ThemeProvider } from '@volkswagen-onehub/components-core';\nimport { OneElementTemplate } from 'src/feature-app/Screen';\nimport { \n Email, \n PantallaNombreApellido, \n Telefono, \n MultipleCTASelection, \n YaTienesVolkswagen, \n NoCliente,\n ContactInfoWrapper \n} from 'src/components';\nimport {\n Mensaje,\n ConfirmacionDiaDeLaMadre,\n ThankYouDiaDeLaMadre\n} from './componentsAndViews';\nimport { useDispatch, useSelector, useStore } from 'react-redux';\nimport { dpsSend } from 'src/bff';\nimport { getParamsForm } from 'src/feature-app/get-params-form';\nimport { FormDataGroup, FormInfo, OneFormState, Steps } from 'src/types';\nimport { FormController, removeWhiteSpace, useFeatureAppConfig, useOneFormContext,formatPrefix } from 'src/feature-app';\nimport { formDataBuilder } from '../../format-fields';\n\nconst CTAsTipoVehiculo = [\n { label: 'Un eléctrico', value: 'electrico' },\n { label: 'Un híbrido', value: 'hibrido' },\n { label: 'Uno de combustión', value: 'combustion' },\n { label: 'Ninguno, de momento', value: 'ninguno' },\n];\n\nconst getContactoTitle = (cliente: string) => {\n if (cliente === 'true') {\n return (\n <>\n ¡Listo! ¿Cómo podemos contactar contigo en caso de ganar el fin de semana?\n \n );\n } else {\n return (\n <>\n ¿De parte de quién se lo enviamos?\n \n );\n }\n};\n\nexport enum DiaDeLaMadreSteps {\n NombreApellido,\n Cliente,\n NoCliente,\n Mensaje,\n EmailTelefono,\n MotherEmail,\n TipoVehiculo,\n Confirmacion,\n}\n\nexport function DiaDeLaMadreForm() {\n const { initializeForm } = useOneFormContext();\n const store = useStore();\n const config = useFeatureAppConfig();\n const dispatch = useDispatch();\n const { cliente } = useSelector((state: OneFormState) => state.formData.fields);\n const { formData } = useSelector((state: OneFormState) => state);\n\n const [notAClient, setNotAClient] = useState(true);\n\n const handleNotAClient = (cliente: string) => {\n let newSteps = [...steps];\n\n if (cliente === 'false') {\n newSteps = [...steps];\n } else {\n newSteps.splice(DiaDeLaMadreSteps.NoCliente, 1);\n setNotAClient(false);\n }\n\n const newStepsWithIndex = newSteps.map((step, index) => {\n step.screenIndex = index;\n return step;\n });\n\n dispatch({ type: 'UPDATE_STEPS', payload: newStepsWithIndex });\n dispatch({ type: 'UPDATE_LAST_STEP', payload: newStepsWithIndex[newStepsWithIndex.length - 1] });\n dispatch({ type: 'SET_NUMBER_OF_SCREENS', payload: newStepsWithIndex.length });\n };\n\n const steps: Steps[] = [\n {\n title: (\n <>\n Para poder enviar tu mensaje, necesitamos saber quién eres\n \n ),\n fields: } />,\n screenIndex: DiaDeLaMadreSteps.NombreApellido,\n name: 'NombreApellido',\n outputs: ['name', 'surname', 'secondSurname'],\n outputsText: ['name', 'surname', 'secondSurname'],\n },\n {\n title: (\n <>\n Ya tienes un Volkswagen, \n \n ¿verdad? \n 1\n \n \n ),\n fields: } />,\n screenIndex: DiaDeLaMadreSteps.Cliente,\n name: 'Cliente',\n outputs: ['cliente'],\n outputsText: ['cliente'],\n },\n {\n title: (\n <>\n Este sorteo es solo para clientes Volkswagen \n \n ),\n fields: } />,\n screenIndex: DiaDeLaMadreSteps.NoCliente,\n name: 'NoCliente',\n outputs: ['noCliente'],\n outputsText: ['noCliente'],\n },\n {\n title: (\n <>\n Pues vayamos a lo que importa. ¿Qué te gustaría{' '}\n \n decirle a tu{' '}\n \n madre?*\n \n \n \n ),\n fields: } />,\n screenIndex: DiaDeLaMadreSteps.Mensaje,\n name: 'Mensaje',\n outputs: ['messageText'],\n outputsText: ['messageText'],\n },\n {\n title: getContactoTitle(cliente),\n fields: (\n \n \n \n \n }\n />\n ),\n screenIndex: DiaDeLaMadreSteps.EmailTelefono,\n name: 'EmailTelefono',\n outputs: ['cellphone', 'email'],\n outputsText: ['cellphone', '/', 'email'],\n },\n {\n title: (\n <>\n Y, ¿a qué email le hacemos llegar la sorpresa a tu madre?\n \n ),\n fields: (\n }\n />\n ),\n screenIndex: DiaDeLaMadreSteps.MotherEmail,\n name: 'MotherEmail',\n outputs: ['otherEmail'],\n outputsText: ['otherEmail'],\n },\n {\n title: (\n <>\n Antes de terminar, tenemos curiosidad: ¿qué tipo de coche te ves{' '}\n \n conduciendo{' '}\n \n próximamente?*\n \n \n \n ),\n fields: (\n }\n />\n ),\n screenIndex: DiaDeLaMadreSteps.TipoVehiculo,\n name: 'TipoVehiculo',\n outputs: ['tipoVehiculo'],\n outputsText: ['tipoVehiculo'],\n },\n {\n fields: ,\n screenIndex: DiaDeLaMadreSteps.Confirmacion,\n name: 'Confirmacion',\n isLastStep: true,\n hidePreviousStep: true,\n },\n ];\n\n const NuevoFormData: Partial = {\n headers: {\n DESC_BRAND: 'VW',\n DESC_VN_VO: 'VN',\n DESC_GDPR_ADAPTED: 'true',\n },\n fields: { formName: 'adhoc-2021-diamadre', formType: 'otherform', pageCategory: 'Concurso' }, // Analítica\n };\n\n const getFormInfo = (): {\n firstStep: Steps;\n lastStep: Steps;\n stepsHistory: number[];\n numberOfScreens: number;\n newSteps?: Steps[];\n } => {\n return {\n firstStep: steps[0],\n lastStep: steps[steps.length - 1],\n stepsHistory: [0],\n numberOfScreens: steps.length,\n newSteps: null,\n };\n };\n\n const sendForm = (): Promise => {\n const { formData }: OneFormState = store.getState();\n\n const { fields, headers } = formData;\n\n return new Promise(async (resolve, reject) => {\n const { tc, today, referalUrl, url, device } = getParamsForm();\n\n const data = {\n 'headers[COD_FORM_ID]': 'vw-oneform-adhoc_diamadre_2021',\n 'headers[DESC_URLORIGIN]': url,\n 'headers[DESC_BRAND]': 'VW',\n 'headers[DESC_CAMPAIGNBLOCK]': 'B16 One Shot',\n 'headers[DESC_DEVICETYPE]': device,\n 'headers[DESC_FORMOBJECTIVE]': 'Participación Concurso',\n 'headers[DESC_FORM_DETAIL]': 'Dia Madre 2021', //Este debería pasarse a variable, aunque actualmente siempre sea ID\n 'headers[DESC_ID_CAMPAIGN]': '7011n000000Jo8rAAC',\n 'headers[DESC_TOKEN]': 'VW_DDB_FRM_DIAMADRE',\n\n 'headers[DESC_VN_VO]': 'VN',\n 'headers[FECHA_INSERTION_DATE]': today,\n 'headers[TC]': tc,\n 'headers[DESC_GDPR_ADAPTED]': true,\n\n 'fields[DESC_NAME]': fields.name,\n 'fields[DESC_SURNAME_1]': fields.surname,\n 'fields[DESC_SURNAME_2]': fields.secondSurname,\n 'fields[DESC_EMAIL_ADDRESS]': removeWhiteSpace(fields.email),\n 'fields[NUM_CELLPHONE]': `${formatPrefix(fields.prefix)}${fields.cellphone}`,\n 'fields[DESC_AUXFIELD1]': fields.messageText,\n 'fields[DESC_AUXFIELD2]': removeWhiteSpace(fields.otherEmail),\n 'fields[DESC_AUXFIELD3]': fields.tipoVehiculo,\n 'fields[DESC_AUXFIELD4]': fields.cliente,\n 'fields[DESC_FORM_VERSION]': `vw-oneform-adhoc_diamadre_2021-${process.env.VERSION}`,\n 'fields[DESC_LOPD]': 'PERMITE',\n 'fields[DESC_TRANF_DATA_THIRD]': 'NO INFORMADO',\n 'fields[DESC_LSSI]': fields.lssi ? fields.lssi : 'NO INFORMADO',\n 'fields[DESC_LOPD_GDPR_PERFILADO]': fields.tmk ? fields.tmk : 'NO INFORMADO',\n };\n const dataStringified = JSON.stringify(data);\n const dataParsed = JSON.parse(dataStringified);\n\n const formData = formDataBuilder(dataParsed);\n\n const response = await dpsSend(formData);\n\n if (response && response.data && response.data.content && response.data.content.code === '200') {\n dispatch({ type: 'SET_FORM_RESPONSE', payload: response.data });\n resolve(true);\n } else {\n resolve(false);\n }\n });\n };\n\n useEffect(() => {\n const { firstStep, lastStep, stepsHistory, numberOfScreens, newSteps } = getFormInfo();\n\n const NuevoFormInfo: Partial = {\n formStarted: true,\n sendFormCallback: sendForm,\n fullScreen: firstStep.fullScreen ? true : false,\n lastStep,\n numberOfScreens,\n formTheme: 'inverted',\n screenIndex: firstStep.screenIndex,\n step: firstStep,\n steps: newSteps ? newSteps : steps,\n stepsHistory,\n thankYouComponent: ,\n };\n\n initializeForm(NuevoFormInfo, NuevoFormData);\n }, []);\n\n useEffect(() => {\n if (cliente) handleNotAClient(cliente);\n }, [cliente]);\n\n return (\n \n \n \n );\n}\n","import React from 'react';\nimport { \n Layout,\n Breakpoints,\n CTA,\n Text, \n Container, \n ContainerPadding,\n ThemeProvider,\n styled, \n WhiteSpace,\n TokenTextAppearance\n} from '@volkswagen-onehub/components-core';\nimport { useTrackingManager } from 'src/feature-app/hooks/use-tracking-manager';\nimport { useOneFormContext } from 'src/feature-app';\n\nconst videoURL = 'https://cdn.volkswagen.es/repository/app/vw-oneform/assets/videos/video_eurocopa.mp4';\nconst Video = styled.video`\n background: linear-gradient(321.56deg, #00437A 0%, #00376C 52.11%, #001E50 100%);\n width: auto;\n height: 98vh;\n\n @media all and (min-width: 960px) {\n width: 100vw;\n height: auto;\n }\n`;\nconst HeaderContentPosition = styled.div`\n position: absolute;\n z-index: 1;\n top : 5%;\n @media all and (min-width: 960px) {\n top : 10%;\n }\n @media all and (min-width: 1280px) {\n top : 15%;\n }\n`;\n\nexport const Portada = () => {\n const trackingManager = useTrackingManager();\n const { nextStep } = useOneFormContext();\n return (\n
\n
\n
\n \n \n \n \n Hay tantos tipos de jugadores{' '}como de conductores.{' '}¿Cuál eres tú? \n \n \n \n Nos encantaría que participaras en este sorteo exclusivo para clientes ID. Compártenos tu experiencia.\n \n \n \n {\n trackingManager.trackFormStepButtonClick({\n contentId: 'Siguiente',\n });\n e.preventDefault();\n nextStep();\n }}\n ariaLabel=\"aria label\"\n >\n Comenzar\n \n \n \n \n \n
\n );\n};\n","import React, { useState, useEffect } from 'react';\nimport { TextAreaExtended } from 'src/components/inputs';\nimport {\n Text,\n Container,\n ContainerPadding,\n ContainerGutter,\n TextAlignment,\n styled,\n InputAppearance,\n TokenTextAppearance\n} from '@volkswagen-onehub/components-core';\nimport { useFormContext } from 'react-hook-form';\n\nconst TextColor = styled.span`\n color: #6A767D;\n`;\n\nexport const Experiencia = () => {\n const [currentValue, setCurrentValue] = useState('');\n const { register } = useFormContext();\n\n const adMaxLength = () => {\n const aux = document.getElementsByTagName('textarea');\n aux[0].setAttribute('maxlength', '350');\n };\n\n useEffect(() => {\n adMaxLength();\n }, []);\n\n const handleChange = (e: any) => {\n const aux = e.currentTarget.value;\n e.preventDefault();\n setCurrentValue(aux);\n };\n return (\n \n handleChange(e)}\n appearance={InputAppearance.Default}\n isFloating\n innerRef={register({\n required: {\n value: true,\n message: 'Requerido',\n },\n })}\n maxLength={350}\n />\n\n \n \n 1Tu{' '}testimonio es muy interesante por lo que en un futuro lo compartiremos, junto con tu nombre, en nuestra web.\n \n \n \n );\n};\n","import React, { useEffect, useState } from 'react';\nimport {\n Text,\n Container,\n ContainerPadding,\n TokenTextAppearance,\n} from '@volkswagen-onehub/components-core';\nimport {\n Telefono,\n MultipleCTASelection,\n DetalleMotivo,\n MultipleOptionCTAs,\n Email,\n PantallaNombreApellido,\n ContactInfoWrapper\n} from 'src/components';\nimport { Portada, Experiencia } from './ComponentsAndViews';\nimport { OneElementTemplateFullScreen } from 'src/feature-app/Screen';\nimport { useDispatch, useStore, useSelector } from 'react-redux';\nimport { dpsSend } from 'src/bff';\nimport { getParamsForm } from 'src/feature-app/get-params-form';\nimport { FormDataGroup, FormInfo, OneFormState, Steps, IdPerson, IdOrder } from 'src/types';\nimport {\n FormController,\n removeWhiteSpace,\n useFeatureAppConfig,\n useFeatureServices,\n useGetWaidLitera,\n useOneFormContext,\n useTrackingManager,\n} from 'src/feature-app';\nimport { ThankYouEurocopa, ConfirmacionEurocopa } from './';\nimport { formDataBuilder } from 'src/forms/format-fields';\nimport { EsOneformCoreServiceV1 } from 'src/feature-service/es-oneform-core-feature-service/types';\nimport { createPincodeEntity } from 'src/forms/dps-utils';\nimport { GenericErrorLayer } from 'src/components/layers';\n\nexport const CTAsSiNoNsNc = [\n { label: 'Sí, sin dudarlo', value: 'true' },\n { label: 'No lo recomiendo', value: 'false' },\n { label: 'Aún no lo sé, es pronto', value: 'NS/NC' },\n];\nexport const CTASCarga = [\n { label: 'En casa', value: 'casa' },\n { label: 'En el trabajo', value: 'trabajo' },\n { label: 'En ruta', value: 'ruta' },\n { label: 'Otro', value: 'otro' },\n];\nexport const CTAsConduccion = [\n { label: 'Sí, siempre utilizo mi vehículo eléctrico', value: 'electrico' },\n { label: 'Lo combino con otro vehículo no eléctrico', value: 'combinado' },\n];\nexport const CTAsGusta = [\n { label: 'La innovación', value: 'innovacion' },\n { label: 'La velocidad de la carga', value: 'velocidad carga' },\n { label: 'La practicidad para el día a día', value: 'practicidad' },\n { label: 'Que se adapta a mis escapadas/planes', value: 'adaptacion' },\n { label: 'Lo chulísimo que es', value: 'chulisimo' },\n { label: 'El ahorro económico', value: 'ahorro' },\n { label: 'Otro', value: 'otro' },\n];\n\nconst getExperienciaTitle = (entregado: string) => {\n if (entregado === 'true') {\n return (\n <>\n ¿Podrías compartir tu experiencia{' '}\n \n desde que fichaste a tu{' '}\n \n eléctrico?*\n \n \n \n \n Un discurso motivador antes de un partido importante{' '}\n puede marcar la diferencia, del mismo modo que tu respuesta1 aquí es clave para\n que otros se sumen a la movilidad eléctrica. ¡Nos gustaría compartirla!\n \n \n \n );\n } else {\n return (\n <>\n ¿Qué fue lo que más te motivó{' '}\n \n para fichar a tu nuevo{' '}\n \n eléctrico?*\n \n \n \n \n Un discurso motivador antes de un partido importante{' '}\n puede marcar la diferencia, del mismo modo que tu respuesta1 aquí es clave para\n que otros se sumen a la movilidad eléctrica. ¡Nos gustaría compartirla!\n \n \n \n );\n }\n};\nconst getExperienciaAlternateTitle = (entregado: string) => {\n if (entregado === 'true') {\n return (\n <>\n ¿Podrías compartir tu experiencia{' '}\n \n desde que fichaste a tu{' '}\n \n eléctrico?*\n \n \n \n );\n } else {\n return (\n <>\n ¿Qué fue lo que más te motivó{' '}\n \n para fichar a tu nuevo{' '}\n \n eléctrico?*\n \n \n \n );\n }\n};\n\nexport enum EurocopaSteps {\n Trigger,\n Carga,\n MasInformacion,\n Coduccion,\n MultipleChoice,\n MultipleChoiceDetalle,\n Recomendacion,\n Experiencia,\n NombreApellido,\n EmailTelefono,\n Confirmacion,\n}\n\nconst getIndexInSteps = (steps: Steps[], stepName: string) => steps.findIndex((step) => step.name === stepName);\n\nexport function EurocopaForm() {\n const { initializeForm, handleNextStep } = useOneFormContext();\n const store = useStore();\n const config = useFeatureAppConfig();\n const dispatch = useDispatch();\n const [loading, setLoading] = useState(true);\n const [formError, setFormError] = useState(false);\n const [formCaducado, setFormCaducado] = useState(false);\n const oneFormService = useFeatureServices()['es:oneform-core'] as EsOneformCoreServiceV1;\n const { formData } = useSelector((state: OneFormState) => state);\n const [idOrder, setIdOrder] = useState(false);\n const { carga, multipleChoice } = formData.fields;\n const trackingManager = useTrackingManager();\n const waid = useGetWaidLitera();\n\n const updateExperienciaStep = (conCoche: string, auxSteps?: Steps[]) => {\n const title = getExperienciaTitle(conCoche);\n const alternateTitle = getExperienciaAlternateTitle(conCoche);\n\n let newSteps = auxSteps ? auxSteps : [...steps];\n\n const experienciIndex = newSteps.findIndex((step: Steps) => step.name === 'Experiencia');\n\n newSteps[experienciIndex].title = title;\n newSteps[experienciIndex].alternateTitle = alternateTitle;\n\n dispatch({ type: 'UPDATE_STEPS', payload: newSteps });\n };\n\n const handleDetalle = (field: string, fieldName: string) => {\n const { steps: actualSteps, screenIndex } = store.getState().formInfo;\n let newSteps = [...actualSteps];\n\n if (field === 'otro' || field.includes('otro')) {\n const detalleIndex = getIndexInSteps(newSteps, fieldName);\n\n if (detalleIndex === -1) {\n // En caso de haber eliminado el step hay que volver a añadirlo de nuevo y llamar a la función handleNextStep ya que\n // ésta se llama antes de volver a añadir el mapa y realiza el cálculo con los steps sin actualizar.\n const detalleStepIndex = getIndexInSteps(steps, fieldName);\n newSteps.splice(screenIndex + 1, 0, steps[detalleStepIndex]);\n\n setTimeout(() => {\n handleNextStep();\n }, 0);\n }\n } else {\n const detalleIndex = getIndexInSteps(newSteps, fieldName);\n newSteps.splice(detalleIndex, 1);\n }\n updateExperienciaStep('true', newSteps);\n\n const newStepsWithIndex = newSteps.map((step, index) => {\n step.screenIndex = index;\n return step;\n });\n\n updateSteps(newStepsWithIndex);\n };\n\n const updateSteps = (steps: Steps[]) => {\n dispatch({ type: 'UPDATE_STEPS', payload: steps });\n dispatch({ type: 'UPDATE_LAST_STEP', payload: steps[steps.length - 1] });\n dispatch({ type: 'SET_NUMBER_OF_SCREENS', payload: steps.length });\n };\n\n const steps: Steps[] = [\n {\n fields: ,\n screenIndex: EurocopaSteps.Trigger,\n name: 'Trigger',\n outputs: ['trigger'],\n outputsText: ['trigger'],\n },\n {\n title: (\n <>\n ¿Dónde sueles cargar las pilas de tu{' '}\n \n ID.?*\n \n \n ),\n fields: (\n }\n />\n ),\n screenIndex: EurocopaSteps.Carga,\n name: 'Carga',\n outputs: ['carga'],\n outputsText: ['carga'],\n },\n {\n title: (\n <>\n ¿Cuál?\n \n ),\n fields: (\n \n }\n />\n ),\n screenIndex: EurocopaSteps.MasInformacion,\n name: 'masInformacion',\n outputs: ['masInformacion'],\n outputsText: ['masInformacion'],\n },\n {\n title: (\n <>\n ¿Es tu ID. tu{' '}\n \n vehículo{' '}\n \n titular?*\n \n \n \n ),\n fields: (\n }\n />\n ),\n screenIndex: EurocopaSteps.Coduccion,\n name: 'Conduccion',\n outputs: ['conduccion'],\n outputsText: ['conduccion'],\n },\n {\n title: (\n <>\n ¿Qué dirías que supone un golazo por parte de tu{' '}\n \n ID.?*\n \n \n \n Puedes elegir más de una respuesta.\n \n \n \n ),\n alternateTitle: (\n <>\n ¿Qué dirías que supone un golazo por parte de tu{' '}\n \n ID.?*\n \n \n ),\n fields: (\n } />\n ),\n screenIndex: EurocopaSteps.MultipleChoice,\n name: 'MultipleChoice',\n outputs: ['multipleChoice'],\n outputsText: ['multipleChoice'],\n },\n {\n title: (\n <>\n Cuéntanos más\n \n ),\n fields: (\n \n }\n />\n ),\n screenIndex: EurocopaSteps.MultipleChoiceDetalle,\n name: 'MultipleChoiceDetalle',\n outputs: ['multipleChoiceDetalle'],\n outputsText: ['multipleChoiceDetalle'],\n },\n {\n title: (\n <>\n ¿Recomendarías a tus amigos o conocidos{' '}\n \n que se pasen al equipo{' '}\n \n eléctrico?*\n \n \n \n ),\n fields: (\n }\n />\n ),\n screenIndex: EurocopaSteps.Recomendacion,\n name: 'Recomendacion',\n outputs: ['recomendacion'],\n outputsText: ['recomendacion'],\n },\n {\n title: <>, //Se actualiza en updateExperienciaStep\n alternateTitle: <>, //Se actualiza en updateExperienciaStep\n fields: } />,\n screenIndex: EurocopaSteps.Experiencia,\n name: 'Experiencia',\n outputs: ['experiencia'],\n outputsText: ['experiencia'],\n },\n {\n title: (\n <>\n Para poder entrar en el sorteo, necesitamos confirmar quién eres\n \n ),\n fields: } />,\n screenIndex: EurocopaSteps.NombreApellido,\n name: 'NombreApellido',\n outputs: ['name', 'surname', 'secondSurname'],\n outputsText: ['name', 'surname', 'secondSurname'],\n },\n {\n title: (\n <>\n Y confirmar los datos para poder contactar contigo\n \n ),\n fields: (\n \n \n \n \n }\n />\n ),\n screenIndex: EurocopaSteps.EmailTelefono,\n name: 'EmailTelefono',\n outputs: ['cellphone', 'email'],\n outputsText: ['cellphone', '/', 'email'],\n },\n {\n fields: ,\n screenIndex: EurocopaSteps.Confirmacion,\n name: 'Confirmacion',\n isLastStep: true,\n hidePreviousStep: true,\n },\n ];\n\n const getFormInfo = (\n idOrder: IdOrder\n ): {\n firstStep: Steps;\n lastStep: Steps;\n stepsHistory: number[];\n numberOfScreens: number;\n newSteps?: Steps[];\n } => {\n let newSteps = [...steps];\n\n if (idOrder?.SLI_State__c && Number(idOrder.SLI_State__c) < 70) {\n updateExperienciaStep('false');\n } else if (!idOrder?.SLI_State__c || (idOrder?.SLI_State__c && Number(idOrder.SLI_State__c) < 70)) {\n updateExperienciaStep('true');\n }\n\n if (idOrder?.SLI_State__c && Number(idOrder.SLI_State__c) < 70) {\n const indexFinalCorte = newSteps.findIndex((step) => step.name === 'Recomendacion');\n newSteps.splice(1, indexFinalCorte);\n setIdOrder(true);\n newSteps = newSteps.map((step, index) => {\n step.screenIndex = index;\n return step;\n });\n }\n\n return {\n firstStep: newSteps[0],\n lastStep: newSteps[newSteps.length - 1],\n stepsHistory: [0],\n numberOfScreens: newSteps.length,\n newSteps,\n };\n };\n\n const sendForm = (): Promise => {\n const { formData, dealersInfo }: OneFormState = store.getState();\n\n const { fields, headers } = formData;\n\n return new Promise(async (resolve, reject) => {\n const { tc, today, referalUrl, url, device } = getParamsForm();\n\n const data = {\n 'headers[PINCODE]': fields.pincode,\n 'headers[DESC_ID_CLIMAPRO]': fields.idClimapro,\n\n 'headers[COD_FORM_ID]': 'vw-oneform-adhoc_2021_eurocopa',\n 'headers[DESC_WAID_LITERA]': 'Sorteo Eurocopa 2021',\n 'headers[DESC_URLORIGIN]': url,\n 'headers[DESC_BRAND]': 'VW',\n 'headers[DESC_CAMPAIGNBLOCK]': '2. VW Sponsorship',\n 'headers[DESC_DEVICETYPE]': device,\n 'headers[DESC_FORMOBJECTIVE]': 'Concurso',\n 'headers[DESC_FORM_DETAIL]': 'Sorteo Eurocopa 2021',\n 'headers[DESC_ID_CAMPAIGN]': '7011n000000JooQAAS',\n 'headers[DESC_TOKEN]': 'VW_DDB_FRM_CONCURSO_EUROCOPA', //CONSULTAR\n 'headers[FECHA_INSERTION_DATE]': today,\n 'headers[DESC_VN_VO]': 'VN',\n 'headers[TC]': tc,\n 'headers[DESC_GDPR_ADAPTED]': 'true',\n\n 'fields[DESC_NAME]': fields.name,\n 'fields[DESC_SURNAME_1]': fields.surname,\n 'fields[DESC_SURNAME_2]': fields.secondSurname,\n 'fields[DESC_EMAIL_ADDRESS]': removeWhiteSpace(fields.email),\n 'fields[NUM_CELLPHONE]': `${fields.prefix}${fields.cellphone}`,\n 'fields[DESC_AUXFIELD1]': fields.experiencia,\n 'fields[DESC_AUXFIELD2]': fields.enCurso,\n 'fields[DESC_AUXFIELD3]': fields.carga,\n 'fields[DESC_AUXFIELD4]': fields.masInformacion,\n 'fields[DESC_AUXFIELD5]': fields.conduccion,\n 'fields[DESC_AUXFIELD6]': fields.multipleChoice,\n 'fields[DESC_AUXFIELD7]': fields.multipleChoiceDetalle,\n 'fields[DESC_AUXFIELD8]': fields.recomendacion,\n 'fields[DESC_FORM_VERSION]': `vw-oneform-adhoc_2021_eurocopa-${process.env.VERSION}`,\n 'fields[DESC_LOPD]': 'PERMITE',\n 'fields[DESC_TRANF_DATA_THIRD]': 'NO INFORMADO',\n 'fields[DESC_LSSI]': fields.lssi ? fields.lssi : 'NO INFORMADO',\n 'fields[DESC_LOPD_GDPR_PERFILADO]': fields.tmk ? fields.tmk : 'NO INFORMADO',\n };\n const dataStringified = JSON.stringify(data);\n const dataParsed = JSON.parse(dataStringified);\n\n const formData = formDataBuilder(dataParsed);\n\n const response = await dpsSend(formData);\n\n if (response && response.data && response.data.content && response.data.content.code === '200') {\n dispatch({ type: 'SET_FORM_RESPONSE', payload: response.data });\n resolve(true);\n } else {\n resolve(false);\n }\n });\n };\n\n const handleComplete = () => {\n const dpsData = oneFormService.getDpsData();\n const idPerson = createPincodeEntity(dpsData, 'PERSON') as IdPerson;\n const idOrder = createPincodeEntity(dpsData, 'ORDER') as IdOrder;\n\n const enCursoAux = idOrder && parseFloat(idOrder.SLI_State__c) < 70 ? 'true' : 'false';\n\n if (!idPerson) {\n if (dpsData.pincode.noPincodeFound || dpsData.pincode.pincodeError) {\n console.log(dpsData);\n setFormError(true);\n } else if (dpsData.pincode.pincodeUsed) {\n setFormCaducado(true);\n }\n }\n\n const { firstStep, lastStep, stepsHistory, numberOfScreens, newSteps } = getFormInfo(idOrder);\n\n const NuevoFormInfo: Partial = {\n formStarted: true,\n sendFormCallback: sendForm,\n fullScreen: firstStep.fullScreen ? true : false,\n lastStep,\n numberOfScreens,\n formTheme: 'main',\n screenIndex: firstStep.screenIndex,\n step: firstStep,\n steps: newSteps ? newSteps : steps,\n stepsHistory,\n thankYouComponent: ,\n };\n\n const NuevoFormData: Partial = {\n headers: {\n DESC_BRAND: 'VW',\n DESC_VN_VO: 'VN',\n DESC_GDPR_ADAPTED: 'true',\n COD_FORM_ID: 'vw-oneform-adhoc_2021_eurocopa',\n DESC_WAID_LITERA: waid ? waid : 'Sorteo Eurocopa 2021',\n DESC_CAMPAIGNBLOCK: '2. VW Sponsorship',\n DESC_FORMOBJECTIVE: 'Concurso',\n DESC_FORM_DETAIL: 'Sorteo Eurocopa 2021',\n DESC_ID_CAMPAIGN: '7011n000000JooQAAS',\n DESC_TOKEN: 'VW_DDB_FRM_CONCURSO_EUROCOPA', //CONSULTAR\n },\n\n fields: {\n name: idPerson?.FirstName,\n surname: idPerson?.LastName,\n secondSurname: idPerson?.TXT_2_Surname__c,\n email: idPerson?.TXT_Email__c,\n cellphone: idPerson?.NUM_Phone_mobile__c,\n pincode: dpsData.pincode?.pincodeResponse?.params?.pincode,\n enCurso: enCursoAux,\n idClimapro: idPerson?.ID_Person_DIM_IMP__c,\n formName: 'adhoc-2021-eurocopa',\n formType: 'otherform',\n pageCategory: 'Concurso',\n }, // Analítica\n };\n\n initializeForm(NuevoFormInfo, NuevoFormData, true);\n trackingManager.trackFormLoad();\n\n setLoading(false);\n };\n\n useEffect(() => {\n const oneFormCoreDpsIsLoaded = oneFormService.getLoadedState();\n\n oneFormCoreDpsIsLoaded.subscribe({\n next(value) {},\n error(err) {\n console.error(err);\n },\n complete() {\n handleComplete();\n },\n });\n }, []);\n\n useEffect(() => {\n if (!idOrder) {\n if (carga) {\n handleDetalle(carga, 'masInformacion');\n }\n }\n }, [carga]);\n useEffect(() => {\n if (!idOrder) {\n if (multipleChoice) {\n handleDetalle(multipleChoice, 'MultipleChoiceDetalle');\n }\n }\n }, [multipleChoice]);\n\n return (\n <>\n {loading ? null : (\n <>\n {formError ? (\n \n ) : formCaducado ? (\n \n ) : (\n \n )}\n \n )}\n \n );\n}\n","import {\n Breakpoints,\n Container,\n ContainerPadding,\n Layout,\n Text,\n TextAlignment,\n TokenTextAppearance,\n} from '@volkswagen-onehub/components-core';\nimport React, { useEffect } from 'react';\nimport { connect, useDispatch, useSelector } from 'react-redux';\nimport { useTrackingManager, TrackingForm } from 'src/feature-app';\nimport { RenderController } from 'src/feature-app/Screen';\nimport { FormDataFields, FormInfo, OneFormState, Steps } from 'src/types';\n\ninterface FieldProps {\n copyBook?: string;\n}\n\ninterface NDPSField {\n name: string;\n value: string;\n}\n\nfunction Fields(props: FieldProps) {\n const { formData, formInfo } = useSelector((state: OneFormState) => state);\n\n return (\n \n
\n \n \n Pronto sabrás si eres una de las personas afortunadas. Mientras tanto, ¡sigue disfrutando de la movilidad eléctrica!\n \n \n
\n \n );\n}\n\ninterface ThankYouProps {\n formData: FormDataFields;\n formInfo: FormInfo;\n}\n\nfunction ThankYouEurocopa(props: ThankYouProps) {\n const { formData, formInfo } = props;\n const { formResponse } = formInfo;\n\n const trackingManager = useTrackingManager();\n const dispatch = useDispatch();\n const getTrackingForm = (): TrackingForm => {\n let LeadID;\n if (formResponse && formResponse.content && formResponse.content.data && formResponse.content.data.fields) {\n const leadField: NDPSField = formResponse.content.data.fields.find(\n (field: NDPSField) => field.name === 'COD_LEAD_ID'\n );\n LeadID = leadField ? leadField.value : undefined;\n }\n return {\n LeadID,\n FormFields: undefined,\n };\n };\n\n useEffect(() => {\n // Thank you page no es gestionado como un step pero sí lo haremos en la analítica. Por eso Modificamos formInfo después del submit y antes del RESET\n const screenIndexThankyou = formInfo.numberOfScreens;\n\n dispatch({ type: 'SET_FORM_SUBMITTED', payload: true });\n dispatch({ type: 'SET_FORM_INFO', payload: { step: { screenIndex: screenIndexThankyou, name: \"ThankYou\" } } });\n\n trackingManager.trackFormSubmissionSuccessMessageLoad(\n {\n contentId: undefined,\n },\n getTrackingForm()\n );\n }, []);\n\n const screen: Steps = {\n title: (\n <>\n {' '}\n ¡Muchas gracias por participar!\n \n ),\n fields: ,\n };\n return (\n \n );\n}\n\nconst mapStateToProps = (state: OneFormState) => {\n return {\n formData: state.formData.fields,\n formInfo: state.formInfo,\n };\n};\n\nconst ConnectedComponent = connect(mapStateToProps)(ThankYouEurocopa);\n\nexport { ConnectedComponent as ThankYouEurocopa };\n","import {\n Breakpoints,\n BreakpointWrapper,\n Container,\n ContainerPadding,\n CTA,\n styled,\n Text,\n TextAlignment,\n Layout,\n TokenTextAppearance,\n} from '@volkswagen-onehub/components-core';\nimport { LegalesFormatoLayer, LssiTkmQuestions } from 'src/components';\nimport {\n CloseHandleV2,\n FocusLayerSizeV2,\n LayerHandleV2,\n LayerManagerV2\n} from '@volkswagen-onehub/layer-manager';\nimport React, { useEffect, useState } from 'react';\nimport { useFormContext } from 'react-hook-form';\nimport { connect, useDispatch, useStore } from 'react-redux';\nimport {\n LayerManagerWrapper,\n useFeatureAppEnvironment,\n useFeatureServices,\n useOneFormContext,\n useTrackingManager,\n} from 'src/feature-app';\nimport { OneFormState } from 'src/types';\nimport { KoScreen, LoadingScreen } from 'src/forms/CitaPosventa/NuevaCitaPosventa/ConfirmarCitaLayer';\n\nconst GeneralconfirmacionWrapper = styled.div`\n\n`;\n\nconst WhiteLinkWrapper = styled.span`\n a {\n font-weight: bold;\n }\n`;\n\nfunction ConfirmacionEurocopa() {\n const dispatch = useDispatch();\n\n const [lssi, setLssi] = useState(null);\n const [tmk, setTmk] = useState(null);\n const [lssiError, setLssiError] = useState(false);\n const [tmkError, setTmkError] = useState(false);\n\n useEffect(() => {\n if (lssi) {\n const values = { lssi: lssi };\n dispatch({ type: 'UPDATE_FIELDS', payload: values });\n setLssiError(false);\n }\n if (tmk) {\n const values = { tmk: tmk };\n dispatch({ type: 'UPDATE_FIELDS', payload: values });\n setTmkError(false);\n }\n }, [lssi, tmk]);\n\n return (\n \n \n \n ¡Gracias! Unas{' '}últimas preguntas{' '} para tenerlo todo claro\n \n \n \n \n Enviando este formulario declaras estar informado de la{' '}\n \n \n política de privacidad.\n \n \n \n \n\n \n \n
\n \n \n );\n}\n\ninterface LastNavigationProps {\n tmk: string;\n lssi: string;\n setTmkError: React.Dispatch>;\n setLssiError: React.Dispatch>;\n}\n\nfunction LastNavigation(props: LastNavigationProps) {\n const { tmk, lssi, setTmkError, setLssiError } = props;\n // const dispatch = useDispatch();\n const { handleShowFinalScreen, handleSubmit } = useOneFormContext();\n const { reset } = useFormContext();\n const [layerVisible, setLayerVisible] = useState(false);\n const [koLayer, setKoLayer] = useState>(null);\n const [koScreen, setKoScreen] = useState(false);\n const layerManager = useFeatureServices()['layer-manager'] as LayerManagerV2;\n const store = useStore();\n const env = useFeatureAppEnvironment();\n const dispatch = useDispatch();\n const trackingManager = useTrackingManager();\n\n //Loading and Ko layers\n\n const handleKoLayer = () => {\n const layer = layerManager.openFocusLayer(renderKoLayer, {}, { size: FocusLayerSizeV2.A });\n setKoLayer(layer);\n };\n\n const renderKoLayer = (state: any, close: CloseHandleV2) => {\n return (\n \n \n \n );\n };\n\n const handleLoadingScreenLayer = () => {\n const layer = layerManager.openFocusLayer(renderLoadingScreen, {}, { size: FocusLayerSizeV2.A });\n\n return layer;\n };\n\n const renderLoadingScreen = (state: any, close: CloseHandleV2) => {\n return (\n \n \n \n );\n };\n\n // 1. check de lssi y tmk\n // 2. submit de la cita y activación la pantalla de feedback correspondiente\n // no se hace ninguna validación en este último paso porque esta ya se ha hecho en el edit-guardar de cada campo previamente\n async function handleConfirmarCita(e: any) {\n if (tmk === null && tmk === null) {\n setTmkError(true);\n setLssiError(true);\n } else if (tmk === null) {\n setTmkError(true);\n } else if (lssi === null) {\n setLssiError(true);\n } else {\n trackingManager.trackFormCTAClick({\n contentId: 'Enviar',\n });\n\n const loadingLayer = handleLoadingScreenLayer();\n setLayerVisible(true);\n\n const value = await handleSubmit(e);\n loadingLayer.close();\n\n if (value) {\n handleShowFinalScreen();\n } else {\n handleKoLayer();\n }\n }\n }\n async function retrySubmit(e: any) {\n if (koLayer) {\n koLayer.close();\n }\n setKoScreen(false);\n const loadingLayer = handleLoadingScreenLayer();\n const value = await handleSubmit(e);\n loadingLayer.close();\n if (value) {\n handleShowFinalScreen();\n } else {\n handleKoLayer();\n setKoScreen(true);\n }\n }\n\n useEffect(() => {\n if (!layerVisible && koScreen) setKoScreen(false);\n }, [layerVisible]);\n\n useEffect(() => {\n dispatch({ type: 'UPDATE_FORM_ENDED', payload: true });\n }, []);\n\n return (\n <>\n \n {\n e.preventDefault();\n handleConfirmarCita(e);\n }}\n stretchContent\n >\n Enviar\n \n \n \n {\n e.preventDefault();\n handleConfirmarCita(e);\n }}\n >\n Enviar\n \n \n \n );\n}\n\n\nconst mapStateToProps = (state: OneFormState) => {\n return {\n formInfo: state.formInfo,\n formData: state.formData,\n };\n};\n\nconst ConnectedComponent = connect(mapStateToProps)(ConfirmacionEurocopa);\n\nexport { ConnectedComponent as ConfirmacionEurocopa };\n","import {\n BreakpointWrapper,\n Breakpoints,\n styled,\n Text,\n TextAlignment,\n ThemeProvider,\n Container,\n ContainerPadding,\n CTA,\n TokenTextAppearance,\n} from '@volkswagen-onehub/components-core';\nimport { CloseHandleV2, FocusLayerSizeV2, LayerHandleV2, LayerManagerV2 } from '@volkswagen-onehub/layer-manager';\nimport React, { useEffect, useState } from 'react';\nimport { useFormContext } from 'react-hook-form';\nimport { useDispatch, useStore, useSelector } from 'react-redux';\nimport {\n LayerManagerWrapper,\n useFeatureAppEnvironment,\n useFeatureServices,\n useOneFormContext,\n useTrackingManager,\n} from 'src/feature-app';\nimport { KoScreen, LoadingScreen } from '../../CitaPosventa/NuevaCitaPosventa/ConfirmarCitaLayer';\nimport { OneFormState } from 'src/types';\n\ninterface lastNavigationProps {\n refProps?: any;\n formMin?: any;\n setShowError?: any;\n}\n\nconst NavigationWrapper = styled.div`\n display: block;\n padding-top: 44px;\n`;\n\nexport const LastNavigationFidelizacion = (props: lastNavigationProps) => {\n const { setShowError } = props;\n // const dispatch = useDispatch();\n const { handleShowFinalScreen, handleSubmit } = useOneFormContext();\n const { reset, getValues, triggerValidation } = useFormContext();\n const { fields } = useSelector((state: OneFormState) => state.formData);\n const [layerVisible, setLayerVisible] = useState(false);\n const [koLayer, setKoLayer] = useState>(null);\n const [koScreen, setKoScreen] = useState(false);\n\n const layerManager = useFeatureServices()['layer-manager'] as LayerManagerV2;\n const store = useStore();\n const env = useFeatureAppEnvironment();\n const dispatch = useDispatch();\n const trackingManager = useTrackingManager();\n const [isValid, setIsValid] = useState(false);\n\n //Loading and Ko layers\n\n const handleKoLayer = () => {\n const layer = layerManager.openFocusLayer(renderKoLayer, {}, { size: FocusLayerSizeV2.A });\n setKoLayer(layer);\n };\n\n const renderKoLayer = (state: any, close: CloseHandleV2) => {\n return (\n \n \n \n );\n };\n\n const handleLoadingScreenLayer = () => {\n const layer = layerManager.openFocusLayer(renderLoadingScreen, {}, { size: FocusLayerSizeV2.A });\n\n return layer;\n };\n\n const renderLoadingScreen = (state: any, close: CloseHandleV2) => {\n return (\n \n \n \n );\n };\n\n const handleConfirmarEnvio = async (e: any) => {\n const values = getValues();\n const isValid = await triggerValidation();\n setShowError(false);\n\n if (isValid) {\n setShowError(false);\n\n dispatch({ type: 'UPDATE_FIELDS', payload: values });\n\n trackingManager.trackFormCTAClick({\n contentId: 'Enviar',\n });\n\n const loadingLayer = handleLoadingScreenLayer();\n setLayerVisible(true);\n\n const value = await handleSubmit(e);\n\n loadingLayer.close();\n\n if (value) {\n handleShowFinalScreen();\n } else {\n handleKoLayer();\n }\n } else {\n setShowError(true);\n }\n };\n\n async function retrySubmit(e: any) {\n if (koLayer) {\n koLayer.close();\n }\n setKoScreen(false);\n const loadingLayer = handleLoadingScreenLayer();\n const value = await handleSubmit(e);\n loadingLayer.close();\n if (value) {\n handleShowFinalScreen();\n } else {\n handleKoLayer();\n setKoScreen(true);\n }\n }\n\n useEffect(() => {\n if (!layerVisible && koScreen) setKoScreen(false);\n }, [layerVisible]);\n\n useEffect(() => {\n if (fields.otrosServicios) setIsValid(true);\n }, [fields]);\n\n useEffect(() => {\n dispatch({ type: 'UPDATE_FORM_ENDED', payload: true });\n }, []);\n\n return (\n \n \n \n Enviando este formulario declaras estar informado de la{' '}\n \n política de privacidad.\n \n \n \n\n \n \n \n {\n e.preventDefault();\n handleConfirmarEnvio(e);\n }}\n stretchContent\n >\n Enviar\n \n \n \n \n \n {\n e.preventDefault();\n handleConfirmarEnvio(e);\n }}\n >\n Enviar\n \n \n \n
\n \n );\n};\n","import React, { useState, useEffect} from 'react';\nimport { Text, TextAlignment, TokenTextAppearance, TokenTextColor } from '@volkswagen-onehub/components-core';\nimport { RatingStars} from 'src/components';\nimport styled from 'styled-components';\nimport { useFormContext } from 'react-hook-form';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { useTrackingManager } from 'src/feature-app/hooks';\nimport { OneElementTemplateFullScreen } from 'src/feature-app';\nimport { OneFormState } from 'src/types';\nimport {LastNavigationFidelizacion} from '.';\n\nconst CTAWrapper = styled.div`\n text-align: left;\n margin: -10px;\n margin-top: 32px;\n & > button {\n margin: 12px;\n width: 81px;\n }\n`;\n\nconst ErrorMessage = styled.div`\n width: max-content;\n padding: 4px 8px;\n border-radius: 4px;\n background-color: #e4002c;\n color: #ffffff;\n`;\n\nfunction Fields() {\n const trackingManager = useTrackingManager();\n const dispatch = useDispatch();\n const [ selectedValue, setSelectedValue] = useState('');\n const { control, register, setValue } = useFormContext();\n const { fields } = useSelector((state: OneFormState) => state.formData);\n const [showError, setShowError] = useState(false);\n\n useEffect(() => {\n if (fields.enviarInformacion) setSelectedValue(fields.enviarInformacion);\n }, []);\n\n return (\n <>\n \n {\n showError ? (\n \n \n Necesitamos esta información para seguir\n \n \n ) : null\n }\n \n \n );\n}\n\nexport function FidelizacionLastScreenFields() {\n return (\n } />\n );\n}\n","import { Text } from '@volkswagen-onehub/components-core';\nimport React, { useEffect, useState } from 'react';\nimport { useDispatch, useStore } from 'react-redux';\nimport { getCarlines } from 'src/bff';\nimport { useFaContent, useFeatureServices } from 'src/feature-app';\nimport { CarlineBase, IdLead, Steps } from 'src/types';\n\nconst getLastItemOfSteps = (steps: Steps[]) => steps[steps.length - 1];\n\nconst propertyHasValue = (property: string) => property !== 'null';\n\nexport const checkIdLeadHasCarline = (idLead: IdLead) =>\n idLead &&\n idLead.NUM_COD_INTEREST_CARLINE__c &&\n idLead.DESC_Model__c &&\n propertyHasValue(idLead.NUM_COD_INTEREST_CARLINE__c) &&\n propertyHasValue(idLead.DESC_Model__c);\n\nexport function useInitializeFidelizacionForm(defaultSteps: Steps[], idLead: IdLead) {\n const dispatch = useDispatch();\n const [loading, setLoading] = useState(true);\n\n const [steps, setSteps] = useState(defaultSteps);\n const [firstStep, setFirstStep] = useState(defaultSteps[0]);\n const [lastStep, setLastStep] = useState(getLastItemOfSteps(defaultSteps));\n\n const removeModelFromSteps = async () => {\n return new Promise((resolve) => {\n let updatedSteps = [...steps];\n const indexOfModelo = updatedSteps.findIndex((step) => step.name === 'Modelo');\n updatedSteps.splice(indexOfModelo, 1); // Eliminado el step de Modelo.\n updatedSteps[0].hidePreviousStep = true;\n const updatedStepsWithIndex = updatedSteps.map((step, index) => {\n step.screenIndex = index;\n return step;\n });\n\n setSteps(updatedStepsWithIndex);\n setFirstStep(updatedStepsWithIndex[0]);\n setLastStep(getLastItemOfSteps(updatedStepsWithIndex));\n\n resolve(true);\n });\n };\n\n useEffect(() => {\n const remove = async () => {\n await removeModelFromSteps();\n setLoading(false);\n };\n\n const requestCarlines = async () => {\n const carlines = await getCarlines();\n\n dispatch({ type: 'SET_CARLINES', payload: carlines });\n setSteps(defaultSteps);\n setLoading(false);\n };\n\n if (checkIdLeadHasCarline(idLead)) {\n remove();\n } else {\n requestCarlines();\n }\n }, []);\n\n return { loading, steps, firstStep, lastStep };\n}\n","import React, { useEffect, useState } from 'react';\nimport { useDispatch, useSelector, useStore } from 'react-redux';\nimport { dpsSend } from 'src/bff';\nimport {\n Text,\n CTA,\n Container,\n ContainerPadding,\n ContainerGutter,\n InputAppearance,\n Layout,\n Breakpoints,\n TokenTextAppearance\n} from '@volkswagen-onehub/components-core';\nimport { OneElementTemplateFullScreen } from 'src/feature-app/Screen';\nimport { FidelizacionLastScreenFields } from './FidelizacionLastScreenFields';\nimport { TextAreaExtended, MultipleOptionCTAs, RatingStars } from 'src/components';\nimport { getParamsForm } from 'src/feature-app/get-params-form';\nimport { FormDataGroup, FormInfo, OneFormState, Steps } from 'src/types';\nimport {\n FormController,\n useOneFormContext\n} from 'src/feature-app';\nimport { useFormContext } from 'react-hook-form';\nimport { ThankYouFidelizacion } from '.';\nimport { formDataBuilder } from '../../format-fields';\nimport { FidelizacionFormProps } from './FidelizacionController';\nimport { useTrackingManager } from 'src/feature-app/hooks/use-tracking-manager';\nimport { useInitializeFidelizacionForm } from './use-initialize-fidelizacion-form';\n\nconst CTAsObtenerNuevas = [\n { label: 'Participando en encuestas, en experiencias, en sorteos, en eventos...', value: 'lealtad' },\n { label: 'Con Volkswagen Long Drive, utilizando el servicio de recogida y entrega, pidiendo cita online...', value: 'relacion' },\n { label: 'Otras formas', value: 'otros' },\n];\n\nconst CTAsListadoVentajas = [\n { label: 'Mantenimiento incluido', value: 'mantenimiento' },\n { label: 'Garantías Volkswagen', value: 'garantias' },\n { label: 'Asistencia en carretera', value: 'asistencia' },\n { label: 'Coche de sustitución', value: 'coche-sustitucion' },\n { label: 'Revisión Pre-ITV gratuita', value: 'pre-itv' },\n { label: 'Servicio de recogida y entrega', value: 'recogida-entrega' },\n { label: 'Volkswagen Long Drive¹', value: 'long-drive' },\n { label: 'Experiencias de conducción²', value: 'experiencias' },\n { label: 'We: Coche conectado³', value: 'we' },\n];\n\nexport enum FidelizacionSteps {\n QuieroTener,\n MasConoces,\n ListadoVentajas,\n Valoracion,\n ServicioPosventa,\n ProcesoCompra,\n OpcionesFinanciacion,\n VentajasBeneficions,\n InformacionExclusiva,\n InformacionTecnologia,\n OtrosServicios,\n Confirmacion,\n}\n\nexport function FidelizacionForm(props: FidelizacionFormProps) {\n const { dpsData, idPerson, trackFormLoad } = props;\n const { formData, formInfo } = useSelector((state: OneFormState) => state);\n const { obtenerNuevas } = formData.fields;\n const { screenIndex } = formInfo;\n const { initializeForm, nextStep, handleNextStep } = useOneFormContext();\n const trackingManager = useTrackingManager();\n const store = useStore();\n const { register } = useFormContext();\n const [currentValue, setCurrentValue] = useState('');\n const dispatch = useDispatch();\n\n const handleChange = (e: any) => {\n const aux = e.currentTarget.value;\n e.preventDefault();\n setCurrentValue(aux);\n };\n\n const stepsForm: Steps[] = [\n {\n title: (\n <>\n ¿Qué beneficios y ventajas te gustaría tener como cliente Volkswagen?\n \n ),\n fields: (\n \n handleChange(e)}\n appearance={InputAppearance.Default}\n isFloating={false}\n innerRef={register({\n required: {\n value: true,\n message: 'Requerido',\n },\n })}\n placeholder=\"Ejemplo: Hace 7 años que soy clienta de Volkswagen, y me encantaría que mi fidelidad se viera recompensada con descuentos, ofertas exclusivas e incluso experiencias con otros miembros de la comunidad.\"\n rows={3}\n maxLength={1500}\n />\n \n }\n />\n ),\n screenIndex: FidelizacionSteps.QuieroTener,\n name: 'QuieroTener',\n outputs: ['quieroTener'],\n outputsText: ['quieroTener'],\n },\n {\n title: (\n <>\n ¿Cuáles son los beneficios y ventajas de Volkswagen que más conoces/utilizas?\n \n ),\n fields: (\n \n handleChange(e)}\n appearance={InputAppearance.Default}\n isFloating={false}\n innerRef={register({\n required: {\n value: true,\n message: 'Requerido',\n },\n })}\n placeholder=\"Ejemplo: Me parece muy útil el servicio de recogida y entrega de Volkswagen. A veces hacer un hueco para ir al taller es misión imposible, ¡así que toda acción que te facilite la vida es bienvenida!\"\n rows={3}\n maxLength={350}\n />\n \n }\n />\n ),\n screenIndex: FidelizacionSteps.MasConoces,\n name: 'MasConoces',\n outputs: ['masConoces'],\n outputsText: ['masConoces'],\n },\n {\n title: (\n <>\n Hemos listado algunas de nuestras ventajas como cliente de la familia Volkswagen. ¿Cuáles te parecen más atractivas?\n \n \n Selecciona 3 opciones.\n \n \n \n ),\n alternateTitle: (\n <>\n Hemos listado algunas de nuestras ventajas como cliente de la familia Volkswagen. ¿Cuáles te parecen más atractivas?\n \n ),\n fields: (\n \n \n \n
    \n
  1. Planes de mantenimiento Volkswagen Long Drive (Standard y Advance)
  2. \n
  3. Race Tours y otras experiencias de conducción para clientes
  4. \n
  5. Servicios de conectividad como We Connect, We Connect GO...
  6. \n
\n
\n }\n />\n ),\n screenIndex: FidelizacionSteps.ListadoVentajas,\n name: 'ListadoVentajas',\n outputs: ['listadoVentajas'],\n outputsText: ['listadoVentajas'],\n },\n {\n title: (\n <>\n ¿Qué importancia le darías a los siguientes conceptos?\n \n ),\n fields: (\n \n \n \n Como cliente de Volkswagen, siendo 1 \"mayor importancia\" y 5 \"menor importancia\"\n \n {\n trackingManager.trackFormStepButtonClick({\n contentId: 'Siguiente',\n });\n e.preventDefault();\n nextStep();\n }}\n ariaLabel=\"aria label\"\n >\n Empezar\n \n \n \n ),\n screenIndex: FidelizacionSteps.Valoracion,\n name: 'Valoracion',\n },\n {\n title: (\n <>\n Servicio de Posventa: trato, precio y planes de mantenimiento.\n \n ),\n fields: (\n }\n />\n ),\n screenIndex: FidelizacionSteps.ServicioPosventa,\n name: 'ServicioPosventa',\n outputs: ['servicioPosventa'],\n outputsText: ['servicioPosventa'],\n outputsIsStars: true\n },\n {\n title: (\n <>\n Proceso de compra o renovación: personalización por ser cliente, ofrecimiento de prueba test drive, asesoramiento comercial...\n \n ),\n fields: (\n }\n />\n ),\n screenIndex: FidelizacionSteps.ProcesoCompra,\n name: 'ProcesoCompra',\n outputs: ['procesoCompra'],\n outputsText: ['procesoCompra'],\n outputsIsStars: true\n },\n {\n title: (\n <>\n Opciones de financiación en la venta: nuevas fórmulas, condiciones ventajosas...\n \n ),\n fields: (\n }\n />\n ),\n screenIndex: FidelizacionSteps.OpcionesFinanciacion,\n name: 'OpcionesFinanciacion',\n outputs: ['opcionesFinanciacion'],\n outputsText: ['opcionesFinanciacion'],\n outputsIsStars: true\n },\n {\n title: (\n <>\n Ventajas y Beneficios como descuentos, premios, entradas a eventos, posibilidad de participar en foros de la marca...\n \n ),\n fields: (\n }\n />\n ),\n screenIndex: FidelizacionSteps.VentajasBeneficions,\n name: 'VentajasBeneficions',\n outputs: ['ventajasBeneficions'],\n outputsText: ['ventajasBeneficions'],\n outputsIsStars: true\n },\n {\n title: (\n <>\n Información exclusiva sobre novedades de la marca y del sector: nuevos lanzamientos, productos o funcionalidades, recomendaciones, noticias...\n \n ),\n fields: (\n }\n />\n ),\n screenIndex: FidelizacionSteps.InformacionExclusiva,\n name: 'InformacionExclusiva',\n outputs: ['informacionExclusiva'],\n outputsText: ['informacionExclusiva'],\n outputsIsStars: true\n },\n {\n title: (\n <>\n Innovación y Tecnología: coche conectado, coche autónomo, sostenibilidad...\n \n ),\n fields: (\n }\n />\n ),\n screenIndex: FidelizacionSteps.InformacionTecnologia,\n name: 'InformacionTecnologia',\n outputs: ['informacionTecnologia'],\n outputsText: ['informacionTecnologia'],\n outputsIsStars: true\n },\n {\n title: (\n <>\n Otros Servicios: servicio de atención al cliente, garantía de movilidad Volkswagen, asistencia...\n \n ),\n fields: ,\n screenIndex: FidelizacionSteps.OtrosServicios,\n name: 'OtrosServicios',\n outputs: ['otrosServicios'],\n outputsText: ['otrosServicios'],\n isLastStep: true\n },\n ];\n\n const FidelizacionFormData: Partial = {\n headers: {\n DESC_BRAND: 'VW',\n DESC_VN_VO: 'VN',\n DESC_GDPR_ADAPTED: 'true',\n },\n fields: { formName: 'adhoc-2021-fidelizacion_clientes', formType: 'otherform', pageCategory: 'Fidelización Clientes 2021' }, // Analítica\n };\n\n const getFormInfo = (): {\n firstStep: Steps;\n lastStep: Steps;\n stepsHistory: number[];\n numberOfScreens: number;\n newSteps?: Steps[];\n } => {\n return {\n firstStep: steps[0],\n lastStep: steps[steps.length - 1],\n stepsHistory: [0],\n numberOfScreens: steps.length,\n newSteps: null,\n };\n };\n\n const sendForm = (): Promise => {\n const { formData }: OneFormState = store.getState();\n const { fields } = formData;\n\n return new Promise(async (resolve, reject) => {\n const { tc, today, referalUrl, url, device } = getParamsForm();\n\n const data = {\n 'headers[COD_FORM_ID]': `vw-oneform-${fields.formName}`,\n 'headers[PINCODE]': dpsData.pincode.pincodeResponse.params.pincode,\n 'headers[DESC_BRAND]': 'VW',\n 'headers[DESC_CAMPAIGNBLOCK]': '16. VW One Shots',\n 'headers[DESC_DEVICETYPE]': device,\n 'headers[DESC_FORMOBJECTIVE]': 'Encuesta',\n 'headers[DESC_FORM_DETAIL]': fields.pageCategory,\n 'headers[DESC_ID_CAMPAIGN]': '7011n000000JqqSAAS',\n 'headers[DESC_ID_CLIMAPRO]': idPerson.ID_Person_DIM_IMP__c,\n 'headers[DESC_URLORIGIN]': url,\n 'headers[FECHA_INSERTION_DATE]': today,\n 'headers[TC]': tc,\n 'headers[DESC_TOKEN]': 'VW_DDB_FRM_ENCUESTA_FIDELIZACION_CLIENTES',\n\n 'fields[DESC_FORM_VERSION]': `vw-oneform-${fields.formName}-${process.env.VERSION}`,\n 'fields[M_OBSERVATION]': fields.quieroTener,\n 'fields[DESC_AUXFIELD1]': fields.masConoces,\n 'fields[DESC_AUXFIELD2]': fields.listadoVentajas,\n 'fields[DESC_AUXFIELD5]': fields.servicioPosventa,\n 'fields[DESC_AUXFIELD6]': fields.procesoCompra,\n 'fields[DESC_AUXFIELD7]': fields.opcionesFinanciacion,\n 'fields[DESC_AUXFIELD8]': fields.ventajasBeneficions,\n 'fields[DESC_AUXFIELD9]': fields.informacionExclusiva,\n 'fields[DESC_AUXFIELD10]': fields.informacionTecnologia,\n 'fields[DESC_AUXFIELD11]': fields.otrosServicios,\n 'fields[DESC_NAME]': idPerson.FirstName,\n 'fields[DESC_SURNAME_1]': idPerson.LastName,\n 'fields[DESC_SURNAME_2]': idPerson.TXT_2_Surname__c,\n 'fields[DESC_EMAIL_ADDRESS]': idPerson.TXT_Email__c,\n 'fields[NUM_CELLPHONE]': idPerson.NUM_Phone_mobile__c,\n 'fields[DESC_LOPD]': 'PERMITE'\n };\n const dataStringified = JSON.stringify(data);\n const dataParsed = JSON.parse(dataStringified);\n\n const formData = formDataBuilder(dataParsed);\n\n const response = await dpsSend(formData);\n\n if (response && response.data && response.data.content && response.data.content.code === '200') {\n dispatch({ type: 'SET_FORM_RESPONSE', payload: response.data });\n resolve(true);\n } else {\n resolve(false);\n }\n });\n };\n\n const { loading, steps, firstStep, lastStep } = useInitializeFidelizacionForm(stepsForm, null);\n\n useEffect(() => {\n const { firstStep, lastStep, stepsHistory, numberOfScreens, newSteps } = getFormInfo();\n\n const FidelizacionFormInfo: Partial = {\n formStarted: true,\n sendFormCallback: sendForm,\n fullScreen: firstStep.fullScreen ? true : false,\n lastStep,\n numberOfScreens: steps.length,\n screenIndex: firstStep.screenIndex,\n formTheme: 'main',\n notALayer: true,\n step: firstStep,\n steps: newSteps ? newSteps : steps,\n stepsHistory: [0],\n thankYouComponent: ,\n };\n if (!loading) {\n initializeForm(FidelizacionFormInfo, FidelizacionFormData, true);\n trackFormLoad();\n }\n }, [loading]);\n\n\n return loading || !steps ? null : ;\n}\n","import { Spinner, Text, styled } from '@volkswagen-onehub/components-core';\nimport dayjs from 'dayjs';\nimport React, { useEffect, useRef, useState } from 'react';\nimport { useDispatch } from 'react-redux';\nimport { useFeatureServices, useTrackingManager } from 'src/feature-app';\nimport { DpsData, EsOneformCoreServiceV1 } from 'src/feature-service/es-oneform-core-feature-service/types';\nimport { IdPerson } from 'src/types';\nimport { FidelizacionForm } from './FidelizacionForm';\nimport { GenericErrorLayer } from 'src/components/layers';\nimport { createPincodeEntity } from '../../dps-utils';\n\nexport interface FidelizacionFormProps {\n idPerson: IdPerson;\n dpsData: DpsData;\n handleError: () => void;\n presubmit: boolean;\n trackFormLoad: () => void;\n showPantallaModelo: boolean;\n}\n\nexport function FidelizacionController() {\n const [loading, setLoading] = useState(true);\n const [error, setError] = useState(false);\n const [usado, setUsado] = useState(false);\n const [presubmit, setPresubmit] = useState(false);\n const [showPantallaModelo, setShowPantallaModelo] = useState(false);\n const today = dayjs(new Date());\n const trackingManager = useTrackingManager();\n const dpsDataRef = useRef(null);\n const idPersonRef = useRef(null);\n const dispatch = useDispatch();\n const oneFormService = useFeatureServices()['es:oneform-core'] as EsOneformCoreServiceV1;\n\n const handleNext = (value: any) => {};\n const handleComplete = () => {\n const dpsData = oneFormService.getDpsData();\n\n if (dpsData.pincode === null || dpsData.pincode.noPincodeFound || dpsData.pincode.pincodeError) {\n handleError();\n } else if (dpsData.pincode.pincodeUsed) {\n setUsado(true);\n setLoading(false);\n } else {\n const idPerson = createPincodeEntity(dpsData, 'PERSON');\n\n dpsDataRef.current = dpsData;\n idPersonRef.current = idPerson;\n\n setLoading(false);\n }\n };\n\n const handleError = () => {\n setError(true);\n setLoading(false);\n };\n\n const trackFormLoad = () => {\n trackingManager.trackFormLoad();\n };\n\n useEffect(() => {\n const oneFormCoreDpsIsLoaded = oneFormService.getLoadedState();\n\n oneFormCoreDpsIsLoaded.subscribe({\n next(value) {\n handleNext(value);\n },\n error(err) {\n console.error(err);\n handleError();\n },\n complete() {\n handleComplete();\n },\n });\n }, []);\n\n if (loading) {\n return ;\n } else if (error) {\n return (\n <>\n \n \n );\n } else if (usado) {\n return (\n <>\n \n \n );\n } else {\n return (\n \n );\n }\n}\ninterface CenterContentProps {\n height: string;\n}\nconst CenterContent = styled.div`\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n height: ${(props) => (props.height ? props.height : '100%')};\n`;\n\nconst Loading = () => {\n const [height, setHeight] = useState('100%');\n\n useEffect(() => {\n const viewportHeight = window.innerHeight;\n const viewportWidth = window.innerWidth;\n let aux;\n\n if (viewportWidth < 560) {\n aux = viewportHeight - 152;\n } else if (viewportWidth < 1600) {\n aux = viewportHeight - 252;\n } else {\n aux = viewportHeight - 380;\n }\n setHeight(`${aux}px`);\n }, []);\n\n return (\n \n \n Cargando tus datos\n \n );\n};\n","import {\n Breakpoints,\n Container,\n ContainerPadding,\n Layout,\n Text,\n TextAlignment,\n TokenTextAppearance,\n} from '@volkswagen-onehub/components-core';\nimport React, { useEffect } from 'react';\nimport { connect, useDispatch, useSelector } from 'react-redux';\nimport { useTrackingManager, TrackingForm } from 'src/feature-app';\nimport { RenderController } from 'src/feature-app/Screen';\nimport { FormDataFields, FormInfo, OneFormState, Steps } from 'src/types';\n\ninterface FieldProps {\n copyBook?: string;\n}\n\ninterface NDPSField {\n name: string;\n value: string;\n}\n\nfunction Fields(props: FieldProps) {\n const { formData, formInfo } = useSelector((state: OneFormState) => state);\n\n return (\n \n
\n \n \n Las tendremos en cuenta para seguir mejorando tu experiencia Volkswagen 😊\n \n \n
\n \n );\n}\n\ninterface ThankYouProps {\n formData: FormDataFields;\n formInfo: FormInfo;\n}\n\nfunction ThankYouFidelizacion(props: ThankYouProps) {\n const { formData, formInfo } = props;\n const { formResponse } = formInfo;\n\n const trackingManager = useTrackingManager();\n const dispatch = useDispatch();\n const getTrackingForm = (): TrackingForm => {\n let LeadID;\n if (formResponse && formResponse.content && formResponse.content.data && formResponse.content.data.fields) {\n const leadField: NDPSField = formResponse.content.data.fields.find(\n (field: NDPSField) => field.name === 'COD_LEAD_ID'\n );\n LeadID = leadField ? leadField.value : undefined;\n }\n return {\n LeadID,\n FormFields: undefined,\n };\n };\n\n useEffect(() => {\n // Thank you page no es gestionado como un step pero sí lo haremos en la analítica. Por eso Modificamos formInfo después del submit y antes del RESET\n const screenIndexThankyou = formInfo.numberOfScreens;\n\n dispatch({ type: 'SET_FORM_SUBMITTED', payload: true });\n dispatch({ type: 'SET_FORM_INFO', payload: { step: { screenIndex: screenIndexThankyou, name: \"ThankYou\" } } });\n\n trackingManager.trackFormSubmissionSuccessMessageLoad(\n {\n contentId: undefined,\n },\n getTrackingForm()\n );\n }, []);\n\n const screen: Steps = {\n title: (\n <>\n {' '}\n ¡Muchas gracias por tu tiempo y tus respuestas!\n \n ),\n fields: ,\n };\n return (\n \n );\n}\n\nconst mapStateToProps = (state: OneFormState) => {\n return {\n formData: state.formData.fields,\n formInfo: state.formInfo,\n };\n};\n\nconst ConnectedComponent = connect(mapStateToProps)(ThankYouFidelizacion);\n\nexport { ConnectedComponent as ThankYouFidelizacion };\n","import React, { useEffect, useRef, useState } from 'react';\nimport { AutosubmitController } from 'src/forms/Autosubmit/AutosubmitController';\nimport { createPincodeEntity } from '../../dps-utils';\nimport { EsOneformCoreServiceV1 } from 'src/feature-service/es-oneform-core-feature-service/types';\nimport { GenericErrorLayer } from 'src/components/layers';\nimport { LoadingEncuestas } from 'src/components';\nimport { useFeatureServices, useTrackingManager } from 'src/feature-app';\nimport { TestIDForm } from './TestIDForm';\n\nexport function TestIDController() {\n const [loading, setLoading] = useState(true);\n const [error, setError] = useState(false);\n const [pincodeAvailable, setPincodeAvailable] = useState(false);\n const trackingManager = useTrackingManager();\n const dpsDataRef = useRef(null);\n const idPersonRef = useRef(null);\n const oneFormService = useFeatureServices()['es:oneform-core'] as EsOneformCoreServiceV1;\n\n const handleNext = (value: any) => { };\n const handleComplete = () => {\n const dpsData = oneFormService.getDpsData();\n\n if (dpsData.pincode === null || dpsData.pincode.noPincodeFound || dpsData.pincode.pincodeError) {\n setPincodeAvailable(false);\n setLoading(false);\n } else {\n setPincodeAvailable(true);\n const idPerson = createPincodeEntity(dpsData, 'PERSON');\n\n dpsDataRef.current = dpsData;\n idPersonRef.current = idPerson;\n\n setLoading(false);\n }\n };\n\n const handleError = () => {\n setError(true);\n setLoading(false);\n };\n\n const trackFormLoad = () => {\n trackingManager.trackFormLoad();\n };\n\n useEffect(() => {\n const oneFormCoreDpsIsLoaded = oneFormService.getLoadedState();\n\n oneFormCoreDpsIsLoaded.subscribe({\n next(value) {\n handleNext(value);\n },\n error(err) {\n console.error(err);\n handleError();\n },\n complete() {\n handleComplete();\n },\n });\n }, []);\n\n if (loading) {\n return ;\n } else if (error) {\n return (\n <>\n \n \n );\n } else {\n return (\n <>\n {\n pincodeAvailable ?\n \n :\n \n }\n \n );\n }\n}\n","import React, { useState } from 'react';\nimport { RadioButton } from '@volkswagen-onehub/components-core';\nimport { useOneFormContext } from 'src/feature-app/OneForm';\nimport { useFormContext } from 'react-hook-form';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { OneFormState } from 'src/types';\n\ninterface ChecksProps {\n questionName: string;\n avoidNextStep?: boolean;\n answers: string[];\n correctAnswer?: string;\n}\n\nexport const Checks = (props: ChecksProps) => {\n const { questionName, answers, avoidNextStep, correctAnswer } = props;\n const [checkedIndex, setCheckedIndex] = useState(null);\n const dispatch = useDispatch();\n\n const { handleNextStep } = useOneFormContext();\n const [value, setValue] = useState(null);\n const { register } = useFormContext();\n const { fields } = useSelector((state: OneFormState) => state.formData);\n const currentCorrectAnswers = fields.answers || 0;\n\n const handleOnClick = (e: any) => {\n if (avoidNextStep) {\n // si no vamos a next step guardaremos el valor en store\n dispatch({ type: 'UPDATE_FIELDS', payload: { [questionName]: e.target.value } });\n } else {\n setTimeout(\n () => {\n if (correctAnswer && correctAnswer === e.target.value) {\n dispatch({ type: 'UPDATE_FIELDS', payload: { ['answers']: currentCorrectAnswers + 1 } });\n }\n handleNextStep();\n }, 0\n );\n }\n };\n\n return (\n
\n {answers.map((answer, index) => {\n return (\n
\n {\n setValue(answer);\n setCheckedIndex(index);\n handleOnClick(e);\n }}\n checked={checkedIndex === index}\n />\n
\n )\n })}\n\n \n
\n );\n};\n","import React from 'react';\nimport {\n Breakpoints,\n BreakpointWrapper,\n Container,\n ContainerPadding,\n styled,\n Text,\n Image,\n TokenTextAppearance\n} from '@volkswagen-onehub/components-core';\nimport { Checks } from './Checks';\nimport { useWindowHeight, useWindowWidth } from '@react-hook/window-size';\n\nconst LayoutWrapper = styled.div`\n @media all and (min-width: 960px) {\n padding-left: var(--size-grid002);\n display: flex;\n }\n`;\n\nconst InfoWrapper = styled.div`\n width: 100%;\n padding-left: var(--size-grid002);\n padding-right: var(--size-grid002);\n @media all and (min-width: 960px) {\n display: flex;\n justify-content: center;\n flex-direction: column;\n width: var(--size-grid012);\n padding-left: var(--size-grid002);\n padding-right: 0;\n padding-top: 0;\n }\n @media all and (min-width: 1280px) {\n padding-left: var(--size-grid003);\n }\n @media all and (min-width: 1600px) {\n padding-left: var(--size-grid002);\n }\n`;\n\ninterface QuestionWithImageProps {\n answers: string[];\n correctAnswer?: string;\n imageSrc: string;\n index: number;\n questionName: string;\n title: JSX.Element | string;\n}\n\nexport const QuestionWithImage = (props: QuestionWithImageProps) => {\n const {\n answers,\n correctAnswer,\n imageSrc,\n index,\n questionName,\n title,\n } = props;\n const height = useWindowHeight();\n const width = useWindowWidth();\n\n return (\n \n {\n height <= 600 ? null : (\n \n
\n \"\"\n
\n
\n )\n }\n \n \"imagen\n \n \n \n {index === 0 && Y... ¡que empiece el test!}\n \n <>\n {title}\n \n \n \n \n \n
\n )\n};\n","import React, { useEffect, useState } from 'react';\nimport { ConfirmationTestID, ThankYouTestID } from './';\nimport { QuestionWithImage } from './QuestionWithImage';\nimport { dpsSend } from 'src/bff';\nimport { getParamsForm } from 'src/feature-app/get-params-form';\nimport {\n formatPrefix,\n FormController,\n removeWhiteSpace,\n useOneFormContext,\n} from 'src/feature-app';\nimport {\n FormDataGroup,\n FormInfo,\n OneFormState,\n Steps,\n} from 'src/types';\nimport { formDataBuilder } from 'src/forms/format-fields';\nimport { questions } from './';\nimport { useTrackingManager } from 'src/feature-app/hooks/use-tracking-manager';\nimport { useDispatch, useStore, useSelector } from 'react-redux';\n\ninterface TestIDFormProps {\n dpsData?: any;\n idPerson?: any;\n handleError?: any;\n email?: string;\n name?: string;\n surname?: string;\n}\n\nexport function TestIDForm(props: TestIDFormProps) {\n const { idPerson } = props;\n const { initializeForm } = useOneFormContext();\n const trackingManager = useTrackingManager();\n const store = useStore();\n const dispatch = useDispatch();\n const [loading, setLoading] = useState(true);\n\n const name: string = props.name ? props.name : props.idPerson?.FirstName;\n const surname: string = props.surname ? props.surname : props.idPerson?.LastName;\n const email: string = props.email ? props.email : props.idPerson?.TXT_Email__c;\n\n useEffect(() => {\n dispatch({ type: 'UPDATE_FIELDS', payload: { email, name, surname } });\n setLoading(false);\n }, []);\n\n const steps: Steps[] = [\n ...questions.map((question, index) => {\n return {\n fields: ,\n screenIndex: index,\n name: question.questionName,\n showOverflow: true,\n }\n }),\n {\n fields: ,\n screenIndex: questions.length,\n name: 'Confirmacion',\n outputs: ['confirmacion'],\n outputsText: ['confirmacion'],\n },\n ];\n\n const NuevoFormData: Partial = {\n fields: {\n formName: 'adhoc-2023-test_id',\n formType: 'otherform',\n pageCategory: 'Concurso'\n }, // Analítica\n };\n\n const getFormInfo = (): {\n firstStep: Steps;\n lastStep: Steps;\n stepsHistory: number[];\n numberOfScreens: number;\n newSteps?: Steps[];\n } => {\n return {\n firstStep: steps[0],\n lastStep: steps[steps.length - 1],\n stepsHistory: [0],\n numberOfScreens: steps.length,\n newSteps: null,\n };\n };\n\n const generateData = (data?: Partial) => {\n const { formData }: OneFormState = store.getState();\n const { fields } = formData;\n const { tc, today, url, device } = getParamsForm();\n\n return {\n 'headers[COD_FORM_ID]': fields.formName ? `vw-oneform-${fields.formName}` : `vw-oneform-${data.fields.formName}`,\n 'headers[DESC_BRAND]': 'VW',\n 'headers[DESC_CAMPAIGNBLOCK]': '4. VW Newsletter',\n 'headers[DESC_DEVICETYPE]': device,\n 'headers[DESC_FORM_DETAIL]': 'Test ID 2023',\n 'headers[DESC_FORMOBJECTIVE]': 'Concurso',\n 'headers[DESC_GDPR_ADAPTED]': 'true',\n 'headers[DESC_ID_CAMPAIGN]': '7017Q000000DUOnQAO',\n 'headers[DESC_TOKEN]': 'VW_DDB_FRM_TEST_ID_2023',\n 'headers[DESC_URLORIGIN]': url,\n 'headers[DESC_VN_VO]': 'VN',\n 'headers[FECHA_INSERTION_DATE]': today,\n 'headers[TC]': tc,\n\n 'fields[DESC_AUXFIELD1]': fields.answers, // respuestas correctas\n 'fields[DESC_AUXFIELD2]': fields.location,\n 'fields[DESC_EMAIL_ADDRESS]': fields.email ? fields.email : idPerson? idPerson.TXT_Email__c : null,\n 'fields[DESC_FORM_VERSION]': fields.formName\n ? `vw-oneform-${fields.formName}-${process.env.VERSION}`\n : `vw-oneform-${data.fields.formName}-${process.env.VERSION}`,\n 'fields[DESC_LOPD_GDPR_PERFILADO]': fields.tmk ? fields.tmk : 'NO INFORMADO',\n 'fields[DESC_LOPD]': 'PERMITE',\n 'fields[DESC_LSSI]': fields.lssi ? fields.lssi : 'NO INFORMADO',\n 'fields[DESC_NAME]': fields.name ? fields.name : idPerson.FirstName,\n 'fields[DESC_PREFERRED_CONTACT_CHANNEL]': fields.contact,\n 'fields[DESC_SURNAME_1]': fields.surname ? fields.surname : idPerson.LastName,\n 'fields[DESC_TRANF_DATA_THIRD]': 'NO INFORMADO',\n 'fields[NUM_CELLPHONE]': fields.telefono ? `${formatPrefix(fields.prefix)}${fields.telefono}` : idPerson.NUM_Phone_mobile__c,\n\n };\n };\n\n const generateSubmitData = () => generateData();\n\n const sendForm = async (): Promise => {\n return new Promise(async (resolve, reject) => {\n const data = generateSubmitData();\n const dataStringified = JSON.stringify(data);\n const dataParsed = JSON.parse(dataStringified);\n\n const formData = formDataBuilder(dataParsed);\n\n const response = await dpsSend(formData);\n\n if (response.data?.content?.code === '200') {\n dispatch({ type: 'SET_FORM_RESPONSE', payload: response.data });\n resolve(true);\n } else {\n resolve(false);\n }\n });\n };\n\n useEffect(() => {\n const { firstStep, lastStep, stepsHistory, numberOfScreens, newSteps } = getFormInfo();\n\n const NuevoFormInfo: Partial = {\n formStarted: true,\n sendFormCallback: sendForm,\n fullScreen: firstStep.fullScreen ? true : false,\n lastStep,\n numberOfScreens,\n screenIndex: firstStep.screenIndex,\n formTheme: 'main',\n notALayer: true,\n formType: 'inPage',\n step: firstStep,\n steps: newSteps ? newSteps : steps,\n stepsHistory,\n thankYouComponent: ,\n };\n\n if (!loading) {\n initializeForm(NuevoFormInfo, NuevoFormData, true);\n trackingManager.trackFormLoad();\n }\n }, [loading]);\n\n return loading || !steps ? null : ;\n}\n","import {\n Breakpoints,\n Container,\n ContainerPadding,\n styled,\n Text,\n Layout,\n BreakpointWrapper,\n CTA,\n ContainerGutter,\n TokenTextAppearance,\n} from '@volkswagen-onehub/components-core';\nimport React, { useState } from 'react';\nimport {\n PoliticaPrivacidad,\n LastNavigation,\n LabelInputWidthWrapper,\n Nombre,\n Apellido,\n Telefono,\n Email,\n LegalItem\n} from 'src/components';\nimport { IdPerson } from 'src/types';\nimport { LayerManagerWrapper, useFeatureAppEnvironment, useFeatureServices } from 'src/feature-app';\nimport { CloseHandleV2, FocusLayerSizeV2, LayerManagerV2 } from '@volkswagen-onehub/layer-manager';\nimport { useStore } from 'react-redux';\n\nconst GridWrapper = styled.div`\n width: 90%;\n display: grid;\n grid-template-rows: repeat(2, auto);\n grid-gap: 5%;\n height: 180px;\n @media all and (min-width: 1600px) {\n height: 200px;\n }\n`;\n\nconst GridItem = styled.div <{ row: string }>`\n grid-row: ${props => props.row};\n`;\n\nconst TextBlue = styled(Text)`\n color: #001e50;\n`;\n\nconst InputErrorLegales = styled.p`\n position: relative;\n margin-top: 10px;\n background-color: #e4002c;\n color: white;\n width: max-content;\n max-width: 280px;\n padding: 4px 8px;\n border-radius: 4px;\n font-size: 14px;\n`;\n\nconst QuestionWrapper = styled.div`\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n width: 100%;\n padding-top: 10%;\n @media all and (max-width: 1280px) {\n padding-top: 2%;\n }\n`;\ninterface ConfirmacionTestIDProps {\n idPerson: IdPerson;\n}\n\nconst legalesTestID2023 = 'https://crm.volkswagen.es/email/2023/service/recertificacion_may23/Sorteo%20Test%20Ele%CC%81ctrico.pdf'\n\nconst infoLayerCopies = {\n lssi: {\n title: 'Estarás mejor informado.',\n body: 'Si nos das tu consentimiento desde Volkswagen Group España Distribución, S.A. como responsable de la marca Volkswagen podremos enviarte por cualquier medio, ya sea por teléfono, correo electrónico, sms o aplicaciones de mensajería instantánea información comercial lo que puede incluir, a título enunciativo, pero no limitativo, descuentos, novedades, próximos lanzamientos, invitaciones a eventos o a concursos, entre otras comunicaciones comerciales.',\n },\n};\n\nexport const ConfirmationTestID = (props: ConfirmacionTestIDProps) => {\n const { idPerson } = props;\n const [compartir, setCompartir] = useState(null);\n const [compartirError, setCompartirError] = useState(false);\n const layerManager = useFeatureServices()['layer-manager'] as LayerManagerV2;\n const env = useFeatureAppEnvironment();\n const store = useStore();\n const handleInfoLayer = (\n key: 'lssi',\n renderFn: (state: any, close: CloseHandleV2) => JSX.Element\n ) => {\n const layer = layerManager.openFocusLayer(\n renderFn,\n { ...infoLayerCopies[key] },\n { size: FocusLayerSizeV2.A, userCloseable: true }\n );\n\n return layer;\n };\n\n\n const renderInfo = (state: { title: string; body: string }, close: CloseHandleV2) => {\n return (\n \n \n \n {state.title}\n {state.body}\n \n {\n e.preventDefault();\n close({}, {}, {});\n }}\n size={'small'}\n >\n Entendido\n \n \n \n );\n };\n\n return (\n <>\n \n \n\n {!idPerson &&\n \n ¡Genial! Ya lo tenemos casi todo. Ahora solo falta que nos confirmes tus datos para recibir los resultados del test. ¿Serás un pro de los eléctricos?\n \n }\n {idPerson &&\n \n ¡Genial! Aunque el sorteo ya está cerrado, confírmanos tus datos para recibir los resultados del test. ¿Serás un pro de los eléctricos?\n \n }\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n
\n \n
\n
\n
\n \n\n \n \n {!idPerson &&\n handleInfoLayer('lssi', renderInfo)}\n themeColor={'main'}\n name='lssi'\n />\n }\n \n \n \n \n\n {compartirError && Necesitamos esta información para seguir}\n \n \n \n \n \n \n \n {idPerson &&\n \n Consulta las bases legales de la promoción{' '}\n \n aquí\n .\n \n }\n \n \n \n {idPerson &&\n \n Consulta las bases legales de la promoción{' '}\n \n aquí\n .\n \n }\n \n \n \n \n \n );\n};\n","import React, { useEffect, useState } from \"react\";\nimport {\n Breakpoints,\n BreakpointWrapper,\n Container,\n ContainerGutter,\n ContainerPadding,\n CTA,\n FixedWidthContainer,\n Layout,\n Text,\n TextAlignment,\n TokenTextAppearance,\n TokenTextColor,\n} from \"@volkswagen-onehub/components-core\";\nimport {\n getParamsForm,\n getTrackingForm,\n LayerManagerWrapper,\n removeWhiteSpace,\n useFeatureAppEnvironment,\n useFeatureServices,\n useOneFormContext,\n useTrackingManager,\n} from \"src/feature-app\";\nimport styled from \"styled-components\";\nimport { useDispatch, useStore } from \"react-redux\";\nimport { Apellido, Email, GenericErrorLayer, LegalFullScreenSinConsentmientos, LegalItem, Nombre, PoliticaPrivacidad } from \"src/components\";\nimport { FormDataGroup, OneFormState } from \"src/types\";\nimport { formDataBuilder, formatHeaders } from \"src/forms/format-fields\";\nimport { dpsSend } from \"src/bff\";\nimport { TestIDForm } from \"./\";\nimport { CloseHandleV2, FocusLayerSizeV2, LayerManagerV2 } from \"@volkswagen-onehub/layer-manager\";\nimport { useWindowWidth } from \"@react-hook/window-size\";\n\ninterface VideoProps {\n isMediumScreen: boolean;\n};\n\nconst Video = styled.video`\n display: block;\n width: ${(props) => props.isMediumScreen ? \"50%\" : \"100%\"};\n margin: ${(props) => props.isMediumScreen ? \"auto\" : \"0 auto\"};\n padding-bottom: var(--size-grid001);\n`;\n\nconst ErrorMessage = styled.div`\n width: max-content;\n padding: 4px 8px;\n position: relative;\n border-radius: 4px;\n background-color: #e4002c;\n color: #ffffff;\n`;\n\nconst initialData: Partial = {\n headers: {\n DESC_BRAND: 'VW',\n DESC_GDPR_ADAPTED: 'true',\n DESC_TOKEN: 'VW_DDB_FRM_TEST_ID_2023',\n DESC_FORMOBJECTIVE: 'Suscripción Newsletter',\n COD_FORM_ID: 'vw-newsletter-electricos-adhoc-2023-test_id',\n },\n fields: {\n formName: 'newsletter-electricos-adhoc-2023-test_id',\n formType: 'newsletter',\n pageCategory: 'Suscripción Newsletter',\n }, // Analítica\n};\n\nconst infoLayerCopies = {\n lssi: {\n title: 'Estarás mejor informado.',\n body: 'Si nos das tu consentimiento desde Volkswagen Group España Distribución, S.A. como responsable de la marca Volkswagen podremos enviarte por cualquier medio, ya sea por teléfono, correo electrónico, sms o aplicaciones de mensajería instantánea información comercial lo que puede incluir, a título enunciativo, pero no limitativo, descuentos, novedades, próximos lanzamientos, invitaciones a eventos o a concursos, entre otras comunicaciones comerciales.',\n },\n};\n\n\nexport function EmailForm() {\n const [email, setEmail] = useState(null);\n const [showError, setShowError] = useState(false);\n const dispatch = useDispatch();\n const { initializeForm } = useOneFormContext();\n const trackingManager = useTrackingManager();\n const [renderFormID, setRenderFormID] = useState(false);\n const store = useStore();\n const { formData }: OneFormState = store.getState();\n const layerManager = useFeatureServices()['layer-manager'] as LayerManagerV2;\n const env = useFeatureAppEnvironment();\n const windowWidth = useWindowWidth();\n const [error, setError] = useState(false);\n const [isMediumScreen, setIsMediumScreen] = useState(false);\n\n\n useEffect(() => {\n initializeForm(\n {},\n initialData,\n );\n }, []);\n\n useEffect(() => {\n setIsMediumScreen(windowWidth >= 960 && windowWidth < 1280);\n }, [windowWidth]);\n\n const handleInfoLayer = (\n key: 'lssi',\n renderFn: (state: any, close: CloseHandleV2) => JSX.Element\n ) => {\n const layer = layerManager.openFocusLayer(\n renderFn,\n { ...infoLayerCopies[key] },\n { size: FocusLayerSizeV2.A, userCloseable: true }\n );\n\n return layer;\n };\n\n const renderInfo = (state: { title: string; body: string }, close: CloseHandleV2) => {\n return (\n \n \n \n {state.title}\n {state.body}\n \n {\n e.preventDefault();\n close({}, {}, {});\n }}\n size={'small'}\n >\n Entendido\n \n \n \n );\n };\n\n const sendForm = (): Promise => {\n\n const { fields } = formData;\n\n return new Promise(async (resolve, reject) => {\n const { tc, today, url, device } = getParamsForm();\n\n const data = {\n ...formatHeaders(initialData.headers),\n 'headers[DESC_URLORIGIN]': url,\n 'headers[DESC_CAMPAIGNBLOCK]': '4. VW Newsletter',\n 'headers[DESC_DEVICETYPE]': device,\n 'headers[DESC_ID_CAMPAIGN]': '7017Q000000DUOnQAO',\n 'headers[FECHA_INSERTION_DATE]': today,\n 'headers[TC]': tc,\n 'headers[DESC_VN_VO]': 'VN',\n\n 'fields[DESC_NAME]': fields.name,\n 'fields[DESC_SURNAME_1]': fields.surname,\n\n 'fields[DESC_FORM_VERSION]': `vw-oneform-${initialData.fields.formName}-${process.env.VERSION}`,\n 'fields[DESC_EMAIL_ADDRESS]': removeWhiteSpace(email),\n 'fields[DESC_LOPD]': 'PERMITE',\n 'fields[DESC_TRANF_DATA_THIRD]': 'NO INFORMADO',\n 'fields[DESC_LOPD_GDPR_PERFILADO]': 'NO INFORMADO',\n 'fields[DESC_LSSI]': fields.lssi ? fields.lssi : 'NO INFORMADO',\n };\n const dataStringified = JSON.stringify(data);\n const dataParsed = JSON.parse(dataStringified);\n\n const formData = formDataBuilder(dataParsed);\n const response = await dpsSend(formData);\n\n if (response.data && response.data.content && response.data.content.code === '200') {\n dispatch({ type: 'SET_FORM_RESPONSE', payload: response.data });\n trackingManager.trackFormSubmissionSuccessMessageLoad(\n {\n contentId: undefined,\n },\n getTrackingForm(response));\n setRenderFormID(true);\n } else {\n setError(true);\n }\n\n });\n };\n\n if (error) {\n return (\n <>\n \n \n );\n } else {\n\n return (\n\n renderFormID ?\n \n :\n <>\n \n\n \n\n <>\n \n Demuestra que eres un pro y entra en el sorteo de uno de los dos cursos de conducción eléctrica.\n \n \n El curso de la escuela ID. es una\n experiencia única al volante de nuestros eléctricos con pilotos profesionales a tu lado. {' '}\n Para participar, haz nuestro test de solo 5 preguntas.\n \n \n \n \n \n ¿Te animas a estar al día de todo sobre los eléctricos, demostrar lo que sabes y participar en el sorteo?\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n handleInfoLayer('lssi', renderInfo)}\n themeColor={'main'}\n name='lssi'\n />\n \n {\n showError ? (\n <>\n \n \n Necesitamos esta información para seguir\n \n \n \n ) : null\n }\n {\n e.preventDefault();\n if (email && !showError) {\n dispatch({ type: 'UPDATE_FIELDS', payload: { email: email } });\n sendForm();\n } else {\n setShowError(true);\n }\n }}\n >\n Enviar y participar\n \n \n \n \n\n \n \n \n \n )\n }\n\n}\n","import { Text } from \"@volkswagen-onehub/components-core\";\nimport React from \"react\";\n\nexport const questions = [\n {\n questionName: 'Test ID 01',\n title: <>1. Estás en Madrid y te apetece hacer una escapada en tu ID.7.{' '}¿Hasta dónde podrías llegar aproximadamente?,\n answers: [\n 'Hasta Barcelona, podría llegar a hacer 700 km.',\n 'Hasta Zaragoza y no más que esos 300 km.',\n 'Hasta Toledo. Hombre, ni que pudiera recorrer más de 70km.',\n ],\n correctAnswer: 'Hasta Barcelona, podría llegar a hacer 700 km.',\n imageSrc: 'https://assets.volkswagen.com/is/image/volkswagenag/DB2023AU00207_medium%201?Zml0PWNyb3AlMkMxJndpZD00NjQmaGVpPTQ2NCZmbXQ9cG5nLWFscGhhJmJmYz1vZmYmNjA2Mg=='\n },\n {\n questionName: 'Test ID 02',\n title: <>​2. Estás organizando el viaje de verano con tu ID.5 y quieres saber dónde podrás cargarlo.{' '}¿Cuántos puntos habilitados de carga hay en España?,\n answers: [\n '4.444, como las cuatro ruedas de un coche.',\n 'Más de 18.000, es casi imposible no toparse con uno.',\n '93, como días tiene el verano.',\n ],\n correctAnswer: 'Más de 18.000, es casi imposible no toparse con uno.',\n imageSrc: 'https://assets.volkswagen.com/is/image/volkswagenag/DB2020AL01387_medium%201?Zml0PWNyb3AlMkMxJndpZD00NjImaGVpPTQ2MiZmbXQ9cG5nLWFscGhhJmJmYz1vZmYmZTJiZQ=='\n },\n {\n questionName: 'Test ID 03',\n title: <>3. Oh no...está empezando a sonar la canción de tu ex en tu ID.7 y quieres cambiarla.{' '} ¿Cómo lo haces?,\n answers: [\n 'Hago un gesto con la mano de izquierda a derecha, como si fuera un director de orquesta.',\n 'Se lo pido a mi copiloto, que es muy majo.',\n 'Me desespero y toco todos los botones del coche a la vez.',\n ],\n correctAnswer: 'Hago un gesto con la mano de izquierda a derecha, como si fuera un director de orquesta.',\n imageSrc: 'https://assets.volkswagen.com/is/image/volkswagenag/DB2023AU00281_medium%201?Zml0PWNyb3AlMkMxJndpZD00NjQmaGVpPTQ2NCZmbXQ9cG5nLWFscGhhJmJmYz1vZmYmNjA2Mg=='\n },\n {\n questionName: 'Test ID 04',\n title: <>4. Estás subiendo los pirineos con un ID.4 y quieres cambiar de marcha para que el coche tenga más potencia.{' '}¿Cómo lo haces?,\n answers: [\n '¡Muy fácil! Con el cambio de marchas de toda la vida.',\n '¿Qué marcha? Los coches eléctricos lo dan todo sin marchas.',\n 'Le pongo la banda sonora de UP para que siga subiendo.',\n ],\n correctAnswer: '¿Qué marcha? Los coches eléctricos lo dan todo sin marchas.',\n imageSrc: 'https://assets.volkswagen.com/is/image/volkswagenag/DB2022AU00678_medium%201?Zml0PWNyb3AlMkMxJndpZD00NjQmaGVpPTQ2NCZmbXQ9cG5nLWFscGhhJmJmYz1vZmYmNjA2Mg=='\n },\n {\n questionName: 'Test ID 05',\n title: <>5. Quieres parar a tomarte un descanso y de paso aprovechar para cargar tu ID.3 en un punto de carga rápida.{' '}¿Cuántos minutos necesitarás para cargarlo al 80%?,\n answers: [\n '30 minutos, lo que tardo en tomarme un descansito y un café.',\n '80 minutos, lo mismo que un capítulo de Juego de Tronos.',\n '60 minutos, lo que dura una clase de Cycling en el gimnasio.',\n ],\n correctAnswer: '30 minutos, lo que tardo en tomarme un descansito y un café.',\n imageSrc: 'https://assets.volkswagen.com/is/image/volkswagenag/DB2020NR00454_medium%201?Zml0PWNyb3AlMkMxJndpZD00NjQmaGVpPTQ2NCZmbXQ9cG5nLWFscGhhJmJmYz1vZmYmNjA2Mg=='\n },\n];\n\n","import React, { useEffect } from 'react';\nimport { OneFormState, Steps } from 'src/types';\nimport { RenderController } from 'src/feature-app/Screen';\nimport { Text, TokenTextAppearance } from '@volkswagen-onehub/components-core';\nimport { TrackingForm, useTrackingManager } from 'src/feature-app';\nimport { useDispatch, useSelector } from 'react-redux';\n\nexport function ThankYouTestID() {\n const { formInfo } = useSelector((state: OneFormState) => state);\n const trackingManager = useTrackingManager();\n const dispatch = useDispatch();\n const getTrackingForm = (): TrackingForm => ({\n LeadID: undefined,\n FormFields: undefined,\n });\n\n useEffect(() => {\n // Thank you page no es gestionado como un step pero sí lo haremos en la analítica. Por eso Modificamos formInfo después del submit y antes del RESET\n const screenIndexThankyou = formInfo?.numberOfScreens;\n\n dispatch({ type: 'SET_FORM_SUBMITTED', payload: true });\n dispatch({ type: 'SET_FORM_INFO', payload: { step: { screenIndex: screenIndexThankyou, name: \"ThankYou\" } } });\n\n trackingManager.trackFormSubmissionSuccessMessageLoad(\n {\n contentId: undefined,\n },\n getTrackingForm()\n );\n }, []);\n\n const screen: Steps = {\n title: (\n <>\n ¡Gracias por participar, {formInfo.formResponse.params.fields.DESC_NAME}!\n
\n ¡Ha llegado la hora de la verdad eléctrica! Ve a tu email y descubre tus resultados del test. \n \n ),\n fields: <>,\n };\n return (\n \n );\n}\n","import {\n Breakpoints,\n Container,\n ContainerPadding,\n styled,\n Text,\n Layout,\n BreakpointWrapper,\n ContainerGutter,\n CTA,\n TokenTextAppearance,\n} from '@volkswagen-onehub/components-core';\nimport { CloseHandleV2, FocusLayerSizeV2, LayerManagerV2 } from '@volkswagen-onehub/layer-manager';\nimport React, { useState } from 'react';\nimport { useStore } from 'react-redux';\nimport {\n PoliticaPrivacidad,\n LastNavigation,\n LabelInputWidthWrapper,\n Nombre,\n Apellido,\n Telefono,\n Legales,\n Email,\n CodigoPostal,\n LegalItem,\n} from 'src/components';\nimport { LayerManagerWrapper, useFeatureAppEnvironment, useFeatureServices, useGetIdPerson } from 'src/feature-app';\nimport { IdPerson } from 'src/types';\n\nconst GridWrapper = styled.div`\n width: 100%;\n display: grid;\n grid-template-rows: repeat(2, auto);\n grid-gap: 10%;\n padding-bottom: 6%;\n padding-top: 3%;\n`;\n\nconst GridItem = styled.div <{ row: string }>`\n grid-row: ${props => props.row};\n`;\n\nconst TextBlue = styled(Text)`\n color: #001e50;\n`;\n\nconst InputErrorLegales = styled.p`\n position: relative;\n margin-top: 10px;\n background-color: #e4002c;\n color: white;\n width: max-content;\n max-width: 280px;\n padding: 4px 8px;\n border-radius: 4px;\n font-size: 14px;\n margin-left: 35px;\n`;\n\nconst InputWrapper = styled.div`\n input, span:first-child, div:last-child {\n width: 320px;\n }\n`;\n\ninterface ConcursoRodajeProps {\n idPerson?: IdPerson;\n sendForm?: () => Promise;\n}\n\nconst infoLayerCopies = {\n lssi: {\n title: 'Estarás mejor informado.',\n body: 'Si nos das tu consentimiento desde Volkswagen Group España Distribución, S.A. como responsable de la marca Volkswagen podremos enviarte por cualquier medio, ya sea por teléfono, correo electrónico, sms o aplicaciones de mensajería instantánea información comercial lo que puede incluir, a título enunciativo, pero no limitativo, descuentos, novedades, próximos lanzamientos, invitaciones a eventos o a concursos, entre otras comunicaciones comerciales.',\n },\n};\n\nconst legalesRodaje = 'https://crm.volkswagen.es/email/2023/newsletter/trimestre_jun23/BBLL_Rodaje_NL_2023.pdf';\n\nexport const ConcursoRodajeConfirmacion = (props: ConcursoRodajeProps) => {\n const { idPerson } = props;\n const [compartir, setCompartir] = useState(null);\n const [compartirError, setCompartirError] = useState(false);\n const layerManager = useFeatureServices()['layer-manager'] as LayerManagerV2;\n const env = useFeatureAppEnvironment();\n const store = useStore();\n\n const handleInfoLayer = (\n key: 'lssi',\n renderFn: (state: any, close: CloseHandleV2) => JSX.Element\n ) => {\n const layer = layerManager.openFocusLayer(\n renderFn,\n { ...infoLayerCopies[key] },\n { size: FocusLayerSizeV2.A, userCloseable: true }\n );\n\n return layer;\n };\n\n const renderInfo = (state: { title: string; body: string }, close: CloseHandleV2) => {\n return (\n \n \n \n {state.title}\n {state.body}\n \n {\n e.preventDefault();\n close({}, {}, {});\n }}\n size={'small'}\n >\n Entendido\n \n \n \n );\n };\n\n return (\n <>\n \n \n
\n \n Acompáñanos en el rodaje de nuestro próximo spot{' '}\n y descubre cómo sucede la magia detrás de cámara.\n Completa tus datos y ¡ven a vivirlo!\n \n
\n
\n \n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n \n \n \n
\n
\n \n \n \n \n \n \n \n \n \n \n
\n
\n\n \n \n\n \n \n \n \n \n \n \n \n \n \n \n
\n \n
\n
\n
\n \n\n \n {!idPerson &&\n \n handleInfoLayer('lssi', renderInfo)}\n themeColor={'main'}\n name='lssi'\n />\n \n }\n \n \n Enviando el formulario declaro haber leído y estar informado acerca del tratamiento de mis datos personales y declaro aceptar las condiciones de participación recogidas en las{' '}\n \n bases legales\n .\n
\n
\n
\n \n
\n\n {compartirError && Necesitamos esta información para seguir}\n \n \n \n \n \n {/* \n \n \n Consulta las bases legales de la promoción{' '}\n \n aquí\n .\n \n \n \n \n \n Consulta las bases legales de la promoción{' '}\n \n aquí\n .\n \n \n \n */}\n \n \n );\n};\n","import React, { useEffect, useRef, useState } from 'react';\nimport { createPincodeEntity } from '../../dps-utils';\nimport { EsOneformCoreServiceV1 } from 'src/feature-service/es-oneform-core-feature-service/types';\nimport { GenericErrorLayer } from 'src/components/layers';\nimport { LoadingEncuestas } from 'src/components';\nimport { useFeatureServices, useTrackingManager } from 'src/feature-app';\nimport { ConcursoRodajeForm } from './';\n\nexport function ConcursoRodajeController() {\n const [loading, setLoading] = useState(true);\n const [error, setError] = useState(false);\n const trackingManager = useTrackingManager();\n const dpsDataRef = useRef(null);\n const idPersonRef = useRef(null);\n const oneFormService = useFeatureServices()['es:oneform-core'] as EsOneformCoreServiceV1;\n\n const handleNext = (value: any) => { };\n const handleComplete = () => {\n const dpsData = oneFormService.getDpsData();\n\n if (dpsData.pincode === null || dpsData.pincode.noPincodeFound || dpsData.pincode.pincodeError) {\n setLoading(false);\n } else {\n const idPerson = createPincodeEntity(dpsData, 'PERSON');\n \n dpsDataRef.current = dpsData;\n idPersonRef.current = idPerson;\n\n setLoading(false);\n }\n };\n\n const handleError = () => {\n setError(true);\n setLoading(false);\n };\n\n const trackFormLoad = () => {\n trackingManager.trackFormLoad();\n };\n\n useEffect(() => {\n const oneFormCoreDpsIsLoaded = oneFormService.getLoadedState();\n\n oneFormCoreDpsIsLoaded.subscribe({\n next(value) {\n handleNext(value);\n },\n error(err) {\n console.error(err);\n handleError();\n },\n complete() {\n handleComplete();\n },\n });\n }, []);\n\n if (loading) {\n return ;\n } else if (error) {\n return (\n <>\n \n \n );\n } else {\n return ;\n }\n}\n","import React, { useEffect } from 'react';\nimport { OneFormState, Steps } from 'src/types';\nimport { RenderController } from 'src/feature-app/Screen';\nimport { Text, TokenTextAppearance } from '@volkswagen-onehub/components-core';\nimport { TrackingForm, useTrackingManager } from 'src/feature-app';\nimport { useDispatch, useSelector } from 'react-redux';\n\nexport function ThankYouConcursoRodaje() {\n const { formInfo } = useSelector((state: OneFormState) => state);\n const trackingManager = useTrackingManager();\n const dispatch = useDispatch();\n const getTrackingForm = (): TrackingForm => ({\n LeadID: undefined,\n FormFields: undefined,\n });\n\n useEffect(() => {\n // Thank you page no es gestionado como un step pero sí lo haremos en la analítica. Por eso Modificamos formInfo después del submit y antes del RESET\n const screenIndexThankyou = formInfo?.numberOfScreens;\n\n dispatch({ type: 'SET_FORM_SUBMITTED', payload: true });\n dispatch({ type: 'SET_FORM_INFO', payload: { step: { screenIndex: screenIndexThankyou, name: \"ThankYou\" } } });\n\n trackingManager.trackFormSubmissionSuccessMessageLoad(\n {\n contentId: undefined,\n },\n getTrackingForm()\n );\n }, []);\n\n const screen: Steps = {\n title: (\n <>\n ¡Gracias, {formInfo.formResponse.params.fields.DESC_NAME}!\n
\n Te confirmamos que tus datos se han registrado correctamente\n \n ),\n fields: <>,\n };\n return (\n \n );\n}\n","import React, { useEffect, useState } from 'react';\nimport { ThankYouTestID } from '../TestID2023';\nimport { dpsSend } from 'src/bff';\nimport { getParamsForm } from 'src/feature-app/get-params-form';\nimport {\n FormController,\n formatPrefix,\n removeWhiteSpace,\n useGetIdPerson,\n useOneFormContext,\n} from 'src/feature-app';\nimport {\n FormDataGroup,\n FormInfo,\n OneFormState,\n Steps,\n} from 'src/types';\nimport { formDataBuilder, formatHeaders } from 'src/forms/format-fields';\nimport { useTrackingManager } from 'src/feature-app/hooks/use-tracking-manager';\nimport { useDispatch, useStore } from 'react-redux';\nimport { ConcursoRodajeConfirmacion } from './ConcursoRodajeConfirmacion';\nimport { ThankYouConcursoRodaje } from './ThankYouConcursoRodaje';\n\ninterface ConcursoRodajeFieldsProps {\n dpsData?: any;\n idPerson?: any;\n handleError?: any;\n email?: string;\n name?: string;\n surname?: string;\n}\n\nexport function ConcursoRodajeForm(props: ConcursoRodajeFieldsProps) {\n const { initializeForm } = useOneFormContext();\n const trackingManager = useTrackingManager();\n const store = useStore();\n const dispatch = useDispatch();\n const [loading, setLoading] = useState(true);\n const idPerson = useGetIdPerson();\n\n useEffect(() => {\n const {\n FirstName: name,\n LastName: surname,\n TXT_Email__c: email,\n TXT_Postal_Code__c: postalCode,\n NUM_Phone_mobile__c: telefono,\n } = idPerson || {};\n\n dispatch({ type: 'UPDATE_FIELDS', payload: { email, name, surname, postalCode, telefono } });\n setLoading(false);\n }, []);\n\n const steps: Steps[] = [\n {\n fields: ,\n screenIndex: 0,\n name: 'Confirmacion',\n outputs: ['confirmacion'],\n outputsText: ['confirmacion'],\n },\n ];\n\n const initialData: Partial = {\n headers: {\n DESC_BRAND: 'VW',\n DESC_GDPR_ADAPTED: 'true',\n DESC_TOKEN: 'VW_DDB_FRM_CONCURSO_RODAJE_2023',\n DESC_FORMOBJECTIVE: 'Concurso',\n },\n fields: {\n formName: 'adhoc-2023-concurso_rodaje',\n formType: 'otherform',\n pageCategory: 'Concurso',\n }, // Analítica\n };\n\n const getFormInfo = (): {\n firstStep: Steps;\n lastStep: Steps;\n stepsHistory: number[];\n numberOfScreens: number;\n newSteps?: Steps[];\n } => {\n return {\n firstStep: steps[0],\n lastStep: steps[steps.length - 1],\n stepsHistory: [0],\n numberOfScreens: steps.length,\n newSteps: null,\n };\n };\n\n const generateData = (data?: Partial) => {\n const { formData }: OneFormState = store.getState();\n const { fields } = formData;\n const { tc, today, url, device } = getParamsForm();\n\n return {\n ...formatHeaders(initialData.headers),\n 'headers[DESC_URLORIGIN]': url,\n 'headers[COD_FORM_ID]': `vw-oneform-${fields.formName}`,\n 'headers[DESC_CAMPAIGNBLOCK]': '7. VW Driving Experience',\n 'headers[DESC_DEVICETYPE]': device,\n 'headers[DESC_ID_CAMPAIGN]': '7017Q000000DUlUQAW',\n 'headers[DESC_FORM_DETAIL]': 'Concurso Rodaje 2023',\n 'headers[DESC_GDPR_ADAPTED]': 'true',\n 'headers[FECHA_INSERTION_DATE]': today,\n 'headers[TC]': tc,\n 'headers[DESC_VN_VO]': 'VN',\n\n 'fields[DESC_POSTAL_CODE]': fields.postalCode ? fields.postalCode : idPerson.TXT_Postal_Code__c,\n 'fields[DESC_NAME]': fields.name ? fields.name : idPerson.FirstName,\n 'fields[DESC_SURNAME_1]': fields.surname ? fields.surname : idPerson.LastName,\n 'fields[DESC_EMAIL_ADDRESS]': fields.email ? fields.email : idPerson ? idPerson.TXT_Email__c : null,\n\n 'fields[DESC_FORM_VERSION]': `vw-oneform-${initialData.fields.formName}-${process.env.VERSION}`,\n\n 'fields[DESC_LOPD]': 'PERMITE',\n 'fields[DESC_TRANF_DATA_THIRD]': 'NO INFORMADO',\n 'fields[DESC_LOPD_GDPR_PERFILADO]': 'NO INFORMADO',\n 'fields[DESC_LSSI]': fields.lssi ? fields.lssi : 'NO INFORMADO',\n 'fields[NUM_CELLPHONE]': fields.telefono ? `${formatPrefix(fields.prefix)}${fields.telefono}` : idPerson.NUM_Phone_mobile__c,\n\n };\n };\n\n const generateSubmitData = () => generateData();\n\n const sendForm = async (): Promise => {\n return new Promise(async (resolve, reject) => {\n const data = generateSubmitData();\n const dataStringified = JSON.stringify(data);\n const dataParsed = JSON.parse(dataStringified);\n\n const formData = formDataBuilder(dataParsed);\n\n const response = await dpsSend(formData);\n\n if (response.data?.content?.code === '200') {\n dispatch({ type: 'SET_FORM_RESPONSE', payload: response.data });\n resolve(true);\n } else {\n resolve(false);\n }\n });\n };\n\n useEffect(() => {\n const { firstStep, lastStep, stepsHistory, numberOfScreens, newSteps } = getFormInfo();\n\n const NuevoFormInfo: Partial = {\n formStarted: true,\n sendFormCallback: sendForm,\n fullScreen: firstStep.fullScreen ? true : false,\n lastStep,\n numberOfScreens,\n screenIndex: firstStep.screenIndex,\n formTheme: 'main',\n notALayer: true,\n formType: 'inPage',\n step: firstStep,\n steps: newSteps ? newSteps : steps,\n stepsHistory,\n thankYouComponent: ,\n };\n\n if (!loading) {\n initializeForm(NuevoFormInfo, initialData, true);\n trackingManager.trackFormLoad();\n }\n }, [loading]);\n\n return loading || !steps ? null : ;\n}\n","import { Text } from '@volkswagen-onehub/components-core';\nimport { findCarline } from 'src/components';\nimport React, { useEffect, useState } from 'react';\nimport { useDispatch, useStore } from 'react-redux';\nimport { getCarlines } from 'src/bff';\nimport { useFaContent, useFeatureServices } from 'src/feature-app';\nimport { CarlineBase, IdLead, Steps } from 'src/types';\n\nconst getLastItemOfSteps = (steps: Steps[]) => steps[steps.length - 1];\n\nconst propertyHasValue = (property: string) => property !== 'null';\n\nexport const checkIdLeadHasCarline = (idLead: IdLead) =>\n idLead &&\n idLead.VGED_CodeOfInterestCarline__c &&\n propertyHasValue(idLead.VGED_CodeOfInterestCarline__c);\n\nexport function useInitializeForm(defaultSteps: Steps[], idLead: IdLead) {\n const dispatch = useDispatch();\n const [loading, setLoading] = useState(true);\n\n const [steps, setSteps] = useState(defaultSteps);\n const [firstStep, setFirstStep] = useState(defaultSteps[0]);\n const [lastStep, setLastStep] = useState(getLastItemOfSteps(defaultSteps));\n\n const removeModelFromSteps = async () => {\n return new Promise((resolve) => {\n let updatedSteps = [...steps];\n const indexOfModelo = updatedSteps.findIndex((step) => step.name === 'Modelo');\n updatedSteps.splice(indexOfModelo, 1); // Eliminado el step de Modelo.\n updatedSteps[0].hidePreviousStep = true;\n const updatedStepsWithIndex = updatedSteps.map((step, index) => {\n step.screenIndex = index;\n return step;\n });\n\n setSteps(updatedStepsWithIndex);\n setFirstStep(updatedStepsWithIndex[0]);\n setLastStep(getLastItemOfSteps(updatedStepsWithIndex));\n\n resolve(true);\n });\n };\n\n useEffect(() => {\n const remove = async () => {\n await removeModelFromSteps();\n setLoading(false);\n };\n\n const requestCarlines = async () => {\n const carlines = await getCarlines();\n dispatch({ type: 'SET_CARLINES', payload: carlines });\n\n const carline = findCarline(carlines, Number(idLead.VGED_CodeOfInterestCarline__c));\n dispatch({ type: 'SET_SELECTED_CARLINE', payload: carline });\n\n setSteps(defaultSteps);\n setLoading(false);\n };\n\n if (checkIdLeadHasCarline(idLead)) {\n remove();\n } \n requestCarlines();\n\n }, []);\n\n return { loading, steps, firstStep, lastStep };\n}\n","import { Text } from '@volkswagen-onehub/components-core';\nimport Axios, { AxiosResponse } from 'axios';\nimport React, { useEffect, useState } from 'react';\nimport { useDispatch, useSelector, useStore } from 'react-redux';\nimport { oneformBFFNdpsSend } from 'src/bff';\nimport { PantallaNombreApellido, CarlineSelect, DetalleMotivo, MultipleCTASelection } from 'src/components';\nimport { FormController, useOneFormContext } from 'src/feature-app';\nimport { getParamsForm } from 'src/feature-app/get-params-form';\nimport { OneElementTemplateFullScreen } from 'src/feature-app/Screen';\nimport { FormDataGroup, FormInfo, IdLead, OneFormState, Steps } from 'src/types';\nimport { formDataBuilder } from '../format-fields';\nimport { ConfirmacionLEM, ThanKYouLEM } from 'src/forms/LEM';\nimport { LEMFormProps } from './LEMController';\nimport { useInitializeForm, checkIdLeadHasCarline } from './use-initialize-lem-form';\nimport { addRemovedStep, getIndexInSteps, removeStep, resetStepsScreenIndex } from '../helpers/add-remove-steps';\nimport { CTAsSiNo } from 'src/feature-app/InputsValues/CTAsObjects';\n\nexport enum LEMContactadoSteps {\n Modelo,\n PeriodoContacto,\n ProximoContacto,\n TipoVisita,\n Comentario,\n EnviarConcesion,\n DatosPersonales,\n Confirmacion\n}\n\nconst getPeriodoContactoTitle = (modeloPrecargado: boolean) => {\n if (modeloPrecargado) {\n return (\n <>\n Y ¿cuándo te{' '}\n \n respondieron?*\n \n \n );\n } else {\n return (\n <>\n Nos encantaría saber más sobre tu experiencia.{' '}\n \n ¿Cuándo te{' '}\n \n respondieron?*\n \n \n \n );\n }\n};\n\nexport function LEMContactadoForm(props: LEMFormProps) {\n const { dpsData, idLead, idPerson, installation, handleError, presubmit, trackFormLoad } = props;\n const [loadingPresubmit, setLoadingPresubmit] = useState(true);\n const { initializeForm, handleNextStep } = useOneFormContext();\n const store = useStore();\n const { enviarConcesion } = useSelector((state: OneFormState) => state.formData.fields);\n const { dealersInfo }: OneFormState = store.getState();\n const dispatch = useDispatch();\n\n const ctasPeriodoContacto = [\n {\n label: 'En las primeras 8 horas',\n value: 'En las primeras 8h'\n },\n {\n label: 'En las primeras 24 horas',\n value: 'En las primeras 24h'\n },\n {\n label: 'En más de 24 horas',\n value: 'En más de 24h'\n },\n ];\n\n const ctasProximoContacto = [\n { \n label: 'Sí, una visita al punto de venta', \n value: 'Si, una visita al punto de venta' \n },\n { \n label: 'Sí, una llamada', \n value: 'Si, una llamada' \n },\n { \n label: 'Sí, una videollamada', \n value: 'Si, una videollamada' \n },\n { \n label: 'No, no estoy interesado', \n value: 'No, no estoy interesado' \n },\n { \n label: 'No, pero me hubiera gustado', \n value: 'No, pero me hubiera gustado' \n },\n ];\n \n const stepsWithModel: Steps[] = [\n {\n title: (\n <>\n ¿Por qué modelo contactaste con tu punto de venta?\n \n ),\n fields: } />,\n screenIndex: LEMContactadoSteps.Modelo,\n name: 'Modelo',\n },\n {\n title: getPeriodoContactoTitle(checkIdLeadHasCarline(idLead)),\n fields: (\n }\n />\n ),\n screenIndex: LEMContactadoSteps.PeriodoContacto,\n name: 'PeriodoContacto',\n },\n {\n title: (\n <>\n ¿Habéis acordado un{' '}\n \n próximo{' '}\n \n contacto o cita?*\n \n \n \n ),\n fields: (\n }\n />\n ),\n screenIndex: LEMContactadoSteps.ProximoContacto,\n name: 'ProximoContacto',\n trueOrFalseQuestion: true,\n },\n {\n title: (\n <>\n ¿Quieres compartir tus valoraciones con el concesionario?\n \n ),\n fields: (\n }\n />\n ),\n screenIndex: LEMContactadoSteps.EnviarConcesion,\n name: 'EnviarConcesion',\n trueOrFalseQuestion: true,\n },\n {\n title: (\n <>\n Por favor, introduce o comprueba tus datos:\n \n ),\n fields: (\n \n \n
\n }\n />\n ),\n screenIndex: LEMContactadoSteps.DatosPersonales,\n name: 'DatosPersonales',\n },\n {\n title: (\n <>\n ¿Quieres añadir algun comentario adicional?\n \n ),\n fields: } />,\n screenIndex: LEMContactadoSteps.Comentario,\n name: 'Comentario',\n },\n {\n fields: ,\n screenIndex: LEMContactadoSteps.Confirmacion,\n name: 'Confirmacion',\n },\n ];\n\n const LEMContactadoData: Partial = {\n headers: {},\n fields: {\n formName: 'lem-contactado',\n formType: 'otherform',\n pageCategory: 'Encuesta',\n }, // Analítica\n };\n\n useEffect(() => {\n if (enviarConcesion) {\n modifySteps(enviarConcesion == '1' || enviarConcesion == 'true', 'DatosPersonales');\n }\n }, [enviarConcesion]);\n\n const modifySteps = (add: boolean, screen: string) => {\n const { steps: actualSteps, screenIndex } = store.getState().formInfo;\n\t\tlet newSteps = [...actualSteps];\n if (add) {\n const stepIndex = getIndexInSteps(newSteps, screen);\n\n\t\t\tif (stepIndex === -1) {\n\t\t\t\tnewSteps = addRemovedStep(steps, actualSteps, screen, screenIndex);\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\thandleNextStep();\n\t\t\t\t}, 0);\n\t\t\t}\n }\n else {\n newSteps = removeStep(newSteps, screen);\n }\n\n const newStepsWithIndex = resetStepsScreenIndex(newSteps);\n\n\t\tdispatch({ type: 'UPDATE_STEPS', payload: newStepsWithIndex });\n\t\tdispatch({ type: 'UPDATE_LAST_STEP', payload: newStepsWithIndex[newStepsWithIndex.length - 1] });\n\t\tdispatch({ type: 'SET_NUMBER_OF_SCREENS', payload: newStepsWithIndex.length });\n };\n\n\n\n useEffect(() => {\n const sendPresubmit = async () => {\n const result = await sendForm(true);\n\n if (!result) {\n handleError();\n }\n setLoadingPresubmit(false);\n };\n\n if (presubmit) {\n if(checkIdLeadHasCarline(idLead) && dealersInfo.selectedCarline) {\n sendPresubmit();\n }\n else if(!checkIdLeadHasCarline(idLead)) {\n sendPresubmit();\n }\n } else {\n setLoadingPresubmit(false);\n }\n }, [dealersInfo]);\n\n\n const generateData = (data?: Partial) => {\n const { formData, dealersInfo }: OneFormState = store.getState();\n const { fields } = formData;\n const { tc, today, url, device } = getParamsForm();\n \n return {\n 'headers[DPS_TOKEN]': 'VW_DDB_FRM_LEM_ENCUESTA',\n 'headers[FK_SYSTEM]': idLead.Id,\n 'headers[FORM_DATE_INSERTION]': today,\n 'headers[FORM_DETAILS]': 'LEM Contactado',\n 'headers[FORM_NAME]': fields.formName ? `vw-oneform-${fields.formName}` : `vw-oneform-${data.fields.formName}`,\n 'headers[FORM_OBJECTIVE]': 'Encuesta',\n 'headers[FORM_URL]': url,\n 'headers[FORM_VERSION]': fields.formName ? `vw-oneform-${fields.formName}-${process.env.VERSION}`: `vw-oneform-${data.fields.formName}-${process.env.VERSION}`,\n 'headers[ORIGIN_DEVICE_TYPE]': device,\n 'headers[ORIGIN_TRACKING_CODE]': tc,\n 'headers[SF_CAMPAIGN_ID]': '7010Y0000001tAOQAY',\n 'headers[SF_CAMPAIGN_NAME]': 'PENDIENTE',\n 'headers[PINCODE]': dpsData.pincode.pincodeResponse.params.pincode,\n\n 'flags[PERSON_RGPD_ADAPTED]': true,\n 'flags[FLAG_RELACION_MARCA_SIN_IC]': false,\n\n 'fields[DPS_BRAND]': 'Volkswagen',\n 'fields[PERSON_EMAIL]': idLead.Email,\n 'fields[PERSON_NAME]': fields.name ? fields.name : idLead.FirstName,\n 'fields[PERSON_PHONE_MOBILE]': idLead.MobilePhone,\n 'fields[PERSON_RGPD_COM_COMERCIALES]': fields.lssi ? fields.lssi : 'NO INFORMADO',\n 'fields[PERSON_RGPD_PERFILADO]': fields.tmk ? fields.tmk : 'NO INFORMADO',\n 'fields[PERSON_SURNAME_1]': fields.surname ? fields.surname : idLead.LastName,\n 'fields[PERSON_SURNAME_2]': fields.secondSurname ? fields.secondSurname : idLead.MiddleName,\n 'fields[SF_LEAD_INSTALLATION_ID]': idLead.Dealership__c,\n 'fields[SF_LEAD_INSTALLATION_CODE]': installation ? installation.VGED_DealerCode__c : '',\n 'fields[SF_LEAD_INSTALLATION_NAME]': installation ?installation.VGED_CommercialName__c : '',\n 'fields[SURVEY_ANSWER_01]': dpsData.rating,\n 'fields[SURVEY_ANSWER_03]': fields.periodoContacto,\n 'fields[SURVEY_ANSWER_04]': fields.proximoContacto,\n 'fields[SURVEY_ANSWER_10]': fields.enviarConcesion,\n 'fields[SURVEY_ANSWER_11]': fields.comentario,\n 'fields[VEH_INTEREST_NEW_OR_USED]': 'New Car',\n 'fields[VEH_INTEREST_ID]': checkIdLeadHasCarline(idLead) ? dealersInfo.selectedCarline.code : fields.carlineCode,\n 'fields[VEH_INTEREST_MODEL]': checkIdLeadHasCarline(idLead) ? dealersInfo.selectedCarline.title : fields.modelo\n\n };\n };\n\n const generatePresubmitData = () => {\n const data = generateData(LEMContactadoData);\n\n data['headers[FORM_DETAILS]'] = 'LEM Pregrabación';\n data['headers[DPS_TOKEN]'] = 'VW_DDB_FRM_LEM_ENCUESTA_PREGRABACION';\n\n return data;\n };\n\n const sendForm = (isPresubmit?: boolean): Promise => {\n return new Promise(async (resolve, reject) => {\n\n const data = isPresubmit ? generatePresubmitData() : generateData();\n const dataStringified = JSON.stringify(data);\n const dataParsed = JSON.parse(dataStringified);\n const formData = formDataBuilder(dataParsed);\n\n const response = await oneformBFFNdpsSend(formData, isPresubmit);\n\n if (response?.data?.status?.code == 200) {\n dispatch({ type: 'SET_FORM_RESPONSE', payload: response.data });\n resolve(true);\n } else {\n resolve(false);\n }\n });\n };\n\n const { loading, steps, firstStep, lastStep } = useInitializeForm(stepsWithModel, idLead);\n\n useEffect(() => {\n const LEMContactadoInfo: Partial = {\n formStarted: true,\n sendFormCallback: sendForm,\n fullScreen: firstStep.fullScreen ? true : false,\n lastStep,\n numberOfScreens: steps.length,\n screenIndex: firstStep.screenIndex,\n formTheme: 'main',\n notALayer: true,\n formType: 'inPage',\n step: firstStep,\n steps,\n stepsHistory: [0],\n thankYouComponent: ,\n };\n if (!loading) {\n initializeForm(LEMContactadoInfo, LEMContactadoData, true);\n trackFormLoad();\n }\n }, [loading]);\n\n return loading || loadingPresubmit || !steps ? null : ;\n}\n","import { Text } from '@volkswagen-onehub/components-core';\nimport React, { useEffect, useState } from 'react';\nimport { useDispatch, useSelector, useStore } from 'react-redux';\nimport { oneformBFFNdpsSend } from 'src/bff';\nimport { CarlineSelect, Email, PantallaNombreApellido, Telefono, ContactInfoWrapper, MultipleCTASelection, DetalleMotivo } from 'src/components';\nimport { FormController, useOneFormContext } from 'src/feature-app';\nimport { getParamsForm } from 'src/feature-app/get-params-form';\nimport { OneElementTemplateFullScreen } from 'src/feature-app/Screen';\nimport { FormDataGroup, FormInfo, IdLead, IdPerson, OneFormState, Steps } from 'src/types';\nimport { formDataBuilder } from '../format-fields';\nimport { LEMFormProps } from './LEMController';\nimport { useInitializeForm, checkIdLeadHasCarline } from './use-initialize-lem-form';\nimport { ConfirmacionLEM,ThanKYouLEM } from 'src/forms/LEM';\n\nexport enum LEMNoContactadoSteps {\n Modelo,\n //NombreApellidos,\n EmailTelefono,\n Horario,\n Comentario,\n Confirmacion\n}\n\nexport function LEMNoContactadoForm(props: LEMFormProps) {\n const { dpsData, idLead, idPerson, installation, handleError, presubmit, trackFormLoad } = props;\n const [loadingPresubmit, setLoadingPresubmit] = useState(true);\n const { initializeForm } = useOneFormContext();\n const store = useStore();\n const dispatch = useDispatch();\n const { dealersInfo }: OneFormState = store.getState();\n\n const ctasHorarios = [\n {\n label: 'Mañana',\n value: 'Mañana'\n },\n {\n label: 'Tarde',\n value: 'Tarde'\n },\n ];\n\n const stepsWithModel: Steps[] = [\n {\n title: (\n <>\n ¿Por qué modelo contactaste con tu punto de venta?\n \n ),\n fields: (\n \n \n \n }\n />\n ),\n screenIndex: LEMNoContactadoSteps.Modelo,\n name: 'Modelo',\n },\n /*{\n title: (\n <>\n Para averiguar qué ha pasado, necesitamos saber quién eres\n \n ),\n fields: (\n \n \n \n }\n />\n ),\n screenIndex: LEMNoContactadoSteps.NombreApellidos,\n name: 'NombreApellidos',\n outputs: ['name', 'surname', 'secondSurname'],\n outputsText: ['name', 'surname', 'secondSurname'],\n },*/\n {\n title: (\n <>\n ¿Nos podrías confirmar tus datos de contacto?\n \n ),\n fields: (\n \n \n \n \n }\n />\n ),\n screenIndex: LEMNoContactadoSteps.EmailTelefono,\n name: 'EmailTelefono',\n outputs: ['cellphone', 'email'],\n outputsText: ['cellphone', '/', 'email'],\n },\n {\n title: (\n <>\n ¿En que horario prefieres ser contactado?\n \n ),\n fields: (\n }\n />\n ),\n screenIndex: LEMNoContactadoSteps.Horario,\n name: 'Horario',\n },\n {\n title: (\n <>\n ¿Quieres añadir algun comentario adicional?\n \n ),\n fields: } />,\n screenIndex: LEMNoContactadoSteps.Comentario,\n name: 'Comentario',\n },\n {\n fields: ,\n screenIndex: LEMNoContactadoSteps.Confirmacion,\n name: 'Confirmacion',\n },\n ];\n\n const LEMNoContactadoData: Partial = {\n headers: {},\n fields: {\n name: idLead.FirstName,\n surname: idLead.LastName,\n secondSurname: idLead.MiddleName,\n email: idLead.Email,\n cellphone: idLead.MobilePhone,\n formName: 'lem-no_contactado',\n formType: 'otherform',\n pageCategory: 'Más Información',\n }, // Analítica\n };\n\n useEffect(() => {\n const sendPresubmit = async () => {\n const result = await sendForm(true);\n\n if (!result) {\n handleError();\n }\n setLoadingPresubmit(false);\n };\n\n if (presubmit) {\n if(checkIdLeadHasCarline(idLead) && dealersInfo.selectedCarline) {\n sendPresubmit();\n }\n else if(!checkIdLeadHasCarline(idLead)) {\n sendPresubmit();\n }\n } else {\n setLoadingPresubmit(false);\n }\n }, [dealersInfo]);\n\n const generateData = (data?: Partial) => {\n const { formData, dealersInfo }: OneFormState = store.getState();\n const { fields } = formData;\n const { tc, today, url, device } = getParamsForm();\n\n return {\n 'headers[DPS_TOKEN]': 'VW_DDB_FRM_LEM_ENCUESTA',\n 'headers[FK_SYSTEM]': idLead.Id,\n 'headers[FORM_DATE_INSERTION]': today,\n 'headers[FORM_DETAILS]': 'LEM No Contactado',\n 'headers[FORM_NAME]': fields.formName ? `vw-oneform-${fields.formName}` : `vw-oneform-${data.fields.formName}`,\n 'headers[FORM_OBJECTIVE]': 'Encuesta',\n 'headers[FORM_URL]': url,\n 'headers[FORM_VERSION]': fields.formName ? `vw-oneform-${fields.formName}-${process.env.VERSION}` : `vw-oneform-${data.fields.formName}-${process.env.VERSION}`,\n 'headers[ORIGIN_DEVICE_TYPE]': device,\n 'headers[ORIGIN_TRACKING_CODE]': tc,\n 'headers[SF_CAMPAIGN_ID]': '7010Y0000001tAOQAY',\n 'headers[SF_CAMPAIGN_NAME]': 'PENDIENTE',\n 'headers[PINCODE]': dpsData.pincode.pincodeResponse.params.pincode,\n\n 'flags[PERSON_RGPD_ADAPTED]': true,\n 'flags[FLAG_RELACION_MARCA_SIN_IC]': false,\n\n 'fields[DPS_BRAND]': 'Volkswagen',\n 'fields[PERSON_EMAIL]': idLead.Email,\n 'fields[PERSON_NAME]': fields.name ? fields.name : idLead.FirstName,\n 'fields[PERSON_PHONE_MOBILE]': idLead.MobilePhone,\n 'fields[PERSON_RGPD_COM_COMERCIALES]': fields.lssi ? fields.lssi : 'NO INFORMADO',\n 'fields[PERSON_RGPD_PERFILADO]': fields.tmk ? fields.tmk : 'NO INFORMADO',\n 'fields[PERSON_SURNAME_1]': fields.surname ? fields.surname : idLead.LastName,\n 'fields[PERSON_SURNAME_2]': fields.secondSurname ? fields.secondSurname : idLead.MiddleName,\n 'fields[SF_LEAD_INSTALLATION_ID]': idLead.Dealership__c,\n 'fields[SF_LEAD_INSTALLATION_CODE]': installation ? installation.VGED_DealerCode__c : '',\n 'fields[SF_LEAD_INSTALLATION_NAME]': installation ?installation.VGED_CommercialName__c : '',\n 'fields[SURVEY_ANSWER_13]': fields.horario,\n 'fields[SURVEY_ANSWER_14]': fields.comentario,\n 'fields[VEH_INTEREST_NEW_OR_USED]': 'New Car',\n 'fields[VEH_INTEREST_ID]': checkIdLeadHasCarline(idLead) ? dealersInfo.selectedCarline.code : fields.carlineCode,\n 'fields[VEH_INTEREST_MODEL]': checkIdLeadHasCarline(idLead) ? dealersInfo.selectedCarline.title : fields.modelo\n\n };\n };\n\n const generatePresubmitData = () => {\n const data = generateData(LEMNoContactadoData);\n\n data['headers[FORM_DETAILS]'] = 'LEM Pregrabación';\n data['headers[DPS_TOKEN]'] = 'VW_DDB_FRM_LEM_ENCUESTA_PREGRABACION';\n\n return data;\n };\n;\n\n const sendForm = (isPresubmit?: boolean): Promise => {\n return new Promise(async (resolve, reject) => {\n\n const data = isPresubmit ? generatePresubmitData() : generateData();\n const dataStringified = JSON.stringify(data);\n const dataParsed = JSON.parse(dataStringified);\n const formData = formDataBuilder(dataParsed);\n\n const response = await oneformBFFNdpsSend(formData, isPresubmit);\n\n if (response?.data?.status?.code == 200) {\n dispatch({ type: 'SET_FORM_RESPONSE', payload: response.data });\n resolve(true);\n } else {\n resolve(false);\n }\n });\n };\n\n const { loading, steps, firstStep, lastStep } = useInitializeForm(stepsWithModel, idLead);\n\n useEffect(() => {\n const LEMNoContactadoInfo: Partial = {\n formStarted: true,\n sendFormCallback: sendForm,\n fullScreen: firstStep.fullScreen ? true : false,\n lastStep,\n numberOfScreens: steps.length,\n screenIndex: firstStep.screenIndex,\n formTheme: 'main',\n notALayer: true,\n formType: 'inPage',\n step: firstStep,\n steps,\n stepsHistory: [0],\n thankYouComponent: ,\n };\n if (!loading) {\n initializeForm(LEMNoContactadoInfo, LEMNoContactadoData, true);\n trackFormLoad();\n }\n }, [loading]);\n\n return loading || loadingPresubmit || !steps ? null : ;\n}\n","import { Spinner, Text, styled } from '@volkswagen-onehub/components-core';\nimport dayjs from 'dayjs';\nimport React, { useEffect, useRef, useState } from 'react';\nimport { useDispatch } from 'react-redux';\nimport { DomainAttributesValues } from 'src';\nimport { useFeatureServices, useTrackingManager } from 'src/feature-app';\nimport { DpsData, EsOneformCoreServiceV1 } from 'src/feature-service/es-oneform-core-feature-service/types';\nimport { CarlineBase, DealersData, IdDealer, IdLead, IdPerson } from 'src/types';\nimport { LEMContactadoForm } from './LEMContactadoForm';\nimport { LEMNoContactadoForm } from './LEMNoContactadoForm';\nimport { GenericErrorLayer } from 'src/components/layers';\nimport { checkIdLeadHasCarline } from './use-initialize-lem-form';\nimport { createPincodeEntity } from '../dps-utils';\nimport { LoadingEncuestas } from 'src/components';\nimport { getInstallations } from 'src/bff';\nimport { arrayToObject } from 'src/helpers';\n\nexport interface LEMFormProps {\n idLead: IdLead;\n idPerson: IdPerson;\n dpsData: DpsData;\n installation: IdDealer;\n handleError: () => void;\n presubmit: boolean;\n trackFormLoad: () => void;\n}\n\nexport function LEMController() {\n const [loading, setLoading] = useState(true);\n const [error, setError] = useState(false);\n const [usado, setUsado] = useState(false);\n const [caducado, setCaducado] = useState(false);\n const [presubmit, setPresubmit] = useState(false);\n const [contactado, setContactado] = useState(false);\n const today = dayjs(new Date());\n const trackingManager = useTrackingManager();\n const dpsDataRef = useRef(null);\n const idLeadRef = useRef(null);\n const idPersonRef = useRef(null);\n const [installations, setInstallations] = useState(null);\n const [installation, setInstallation] = useState(null);\n const dispatch = useDispatch();\n const oneFormService = useFeatureServices()['es:oneform-core'] as EsOneformCoreServiceV1;\n\n const handleNext = (value: any) => {};\n const handleComplete = () => {\n const dpsData = oneFormService.getDpsData();\n\n if (dpsData.pincode === null || dpsData.pincode.noPincodeFound || dpsData.pincode.pincodeError) {\n handleError();\n } else if (dpsData.pincode.pincodeUsed) {\n setUsado(true);\n setLoading(false);\n } else {\n const idLead = createPincodeEntity(dpsData, 'LEAD');\n const idPerson = createPincodeEntity(dpsData, 'PERSON');\n\n dpsDataRef.current = dpsData;\n idLeadRef.current = idLead;\n idPersonRef.current = idPerson;\n\n const leadCreatedDate = dayjs(idLead.CreatedDate);\n const fechaEnvio = dpsData.fe ? dayjs(atob(dpsData.fe), 'DD/MM/YYYY') : null;\n let onTime = false;\n if (fechaEnvio) {\n onTime = today.diff(fechaEnvio, 'day') < 7;\n }\n else {\n onTime = today.diff(leadCreatedDate, 'day') < 7;\n }\n\n if (dpsData.push !== 'true' && onTime) {\n setPresubmit(true);\n setContactado(dpsData.contactado === 'true');\n setAllInstallations();\n } \n else if (dpsData.push == 'true') {\n setContactado(dpsData.contactado === 'true');\n setAllInstallations();\n } \n else {\n setCaducado(true);\n }\n setLoading(false);\n }\n };\n\n const setAllInstallations = () => {\n getInstallations().then((dealers) => {\n const installationsDomainAtt = dealers.map((inst) => inst.attributes);\n setInstallations(installationsDomainAtt);\n });\n }\n\n // Guardamos la instalacion por Id (idLead.Dealership__c)\n\tuseEffect(() => {\n if (installations && !installation) {\n const dpsData = oneFormService.getDpsData();\n const idLead = createPincodeEntity(dpsData, 'LEAD');\n\n let found = false;\n let i = 0;\n while (i < installations.length && found === false) {\n const found = installations[i].find((ele: DomainAttributesValues) => {\n if (\n typeof ele.value != 'undefined' && typeof ele.name != 'undefined' &&\n (ele.name.includes('Id') &&\n ele.value.includes(idLead.Dealership__c))\n ) {\n return ele;\n }\n return false;\n });\n if (found) {\n setInstallation(arrayToObject(installations[i]));\n }\n i++;\n }\n }\n\t}, [installations]);\n\n const handleError = () => {\n setError(true);\n setLoading(false);\n };\n\n const trackFormLoad = () => {\n if (idLeadRef.current) {\n const customDealer: DealersData = {\n kvps: idLeadRef.current.TXT_DESC_DEALER_CODE__c,\n name: idLeadRef.current.DESC_Dealer_Code__c,\n markerInfo: { dealerInfo: { zipCode: idLeadRef.current.TXT_Postal_Code__c } },\n };\n dispatch({ type: 'SET_SELECTED_DEALER', payload: customDealer });\n }\n\n trackingManager.trackFormLoad();\n };\n\n useEffect(() => {\n const oneFormCoreDpsIsLoaded = oneFormService.getLoadedState();\n\n oneFormCoreDpsIsLoaded.subscribe({\n next(value) {\n handleNext(value);\n },\n error(err) {\n console.error(err);\n handleError();\n },\n complete() {\n handleComplete();\n },\n });\n }, []);\n\n // función para layer de error\n const handleTryAgain = async () => {\n // oneFormService.\n setError(false);\n setLoading(true);\n await oneFormService.retryPincodeLoad(true);\n handleComplete();\n };\n\n if (loading) {\n return ;\n } else if (error) {\n return (\n <>\n \n \n );\n } else if (caducado) {\n return (\n <>\n \n \n );\n } else if (usado) {\n return (\n <>\n \n \n );\n } else if(installation) {\n return (\n <>\n {contactado ? (\n \n ) : (\n \n )}\n \n );\n }\n else {\n return null\n }\n}\n","import React, { useState } from 'react';\nimport { RadioButton, styled, Text, TokenTextAppearance, TokenTextColor } from '@volkswagen-onehub/components-core';\nimport { Info } from 'src/icons-core-imports';\nimport { useDispatch } from 'react-redux';\nimport { useFormContext } from 'react-hook-form';\nimport { useOneFormContext } from 'src/feature-app/OneForm';\n\nconst LabelInfoWrapper = styled.div`\n width: 100%;\n display: flex;\n justify-content: space-between;\n`;\n\nconst InfoWrapper = styled.div`\n margin-left: 16px;\n cursor: pointer;\n svg {\n fill: #001e50;\n }\n`;\n\nexport const ChecksEnvioLEM = () => {\n\n const ctaEnviarRespuesta = [\n { \n label: 'Mis respuestas pueden ser enviadas junto a mi nombre', value: '1' \n },\n {\n label: 'Mis respuestas pueden ser enviadas pero sin mencionar mi nombre',\n extraInfo: 'Seleccionando esta opción, el punto de venta no podrá ponerse en contacto contigo en relación a tus comentarios.',\n value: '2',\n },\n {\n label: 'Mis respuestas solo deben ser analizadas de manera anónima',\n extraInfo: 'Seleccionando esta opción, tus respuestas serán analizadas de modo agregado junto al resto de respuestas de todos los entrevistados y no se trasladarán a los comentarios abiertos.',\n value: '0',\n },\n ];\n\n const { handleNextStep } = useOneFormContext();\n const dispatch = useDispatch();\n const [firstCta, secondCta, thirdCta] = ctaEnviarRespuesta;\n const [firstOpen, setFirstOpen] = useState(false);\n const [secondOpen, setSecondOpen] = useState(false);\n\n const [checkedOne, setCheckedOne] = useState(false);\n const [checkedTwo, setCheckedTwo] = useState(false);\n const [checkedThree, setCheckedThree] = useState(false);\n\n const [value, setValue] = useState(null);\n const { register } = useFormContext();\n\n const handleOnClick = (e: any) => {\n dispatch({ type: 'UPDATE_FIELDS', payload: { enviarConcesion: e.currentTarget.value } });\n setTimeout(\n () => {\n handleNextStep();\n }, 0\n );\n };\n\n return (\n
\n
\n {\n setValue(firstCta.value);\n setCheckedOne(true);\n setCheckedTwo(false);\n setCheckedThree(false);\n handleOnClick(e);\n }}\n checked={checkedOne}\n />\n
\n
\n \n {\n setValue(secondCta.value);\n setCheckedOne(false);\n setCheckedTwo(true);\n setCheckedThree(false);\n handleOnClick(e);\n }}\n checked={checkedTwo}\n />\n {\n e.preventDefault();\n setFirstOpen(!firstOpen);\n }}\n >\n \n \n \n {firstOpen ? (\n
\n \n {secondCta.extraInfo}\n \n
\n ) : null}\n
\n
\n \n {\n setValue(thirdCta.value);\n setCheckedOne(false);\n setCheckedTwo(false);\n setCheckedThree(true);\n handleOnClick(e);\n }}\n checked={checkedThree}\n />\n {\n e.preventDefault();\n setSecondOpen(!secondOpen);\n }}\n >\n \n \n \n {secondOpen ? (\n
\n \n {thirdCta.extraInfo}\n \n
\n ) : null}\n
\n \n
\n );\n};\n","import { Breakpoints, styled, Text, TokenTextAppearance, Layout } from '@volkswagen-onehub/components-core';\nimport React, { useEffect, useState } from 'react';\nimport { OneFormState } from 'src/types';\nimport { LssiTkmQuestions, PoliticaPrivacidad, LastNavigation } from 'src/components';\nimport { useDispatch, useSelector } from 'react-redux';\n\nconst GeneralconfirmacionWrapper = styled.div`\n \n`;\nconst ContentWrapper = styled.div`\n min-height: calc(100vh - 227px);\n width: 100%;\n display: flex;\n align-items: center;\n @media all and (min-width: 960px) {\n min-height: calc(100vh - 227px);\n }\n .content-wrapper {\n width: 100%;\n }\n`;\n\nexport const ConfirmacionLEM = () => {\n const dispatch = useDispatch();\n const { fields } = useSelector((state: OneFormState) => state.formData);\n const [lssiPincode, setLssiPincode] = useState('PERMITE');\n\n /*useEffect(() => {\n if (fields) {\n setLssiPincode(fields.lssiPincode);\n }\n }, [fields]);\n\n useEffect(() => {\n if (lssiPincode === 'PERMITE') {\n dispatch({ type: 'UPDATE_FIELDS', payload: { lssi: 'NO INFORMADO', tkm: 'NO INFORMADO' } });\n } \n }, [lssiPincode]);*/\n\n return (\n \n \n \n
\n {lssiPincode === 'PERMITE' ? (\n
\n \n ¿Listo para enviar?\n \n
\n ) : (\n \n Mantente al día\n \n )}\n\n {lssiPincode === 'PERMITE' ? null : (\n \n )}\n \n\n \n
\n
\n \n {lssiPincode === 'PERMITE' ? (\n null\n ) : (\n null\n )}\n
\n );\n};\n","import React, { useEffect } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { useTrackingManager, getTrackingForm} from 'src/feature-app';\nimport { RenderController } from 'src/feature-app/Screen';\nimport { OneFormState, Steps } from 'src/types';\nimport { ThankYouTitle, ThankYouFields } from 'src/components';\n\nexport const ThanKYouLEM = () => {\n const { formInfo } = useSelector((state: OneFormState) => state);\n const { formResponse } = formInfo;\n\n const trackingManager = useTrackingManager();\n const dispatch = useDispatch();\n\n useEffect(() => {\n // Thank you page no es gestionado como un step pero sí lo haremos en la analítica. Por eso Modificamos formInfo después del submit y antes del RESET\n const screenIndexThankyou = formInfo.numberOfScreens;\n\n dispatch({ type: 'SET_FORM_SUBMITTED', payload: true });\n dispatch({ type: 'SET_FORM_INFO', payload: { step: { screenIndex: screenIndexThankyou, name: \"ThankYou\" } } });\n\n trackingManager.trackFormSubmissionSuccessMessageLoad(\n {\n contentId: undefined,\n },\n getTrackingForm(formResponse)\n );\n }, []);\n\n const screen: Steps = {\n title: ,\n fields: ,\n };\n return (\n \n );\n};\n","import React, { useEffect, useState } from 'react';\nimport { useInitializeLeadForm } from '../use-initialize-lead-form';\nimport { FormInfo } from 'src/types';\nimport { LeadGenericoForm, LeadsFormsProps } from '../LeadGenericoForm';\nimport {\n CanalDeContacto,\n CarlineSelect,\n ContactInfoWrapper,\n PantallaNombreApellido,\n Email,\n Telefono,\n ConsentQuestion\n} from 'src/components';\nimport { ConfirmacionLeadsNoQuestions } from 'src/forms';\nimport { OneElementTemplate, OneElementTemplateFullScreen } from 'src/feature-app/Screen';\nimport { MapaLeads } from 'src/forms/Leads';\nimport { Steps } from 'src/types';\nimport { Text } from '@volkswagen-onehub/components-core';\nimport { leadsCitaVentaData, leadsCitaVentaDealerData } from '.';\nimport { MapaLeadsInPage, partialDataCitaConfigurador } from 'src/forms/LeadsInPage';\n\n\nconst getMapaFields = (inPage: boolean) => {\n if (inPage === true) {\n return ;\n } else {\n return ;\n }\n};\n\nenum CitaVentaSteps {\n Mapa,\n Modelo,\n NombreApellido,\n Contacto,\n EmailTelefono,\n Confirmacion,\n}\n\n\nexport function CitaVentaForm({ inPage, isConfigurador, isLeadDealer }: LeadsFormsProps) {\n const [partialData, setPartialData] = useState(null);\n\n useEffect(() => {\n if (isLeadDealer) {\n setPartialData(leadsCitaVentaDealerData);\n } else {\n setPartialData(leadsCitaVentaData);\n }\n }, []);\n\n const defaultSteps: Steps[] = [\n isLeadDealer ? null :\n {\n screenIndex: CitaVentaSteps.Mapa,\n name: 'Mapa',\n multiStep: true,\n component: getMapaFields(inPage),\n },\n {\n title: (\n <>\n ¿{isLeadDealer ? \"Qué \" : \"Y qué \"}modelo te interesa?\n \n ),\n fields: (\n <>\n {inPage ?\n } />\n :\n } />\n }\n \n ),\n screenIndex: CitaVentaSteps.Modelo,\n name: 'Modelo',\n outputs: ['modelo'],\n outputsText: ['modelo'],\n },\n {\n title: (\n <>\n Para poder preparar tu visita, necesitamos saber quién eres\n \n ),\n fields: (\n <>\n {inPage ?\n } />\n :\n } />\n }\n \n ),\n screenIndex: CitaVentaSteps.NombreApellido,\n name: 'NombreApellido',\n outputs: ['name', 'surname', 'secondSurname'],\n outputsText: ['name', 'surname', 'secondSurname'],\n },\n {\n title: (\n <>\n ¿Cómo prefieres que contactemos contigo?\n *\n \n ),\n fields: (\n <>\n {inPage ?\n } />\n :\n } />\n }\n \n ),\n screenIndex: CitaVentaSteps.Contacto,\n name: 'Contacto',\n outputs: ['contacto'],\n outputsText: ['contacto'],\n },\n {\n title: (\n <>\n Para ello necesitaremos tus datos de contacto\n \n ),\n fields: (\n <>\n {inPage ?\n \n \n \n \n }\n />\n :\n \n \n \n \n }\n />\n }\n \n ),\n screenIndex: CitaVentaSteps.EmailTelefono,\n name: 'EmailTelefono',\n outputs: ['cellphone', 'email'],\n outputsText: ['cellphone', '/', 'email'],\n },\n {\n fields: ,\n name: 'lssi',\n outputs: ['lssi'],\n },\n {\n fields: ,\n name: 'tmk',\n outputs: ['tmk'],\n },\n {\n fields: ,\n isLastStep: true,\n hidePreviousStep: true,\n name: 'Confirmacion',\n },\n ];\n const filteredSteps = citaVentaSteps.filter((step) => step !== null);\n const { loading, steps, firstStep, lastStep } = useInitializeLeadForm(filteredSteps, false, inPage);\n\n const citaVentaInfo: Partial = {\n numberOfScreens: steps.length,\n };\n\n return loading ? null : (\n \n );\n}\n","import { FormDataGroup } from 'src/types';\n\nexport const leadsCitaVentaData: Partial = {\n headers: { FORM_OBJECTIVE: 'Cita' },\n fields: {\n formFields: { COMMENTS_BRAND: 'Petición para reservar una cita en el punto de venta.' },\n formularioFlag: 'prospect',\n formName: 'lead-cita',\n formType: 'contact',\n pageCategory: 'Cita',\n },\n};\n\nexport const leadsCitaVentaDealerData: Partial = {\n headers: { FORM_OBJECTIVE: 'Cita' },\n fields: {\n formFields: { COMMENTS_BRAND: 'Petición para reservar una cita en el punto de venta.' },\n formularioFlag: 'prospect',\n formName: 'lead-cita-dealer',\n formType: 'contact',\n pageCategory: 'Cita',\n },\n};\n","import {\n Breakpoints,\n Container,\n ContainerGutter,\n ContainerPadding,\n Layout,\n Text,\n TokenTextAppearance,\n} from '@volkswagen-onehub/components-core';\nimport React from 'react';\nimport { useStore } from 'react-redux';\nimport { LastNavigation, LegalesFormatoLayer, LssiTkmQuestions, PoliticaPrivacidad, GeneralConfirmacionLayerWrapper } from 'src/components';\nimport { OneFormState } from 'src/types';\nimport { removePTags } from './helpers';\n\nexport const ConfirmacionLeads = () => {\n const store = useStore();\n\n const { dealersInfo }: OneFormState = store.getState();\n const { oferta } = dealersInfo;\n\n return (\n \n \n \n\n \n\n \n\n \n \n Texto legal de Volkswagen\n \n {oferta ? (\n \n {removePTags(oferta.legal)}\n \n ) : null}\n \n \n \n \n );\n};\n","import {\n Breakpoints,\n Container,\n ContainerGutter,\n ContainerPadding,\n Layout,\n Text,\n TextAlignment,\n TokenTextAppearance,\n styled,\n} from '@volkswagen-onehub/components-core';\nimport React from 'react';\nimport { LastNavigation, PoliticaPrivacidad, GeneralConfirmacionLayerWrapper, LegalesFormatoLayer } from 'src/components';\nimport icon from './icon.svg'\nimport { useSelector, useStore } from 'react-redux';\nimport { OneFormState } from 'src/types';\nimport { removePTags } from './helpers';\n\nconst PoliticaWrapper = styled.div`\n width: 100%;\n display: flex;\n justify-content: center;\n`\n\nexport const ConfirmacionLeadsNoQuestions = () => {\n const { formInfo } = useSelector((state: OneFormState) => state);\n const isLayer = formInfo?.formType === 'layer';\n const store = useStore();\n const { dealersInfo }: OneFormState = store.getState();\n const { oferta } = dealersInfo;\n\n return (\n \n \n \n
\n \"icon\"\n
\n \n ¿Listo para enviar?\n \n \n \n \n \n \n {isLayer &&\n \n \n Texto legal de Volkswagen\n \n {oferta ? (\n \n {removePTags(oferta.legal)}\n \n ) : null}\n \n \n }\n \n
\n );\n};\n","import { Text } from '@volkswagen-onehub/components-core';\nimport Axios, { AxiosResponse } from 'axios';\nimport React, { useEffect, useState } from 'react';\nimport { useDispatch, useSelector, useStore } from 'react-redux';\nimport { dpsSend } from 'src/bff';\nimport {\n FormController,\n removeWhiteSpace,\n useFaContent,\n useGetInstalaciones,\n useGetWaidLitera,\n useOneFormContext,\n formatPrefix,\n} from 'src/feature-app';\nimport { getParamsForm } from 'src/feature-app/get-params-form';\nimport {\n CarlineBase,\n FormDataGroup,\n FormDataHeaders,\n FormInfo,\n Installation,\n MolecularResponse,\n OneFormState,\n Steps,\n} from 'src/types';\nimport { OneElementTemplate } from 'src/feature-app/Screen/Templates';\nimport { ThankYouLeads } from '.';\nimport { formatFields, formatFlags, formatHeaders, formDataBuilder, getDpsFields } from '../format-fields';\nimport { addRemovedStep, getIndexInSteps, removeStep, resetStepsScreenIndex } from '../helpers/add-remove-steps';\nimport {\n getCodInterestCarline,\n getDescInterestCarline,\n getOfertasComercialesData,\n getOfertasData,\n getSalesGroup,\n} from './helpers';\nimport { LeadGenericoFormProps } from './LeadGenericoForm';\nimport { MultipleCTASelection } from 'src/components';\nimport { boolean } from 'yup';\n\nconst isOfertasForm = (formName: string) => formName === 'lead-oferta';\nconst getDescFormObjective = (formName: string, carline: CarlineBase, headers: FormDataHeaders) =>\n isOfertasForm(formName) && carline?.campaign?.dfo?.ofertas\n ? carline.campaign.dfo.ofertas\n : headers.DESC_FORMOBJECTIVE;\n\nexport const horarioContactoOptions = [\n {\n value: 'Mañana',\n detallesPrevStep: 'Por la mañana',\n label: 'Por la mañana',\n },\n {\n value: 'Mediodia',\n detallesPrevStep: 'Al mediodía',\n label: 'Al mediodía',\n },\n {\n value: 'Tarde',\n detallesPrevStep: 'Por la tarde',\n label: 'Por la tarde',\n },\n {\n value: 'A cualquier hora',\n detallesPrevStep: 'A cualquier hora',\n label: 'A cualquier hora',\n },\n];\n\nconst stepHorario = {\n title: (\n <>\n ¿Cúando prefieres que te llamemos?\n *\n \n ),\n fields: (\n }\n />\n ),\n screenIndex: 100, // Se reiniciará más adelante\n name: 'HorarioContacto',\n outputs: ['horarioContacto'],\n outputsText: ['horarioContacto'],\n};\n\nexport function LeadGenericoComercialesForm({ steps, leadData, leadInfo, firstStep, lastStep }: LeadGenericoFormProps) {\n const { initializeForm, handleNextStep } = useOneFormContext();\n const { contacto } = useSelector((state: OneFormState) => state.formData.fields);\n const store = useStore();\n const installations = useGetInstalaciones('LCV_DDB_FRM_LEM_REC_LEM', true); // Inicialización de las instalaciones\n const dispatch = useDispatch();\n const [loading, setLoading] = useState(true);\n const faContent = useFaContent();\n const waid = useGetWaidLitera();\n\n const sendForm = (): Promise => {\n const { formData, dealersInfo }: OneFormState = store.getState();\n const { fields, headers, flags } = formData;\n const { selectedInstallation, salesGroup, selectedCarline } = dealersInfo;\n const {\n TXT_V_Installation_Data_Name__c,\n TXT_V_KVPS_code__c,\n FRML_TXT_codVentaProvincia__c,\n TXT_V_Installation_Code__c,\n } = selectedInstallation;\n\n return new Promise(async (resolve, reject) => {\n const { tc, today, referalUrl, url, device } = getParamsForm();\n\n const data = {\n ...formatHeaders(headers), // Headers comunes a todos los formularios de leads\n ...formatFields(fields.formFields), // Fields comunes a todos los formularios de leads\n ...formatFlags(flags), // Flags comunes a todos los formularios de leads\n\n 'headers[COD_FORM_ID]': `vw-oneform-${fields.formName}`,\n 'headers[DESC_URLORIGIN]': url,\n 'headers[DESC_DEVICETYPE]': device,\n 'headers[DESC_FORMOBJECTIVE]': getDescFormObjective(fields.formName, selectedCarline, headers),\n 'headers[DESC_ID_CAMPAIGN]': selectedCarline?.campaign?.salesforce\n ? selectedCarline.campaign.salesforce\n : '7011n000000ARTWAA4',\n\n 'headers[FECHA_INSERTION_DATE]': today,\n 'headers[TC]': tc,\n\n 'fields[DESC_TREATMENT]': fields.trato,\n 'fields[DESC_POSTAL_CODE]': fields.postalCode,\n\n 'fields[DESC_NAME]': fields.name,\n 'fields[DESC_SURNAME_1]': fields.surname,\n 'fields[DESC_SURNAME_2]': fields.secondSurname,\n 'fields[DESC_EMAIL_ADDRESS]': removeWhiteSpace(fields.email),\n // 'fields[NUM_CELLPHONE]': fields.cellphone ? `${formatPrefix(fields.prefix)}${fields.cellphone}` : undefined,\n 'fields[NUM_CELLPHONE]': fields.cellphone ? `${fields.cellphone}` : undefined,\n 'fields[COD_LEAD_ID]': 'LCV_DDB_FRM_LEM_REC_LEM',\n 'fields[DESC_VEH_BRAND]': 'Volkswagen Vehículos Comerciales',\n 'fields[DESC_FORM_VERSION]': `vw-oneform-${fields.formName}-${process.env.VERSION}`,\n 'fields[DESC_DEALER_CODE_KVPS]': TXT_V_KVPS_code__c,\n 'fields[DESC_DEALER_CODE]': TXT_V_Installation_Code__c,\n 'fields[DESC_DEALER_PROVINCE]': fields.provinceName,\n 'fields[COD_DEALER_PROVINCE]': FRML_TXT_codVentaProvincia__c,\n 'fields[DESC_DEALER]': TXT_V_Installation_Data_Name__c,\n 'fields[COD_INTEREST_CARLINE]': getCodInterestCarline(dealersInfo, fields.carlineCode),\n 'fields[DESC_INTEREST_CARLINE]': getDescInterestCarline(dealersInfo, fields.modelo),\n 'fields[DESC_PREFERRED_CONTACT_CHANNEL]': fields.contacto,\n 'fields[DESC_TRANF_DATA_THIRD]': 'NO INFORMADO',\n 'fields[DESC_LSSI]': fields.lssi ? fields.lssi : 'NO INFORMADO',\n 'fields[DESC_LOPD_GDPR_PERFILADO]': fields.tmk ? fields.tmk : 'NO INFORMADO',\n 'fields[DESC_AUXFIELD15]': fields.contacto === 'Teléfono' ? fields.horarioContacto : undefined,\n ...getSalesGroup(salesGroup),\n ...getDpsFields(faContent),\n ...(await getOfertasComercialesData(formData, dealersInfo)),\n };\n const dataStringified = JSON.stringify(data);\n const dataParsed = JSON.parse(dataStringified);\n\n const formDataInfo = formDataBuilder(dataParsed);\n\n const response = await dpsSend(formDataInfo);\n\n if (response && response.data && response.data.content && response.data.content.code === '200') {\n dispatch({ type: 'SET_FORM_RESPONSE', payload: response.data });\n resolve(true);\n } else {\n resolve(false);\n }\n });\n };\n\n const updateSteps = (steps: Steps[]) => {\n dispatch({ type: 'UPDATE_STEPS', payload: steps });\n dispatch({ type: 'UPDATE_LAST_STEP', payload: steps[steps.length - 1] });\n dispatch({ type: 'SET_NUMBER_OF_SCREENS', payload: steps.length });\n };\n\n useEffect(() => {\n if (contacto === 'Teléfono') {\n const indexOfContacto = getIndexInSteps(steps, 'Contacto');\n const newSteps = [...steps];\n newSteps.splice(indexOfContacto + 1, 0, stepHorario);\n const finalSteps = resetStepsScreenIndex(newSteps);\n\n updateSteps(finalSteps);\n handleNextStep();\n } else if (contacto === 'Email') {\n const { steps } = store.getState().formInfo;\n const indexOfContacto = getIndexInSteps(steps, 'HorarioContacto');\n\n if (indexOfContacto === -1) {\n return;\n } else {\n const newSteps = removeStep(steps, 'HorarioContacto');\n const finalSteps = resetStepsScreenIndex(newSteps);\n\n updateSteps(finalSteps);\n }\n }\n }, [contacto]);\n\n const leadGenericoData: Partial = {\n headers: {\n DESC_BRAND: 'LCV', // OK\n DESC_CAMPAIGNBLOCK: '5. LCV Tácticas', // OK\n DESC_WAID_LITERA: waid ? waid : '',\n DESC_TOKEN: 'LCV_DDB_FRM_LEM_REC_LEM', // OK\n DESC_VN_VO: 'VN', // OK\n DESC_GDPR_ADAPTED: true, // OK\n ...leadData.headers,\n },\n flags: {\n FLAG_ISPROSPECT: 'true',\n FLAG_ISLEAD: 'false',\n FLAG_SENDIMAWEB: 'false',\n FLAG_SENDTOSELLBYTEL: 'true',\n FLAG_SENDTOSCORE: 'true',\n FLAG_GENERATELEM: 'false',\n FLAG_ISCOMPANY: 'false',\n },\n fields: { ...leadData.fields },\n };\n\n const leadGenericoInfo: Partial = {\n formStarted: true,\n fullScreen: firstStep.fullScreen ? true : false,\n lastStep,\n sendFormCallback: sendForm,\n numberOfScreens: steps.length,\n screenIndex: firstStep.screenIndex,\n step: firstStep,\n steps,\n notALayer: false,\n stepsHistory: [steps[0].screenIndex],\n thankYouComponent: ,\n ...leadInfo,\n };\n\n useEffect(() => {\n initializeForm(leadGenericoInfo, leadGenericoData);\n setLoading(false);\n }, []);\n\n return loading ? null : ;\n}\n","import React from 'react';\nimport { useGetBrand } from 'src/feature-app/hooks';\nimport { LeadGenericoComercialesForm } from './LeadGenericoComercialesForm';\nimport { LeadGenericoForm, LeadGenericoFormProps } from './LeadGenericoForm';\n\nexport const LeadGenericoController = (props: LeadGenericoFormProps) => {\n const brand = useGetBrand();\n\n return brand === 'V' ? : brand === 'N' ? : null;\n};\n","import { ConfigurationWithMandatoryBuildabilityV2 } from '@volkswagen-onehub/car-configuration-feature-service';\nimport React, { useEffect, useState } from 'react';\nimport { useDispatch, useStore } from 'react-redux';\nimport { dpsSend, oneformBFFNdpsSend, getPriceDataWithMarketingCode } from 'src/bff';\nimport { getOption, getWheels } from 'src/bff/get-marketing-code';\nimport {\n formatPrefix,\n formatPrefixOneFormBFF,\n FormController,\n removeWhiteSpace,\n useFaContent,\n useFeatureAppConfig,\n useGetInstalaciones,\n useGetWaidLitera,\n useOneFormContext,\n} from 'src/feature-app';\nimport { getParamsForm } from 'src/feature-app/get-params-form';\nimport {\n CarlineBase,\n FormDataGroup,\n FormDataHeaders,\n FormInfo,\n Horario,\n OneFormState,\n Steps,\n} from 'src/types';\nimport { ThankYouLeads } from '.';\nimport { formatFields, formatFlags, formatHeaders, formDataBuilder, getDpsFields } from '../format-fields';\nimport { getCodInterestCarline, getDescInterestCarline, getMatchData, getSalesGroup } from './helpers';\nimport { getOfertasData } from './helpers/get-ofertas-data';\n\nexport enum LeadGenerico {\n Empezar,\n Mapa,\n Modelo,\n NombreApellido,\n EmailTelefono,\n Contacto,\n Confirmacion,\n}\n\nexport interface LeadGenericoFormProps {\n steps: Steps[];\n leadData: Partial;\n leadInfo: Partial;\n firstStep: Steps;\n lastStep: Steps;\n inPage?: boolean;\n isConfigurador?: boolean;\n}\n\nexport interface LeadsFormsProps {\n inPage?: boolean;\n isConfigurador?: boolean;\n isLeadDealer?: boolean;\n isOfertasOrMatch?: boolean;\n updatedFormData?: Partial;\n updatedFormInfo?: Partial;\n}\n\nexport const isOfertasForm = (formName: string) => formName === 'lead-oferta';\nconst getDescFormObjective = (formName: string, carline: CarlineBase, headers: FormDataHeaders) =>\n isOfertasForm(formName) && carline?.campaign?.dfo?.ofertas\n ? carline.campaign.dfo.ofertas\n : headers.FORM_OBJECTIVE;\n\nexport function LeadGenericoForm({\n steps,\n leadData,\n leadInfo,\n firstStep,\n lastStep,\n inPage,\n isConfigurador,\n}: LeadGenericoFormProps) {\n const { initializeForm } = useOneFormContext();\n const store = useStore();\n const config = useFeatureAppConfig();\n const installations = useGetInstalaciones('VW_DDB_FRM_LEM_REC_LEM'); // Inicialización de las instalaciones\n const dispatch = useDispatch();\n const [loading, setLoading] = useState(true);\n const faContent = useFaContent();\n const waid = useGetWaidLitera();\n\n const getHorario = (horario: Horario) => {\n let horarioField = null;\n\n if (horario) {\n const horarioFormatted = horario === 'morning' ? 'MANANA' : horario === 'evening' ? 'MEDIODIA' : 'TARDE';\n\n horarioField = { 'fields[PERSON_PREFERRED_SLOT]': horarioFormatted };\n }\n return horarioField;\n };\n\n const getConfiguradorData = async (formData: FormDataGroup) => {\n const { fields } = formData;\n const { marketingCodeData, marketingCodeResponse } = store.getState().formData.fields;\n\n if (!marketingCodeResponse) return null;\n //const price = await getPriceDataWithMarketingCode(marketingCodeResponse);\n\n const type = getOption(\"TYPE\",marketingCodeResponse?.content.consolidatedData.options);\n\n let configuradorData = {\n 'fields[VEH_INTEREST_ID]': marketingCodeResponse?.content.consolidatedData.model_code.split(\"_\")[1],\n 'fields[VEH_INTEREST_MODEL]': marketingCodeResponse?.content.consolidatedData.model_description,\n 'fields[VEH_INTEREST_DETAILS]': type.option.description,\n // 'fields[VEH_INTEREST_MORE_INFO]': \"Color pintura exterior: \" + marketingCodeResponse?.consolidatedData?.exterior?.name, // Pendiente recuperar color exterior\n 'fields[VEH_INTEREST_CONFIGURATION_CODE]': marketingCodeData?.marketingCode,\n /*\n 'fields[VEH_INTEREST_OFFER_PRICE]': price?.body?.amount\n ? `Precio final de la configuración: ${price?.body?.amount}Eur`\n : undefined,\n */\n };\n\n //Si es un form de ofertas no es relevante el precio de la configuración ni su Marketing Code\n if(isOfertasForm(fields.formName)){\n delete configuradorData['fields[VEH_INTEREST_CONFIGURATION_CODE]'];\n // delete configuradorData['fields[VEH_INTEREST_OFFER_PRICE]'];\n }\n\n return configuradorData;\n };\n\n const sendForm = (): Promise => {\n const { formData, dealersInfo }: OneFormState = store.getState();\n const { fields, headers, flags } = formData;\n const { selectedInstallation, salesGroup, selectedCarline } = dealersInfo;\n\n const {\n VGED_CommercialName__c,\n BillingStreet,\n BillingPostalCode,\n BillingCity,\n BillingLatitude,\n BillingLongitude,\n VGED_DealerCode__c,\n BillingStateCode,\n KVPSCode__c,\n Id\n } = selectedInstallation;\n\n return new Promise(async (resolve, reject) => {\n const { tc, today, referalUrl, url, device } = getParamsForm();\n\n const data = {\n ...formatHeaders(headers), // Headers comunes a todos los formularios de leads\n\n 'headers[FORM_DATE_INSERTION]': today,\n 'headers[FORM_URL]': url,\n 'headers[FORM_NAME]': `vw-oneform-${fields.formName}`,\n 'headers[FORM_VERSION]': `vw-oneform-${fields.formName}-${process.env.VERSION}`,\n 'headers[ORIGIN_DEVICE_TYPE]': device,\n 'headers[ORIGIN_TRACKING_CODE]': tc,\n 'headers[FORM_OBJECTIVE]': getDescFormObjective(fields.formName, selectedCarline, headers),\n 'headers[SF_CAMPAIGN_ID]': selectedCarline?.campaign?.salesforce\n ? selectedCarline.campaign.salesforce\n : '7010Y0000001tAOQAY',\n 'headers[SF_CAMPAIGN_NAME]': 'PENDIENTE',\n //'headers[SF_CAMPAIGN_ORIGIN_ID]': 'PENDIENTE',\n\n ...formatFlags(flags), // Flags comunes a todos los formularios de leads\n ...formatFields(fields.formFields), // Fields comunes a todos los formularios de leads\n\n 'fields[DPS_BRAND]': 'Volkswagen',\n 'fields[SF_LEAD_RECORDTYPE_ID]': '0121i000000D7NyAAK',\n 'fields[SF_LEAD_RECORDTYPE_NAME]': 'Sales Assistant',\n 'fields[SF_LEAD_SALES_INITIAL_ACTION]': 'Direct to Sales Assistant',\n 'fields[PERSON_EMAIL]': removeWhiteSpace(fields.email),\n 'fields[PERSON_NAME]': fields.name,\n 'fields[PERSON_PHONE_MOBILE_FULL]': `${fields.prefix}${fields.cellphone}`,\n 'fields[PERSON_PHONE_MOBILE]': fields.cellphone,\n 'fields[PERSON_PHONE_PREFIX]': fields.prefix,\n 'fields[PERSON_PREFERRED_CHANNEL]': fields.contacto,\n 'fields[PERSON_RGPD_COM_COMERCIALES]': fields.lssi ? fields.lssi : 'NO INFORMADO',\n 'fields[PERSON_RGPD_PERFILADO]': fields.tmk,\n 'fields[PERSON_SURNAME_1]': fields.surname,\n 'fields[PERSON_SURNAME_2]': fields.secondSurname,\n 'fields[SF_LEAD_INSTALLATION_ADDRESS]': BillingStreet,\n 'fields[SF_LEAD_INSTALLATION_CODE]': VGED_DealerCode__c,\n 'fields[SF_LEAD_INSTALLATION_ID]': Id,\n 'fields[SF_LEAD_INSTALLATION_NAME]': VGED_CommercialName__c,\n 'fields[SF_LEAD_INSTALLATION_PROVINCE_CODE]': BillingStateCode.toString().padStart(2, '0'),\n // 'fields[VEH_INTEREST_FUEL]': 'PENDIENTE', -> Pendiente mapear\n 'fields[VEH_INTEREST_BRAND]': 'Volkswagen',\n 'fields[VEH_INTEREST_ID]': fields.carlineCode,\n 'fields[VEH_INTEREST_MODEL]': getDescInterestCarline(dealersInfo, fields.modelo),\n 'fields[VEH_INTEREST_NEW_OR_USED]': 'New Car',\n 'fields[VEH_INTEREST_DETAILS]': salesGroup?.salesGroupName,\n 'fields[VEH_INTEREST_LINK]': inPage ? referalUrl : url,\n ...getDpsFields(faContent),\n //...getSalesGroup(salesGroup),\n ...getHorario(fields.horario),\n\n ...(await getOfertasData(formData, dealersInfo)),\n ...(await getMatchData(formData, dealersInfo, faContent)),\n ...(await getConfiguradorData(formData)),\n\n };\n const dataStringified = JSON.stringify(data);\n const dataParsed = JSON.parse(dataStringified);\n\n const formDataInfo = formDataBuilder(dataParsed);\n // const response = await dpsSend(formDataInfo);\n const response = await oneformBFFNdpsSend(formDataInfo);\n\n if (response && response.data && response.data.status && response.data.status.code && response.data.status.code == '200') {\n dispatch({ type: 'SET_FORM_RESPONSE', payload: response.data });\n resolve(true);\n } else {\n resolve(false);\n }\n });\n };\n\n const leadGenericoData: Partial = {\n headers: {\n // DESC_CAMPAIGNBLOCK: '9. VW LEM',\n FK_SYSTEM: 'VW_DDB_FRM_LEM_REC_LEM',\n DPS_TOKEN: 'VW_DDB_FRM_LEM_REC_LEM',\n FORM_ID: waid ? waid : 'B09C01_LEM_WA1',\n ...leadData.headers,\n },\n flags: {\n PERSON_RGPD_ADAPTED: 'true',\n FLAG_IS_MYSTERY_LEAD: 'false',\n FLAG_RELACION_MARCA_SIN_IC: 'false',\n FLAG_SF_INTEGRATION: 'true',\n FLAG_ALLOWS_DATA_ENRICHMENT: 'false',\n // FLAG_ISQUALIFIED: 'false',\n // FLAG_MAILRECEPCIONLEAD: 'true',\n // REQUIERE_CONTACTO_DEALER: 'false',\n },\n fields: {\n ...leadData.fields\n },\n };\n\n const leadGenericoInfo: Partial = {\n formStarted: true,\n fullScreen: firstStep.fullScreen ? true : false,\n lastStep,\n sendFormCallback: sendForm,\n numberOfScreens: steps.length,\n screenIndex: firstStep.screenIndex,\n step: firstStep,\n steps,\n stepsHistory: [steps[0].screenIndex],\n thankYouComponent: ,\n notALayer: inPage ? true : false,\n formTheme: inPage ? 'main' : 'inverted',\n formType: inPage ? 'inPage' : 'layer',\n ...leadInfo,\n };\n\n useEffect(() => {\n initializeForm(leadGenericoInfo, leadGenericoData);\n setLoading(false);\n }, []);\n\n return loading ? null : ;\n}\n","import { Breakpoints, BreakpointWrapper } from '@volkswagen-onehub/components-core';\nimport { FocusLayerSizeV2, LayerManagerV2 } from '@volkswagen-onehub/layer-manager';\nimport React, { useCallback, useEffect, useRef, useState } from 'react';\nimport { useDispatch, useSelector, useStore } from 'react-redux';\nimport {\n LayerManagerWrapper,\n useFeatureAppEnvironment,\n useMapGeneralController,\n sortPoints,\n useOneFormContext,\n useFeatureServices,\n NewDealerCard,\n} from 'src/feature-app';\nimport { LoadingLayer } from 'src/forms/CitaPosventa/NuevaCitaPosventa';\nimport { Horario, OneFormState, Points } from 'src/types';\nimport { fetchProvince, fetchProvinceLegacy } from 'src/bff';\nimport { useIsComerciales } from 'src/feature-app/hooks';\nimport { \n getDistanceFromLatLngCenter, \n LayerDesktopView, \n LayerMobileView \n} from 'src/feature-app/NewMap';\n\nexport const JourneyLeadsController = () => {\n const { formData } = useSelector((state: OneFormState) => state);\n const { horario }: { horario?: Horario } = formData.fields;\n const { handleNextStep } = useOneFormContext();\n const layerManager = useFeatureServices()['layer-manager'] as LayerManagerV2;\n const store = useStore();\n const dispatch = useDispatch();\n const env = useFeatureAppEnvironment();\n const [loading, setLoading] = useState(false);\n const pointsByDistanceRef = useRef(null);\n const isComerciales = useIsComerciales();\n\n const loadingLayer = useRef(null);\n const {\n clusters,\n centerToCalculateDistance,\n superClusterRef,\n cardsDistanceRef,\n } = useMapGeneralController();\n\n const [pointsToList, setPointsToList] = useState(null);\n\n useEffect(() => {\n if (clusters && superClusterRef.current) {\n const { pointsByDistance } = sortPoints(\n clusters,\n horario,\n centerToCalculateDistance.current,\n superClusterRef.current\n );\n pointsByDistanceRef.current = pointsByDistance;\n setPointsToList(pointsByDistance);\n }\n }, [clusters, superClusterRef.current]);\n\n const renderPoints = (points: Points[]): JSX.Element[] => {\n\n return points.map((point: Points, index: number) => {\n if (!point.properties.cluster) {\n const { dealer } = point.properties;\n const distanceFromCenter = getDistanceFromLatLngCenter(centerToCalculateDistance.current, point);\n\n return (\n {\n cardsDistanceRef.current[index] = el;\n }}\n >\n \n \n );\n }\n return null;\n });\n };\n\n // Gestión del point seleccionado y del boton de seleccionar (dms)\n const handleSeleccionarOnClick = useCallback((point: Points) => {\n // Añadir lógica para guardar el dealer seleccionado\n dispatch({ type: 'SET_SELECTED_INSTALLATION', payload: point.properties.installation });\n // Necesitamos el nombre de la provincia, y éste no está disponible en la request de instalaciones.\n if(isComerciales) {\n fetchProvinceLegacy('LCV_DDB_FRM_LEM_REC_LEM').then((response) => {\n const province = response.content.find((att) =>\n att.attributes.find((prov) => prov.value === point.properties.installation.BillingStateCode)\n );\n const provinceName = province.attributes[1].value;\n \n dispatch({ type: 'UPDATE_FIELDS', payload: { provinceName } });\n });\n }\n else {\n fetchProvince('VW_DDB_FRM_LEM_REC_LEM').then((response) => {\n const province = response.content.find((att) =>\n att.attributes.find((prov) => prov.value === point.properties.installation.BillingStateCode)\n );\n const provinceName = province.attributes[1].value;\n \n dispatch({ type: 'UPDATE_FIELDS', payload: { provinceName } });\n });\n }\n \n handleNextStep();\n }, []);\n\n const renderLoadingLayer = () => {\n return (\n \n \n \n );\n };\n\n const handleLoadingLayer = () => {\n if (loading) {\n const layer = layerManager.openFocusLayer(renderLoadingLayer, {}, { size: FocusLayerSizeV2.A });\n loadingLayer.current = layer;\n } else {\n if (loadingLayer.current) {\n loadingLayer.current.close();\n loadingLayer.current = null;\n }\n }\n };\n\n useEffect(() => {\n handleLoadingLayer();\n }, [loading]);\n\n // availability functions\n\n return (\n
\n \n \n \n\n \n \n \n
\n );\n};\n","import React from 'react';\nimport { JourneyLeadsController } from './';\nimport { MapGeneralController } from 'src/feature-app';\n\n/**\n * Este componente está creado únicamente para que JourneyLeadsController tenga acceso a las variables de MapGeneralController.\n */\nexport const JourneyLeadsWrapper = () => {\n return (\n \n \n \n );\n};\n","\nimport React, { useEffect, useState } from 'react';\nimport { Text, TokenTextAppearance } from '@volkswagen-onehub/components-core';\nimport { useDispatch, useSelector, useStore } from 'react-redux';\nimport { MultipleCTASelection } from 'src/components';\nimport { useOneFormContext } from 'src/feature-app';\nimport { RenderController, OneElementTemplate } from 'src/feature-app/Screen';\nimport LoadScriptInstance from 'src/feature-app/NewMap/Loadscript';\nimport { LocateUser } from 'src/forms/CitaPosventa/NuevaCitaPosventa';\nimport { TIME_FOR_TRANSFORM } from 'src/globals';\nimport { DealersData, OneFormState, Steps } from 'src/types';\nimport { JourneyLeadsWrapper } from './JourneyLeadsWrapper';\nimport { CTAsHorario } from 'src/feature-app/InputsValues';\n\nenum MapaLeadsSteps {\n Dealer,\n Horario,\n SeleccionCita,\n SeleccionFecha,\n}\n\ninterface MapaLeadsProps {\n showHorario?: boolean;\n formName: string;\n}\n\nconst renderTitle = (formName: string) => {\n return (\n <>\n {formName === 'presupuesto' || formName === 'masInformacion' || formName === 'oferta' ? (\n \n {' '}\n ¿Qué experto quieres que se{' '}\n \n encargue?*\n \n \n ) : (\n <>\n {formName === 'testDrive' ? (\n \n {' '}\n ¿Dónde prefieres{' '}\n \n provarlo?*\n \n \n ) : (\n \n {' '}\n ¿A dónde quieres{' '}\n \n ir?*\n \n \n )}\n \n )}\n \n );\n};\n\nconst isLastScreen = (steps: Steps[], multiStepScreenIndex: number) => steps.length - 1 === multiStepScreenIndex;\nconst isFirstScreen = (multiStepScreenIndex: number) => multiStepScreenIndex === 0;\n\nexport function MapaLeads(props: MapaLeadsProps) {\n const { formName, showHorario } = props;\n const dispatch = useDispatch();\n const store = useStore();\n const { formData, formInfo } = useSelector((state: OneFormState) => state);\n const { dealer }: { dealer?: DealersData } = formData.fields;\n const { firstMapLoad, multiStepScreenIndex, navigationMovingForward } = formInfo;\n\n const {\n handleScreenChange,\n // setWaitForNextStep,\n setNextMultiStep,\n setNextMultiStepScreenIndex,\n setPreviousMultiStep,\n setWaitForPreviousStep,\n waitForPreviousStep,\n // waitForNextStep,\n setIsFullScreen,\n setShowPreviousStep,\n } = useOneFormContext();\n\n let stepsHorario: Steps[] = [\n {\n title: <>{renderTitle(formName)},\n fields: ,\n screenIndex: MapaLeadsSteps.Dealer,\n name: 'MapSearch',\n outputs: ['location'],\n outputsText: ['location'],\n showOverflow: true,\n },\n {\n screenIndex: MapaLeadsSteps.Horario,\n name: 'MapSlotPref',\n title: (\n <>\n ¿Cúando prefieres pasar por el{' '}\n \n punto de venta?*\n \n \n ),\n fields: (\n } />\n ),\n outputs: ['horario'],\n outputsText: ['horario'],\n },\n {\n screenIndex: MapaLeadsSteps.SeleccionCita,\n name: 'MapSelect',\n alternateTitle: (\n <>\n \n ¿Qué experto quieres que se{' '}\n \n encargue?*\n \n \n {formName === 'presupuesto' ?\n (\n
\n Los encargados de elaborar un presupuesto son los asesores de la red de Concesionarios Oficial Volkswagen. Elige uno y le enviaremos tu petición para que te haga una propuesta a medida.{' '}\n
\n )\n : null\n }\n \n ),\n title: <>,\n fields: ,\n outputs: ['installation'],\n outputsText: ['installation'],\n fullScreen: true,\n multiStepLastScreen: true,\n hidePreviousStep: true,\n },\n ];\n\n let stepsWithoutHorario: Steps[] = [\n {\n title: (\n <>\n \n ¿Qué experto quieres que se{' '}\n \n encargue?*\n \n \n {formName === 'presupuesto' ?\n (\n
\n Los encargados de elaborar un presupuesto son los asesores de la red de Concesionarios Oficial Volkswagen. Elige uno y le enviaremos tu petición para que te haga una propuesta a medida.{' '}\n
\n )\n : null\n }\n \n ),\n fields: ,\n screenIndex: MapaLeadsSteps.Dealer,\n name: 'MapSearch',\n outputs: ['location'],\n outputsText: ['location'],\n showOverflow: true,\n },\n {\n screenIndex: 1,\n name: 'MapSelect',\n alternateTitle: (\n \n ¿Qué experto quieres que se{' '}\n \n encargue?*\n \n \n ),\n title: <>,\n fields: ,\n outputs: ['installation'],\n outputsText: ['installation'],\n fullScreen: true,\n multiStepLastScreen: true,\n hidePreviousStep: true,\n },\n ];\n\n const steps = showHorario ? stepsHorario : stepsWithoutHorario;\n const [selectedStep, setSelectedStep] = useState(null);\n\n /**\n * Hay que esperar a que se cree el mapa de google para tener acceso a window.google\n */\n const onMapLoad = () => {\n handleFirstLoad();\n };\n\n const handleFirstLoad = async () => {\n if (firstMapLoad) {\n // Inicialización\n initializeMultiStep();\n } else {\n if (navigationMovingForward || navigationMovingForward === null || navigationMovingForward === undefined) {\n // Inicialización cuando se va hacia adelante una vez inicializado el mapa o después de cerrar el layer y abrir en el mapa.\n initializeMultiStep();\n } else {\n // En caso de que estemos en la última pantalla, desactivamos el wait for next step.\n const newWaitForNextStep = !isLastScreen(steps, multiStepScreenIndex);\n // Lo mismo para previous, solo le desactivamos si estamos en la primera.\n const newWaitForPreviousStep = !isFirstScreen(multiStepScreenIndex);\n\n updateWaitForNextAndPreviousStep(newWaitForNextStep, newWaitForPreviousStep);\n updateScreenChangeVariables(multiStepScreenIndex);\n\n setTimeout(() => {\n setShowPreviousStep(false);\n }, TIME_FOR_TRANSFORM);\n }\n }\n setNextMultiStep(() => nextMapaLeads);\n setPreviousMultiStep(() => previousMapaLeads);\n };\n\n const initializeMultiStep = () => {\n updateWaitForNextAndPreviousStep(true, false);\n updateScreenChangeVariables(0);\n };\n\n const updateWaitForNextAndPreviousStep = (waitForNextStep: boolean, waitForPreviousStep: boolean) => {\n if (waitForNextStep !== null) {\n dispatch({ type: 'UPDATE_WAIT_FOR_NEXT_STEP', payload: waitForNextStep });\n }\n if (waitForPreviousStep !== null) {\n setWaitForPreviousStep(waitForPreviousStep);\n }\n };\n\n const nextMapaLeads = () => {\n const { multiStepScreenIndex } = store.getState().formInfo;\n\n handleScreenChange();\n\n // Una vez avanzamos dentro de los multisteps se activa el wait\n // previous step para volver hacia atrás dentro del propio multistep.\n if (!waitForPreviousStep || multiStepScreenIndex === 0) {\n updateWaitForNextAndPreviousStep(null, true);\n }\n\n setTimeout(() => {\n\n updateScreenChangeVariables(multiStepScreenIndex + 1);\n // Si estamos en el último paso del multistep se desactiva el\n // wait next step para poder salir del multistep y avanzar hacia la siguiente pantalla.\n if (steps[multiStepScreenIndex + 1].multiStepLastScreen) {\n updateWaitForNextAndPreviousStep(false, null);\n if (multiStepScreenIndex === 0) {\n setShowPreviousStep(false);\n } else {\n setShowPreviousStep(true);\n }\n }\n }, TIME_FOR_TRANSFORM);\n };\n\n const previousMapaLeads = () => {\n const { multiStepScreenIndex, waitForNextStep } = store.getState().formInfo;\n\n handleScreenChange();\n\n // Se desactiva el wait previous step en la segunda pantalla para que\n // en el caso de volver hacia atrás en la primera salte de step y no busque dentro de los multisteps.\n if (multiStepScreenIndex === 1) {\n updateWaitForNextAndPreviousStep(null, false);\n }\n\n if (!waitForNextStep) {\n updateWaitForNextAndPreviousStep(true, null);\n }\n\n // Se fija en la pantalla previa a la primera para que cuando se cambie\n // a la primera pantalla el CTA de anterior pase del multistep al step anterior.\n setTimeout(() => {\n updateScreenChangeVariables(multiStepScreenIndex - 1);\n }, TIME_FOR_TRANSFORM);\n };\n\n const updateScreenChangeVariables = (newMultiStepScreenIndex: number) => {\n setNextMultiStepScreenIndex(newMultiStepScreenIndex);\n dispatch({ type: 'UPDATE_MULTISTEP_SCREENINDEX', payload: newMultiStepScreenIndex });\n setSelectedStep(steps[newMultiStepScreenIndex]);\n setIsFullScreen(steps[newMultiStepScreenIndex].fullScreen);\n setShowPreviousStep(!steps[newMultiStepScreenIndex].hidePreviousStep);\n };\n\n useEffect(() => {\n dispatch({ type: 'UPDATE_MULTISTEPS', payload: steps });\n\n handleFirstLoad();\n\n return () => {\n dispatch({ type: 'UPDATE_FIRST_MAP_LOAD', payload: false });\n setShowPreviousStep(true);\n updateWaitForNextAndPreviousStep(false, false);\n };\n }, []);\n\n return selectedStep ? (\n \n \n \n ) : null;\n}\n","import { Text } from '@volkswagen-onehub/components-core';\nimport React, { useEffect, useState } from 'react';\nimport { CanalDeContacto, CarlineSelect, PantallaNombreApellido, Email, Telefono, CodigoPostal, ContactInfoWrapper } from 'src/components';\nimport { OneElementTemplate, OneElementTemplateFullScreen } from 'src/feature-app/Screen';\nimport { MapaLeads, ConfirmacionLeadsNoQuestions } from 'src/forms';\nimport {\n DetalleMotivo,\n ConsentQuestion\n} from 'src/components';\nimport { FormInfo, Steps } from 'src/types';\nimport { LeadsFormsProps } from '../LeadGenericoForm';\nimport { useInitializeLeadForm } from '../use-initialize-lead-form';\nimport { LeadGenericoController } from '../LeadGenericoController';\nimport { useIsComerciales } from 'src/feature-app/hooks';\nimport { leadsMasInformacionDealerPartialData, leadsMasInformacionPartialData } from '.';\nimport { MapaLeadsInPage, PartialDataMasInformacionConfigurador } from 'src/forms/LeadsInPage';\n\nconst getMapaFields = (inPage: boolean) => {\n if (inPage === true) {\n return ;\n } else {\n return ;\n }\n};\n\nenum MasInformacionSteps {\n Modelo,\n Mapa,\n NombreApellido,\n CodigoPostal,\n Contacto,\n EmailTelefono,\n Comentarios,\n Confirmacion,\n}\n\n\nexport function MasInformacionForm({ updatedFormData, inPage, isConfigurador, isLeadDealer }: LeadsFormsProps) {\n const isComerciales = useIsComerciales();\n\n const [partialData, setPartialData] = useState(null);\n\n useEffect(() => {\n if (updatedFormData) {\n setPartialData(updatedFormData);\n } else if (isLeadDealer) {\n setPartialData(leadsMasInformacionDealerPartialData);\n } else {\n setPartialData(leadsMasInformacionPartialData);\n }\n }, []);\n\n const defaultSteps: Steps[] = [\n {\n title: (\n <>\n ¿Qué modelo te interesa?\n \n ),\n fields: (\n <>\n {inPage ?\n } />\n :\n } />\n }\n \n ),\n screenIndex: MasInformacionSteps.Modelo,\n name: 'Modelo',\n outputs: ['modelo'],\n outputsText: ['modelo'],\n },\n isLeadDealer ? null :\n {\n screenIndex: MasInformacionSteps.Mapa,\n name: 'Mapa',\n multiStep: true,\n component: getMapaFields(inPage),\n },\n {\n title: (\n <>\n Para poder preparar tu visita, necesitamos saber quién eres\n \n ),\n fields: (\n <>\n {inPage ?\n } />\n :\n } />\n }\n \n ),\n screenIndex: MasInformacionSteps.NombreApellido,\n name: 'NombreApellido',\n outputs: ['name', 'surname', 'secondSurname'],\n outputsText: ['name', 'surname', 'secondSurname'],\n },\n {\n title: (\n <>\n También nos gustaría conocer tu código postal\n \n ),\n fields: (\n <>\n {inPage ?\n } />\n :\n } />\n }\n \n ),\n screenIndex: MasInformacionSteps.CodigoPostal,\n name: 'CodigoPostal',\n outputs: ['codigoPostal'],\n outputsText: ['codigoPostal'],\n },\n {\n title: (\n <>\n ¿Cómo prefieres que contactemos contigo?\n *\n \n ),\n fields: (\n <>\n {inPage ?\n } />\n :\n } />\n }\n \n ),\n screenIndex: MasInformacionSteps.Contacto,\n name: 'Contacto',\n outputs: ['contacto'],\n outputsText: ['contacto'],\n },\n {\n title: (\n <>\n Para ello necesitaremos tus datos de contacto\n \n ),\n fields: (\n <>\n {inPage ?\n \n \n \n \n }\n />\n :\n \n \n \n \n }\n />\n }\n \n ),\n screenIndex: MasInformacionSteps.EmailTelefono,\n name: 'EmailTelefono',\n outputs: ['cellphone', 'email'],\n outputsText: ['cellphone', '/', 'email'],\n },\n {\n title: (\n <>\n ¿Quieres saber algo en concreto?\n \n ),\n fields: (\n <>\n {inPage ?\n } />\n :\n } />\n }\n \n ),\n screenIndex: MasInformacionSteps.Comentarios,\n name: 'Comentarios',\n outputs: ['comments'],\n outputsText: ['comments'],\n },\n {\n fields: ,\n name: 'lssi',\n outputs: ['lssi'],\n },\n {\n fields: ,\n name: 'tmk',\n outputs: ['tmk'],\n },\n {\n fields: ,\n isLastStep: true,\n hidePreviousStep: true,\n name: 'Confirmacion',\n },\n ];\n const filteredSteps = defaultSteps.filter((step) => step !== null);\n\n const { loading, steps, firstStep, lastStep } = useInitializeLeadForm(filteredSteps, false, inPage);\n\n const citaVentaInfo: Partial = {\n numberOfScreens: steps.length,\n };\n\n return loading ? null : (\n \n );\n}\n","import { FormDataGroup } from 'src/types';\n\nexport const leadsMasInformacionPartialData: Partial = {\n headers: { FORM_OBJECTIVE: 'Más Información' },\n fields: {\n formFields: {},\n formularioFlag: 'masInformacion',\n formName: 'lead-mas_informacion',\n formType: 'contact',\n pageCategory: 'Más Información',\n },\n};\n\nexport const leadsMasInformacionDealerPartialData: Partial = {\n headers: { FORM_OBJECTIVE: 'Más Información' },\n fields: {\n formFields: {},\n formularioFlag: 'masInformacion',\n formName: 'lead-mas_informacion-dealer',\n formType: 'contact',\n pageCategory: 'Más Información',\n },\n};\n","import { Text, styled } from '@volkswagen-onehub/components-core';\nimport React, { useEffect, useState } from 'react';\nimport { CanalDeContacto, Email, ContactInfoWrapper, PantallaNombreApellido, Telefono, CodigoPostal, ConsentQuestion } from 'src/components';\nimport { OneElementTemplate } from 'src/feature-app/Screen/Templates';\nimport { MapaLeads, ConfirmacionLeadsNoQuestions } from 'src/forms';\nimport { FormDataGroup, FormInfo, Steps } from 'src/types';\nimport { ConfirmacionLeads } from '../ConfirmacionLeads';\nimport { useInitializeLeadForm } from '../use-initialize-lead-form';\nimport { LeadGenericoController } from '../LeadGenericoController';\nimport { useFaContent, useIsComerciales } from 'src/feature-app/hooks';\nimport { useGetBrand } from 'src/feature-app/hooks';\nimport { useSelector } from 'react-redux';\nimport { OneFormState } from 'src/types';\n\nexport enum OfertaSteps {\n Mapa,\n NombreApellido,\n CodigoPostal,\n Contacto,\n EmailTelefono,\n Confirmacion,\n}\n\nexport function OfertaForm() {\n const { dealersInfo } = useSelector((state: OneFormState) => state);\n const isComerciales = useIsComerciales();\n const brand = useGetBrand();\n const faContent = useFaContent();\n\n const carlineCode = faContent? faContent.oferta?.carline.code : dealersInfo?.oferta.carline.code;\n\n const defaultSteps: Steps[] = [\n {\n screenIndex: OfertaSteps.Mapa,\n name: 'Mapa',\n multiStep: true,\n component: ,\n },\n {\n title: (\n <>\n Para poder contactar contigo, necesitamos saber quién eres\n \n ),\n fields: } />,\n screenIndex: OfertaSteps.NombreApellido,\n name: 'NombreApellido',\n outputs: ['name', 'surname', 'secondSurname'],\n outputsText: ['name', 'surname', 'secondSurname'],\n },\n {\n title: (\n <>\n También nos gustaría conocer tu código postal\n \n ),\n fields: } />,\n screenIndex: OfertaSteps.CodigoPostal,\n name: 'CodigoPostal',\n outputs: ['codigoPostal'],\n outputsText: ['codigoPostal'],\n },\n {\n title: (\n <>\n ¿Cómo prefieres que contactemos contigo?\n *\n \n ),\n fields: } />,\n screenIndex: OfertaSteps.Contacto,\n name: 'Contacto',\n outputs: ['contacto'],\n outputsText: ['contacto'],\n },\n {\n title: (\n <>\n Para ello necesitaremos tus datos de contacto\n \n ),\n fields: (\n \n \n \n \n }\n />\n ),\n screenIndex: OfertaSteps.EmailTelefono,\n name: 'EmailTelefono',\n outputs: ['cellphone', 'email'],\n outputsText: ['cellphone', '/', 'email'],\n },\n {\n fields: ,\n screenIndex: OfertaSteps.Confirmacion,\n name: 'Confirmacion',\n isLastStep: true,\n hidePreviousStep: true,\n },\n ];\n\n //Nuevo orden test piloto solo para Golf y Polo\n const stepsNewOrder: Steps[] = [\n {\n title: (\n <>\n ¿Cómo prefieres que contactemos contigo?\n *\n \n ),\n fields: } />,\n screenIndex: 0,\n name: 'Contacto',\n outputs: ['contacto'],\n outputsText: ['contacto'],\n },\n {\n title: (\n <>\n Para ello necesitaremos tus datos de contacto\n \n ),\n fields: (\n \n \n \n \n }\n />\n ),\n screenIndex: 1,\n name: 'EmailTelefono',\n outputs: ['cellphone', 'email'],\n outputsText: ['cellphone', '/', 'email'],\n },\n {\n screenIndex: 2,\n name: 'Mapa',\n multiStep: true,\n component: ,\n },\n {\n title: (\n <>\n Para poder contactar contigo, necesitamos saber quién eres\n \n ),\n fields: } />,\n screenIndex: OfertaSteps.NombreApellido,\n name: 'NombreApellido',\n outputs: ['name', 'surname', 'secondSurname'],\n outputsText: ['name', 'surname', 'secondSurname'],\n },\n {\n title: (\n <>\n También nos gustaría conocer tu código postal\n \n ),\n fields: } />,\n screenIndex: OfertaSteps.CodigoPostal,\n name: 'CodigoPostal',\n outputs: ['codigoPostal'],\n outputsText: ['codigoPostal'],\n },\n {\n fields: ,\n screenIndex: OfertaSteps.Confirmacion,\n name: 'Confirmacion',\n isLastStep: true,\n hidePreviousStep: true,\n },\n ];\n\n const newStepsConsents: Steps[] = [\n {\n fields: ,\n name: 'lssi',\n outputs: ['lssi'],\n screenIndex: defaultSteps.length - 1,\n },\n {\n fields: ,\n name: 'tmk',\n outputs: ['tmk'],\n screenIndex: defaultSteps.length,\n },\n {\n fields: ,\n isLastStep: true,\n hidePreviousStep: true,\n name: 'Confirmacion',\n screenIndex: defaultSteps.length + 1,\n },\n ];\n\n const selectStepsOrder = (): Steps[] => {\n let stepsToAdd = [];\n //Cambio de orden para Golf y Polo\n let filteredStepsDefault = carlineCode === 30310 || carlineCode === 30205 ? defaultSteps : stepsNewOrder;\n\n if (!isComerciales) {\n stepsToAdd = newStepsConsents;\n filteredStepsDefault = [...filteredStepsDefault.filter(step => step.name !== 'Confirmacion')];\n }\n\n const finalSteps = ([...filteredStepsDefault, ...stepsToAdd]);\n\n const filteredSteps = finalSteps.filter((step) => step !== null);\n\n return filteredSteps;\n }\n\n const { loading, steps, firstStep, lastStep } = useInitializeLeadForm(selectStepsOrder(), true);\n\n const citaVentaData: Partial = {\n headers: isComerciales ? { DESC_FORMOBJECTIVE: 'SF201903221335'} : {FORM_OBJECTIVE : 'Presupuesto' },\n fields: {\n formFields: {},\n formularioFlag: 'Presupuesto',\n formName: 'lead-oferta',\n formType: 'quote',\n pageCategory: (!isComerciales) ? 'Oferta piloto consentimientos' : 'Oferta',\n },\n };\n\n const citaVentaInfo: Partial = {\n numberOfScreens: steps.length,\n };\n\n return loading ? null : (\n \n );\n}\n","import { Text } from '@volkswagen-onehub/components-core';\nimport React, { useEffect, useState } from 'react';\nimport {\n CanalDeContacto,\n CarlineSelect,\n ContactInfoWrapper,\n PantallaNombreApellido,\n Email,\n Telefono,\n CodigoPostal,\n ConsentQuestion\n} from 'src/components';\nimport { OneElementTemplate, OneElementTemplateFullScreen } from 'src/feature-app/Screen';\nimport { MapaLeads, ConfirmacionLeadsNoQuestions } from 'src/forms';\nimport { FormInfo, Steps } from 'src/types';\nimport { useIsComerciales } from 'src/feature-app/hooks';\nimport { LeadGenericoController } from '../LeadGenericoController';\nimport { LeadsFormsProps } from '../LeadGenericoForm';\nimport { useInitializeLeadForm } from '../use-initialize-lead-form';\nimport { leadsPresupuestoDealerPartialData, leadsPresupuestoPartialData } from '.';\nimport { MapaLeadsInPage, PresupuestoPartialDataConfigurador } from 'src/forms/LeadsInPage';\n\nconst getMapaFields = (inPage: boolean) => {\n if (inPage === true) {\n return ;\n } else {\n return ;\n }\n};\n\nexport enum PresupuestoSteps {\n Modelo,\n Mapa,\n NombreApellido,\n CodigoPostal,\n Contacto,\n EmailTelefono,\n Confirmacion,\n}\n\nexport function PresupuestoForm({ updatedFormData, isOfertasOrMatch, inPage, isConfigurador, isLeadDealer }: LeadsFormsProps) {\n const isComerciales = useIsComerciales();\n\n const [partialData, setPartialData] = useState(null);\n\n useEffect(() => {\n if (updatedFormData) {\n setPartialData(updatedFormData);\n } else if(isLeadDealer){\n setPartialData(leadsPresupuestoDealerPartialData);\n }\n else {\n setPartialData(leadsPresupuestoPartialData);\n }\n }, []);\n\n const defaultSteps: Steps[] = [\n {\n title: (\n <>\n ¿Qué modelo te interesa?\n \n ),\n fields: (\n <>\n {inPage ?\n } />\n :\n } />\n }\n \n ),\n screenIndex: PresupuestoSteps.Modelo,\n name: 'Modelo',\n outputs: ['modelo'],\n outputsText: ['modelo'],\n },\n isLeadDealer ? null :\n {\n screenIndex: PresupuestoSteps.Mapa,\n name: 'Mapa',\n multiStep: true,\n component: getMapaFields(inPage),\n },\n {\n title: (\n <>\n Para poder contactar contigo, necesitamos saber quién eres\n \n ),\n fields: (\n <>\n {inPage ?\n \n \n \n }\n />\n :\n \n \n \n }\n />\n }\n \n ),\n screenIndex: PresupuestoSteps.NombreApellido,\n name: 'NombreApellido',\n outputs: ['name', 'surname', 'secondSurname'],\n outputsText: ['name', 'surname', 'secondSurname'],\n },\n {\n title: (\n <>\n También nos gustaría conocer tu código postal\n \n ),\n fields: (\n <>\n {inPage ?\n } />\n :\n } />\n }\n \n ),\n screenIndex: PresupuestoSteps.CodigoPostal,\n name: 'CodigoPostal',\n outputs: ['codigoPostal'],\n outputsText: ['codigoPostal'],\n },\n {\n title: (\n <>\n ¿Cómo prefieres que contactemos contigo?\n *\n \n ),\n fields: (\n <>\n {inPage ?\n } />\n :\n } />\n }\n \n ),\n screenIndex: PresupuestoSteps.Contacto,\n name: 'Contacto',\n outputs: ['contacto'],\n outputsText: ['contacto'],\n },\n {\n title: (\n <>\n Para ello necesitaremos tus datos de contacto\n \n ),\n fields: (\n <>\n {inPage ?\n \n \n \n \n }\n />\n :\n \n \n \n \n }\n />\n }\n \n ),\n screenIndex: PresupuestoSteps.EmailTelefono,\n name: 'EmailTelefono',\n outputs: ['cellphone', 'email'],\n outputsText: ['cellphone', '/', 'email'],\n },\n {\n fields: ,\n name: 'lssi',\n outputs: ['lssi'],\n },\n {\n fields: ,\n name: 'tmk',\n outputs: ['tmk'],\n },\n {\n fields: ,\n isLastStep: true,\n hidePreviousStep: true,\n name: 'Confirmacion',\n },\n ];\n\n const filteredSteps = defaultSteps.filter((step) => step !== null);\n\n const { loading, steps, firstStep, lastStep } = useInitializeLeadForm(filteredSteps, false, inPage);\n\n const citaVentaInfo: Partial = {\n numberOfScreens: steps.length,\n };\n\n return loading ? null : (\n \n );\n}\n","import { FormDataGroup } from 'src/types';\n\nexport const leadsPresupuestoPartialData: Partial = {\n headers: { FORM_OBJECTIVE: 'Presupuesto' },\n fields: {\n formFields: {},\n formularioFlag: 'presupuesto',\n formName: 'lead-presupuesto',\n formType: 'quote',\n pageCategory: 'Presupuesto',\n },\n\n};\n\nexport const leadsPresupuestoDealerPartialData: Partial = {\n headers: { FORM_OBJECTIVE: 'Presupuesto' },\n fields: {\n formFields: {},\n formularioFlag: 'presupuesto',\n formName: 'lead-presupuesto-dealer',\n formType: 'quote',\n pageCategory: 'Presupuesto',\n },\n};\n","import React from 'react';\nimport { MasInformacionForm } from '../MasInformacion';\nimport { leadsStockPartialData } from '.';\n\nexport function StockForm() {\n return ;\n}\n","import { FormDataGroup } from 'src/types';\n\nexport const leadsStockPartialData: Partial = {\n headers: { FORM_OBJECTIVE: 'Stock' },\n fields: {\n formFields: { COMMENTS_BRAND: 'Usuario interesado en vehículos de stock sin haber encontrado disponibilidad en el rango de KM seleccionados' },\n formularioFlag: 'masInformacion',\n formName: 'lead-stock',\n formType: 'contact',\n pageCategory: 'Más Información',\n },\n};\n\nexport const leadsStockInPagePartialData: Partial = {\n headers: { FORM_OBJECTIVE: 'Stock' },\n fields: {\n ...leadsStockPartialData.fields,\n formFields: undefined\n },\n};\n","import { Text } from '@volkswagen-onehub/components-core';\nimport React, { useEffect, useState } from 'react';\nimport {\n CanalDeContacto,\n CarlineSelect,\n ContactInfoWrapper,\n PantallaNombreApellido,\n Email,\n Telefono,\n CodigoPostal,\n ConsentQuestion\n} from 'src/components';\nimport { ConfirmacionLeadsNoQuestions } from 'src/forms';\nimport { OneElementTemplate, OneElementTemplateFullScreen } from 'src/feature-app/Screen';\nimport { FormInfo, Steps } from 'src/types';\nimport { LeadsFormsProps } from '../LeadGenericoForm';\nimport { MapaLeads } from '../MapaLeads';\nimport { useInitializeLeadForm } from '../use-initialize-lead-form';\nimport { LeadGenericoController } from '../LeadGenericoController';\nimport { useIsComerciales } from 'src/feature-app/hooks';\nimport { leadsTestDriveDealerPartialData, leadsTestDrivePartialData } from '.';\nimport { MapaLeadsInPage, PartialDataTestDriveConfigurador } from 'src/forms/LeadsInPage';\n\n\nconst getMapaFields = (inPage: boolean) => {\n if (inPage === true) {\n return ;\n } else {\n return ;\n }\n};\n\nexport enum TestDriveSteps {\n Modelo,\n Mapa,\n NombreApellido,\n CodigoPostal,\n Contacto,\n EmailTelefono,\n Confirmacion,\n}\n\nexport function TestDriveForm({ updatedFormData, inPage, isConfigurador, isLeadDealer }: LeadsFormsProps) {\n const isComerciales = useIsComerciales();\n const [partialData, setPartialData] = useState(null);\n\n useEffect(() => {\n if (updatedFormData) {\n setPartialData(updatedFormData);\n } if (isLeadDealer) {\n setPartialData(leadsTestDriveDealerPartialData);\n } else {\n setPartialData(leadsTestDrivePartialData);\n }\n }, []);\n\n const defaultSteps: Steps[] = [\n {\n title: (\n <>\n ¿Qué modelo te apetece conducir?\n \n ),\n fields: (\n <>\n {inPage ?\n } />\n :\n } />\n }\n \n ),\n screenIndex: TestDriveSteps.Modelo,\n name: 'Modelo',\n outputs: ['modelo'],\n outputsText: ['modelo'],\n },\n isLeadDealer ? null :\n {\n screenIndex: TestDriveSteps.Mapa,\n name: 'Mapa',\n multiStep: true,\n component: getMapaFields(inPage),\n },\n {\n title: (\n <>\n Para poder contactar contigo, necesitamos saber quién eres\n \n ),\n fields: (\n <>\n {inPage ?\n } />\n :\n } />\n }\n \n ),\n screenIndex: TestDriveSteps.NombreApellido,\n name: 'NombreApellido',\n outputs: ['name', 'surname', 'secondSurname'],\n outputsText: ['name', 'surname', 'secondSurname'],\n },\n {\n title: (\n <>\n También nos gustaría conocer tu código postal\n \n ),\n fields:\n (\n <>\n {inPage ?\n } />\n :\n } />\n }\n \n ),\n screenIndex: TestDriveSteps.CodigoPostal,\n name: 'CodigoPostal',\n outputs: ['codigoPostal'],\n outputsText: ['codigoPostal'],\n },\n {\n title: (\n <>\n ¿Cómo prefieres que contactemos contigo?\n *\n \n ),\n fields: (\n <>\n {inPage ?\n } />\n :\n } />\n }\n \n ),\n screenIndex: TestDriveSteps.Contacto,\n name: 'Contacto',\n outputs: ['contacto'],\n outputsText: ['contacto'],\n },\n {\n title: (\n <>\n Para ello necesitaremos tus datos de contacto\n \n ),\n fields: (\n <>\n {inPage ?\n \n \n \n \n }\n />\n :\n \n \n \n \n }\n />\n }\n \n ),\n screenIndex: TestDriveSteps.EmailTelefono,\n name: 'EmailTelefono',\n outputs: ['cellphone', 'email'],\n outputsText: ['cellphone', '/', 'email'],\n },\n {\n fields: ,\n name: 'lssi',\n outputs: ['lssi'],\n },\n {\n fields: ,\n name: 'tmk',\n outputs: ['tmk'],\n },\n {\n fields: ,\n isLastStep: true,\n hidePreviousStep: true,\n name: 'Confirmacion',\n },\n ];\n\n const filteredSteps = defaultSteps.filter((step) => step !== null);\n\n const { loading, steps, firstStep, lastStep } = useInitializeLeadForm(filteredSteps, false, inPage);\n\n const citaVentaInfo: Partial = {\n numberOfScreens: steps.length,\n };\n\n return loading ? null : (\n \n );\n}\n","import { FormDataGroup } from 'src/types';\n\nexport const leadsTestDrivePartialData: Partial = {\n headers: { FORM_OBJECTIVE: 'Test Drive' },\n fields: {\n formFields: {},\n formularioFlag: 'testDrive',\n formName: 'lead-test_drive',\n formType: 'testdrive',\n pageCategory: 'Test Drive',\n },\n};\n\nexport const leadsTestDriveDealerPartialData: Partial = {\n headers: { FORM_OBJECTIVE: 'Test Drive' },\n fields: {\n formFields: {},\n formularioFlag: 'testDrive',\n formName: 'lead-test_drive-dealer',\n formType: 'testdrive',\n pageCategory: 'Test Drive',\n },\n};\n","import React, { useEffect, useState } from 'react';\nimport { connect, useDispatch, useSelector } from 'react-redux';\nimport { useTrackingManager, getTrackingForm } from 'src/feature-app';\nimport { useGetBrand } from 'src/feature-app/hooks';\nimport { RenderController } from 'src/feature-app/Screen';\nimport { DealersInfo, FormDataFields, FormInfo, OneFormState, Steps } from 'src/types';\nimport { ThankYouTitle, ThankYouFields } from 'src/components';\ninterface ThankYouProps {\n formData: FormDataFields;\n formInfo: FormInfo;\n dealersInfo: DealersInfo;\n inPage?: boolean;\n}\n\nconst copysThankYou = [\n {\n name: 'lead-presupuesto',\n titleCopyRegular: 'Pronto recibirás',\n titleCopyBold: 'el presupuesto para tu ',\n bodyCopy: ['Un asesor contactará contigo para hacerte llegar la información que necesitas.'],\n },\n {\n name: 'lead-oferta',\n titleCopyRegular: 'Estás muy cerca de conducir',\n titleCopyBold: 'tu ',\n bodyCopy: ['Un asesor contactará contigo muy pronto para darte todos los detalles sobre esta oferta.'],\n },\n {\n name: 'lead-match',\n titleCopyRegular: 'Estás muy cerca de conducir',\n titleCopyBold: 'tu ',\n bodyCopy: ['Un asesor contactará muy pronto contigo para hacerte una oferta a medida.'],\n },\n {\n name: 'lead-mas_informacion',\n titleCopyRegular: 'Pronto recibirás',\n titleCopyBold: 'más información sobre el ',\n bodyCopy: ['Un asesor contactará contigo para responder a todas tus preguntas.'],\n },\n {\n name: 'lead-stock',\n titleCopyRegular: 'Pronto ',\n titleCopyBold: 'responderemos a tus preguntas',\n bodyCopy: ['Un asesor contactará contigo para explicártelo todo sobre nuestros modelos con disponibilidad inmediata.'],\n },\n {\n name: 'lead-cita',\n titleCopyRegular: 'Te esperamos en',\n titleCopyBold: '',\n bodyCopy: [\n 'Ya hemos recibido tu solicitud, ',\n '. Muy pronto, un asesor contactará contigo para terminar de cerrar tu cita.',\n ],\n },\n {\n name: 'lead-test_drive',\n titleCopyRegular: 'Te esperamos en',\n titleCopyBold: '',\n bodyCopy: [\n 'Un asesor te llamará pronto para terminar de confirmar contigo los detalles de la prueba de conducción.',\n ],\n },\n];\n\nfunction ThankYouLeads(props: ThankYouProps) {\n const { dealersInfo, inPage } = props;\n const { formInfo, formData } = useSelector((state: OneFormState) => state);\n const { formResponse } = formInfo;\n const { modelo, formName, name: nombre } = formData.fields;\n const { oferta } = dealersInfo;\n const { match } = dealersInfo;\n\n const dispatch = useDispatch();\n const brand = useGetBrand();\n const trackingManager = useTrackingManager();\n\n const [completeInfo, setCompletInfo] = useState(null);\n const [completarBold, setCompletarBold] = useState(null);\n const [bodyCopy, setbodyCopy] = useState('');\n const [ctaUrl, setCtaUrl] = useState(null);\n\n\n useEffect(() => {\n // Thank you page no es gestionado como un step pero sí lo haremos en la analítica. Por eso Modificamos formInfo después del submit y antes del RESET\n const screenIndexThankyou = formInfo.numberOfScreens;\n\n dispatch({ type: 'SET_FORM_SUBMITTED', payload: true });\n dispatch({ type: 'SET_FORM_INFO', payload: { step: { screenIndex: screenIndexThankyou, name: 'ThankYou' } } });\n\n const aux = copysThankYou.filter((a: any) => {\n return formName.includes(a.name);\n });\n setCompletInfo(aux);\n\n trackingManager.trackFormSubmissionSuccessMessageLoad(\n {\n contentId: undefined,\n },\n getTrackingForm(formResponse)\n );\n }, []);\n\n useEffect(() => {\n if (completeInfo && completeInfo.length > 0) {\n\n if (completeInfo[0].bodyCopy.length === 1) {\n setbodyCopy(completeInfo[0].bodyCopy[0]);\n } else {\n const aux = completeInfo[0].bodyCopy[0] + nombre + completeInfo[0].bodyCopy[1];\n setbodyCopy(aux);\n }\n\n if (formName === 'lead-oferta') {\n setCompletarBold(oferta.carline.title);\n } else if (formName === 'lead-match') {\n setCompletarBold(match.carline.title);\n } else if (formName === 'lead-stock') {\n setCompletarBold('');\n } else {\n if (formName.includes('lead-presupuesto') || formName.includes('lead-mas_informacion')) {\n setCompletarBold(modelo);\n } else {\n setCompletarBold(dealersInfo.selectedInstallation.VGED_CommercialName__c);\n }\n }\n }\n }, [completeInfo]);\n\n useEffect(() => {\n if (formName === 'lead-oferta') {\n if (brand === 'V') {\n setCtaUrl(`https://www.volkswagen.es/es/modelos/${oferta.carline.name}.html`);\n } else if (brand === 'N') {\n setCtaUrl(`https://www.volkswagen-comerciales.es/es/modelos/${oferta.carline.name}.html`);\n }\n } else if (formName === 'lead-match') {\n setCtaUrl(`https://www.volkswagen.es/es/modelos/${match.carline.name}.html`);\n }\n }, [dealersInfo]);\n\n const ofertasComercialesFields = 'En breve te llamaremos desde un número terminado en 904.';\n\n const screen: Steps = {\n title: (\n <>\n {completeInfo && completeInfo.length > 0 ? (\n inPage ?\n \n : (\n formName === 'lead-oferta' && brand === 'N' ?\n \n :\n \n )\n\n ) : null\n }\n \n ),\n fields: (\n <>\n {\n inPage ?\n \n :\n \n }\n \n ),\n };\n return (\n \n );\n}\n\nconst mapStateToProps = (state: OneFormState) => {\n return {\n formData: state.formData.fields,\n formInfo: state.formInfo,\n dealersInfo: state.dealersInfo,\n };\n};\n\nconst ConnectedComponent = connect(mapStateToProps)(ThankYouLeads);\n\nexport { ConnectedComponent as ThankYouLeads };\n","import { getMarketingCode, getModelFilter, getOption } from 'src/bff/get-marketing-code';\nimport { DealersInfo, FormDataGroup, Offer } from 'src/types';\nimport { formatHeaders } from '../../format-fields';\nimport { isOfertasForm } from '../LeadGenericoForm';\n\nexport const getOfertasData = async (formData: FormDataGroup, dealersInfo: DealersInfo) => {\n const { fields } = formData;\n const { oferta } = dealersInfo;\n\n if (!isOfertasForm(fields.formName)) {\n return null;\n } else {\n const headers = {\n FORM_NAME: 'vw-oneform-lead-oferta',\n };\n\n const ofertaFields = {\n 'fields[VEH_INTEREST_ID]': oferta.carlineCode,\n 'fields[VEH_INTEREST_MODEL]': `${oferta.carlineNuevo ? 'Nuevo ' : ''}${oferta.carlineTitle}`,\n 'fields[VEH_INTEREST_FINANCIAL_PRODUCT]': oferta.financiacionText?.slice(4),\n 'fields[VEH_INTEREST_OFFER_DETAIL]': createOfferPrice(oferta),\n 'fields[COMMENTS_BRAND]': getObservationBrand(oferta),\n };\n\n return { ...formatHeaders(headers), ...ofertaFields };\n }\n};\n\nexport const getOfertasComercialesData = async (formData: FormDataGroup, dealersInfo: DealersInfo) => {\n const { fields } = formData;\n const { oferta } = dealersInfo;\n\n if (!isOfertasForm(fields.formName)) {\n return null;\n } else {\n const headers = {\n COD_FORM_ID: 'vw-oneform-lead-oferta',\n };\n const { response: marketingCodeResponse } = await getMarketingCode(oferta.marketingCode);\n\n const salesgroup = getOption(\"SALESGROUP\",marketingCodeResponse?.content.consolidatedData.options);\n\n const ofertaFields = {\n 'fields[COD_INTEREST_CARLINE]': oferta.carline.code,\n 'fields[DESC_INTEREST_CARLINE]': `${oferta.carline.nuevo ? 'Nuevo ' : ''}${oferta.carline.title}`,\n 'fields[DESC_FINANCIAL_PRODUCT]': oferta.financiacionText.slice(4),\n 'fields[DESC_MODEL_OF_INTEREST]': `${salesgroup?.option.description}`,\n 'fields[DESC_MODEL_OF_INTEREST_2]': `${salesgroup?.option.description} - ${oferta.financiacionText.replace('con ', '')} - ${oferta.modalidad} ${oferta.cuotaText}`, // CONSULTAR\n 'fields[CODE_MODEL_VERSION]': `${oferta.carline.code}_${salesgroup?.option.code.replace('SALESGROUP:','')}`,\n 'fields[DESC_LOPD]': 'PERMITE',\n\n 'fields[DESC_VEH_OFFER]': createOfferPrice(oferta),\n };\n\n return { ...formatHeaders(headers), ...ofertaFields };\n }\n};\n\nconst createOfferPrice = (offer: Offer) => {\n return `Cuota: ${offer.cuota} Eur / \\r\\nPeriodicidad Cuota: ${offer.cuotaTipo} / \\r\\nNum Cuotas: ${offer.plazos\n } / \\r\\nEntrada: ${offer.cuotaEntrada} Eur / \\r\\nCuota final: ${offer.cuotaFinal} Eur ${offer.tin || offer.tae ? '/' : ''\n }\\r\\n${offer.tin ? `TIN: ${offer.tin}% ${offer.tae ? '/ \\r\\n' : '\\r\\n'}` : ''}${offer.tae ? `TAE: ${offer.tae}%\\r\\n` : ''\n }`;\n};\n\nconst getObservationBrand = (oferta: Offer) => {\n if (!oferta.promociones || oferta.promociones.length === 0) {\n return null;\n }\n\n return oferta.promociones.map((promo) => promo.name);\n};\n","export const appendJsonKey = (result: any) => `JSONKEY${JSON.stringify(result)}`;\n","import { appendJsonKey } from 'src/forms';\nimport { DealersData, FormDataGroup } from 'src/types';\n\nexport const isCalculadoraForm = (formName: string) => formName === 'prospect-posventa-calculadora';\n\nexport const getCalculadoraData = (formData: FormDataGroup) => {\n const { fields } = formData;\n const dealer: DealersData = fields.dealer;\n\n if (!isCalculadoraForm(fields.formName)) {\n return null;\n } else {\n const calculadoraFields = {\n 'fields[DESC_DEALER_CODE]': dealer?.dmsInfo?.dealerId?.codInstalacion,\n 'fields[DESC_DEALER_CODE_KVPS]': dealer?.kvps,\n 'fields[DESC_DEALER]': dealer?.name,\n 'fields[DESC_DEALER_ADDRESS]': getAddress(dealer),\n 'fields[NUM_PHONE_ALTERNATIVE]': dealer?.markerInfo?.dealerInfo?.phone,\n 'fields[DESC_AUXFIELD1]': dealer?.markerInfo?.dealerInfo?.mail,\n 'fields[DESC_VEH_PLATE]': fields.matricula,\n 'fields[DESC_VEH_PLATE_DATE]': fields.anoMatriculacion + ' 00:00:00',\n 'fields[DESC_ACTUAL_VEHICLE_MODEL]': fields.modelo,\n 'fields[DESC_RATING_MILEAGE]': fields.kilometros,\n 'fields[DESC_BUDGET]': appendJsonKey(fields.budget),\n 'fields[DESC_AUXFIELD11]': fields.deepLink,\n };\n\n return { ...calculadoraFields };\n }\n};\n\nconst getAddress = (dealerData: DealersData) => {\n const { address, zipCode, city, province, country } = dealerData?.markerInfo?.dealerInfo;\n return `${address} ${zipCode} ${city} ${province} ${country}`;\n};\n","import { DealersInfo } from 'src/types';\n\nexport const getCodInterestCarline = (dealersInfo: DealersInfo, code: string) => {\n const { selectedCarline } = dealersInfo;\n\n if (!code && !selectedCarline) return '';\n if (code && !selectedCarline) {\n return code;\n }\n\n return String(selectedCarline.code);\n};\n","import { DealersInfo } from 'src/types';\n\nexport const getDescInterestCarline = (dealersInfo: DealersInfo, modelo: string) => {\n const { selectedCarline } = dealersInfo;\n\n if (!modelo && !selectedCarline) return '';\n if (modelo && !selectedCarline) {\n return modelo;\n }\n\n return `${selectedCarline.nuevo ? 'Nuevo ' : ''}${selectedCarline.title}`;\n};\n","import { OneFormContent } from 'src';\nimport { appendJsonKey } from 'src/forms';\nimport { getFeatures, getMarketingCode, getModelFilter, getOption } from 'src/bff/get-marketing-code';\nimport {\n DealersInfo,\n FormDataGroup,\n HighlightsReturn,\n LuggageReturn,\n MatchSelectedOptions,\n Offer,\n PassengersTypes,\n RankedPreconfiguration,\n UsageReturn,\n} from 'src/types';\n\nconst getMatchHash = () => {\n const searchParams = new URLSearchParams(window?.location?.search);\n const hash = searchParams.get('match-app');\n return hash;\n};\n\nexport const isMatchForm = (formName: string) => formName === 'lead-match' || formName === 'prospect-match';\n\nexport const getMatchData = async (formData: FormDataGroup, dealersInfo: DealersInfo, faContent: OneFormContent) => {\n const { fields } = formData;\n const { match } = dealersInfo;\n\n if (!isMatchForm(fields.formName)) {\n return null;\n } else {\n const { response: marketingCodeResponse } = await getMarketingCode(match.marketingCode);\n\n const salesgroup = getOption(\"SALESGROUP\",marketingCodeResponse?.content.consolidatedData.options);\n const type = getOption(\"TYPE\",marketingCodeResponse?.content.consolidatedData.options);\n const baseType = getOption(\"BASETYPE\",marketingCodeResponse?.content.consolidatedData.options);\n const equipmentLine = getModelFilter(\"EquipmentLine\",marketingCodeResponse?.content.consolidatedData.meta.modelFilter);\n\n const matchFields = {\n ...marketingCodeFields,\n // 'fields[COD_INTEREST_CARLINE]': match?.carlineCode,\n // 'fields[DESC_INTEREST_CARLINE]': match?.carlineTitle,\n // 'fields[DESC_FINANCIAL_PRODUCT]': match?.financiacionText?.slice(4),\n // 'fields[DESC_VEH_MARKETING_CODE]': match?.marketingCode,\n // 'fields[DESC_VEH_OFFER_PRICE]': createOfferPrice(match),\n // 'fields[COD_INTEREST_PR]': getFeatures(response?.consolidatedData?.features),\n 'fields[CREATIVITY_PERSONALIZATION_DATA]': getMatchHash(),\n 'fields[MATCH_AFFINITY]': match?.affinity,\n 'fields[MATCH_PRICE]': match?.precio,\n 'fields[MATCH_DGT_BADGE]': match?.etiquetaDGT.toUpperCase(),\n 'fields[MATCH_USER_JOURNEY]': fields?.argumentatives,\n };\n\n const matchOptions = getMatchOptions(faContent?.matchOptions);\n\n return { ...matchFields, ...matchOptions };\n }\n};\n\n\n\nconst getMatchOptions = (options: MatchSelectedOptions) => {\n if (!options) {\n return null;\n }\n\n return {\n 'fields[MATCH_BUDGET]': options.budget,\n 'fields[MATCH_COMPANION]': appendJsonKey(getPassengers(options.passengers)),\n 'fields[MATCH_TRIP]': appendJsonKey(getUsage(options.usage)),\n 'fields[MATCH_BAGGAGE]': appendJsonKey(getLuggage(options.luggage)),\n 'fields[MATCH_CAR_CHARACTERISTICS]': appendJsonKey(getHighlights(options.highlights)),\n 'fields[MATCH_ENGINE]': options.fuel,\n };\n};\n\nconst getPassengers = (passengers: PassengersTypes) => {\n if (!Array.isArray(passengers)) {\n return { adult: 0, kid: 0 };\n }\n return { adult: passengers[0], kids: passengers[1] };\n};\n\nconst getLuggage = (lugagge: number[]): string[] => {\n const lugaggeOptions: LuggageReturn[] = [\n 'unaMaleta',\n 'escapada',\n 'unaSemana',\n 'unMes',\n 'mascota',\n 'bici',\n 'surf',\n 'snow',\n ];\n const [unaMaleta, escapada, unaSemana, unMes, mascota, bici, surf, snow] = lugagge;\n const options = { unaMaleta, escapada, unaSemana, unMes, mascota, bici, surf, snow };\n\n return lugaggeOptions.filter((option) => options[option] === 1);\n};\n\nconst getUsage = (usage: number[]): string[] => {\n const usageOptions: UsageReturn[] = ['urban', 'interurban', 'long', 'allterrain'];\n const [urban, interurban, long, allterrain] = usage;\n const options = { urban, interurban, long, allterrain };\n\n return usageOptions.filter((option) => options[option] === 1);\n};\n\nconst getHighlights = (highlights: number[]): string[] => {\n const hihglightsOptions: HighlightsReturn[] = [\n 'atrevido',\n 'comodo',\n 'deportivo',\n 'sostenible',\n 'elegante',\n 'seguro',\n 'sonido',\n 'tecnologico',\n ];\n const [atrevido, comodo, deportivo, sostenible, elegante, seguro, sonido, tecnologico] = highlights;\n const options = { atrevido, comodo, deportivo, sostenible, elegante, seguro, sonido, tecnologico };\n\n return hihglightsOptions.filter((option) => options[option] === 1);\n};\n\nconst createOfferPrice = (match: RankedPreconfiguration) => {\n return `Precio final de la configuración: ${match.precio}Eur`;\n};\n","import { SalesGroupInfo } from 'src/types';\n\nexport const getSalesGroup = (salesGroup: SalesGroupInfo) => {\n let salesGroupInfo = null;\n\n if (salesGroup) {\n salesGroupInfo = {\n 'fields[COD_VEH_SALESGROUP]': salesGroup.salesGroupId,\n 'fields[DESC_VEH_SALESGROUP]': salesGroup.salesGroupName,\n };\n }\n return salesGroupInfo;\n};\n\n","export const removePTags = (htmlString: string) => {\n const regex = /<\\/?p[^>]*>/g;\n return htmlString.replace(regex, '');\n}","\nimport { useEffect, useReducer } from 'react';\nimport { useDispatch } from 'react-redux';\nimport { getDataUrl, getSalesgroups } from 'src/bff';\nimport { OneFormContent, useFaContent, useFeatureServices } from 'src/feature-app';\nimport { findCarlineFromSalesgroup, findCarline, isCarlineMode, isConfiguratorMode } from 'src/components';\nimport { CarlineBase, CarlinesWithSalesgroups, SalesGroupInfo, Steps } from 'src/types';\nimport { useIsComerciales } from 'src/feature-app/hooks';\nimport { removeStep, resetStepsScreenIndex } from '../helpers/add-remove-steps';\nimport { getMarketingCode } from 'src/bff';\n\n\nconst getLastItemOfSteps = (steps: Steps[]) => steps[steps.length - 1];\nconst carlineInFaContent = (faContent: OneFormContent) => faContent?.carlines && faContent.carlines.length === 1;\nconst salesgroupInFaContent = (faContent: OneFormContent) =>\n faContent?.salesgroups && faContent.salesgroups.length === 1;\nconst findSalesgroup = (carline: CarlinesWithSalesgroups, salesgroupId: string) =>\n carline?.salesGroups?.find((salesgroup) => salesgroup.code === Number(salesgroupId));\n\ninterface LeadsInitialConfig {\n loading: boolean;\n steps: Steps[];\n firstStep: Steps;\n lastStep: Steps;\n}\n\nconst updateSteps = (steps: Steps[]) => {\n return {\n type: 'UPDATE_STEPS',\n payload: steps,\n };\n};\n\nconst reducer = (state: LeadsInitialConfig, action: any): LeadsInitialConfig => {\n switch (action.type) {\n case 'UPDATE_STEPS':\n return {\n ...state,\n steps: action.payload,\n firstStep: action.payload[0],\n lastStep: getLastItemOfSteps(action.payload),\n loading: false,\n };\n default:\n return state;\n }\n};\n\nconst initialState: LeadsInitialConfig = {\n loading: true,\n steps: [],\n firstStep: null,\n lastStep: null,\n};\n\nexport const createSalesgroup = (code: string | number, name: string) => {\n if (!code && !name) {\n return null;\n }\n return { salesGroupId: String(code), salesGroupName: String(name) };\n};\n\nexport function useInitializeLeadForm(\n defaultSteps: Steps[],\n isEmbedded?: boolean,\n isInPage?: boolean\n) {\n const dispatch = useDispatch();\n const faContent = useFaContent();\n const { 'car-configuration': carConfigurationService } = useFeatureServices();\n const [state, dispatchLead] = useReducer(reducer, initialState);\n const { loading, firstStep, lastStep, steps } = state;\n const isComerciales = useIsComerciales();\n\n /**\n * Functions\n */\n const requestCarlines = async () => {\n let carlines = await getSalesgroups();\n\n dispatch({ type: 'SET_CARLINES', payload: carlines });\n\n return carlines;\n };\n\n const getCarlineInfo = async (carline: string) => {\n let dataRes: any;\n await fetch(`${getDataUrl()}/getCarlineSalesgroups/${carline}`)\n .then(res => res.json())\n .then(data => dataRes = data)\n return dataRes\n }\n\n const getModelFromUrl = () => {\n const path = window.location.pathname;\n let htmlIndex: number;\n let carlineName: string;\n let salesGroup: string;\n const splittedPath = path.split(\"/\");\n splittedPath.filter((e, index) => e.includes(\".html\") && (htmlIndex = index));\n carlineName = splittedPath[htmlIndex + 1]?.replace(\".app\", \"\");\n\n const hasSalesGroup = () => splittedPath[htmlIndex + 2]?.includes(\".app\");\n hasSalesGroup() && (salesGroup = splittedPath[htmlIndex + 2]?.replace(\".app\", \"\"));\n return [carlineName, salesGroup]\n }\n\n const findAsset = (mediaAssets: any[], assetName: string) =>\n mediaAssets.find((asset) => asset.mpsId === assetName);\n\n const getAsset = (\n mediaAssets: any[],\n assetName: string\n ): string => {\n const asset = findAsset(mediaAssets, assetName);\n let assetUrl = asset.asset;\n\n if (assetUrl.includes('r-media') && assetUrl.includes('.jpg')) {\n assetUrl = assetUrl.replace('.jpg', '.png');\n }\n\n return assetUrl;\n };\n\n /**\n * Set initial Product Data based on Form Context and returns Carline and Salesgroup.\n */\n const setInitialProductData = (carlines: CarlineBase[]): { carline: CarlineBase; salesgroup: SalesGroupInfo } => {\n let carlineCode: string = carConfigurationService.get().carlineId;\n let salesgroupId = carConfigurationService.get().salesGroupId;\n\n let carline = undefined;\n let salesgroup = undefined;\n\n if ((isEmbedded && faContent?.oferta) || (isEmbedded && faContent?.match)) {\n // Ofertas or Match Form Embedded\n let offerOrPreconfiguration = faContent?.oferta ? faContent.oferta : faContent.match;\n const carline = findCarline(carlines, offerOrPreconfiguration.carline.code);\n const salesgroup = createSalesgroup(\n faContent.marketingCodeConfig?.SalesgroupId,\n faContent.marketingCodeConfig?.SalesgroupName\n );\n\n //Initialize MarketingCode and store it\n getMarketingCode(offerOrPreconfiguration.marketingCode)\n .then((res) => {\n console.log(res);\n dispatch({\n type: 'UPDATE_FIELDS',\n payload: { marketingCodeResponse: res.response },\n });\n\n })\n .catch((err) => {\n\n });\n\n dispatch({ type: 'SET_OFERTA', payload: offerOrPreconfiguration });\n } else if (carlineCode && salesgroupId) {\n // Showroom Context\n carline = findCarline(carlines, Number(carlineCode), Number(salesgroupId));\n const salesgroupCarline = findSalesgroup(carline, salesgroupId);\n salesgroup = createSalesgroup(salesgroupCarline?.code, salesgroupCarline?.name);\n } else if (carlineInFaContent(faContent)) {\n carline = findCarline(carlines, (faContent.carlines[0]));\n } else if (salesgroupInFaContent(faContent) && !isCarlineMode(faContent)) {\n // Salesgroup in faContent\n carline = findCarlineFromSalesgroup(carlines, Number(faContent.salesgroups[0]));\n const salesgroupCarline = findSalesgroup(carline, String(faContent.salesgroups[0]));\n salesgroup = createSalesgroup(salesgroupCarline?.code, salesgroupCarline?.name);\n }\n\n dispatch({\n type: 'SET_SELECTED_CARLINE',\n payload: carline\n });\n\n if (carline){\n dispatch({\n type: 'UPDATE_FIELDS',\n payload: { modelo: carline.title },\n });\n }\n\n dispatch({\n type: 'SET_SALESGROUP',\n payload: salesgroup,\n });\n\n return { carline, salesgroup };\n };\n\n const removeStepAndReset = (steps: Steps[], stepName: string) => {\n let updatedSteps = [...steps];\n updatedSteps = removeStep(steps, stepName);\n updatedSteps = resetStepsScreenIndex(steps);\n return updatedSteps;\n };\n\n /**\n * Set initial Form with Marketing Code\n */\n const useLeadsWithMarketingCode = (marketingCode: string) => {\n getMarketingCode(marketingCode)\n .then((res) => {\n const D6MOFASideview = getAsset(\n res.response.content?.consolidatedData?.meta.mediaAssets,\n 'D6MOFASideview'\n );\n const D6Explore1 = getAsset(\n res.response.content?.consolidatedData?.meta.mediaAssets,\n 'D6Explore1'\n );\n console.log(res);\n const modelName = res.marketingCodeConfig.ModelName;\n const marketingCodeData = { marketingCode, modelName, mediaAssets: { D6MOFASideview, D6Explore1 } };\n\n let finalSteps: Steps[] = [...defaultSteps];\n\n finalSteps = removeStepAndReset(finalSteps, 'Modelo');\n\n if (!isComerciales) {\n finalSteps = removeStepAndReset(finalSteps, 'CodigoPostal');\n }\n\n dispatchLead(updateSteps(finalSteps));\n\n dispatch({ type: 'SET_DELETE_CLOSE_AND_PREVIOUS', payload: true });\n\n dispatch({\n type: 'UPDATE_FIELDS',\n payload: { marketingCodeData, marketingCodeResponse: res.response },\n });\n })\n .catch((err) => {\n requestCarlines().then((carlines) => {\n const { carline, salesgroup } = setInitialProductData(carlines);\n\n let finalSteps: Steps[] = [...defaultSteps];\n\n if (!isComerciales) {\n finalSteps = removeStepAndReset(finalSteps, 'CodigoPostal');\n }\n if (carline) {\n finalSteps = removeStepAndReset(finalSteps, 'Modelo');\n }\n dispatchLead(updateSteps(finalSteps));\n });\n // console.log(err, 'error');\n });\n\n };\n\n /**\n * Set initial form with Model\n */\n const useLeadsWithModel = async (carline: string, salesGroup?: string) => {\n await getCarlineInfo(carline)\n .then((res) => {\n let colorCode = res.carline.colores.exterior.hexadecimal;\n let D6MOFASideview: string, D6Explore1: string, modelName: string, salesGroupData: any;\n const carlineCode: number = res.carline.code;\n\n const setDataNoSalesGroup = () => {\n D6MOFASideview = res.carline.mediaAssets.D6MOFASideview;\n D6Explore1 = res.carline.mediaAssets.D6MainStageExterior;\n modelName = res.carline.title;\n }\n\n if (salesGroup) {\n const salesGroupCoincidences = res.carline.salesgroups.filter((e) => (e.name === salesGroup));\n salesGroupData = salesGroupCoincidences[0];\n }\n if (salesGroupData) {\n try {\n D6MOFASideview = salesGroupData.mediaAssets.D6MOFASideview;\n D6Explore1 = salesGroupData.mediaAssets.D6MainStageExterior;\n colorCode = salesGroupData.colores?.exterior?.hexadecimal;\n modelName = salesGroupData.title;\n } catch (error) {\n console.error('No data for salesgroup found');\n setDataNoSalesGroup();\n }\n }\n else {\n setDataNoSalesGroup();\n }\n\n const carlineData = { modelName, colorCode, mediaAssets: { D6MOFASideview, D6Explore1 } };\n\n let finalSteps: Steps[] = [...defaultSteps];\n\n finalSteps = removeStepAndReset(finalSteps, 'Modelo');\n\n if (!isComerciales) {\n finalSteps = removeStepAndReset(finalSteps, 'CodigoPostal');\n }\n\n dispatchLead(updateSteps(finalSteps));\n\n dispatch({ type: 'SET_DELETE_CLOSE_AND_PREVIOUS', payload: true });\n\n dispatch({\n type: 'UPDATE_FIELDS',\n payload: { carlineData, carlineResponse: res, carlineCode, modelo: modelName },\n });\n\n dispatch({ type: 'SET_SELECTED_CARLINE', payload: res.carline });\n if (salesGroupData) {\n dispatch({\n type: 'SET_SALESGROUP',\n payload: { salesGroupId: salesGroupData.code, salesGroupName: salesGroupData.title },\n });\n }\n\n })\n .catch((err) => {\n requestCarlines().then((carlines) => {\n const { carline, salesgroup } = setInitialProductData(carlines);\n\n let finalSteps: Steps[] = [...defaultSteps];\n\n if (!isComerciales) {\n finalSteps = removeStepAndReset(finalSteps, 'CodigoPostal');\n }\n if (carline) {\n finalSteps = removeStepAndReset(finalSteps, 'Modelo');\n }\n dispatchLead(updateSteps(finalSteps));\n });\n // console.log(err, 'error');\n });\n\n };\n\n const getModelInfo = async (model: string) => {\n let dataRes: any;\n await fetch(`${getDataUrl()}/getCarlineSalesgroups/${model}`)\n .then(res => res.json())\n .then(data => dataRes = data)\n return dataRes\n }\n\n const ofertasUrl = () => {\n const path = window.location.pathname;\n return path.includes('ofertas')\n }\n\n useEffect(() => {\n // Si el formulario es inPage la inicialización del formulario dependerá de variables en la URL, sinó de faContent\n if(isInPage){\n const urlParams = new URLSearchParams(window.location.search);\n const marketingCode = urlParams.get('marketingCode');\n if(marketingCode){\n useLeadsWithMarketingCode(marketingCode);\n } else {\n const [carline, salesGroup] = getModelFromUrl();\n useLeadsWithModel(carline, salesGroup)\n }\n } else {\n requestCarlines().then((carlines) => {\n const { carline, salesgroup } = setInitialProductData(carlines);\n\n let finalSteps: Steps[] = [...defaultSteps];\n\n if (!isComerciales) {\n finalSteps = removeStepAndReset(finalSteps, 'CodigoPostal');\n }\n if (carline) {\n finalSteps = removeStepAndReset(finalSteps, 'Modelo');\n }\n dispatchLead(updateSteps(finalSteps));\n });\n }\n\n }, []);\n\n return { loading, steps, firstStep, lastStep };\n}\n","import { FormDataGroup } from 'src/types';\n\nexport const partialDataCitaConfigurador: Partial = {\n headers: { FORM_OBJECTIVE: 'Cita' },\n fields: {\n formFields: { M_OBSERVATION_BRAND: 'Petición para reservar una cita en el punto de venta.' },\n formularioFlag: 'prospect',\n formName: 'lead-cita-configure',\n formType: 'contact',\n pageCategory: 'Cita',\n },\n};\n","import {\n Breakpoints,\n Layout,\n styled,\n} from '@volkswagen-onehub/components-core';\nimport React from 'react';\nimport { useStore } from 'react-redux';\nimport { LastNavigation, LssiTkmQuestions, PoliticaPrivacidad } from 'src/components';\nimport { OneFormState } from 'src/types';\n\nconst GeneralconfirmacionWrapper = styled.div`\n \n`;\n\nexport const ConfirmacionLeadInPage = () => {\n const store = useStore();\n\n return (\n \n \n \n \n \n \n \n );\n};\n","/* eslint-disable @typescript-eslint/explicit-function-return-type */\nimport React, { useState, useEffect } from 'react';\nimport { styled } from '@volkswagen-onehub/components-core';\nimport car34 from './car_3-4.png';\n\nconst SectionWrapper = styled.div`\n position: relative;\n height: 100%;\n\n @media all and (min-width: 960px) {\n height: max-content;\n min-height: calc(100vh - 164px);\n width: var(--size-grid012);\n margin-top: 0;\n }\n @media all and (min-width: 1600px) {\n min-height: calc(100vh - 180px);\n }\n`;\ninterface CarlineColorCardProps {\n color: string;\n showColorCard: boolean;\n}\nconst CarlineColorCard = styled.div`\n background-color: ${(props) =>\n !props.showColorCard ? '#FFFFFF' : props.color ? props.color : '#C0C5C6'};\n height: 100%;\n z-index: -2;\n position: absolute;\n top: 0;\n width: 100vw;\n @media all and (min-width: 960px) {\n right: 0;\n width: var(--size-grid009);\n height: max-content;\n min-height: calc(100vh - 164px);\n }\n @media all and (min-width: 1600px) {\n right: 0;\n width: var(--size-grid008);\n min-height: calc(100vh - 180px);\n }\n`;\ninterface ImageWrapperProps {\n noMargins?: boolean;\n}\n\nconst ImageWrapper = styled.div`\n @media all and (min-width: 960px) {\n margin-right: var(--size-grid001);\n position: absolute;\n top: 50%;\n transform: translateY(-50%);\n padding: 40px 0;\n }\n @media all and (min-width: 1600px) {\n padding: 52px 0;\n }\n img {\n width: var(--size-grid024);\n margin: auto;\n margin-top: ${(props) => props.noMargins ? '-120px' : '0'};\n margin-bottom: ${(props) => props.noMargins ? '-52px' : '0'};\n height: auto;\n @media all and (min-width: 560px) {\n width: var(--size-grid024);\n }\n @media all and (min-width: 960px) {\n margin: auto;\n width: var(--size-grid012);\n }\n @media all and (min-width: 1920px) {\n width: var(--size-grid011);\n }\n }\n`;\n\ninterface ImageProps {\n image: string;\n color: string;\n modelName: string;\n noMargins?: boolean;\n}\nexport const ImageCar = (props: ImageProps) => {\n const { image, color, modelName, noMargins } = props;\n\n //Ocultar color pastilla en caso de la imagen que llega no sea r-media\n\n const [showColorCard, setShowColorCard] = useState(true);\n const [loadingImage, setLoadingImage] = useState(false);\n\n useEffect(() => {\n if (image) {\n setLoadingImage(false);\n\n if (image.includes('r-media')) {\n setShowColorCard(true);\n } else {\n setShowColorCard(false);\n }\n } else {\n setShowColorCard(true);\n setLoadingImage(true);\n }\n }, [image]);\n\n return (\n \n \n \n {image ? (\n <>\n {loadingImage ? (\n {modelName}\n ) : (\n {modelName}\n )}\n \n ) : null}\n \n\n \n );\n};\n","import {\n Breakpoints,\n BreakpointWrapper,\n Container,\n ContainerPadding,\n styled,\n Text,\n TokenTextAppearance,\n} from '@volkswagen-onehub/components-core';\nimport React, { useEffect, useState } from 'react';\nimport { useSelector } from 'react-redux';\nimport { LocateUserFullScreen } from 'src/components';\nimport { OneFormState } from 'src/types';\nimport { getColorInfo, ImageCar } from '.';\n\nconst LayoutWrapper = styled.div`\n @media all and (min-width: 960px) {\n display: flex;\n }\n`;\n\nconst InfoWrapper = styled.div`\n width: 100%;\n padding-left: var(--size-grid002);\n padding-right: var(--size-grid002);\n padding-top: 44px;\n @media all and (min-width: 5600px) {\n padding-top: 68px;\n }\n @media all and (min-width: 960px) {\n display: flex;\n justify-content: center;\n flex-direction: column;\n width: var(--size-grid012);\n padding-left: var(--size-grid002);\n padding-right: 0;\n padding-top: 0;\n }\n @media all and (min-width: 1280px) {\n padding-left: var(--size-grid003);\n }\n @media all and (min-width: 1600px) {\n padding-left: var(--size-grid002);\n }\n`;\n\nexport const renderTitle = (formName: string) => {\n return (\n <>\n {formName === 'presupuesto' || formName === 'masInformacion' ? (\n \n {' '}\n ¿Qué experto quieres que se{' '}\n \n encargue?*\n \n \n ) : (\n <>\n {formName === 'testDrive' ? (\n \n {' '}\n ¿Dónde prefieres{' '}\n \n provarlo?*\n \n \n ) : (\n \n {' '}\n ¿A dónde quieres{' '}\n \n ir?*\n \n \n )}\n \n )}\n \n );\n};\n\nexport const LocateUserLeadsInPage = () => {\n const { formData } = useSelector((state: OneFormState) => state);\n const { marketingCodeData, carlineData, formName } = formData.fields;\n const [imageSrc, setImageSrc] = useState(null);\n const [name, setName] = useState(null);\n const [colorInfo, setColorInfo] = useState(null);\n\n useEffect(() => {\n if (!marketingCodeData) return;\n const { modelName, colorCode, mediaAssets } = marketingCodeData;\n setName(modelName);\n\n\n if (colorCode) {\n getColorInfo(colorCode).then((color) => {\n setColorInfo(color);\n });\n } else {\n setColorInfo('#484A52');\n }\n\n if (mediaAssets?.D6MOFASideview) {\n setImageSrc(mediaAssets?.D6MOFASideview);\n } else {\n setImageSrc(mediaAssets?.D6Explore1);\n }\n }, [marketingCodeData]);\n\n useEffect(() => {\n if (!carlineData) return;\n const { modelName, colorCode, mediaAssets } = carlineData;\n setName(modelName);\n\n if (colorCode) {\n getColorInfo(colorCode).then((color) => {\n setColorInfo(color);\n });\n } else {\n setColorInfo('#484A52');\n }\n\n if (mediaAssets?.D6MOFASideview) {\n setImageSrc(mediaAssets?.D6MOFASideview);\n } else {\n setImageSrc(mediaAssets?.D6Explore1);\n }\n }, [carlineData]);\n\n return (\n \n \n \n \n \n \n {name}\n \n \n \n Genial,{' '}\n {formName.includes('mas_informacion') ? (\n te mandamos toda la información\n ) : formName.includes('test_drive') ? (\n te esperamos para una prueba de conducción\n ) : formName.includes('presupuesto') ? (\n te enviamos tu presupuesto personalizado\n ) : formName.includes('cita') ? (\n te esperamos para contártelo todo\n ) : (\n te mandamos toda la información\n )}\n \n \n \n {' '}\n ¿Qué experto quieres que se{' '}\n \n encargue?*\n \n \n \n \n \n \n \n \n );\n};\n","import { Breakpoints, BreakpointWrapper } from '@volkswagen-onehub/components-core';\nimport { CloseHandleV2, FocusLayerSizeV2, LayerManagerV2 } from '@volkswagen-onehub/layer-manager';\nimport React, { useCallback, useEffect, useRef, useState } from 'react';\nimport { useDispatch, useSelector, useStore } from 'react-redux';\nimport { AvailabilityErrorLayer } from 'src/components';\nimport {\n LayerManagerWrapper,\n useFeatureAppEnvironment,\n useMapGeneralController,\n sortPoints,\n useOneFormContext,\n useFeatureServices,\n NewDealerCard,\n} from 'src/feature-app';\nimport { LoadingLayer } from 'src/forms/CitaPosventa/NuevaCitaPosventa';\nimport { Horario, OneFormState, Points } from 'src/types';\nimport { fetchProvince, fetchProvinceLegacy } from 'src/bff';\nimport { useIsComerciales } from 'src/feature-app/hooks';\nimport { \n getDistanceFromLatLngCenter, \n LayerDesktopView, \n LayerMobileView \n} from 'src/feature-app/NewMap';\n\nexport const JourneyLeadInPageController = () => {\n const { formData } = useSelector((state: OneFormState) => state);\n const { horario }: { horario?: Horario } = formData.fields;\n const { handleNextStep } = useOneFormContext();\n const layerManager = useFeatureServices()['layer-manager'] as LayerManagerV2;\n const store = useStore();\n const dispatch = useDispatch();\n const env = useFeatureAppEnvironment();\n const [loading, setLoading] = useState(false);\n const pointsByDistanceRef = useRef(null);\n const isComerciales = useIsComerciales();\n\n const loadingLayer = useRef(null);\n const {\n clusters,\n centerToCalculateDistance,\n superClusterRef,\n cardsDistanceRef,\n cardsTimeRef,\n } = useMapGeneralController();\n\n const [pointsToList, setPointsToList] = useState(null);\n\n useEffect(() => {\n if (clusters && superClusterRef.current) {\n const { pointsByDistance } = sortPoints(\n clusters,\n horario,\n centerToCalculateDistance.current,\n superClusterRef.current\n );\n pointsByDistanceRef.current = pointsByDistance;\n setPointsToList(pointsByDistance);\n }\n }, [clusters, superClusterRef.current]);\n\n const renderPoints = (points: Points[], isTime?: boolean, isCarouselCard?: boolean): JSX.Element[] => {\n // const pointsToRender = isTime ? pointsByTime : pointsByDistance;\n\n return points.map((point: Points, index: number) => {\n if (!point.properties.cluster) {\n const { dealer } = point.properties;\n const distanceFromCenter = getDistanceFromLatLngCenter(centerToCalculateDistance.current, point);\n\n return (\n {\n cardsDistanceRef.current[index] = el;\n }}\n >\n \n \n );\n }\n return null;\n });\n };\n\n // Gestión del point seleccionado y del boton de seleccionar (dms)\n const handleSeleccionarOnClick = useCallback((point: Points) => {\n // Añadir lógica para guardar el dealer seleccionado\n dispatch({ type: 'SET_SELECTED_INSTALLATION', payload: point.properties.installation });\n // Necesitamos el nombre de la provincia, y éste no está disponible en la request de instalaciones.\n if(isComerciales) {\n fetchProvinceLegacy('LCV_DDB_FRM_LEM_REC_LEM').then((response) => {\n const province = response.content.find((att) =>\n att.attributes.find((prov) => prov.value === point.properties.installation.BillingStateCode)\n );\n const provinceName = province.attributes[1].value;\n \n dispatch({ type: 'UPDATE_FIELDS', payload: { provinceName } });\n });\n }\n else {\n fetchProvince('VW_DDB_FRM_LEM_REC_LEM').then((response) => {\n const province = response.content.find((att) =>\n att.attributes.find((prov) => prov.value === point.properties.installation.BillingStateCode)\n );\n const provinceName = province.attributes[1].value;\n \n dispatch({ type: 'UPDATE_FIELDS', payload: { provinceName } });\n });\n }\n \n handleNextStep();\n }, []);\n\n const renderLoadingLayer = () => {\n return (\n \n \n \n );\n };\n\n const handleLoadingLayer = () => {\n if (loading) {\n const layer = layerManager.openFocusLayer(renderLoadingLayer, {}, { size: FocusLayerSizeV2.A });\n loadingLayer.current = layer;\n } else {\n if (loadingLayer.current) {\n loadingLayer.current.close();\n loadingLayer.current = null;\n }\n }\n };\n\n useEffect(() => {\n handleLoadingLayer();\n }, [loading]);\n\n // availability functions\n\n return (\n
\n \n \n \n\n \n \n \n
\n );\n};\n","import React from 'react';\nimport { JourneyLeadInPageController } from '.';\nimport { MapGeneralController } from 'src/feature-app';\n\n/**\n * Este componente está creado únicamente para que JourneyNoCompraController tenga acceso a las variables de MapGeneralController.\n */\nexport const JourneyLeadsInPageWrapper = () => {\n \n return (\n \n \n \n );\n};\n","import { Text, TokenTextAppearance } from '@volkswagen-onehub/components-core';\nimport React, { useEffect, useRef, useState } from 'react';\nimport { useDispatch, useSelector, useStore } from 'react-redux';\nimport { LocateUserFullScreen, MultipleCTASelection } from 'src/components';\nimport {\n LayerManagerWrapper,\n useFeatureAppEnvironment,\n useFeatureServices,\n useOneFormContext,\n} from 'src/feature-app';\nimport { RenderController, OneElementTemplateFullScreen } from 'src/feature-app/Screen';\nimport LoadScriptInstance from 'src/feature-app/NewMap/Loadscript';\nimport { TIME_FOR_TRANSFORM } from 'src/globals';\nimport { OneFormState, Steps } from 'src/types';\nimport { LocateUserLeadsInPage, renderTitle } from 'src/forms/LeadsInPage';\nimport { JourneyLeadsInPageWrapper } from 'src/forms/LeadsInPage';\nimport { InteractionLayerSizeV2, ShimBackgroundTypeV2 } from '@volkswagen-onehub/layer-manager';\nimport { CTAsHorario } from 'src/feature-app/InputsValues';\n\nconst getTitle = (data) => {\n if (data) {\n return;\n } else {\n return (\n \n {' '}\n ¿Qué experto quieres que se{' '}\n \n encargue?*\n \n \n );\n }\n};\n\nconst getLocatePage = (data) => {\n if (data) {\n return ;\n } else {\n return } />;\n }\n};\n\nenum MapaLeadsInPageSteps {\n Dealer,\n Horario,\n SeleccionCita,\n SeleccionFecha,\n}\n\ninterface MapaLeadsInPageProps {\n showHorario?: boolean;\n formName: string;\n}\n\nconst isLastScreen = (steps: Steps[], multiStepScreenIndex: number) => steps.length - 1 === multiStepScreenIndex;\nconst isFirstScreen = (multiStepScreenIndex: number) => multiStepScreenIndex === 0;\n\nexport function MapaLeadsInPage(props: MapaLeadsInPageProps) {\n const { formName, showHorario } = props;\n const dispatch = useDispatch();\n const store = useStore();\n const { formData, formInfo } = useSelector((state: OneFormState) => state);\n const { marketingCodeData, carlineData } = formData.fields;\n const { firstMapLoad, multiStepScreenIndex, navigationMovingForward } = formInfo;\n const layerManager = useFeatureServices()['layer-manager'];\n const env = useFeatureAppEnvironment();\n const {\n handleScreenChange,\n // setWaitForNextStep,\n setNextMultiStep,\n setNextMultiStepScreenIndex,\n setPreviousMultiStep,\n setWaitForPreviousStep,\n waitForPreviousStep,\n // waitForNextStep,\n setIsFullScreen,\n setShowPreviousStep,\n nextStepEventEmitter,\n } = useOneFormContext();\n\n const mapStep = showHorario ? 2 : 1;\n\n let stepsHorario: Steps[] = [\n {\n title: getTitle(marketingCodeData ? marketingCodeData : carlineData),\n fields: getLocatePage(marketingCodeData ? marketingCodeData : carlineData),\n screenIndex: MapaLeadsInPageSteps.Dealer,\n name: 'MapSearch',\n outputs: ['location'],\n outputsText: ['location'],\n showOverflow: true,\n },\n {\n screenIndex: MapaLeadsInPageSteps.Horario,\n name: 'MapSlotPref',\n title: (\n <>\n ¿Cúando prefieres pasar por el{' '}\n \n punto de venta?*\n \n \n ),\n fields: (\n }\n />\n ),\n outputs: ['horario'],\n outputsText: ['horario'],\n },\n {\n screenIndex: MapaLeadsInPageSteps.SeleccionCita,\n name: 'MapSelect',\n alternateTitle: (\n \n ¿Qué experto quieres que se{' '}\n \n encargue?*\n \n \n ),\n title: <>,\n fields: ,\n outputs: ['installation'],\n outputsText: ['installation'],\n fullScreen: true,\n multiStepLastScreen: true,\n hidePreviousStep: true,\n },\n ];\n\n let stepsWithoutHorario: Steps[] = [\n {\n title: getTitle(marketingCodeData ? marketingCodeData : carlineData),\n fields: getLocatePage(marketingCodeData ? marketingCodeData : carlineData),\n screenIndex: MapaLeadsInPageSteps.Dealer,\n name: 'MapSearch',\n outputs: ['location'],\n outputsText: ['location'],\n showOverflow: true,\n },\n {\n screenIndex: 1,\n name: 'MapSelect',\n alternateTitle: (\n \n ¿Qué experto quieres que se{' '}\n \n encargue?*\n \n \n ),\n title: <>,\n fields: ,\n outputs: ['installation'],\n outputsText: ['installation'],\n fullScreen: true,\n multiStepLastScreen: true,\n hidePreviousStep: true,\n },\n ];\n const steps = showHorario ? stepsHorario : stepsWithoutHorario;\n\n const [selectedStep, setSelectedStep] = useState(null);\n const layerRef = useRef(null);\n /**\n * Hay que esperar a que se cree el mapa de google para tener acceso a window.google\n */\n const onMapLoad = () => {\n if (multiStepScreenIndex === 0) {\n // handleFirstLoad();\n }\n };\n\n const handleFirstLoad = async () => {\n if (firstMapLoad) {\n // Inicialización\n initializeMultiStep();\n } else {\n if (navigationMovingForward || navigationMovingForward === null || navigationMovingForward === undefined) {\n // Inicialización cuando se va hacia adelante una vez inicializado el mapa o después de cerrar el layer y abrir en el mapa.\n initializeMultiStep();\n } else {\n // En caso de que estemos en la última pantalla, desactivamos el wait for next step.\n const newWaitForNextStep = !isLastScreen(steps, multiStepScreenIndex);\n // Lo mismo para previous, solo le desactivamos si estamos en la primera.\n const newWaitForPreviousStep = !isFirstScreen(multiStepScreenIndex);\n\n updateWaitForNextAndPreviousStep(newWaitForNextStep, newWaitForPreviousStep);\n updateScreenChangeVariables(multiStepScreenIndex);\n }\n }\n setNextMultiStep(() => nextMapaNoCompra);\n setPreviousMultiStep(() => previousMapaNoCompra);\n };\n\n const initializeMultiStep = () => {\n updateWaitForNextAndPreviousStep(true, false);\n updateScreenChangeVariables(0);\n };\n\n const updateWaitForNextAndPreviousStep = (waitForNextStep: boolean, waitForPreviousStep: boolean) => {\n if (waitForNextStep !== null) {\n dispatch({ type: 'UPDATE_WAIT_FOR_NEXT_STEP', payload: waitForNextStep });\n }\n if (waitForPreviousStep !== null) {\n setWaitForPreviousStep(waitForPreviousStep);\n }\n };\n\n const nextMapaNoCompra = () => {\n if (!showHorario) {\n renderLayer();\n return;\n }\n const { multiStepScreenIndex } = store.getState().formInfo;\n\n if (multiStepScreenIndex === 1) {\n renderLayer();\n updateScreenChangeVariables(mapStep);\n return;\n }\n\n handleScreenChange();\n\n // Una vez avanzamos dentro de los multisteps se activa el wait\n // previous step para volver hacia atrás dentro del propio multistep.\n if (!waitForPreviousStep || multiStepScreenIndex === 0) {\n updateWaitForNextAndPreviousStep(null, true);\n }\n\n setTimeout(() => {\n updateScreenChangeVariables(multiStepScreenIndex + 1);\n // Si estamos en el último paso del multistep se desactiva el\n // wait next step para poder salir del multistep y avanzar hacia la siguiente pantalla.\n if (steps[multiStepScreenIndex + 1].multiStepLastScreen) {\n updateWaitForNextAndPreviousStep(false, null);\n if (multiStepScreenIndex === 0) {\n setShowPreviousStep(false);\n } else {\n setShowPreviousStep(true);\n }\n }\n }, TIME_FOR_TRANSFORM);\n };\n\n const previousMapaNoCompra = () => {\n const { multiStepScreenIndex, waitForNextStep } = store.getState().formInfo;\n\n handleScreenChange();\n\n // Se desactiva el wait previous step en la segunda pantalla para que\n // en el caso de volver hacia atrás en la primera salte de step y no busque dentro de los multisteps.\n if (multiStepScreenIndex === 1) {\n updateWaitForNextAndPreviousStep(null, false);\n }\n\n if (!waitForNextStep) {\n updateWaitForNextAndPreviousStep(true, null);\n }\n\n // Se fija en la pantalla previa a la primera para que cuando se cambie\n // a la primera pantalla el CTA de anterior pase del multistep al step anterior.\n setTimeout(() => {\n updateScreenChangeVariables(multiStepScreenIndex - 1);\n }, TIME_FOR_TRANSFORM);\n };\n\n const updateScreenChangeVariables = (newMultiStepScreenIndex: number) => {\n setNextMultiStepScreenIndex(newMultiStepScreenIndex);\n dispatch({ type: 'UPDATE_MULTISTEP_SCREENINDEX', payload: newMultiStepScreenIndex });\n setSelectedStep(steps[newMultiStepScreenIndex]);\n setIsFullScreen(steps[newMultiStepScreenIndex].fullScreen);\n setShowPreviousStep(!steps[newMultiStepScreenIndex].hidePreviousStep);\n };\n\n useEffect(() => {\n dispatch({ type: 'UPDATE_MULTISTEPS', payload: steps });\n\n handleFirstLoad();\n\n return () => {\n dispatch({ type: 'UPDATE_FIRST_MAP_LOAD', payload: false });\n setShowPreviousStep(true);\n updateWaitForNextAndPreviousStep(false, false);\n };\n }, []);\n\n const renderElement = (state?: any) => {\n if (state) {\n updateWaitForNextAndPreviousStep(false, null);\n }\n\n return (\n \n \n \n \n \n );\n };\n\n /**\n * Necesario para en el caso de que se cierre el mapa se pueda mostrar la pantalla de preferencia horaria\n */\n const onCloseMap = () => {\n updateScreenChangeVariables(mapStep - 1);\n updateWaitForNextAndPreviousStep(true, false);\n };\n\n const renderLayer = () => {\n const layer = layerManager.openInteractionLayer(\n renderElement,\n { step: steps[mapStep], nextStepEventEmitter },\n {\n size: InteractionLayerSizeV2.D,\n id: 'mapaLeadInPage',\n shimBackgroundType: ShimBackgroundTypeV2.OPAQUE,\n onClose: onCloseMap,\n }\n );\n layerRef.current = layer;\n return null;\n };\n\n return selectedStep ? (\n selectedStep.screenIndex === mapStep ? null : (\n \n \n \n )\n ) : null;\n}\n","import { FormDataGroup } from 'src/types';\n\nexport const PartialDataMasInformacionConfigurador: Partial = {\n headers: { FORM_OBJECTIVE: 'Más Información' },\n fields: {\n formFields: {},\n formularioFlag: 'masInformacion',\n formName: 'lead-mas_informacion-configure',\n formType: 'contact',\n pageCategory: 'Más Información',\n },\n};\n","import { FormDataGroup } from 'src/types';\n\n export const PresupuestoPartialDataConfigurador: Partial = {\n headers: { FORM_OBJECTIVE: 'Presupuesto' },\n fields: {\n formFields: {},\n formularioFlag: 'presupuesto',\n formName: 'lead-presupuesto-configure',\n formType: 'quote',\n pageCategory: 'Presupuesto',\n },\n};\n","import { FormDataGroup } from 'src/types';\n\nexport const PartialDataTestDriveConfigurador: Partial = {\n headers: { FORM_OBJECTIVE: 'Test Drive' },\n fields: {\n formFields: {},\n formularioFlag: 'testDrive',\n formName: 'lead-test_drive-configure',\n formType: 'testdrive',\n pageCategory: 'Test Drive',\n },\n};\n","import { Color } from 'src';\nimport { getColors } from 'src/bff';\n\nexport const getColorInfo = async (colorCode: string): Promise => {\n if (!colorCode) return null;\n let colorInfo: Color;\n\n const colors = await getColors();\n const aux = colorCode.split(' ');\n if (colorCode.includes('#')) {\n colorInfo = colors.colores.find((a) => a.hex === colorCode);\n }\n else {\n colorInfo = colors.colores.find((a) => a.code === aux[1]);\n }\n\n return colorInfo;\n};\n","import {\n Breakpoints,\n BreakpointWrapper,\n Image,\n Layout,\n styled,\n Text,\n TokenTextAppearance,\n TokenTextColor,\n} from '@volkswagen-onehub/components-core';\nimport React from 'react';\nimport { useFeatureServices, useFaContent } from 'src/feature-app';\n\nconst TitleTextWrapper = styled.div`\n position: relative;\n`;\nconst TextWrapper = styled.div`\n position: absolute;\n bottom: 5%;\n color: #ffffff;\n padding: 0px var(--size-grid002);\n`;\ninterface MGMTitleProps {\n title: string;\n copy: string;\n}\ninterface MGMLayoutProps {\n title: string;\n fields: JSX.Element;\n}\n\nexport function MGMLayout({ title, fields }: MGMLayoutProps) {\n const imageService = useFeatureServices()['image-service'];\n const mgmImgSrc = useFaContent()?.mgmImgSrc;\n\n // const test = imageService.getImageURL({ contentFile: '/content/dam/evhub-sample/images/16-9/16_9.jpg', scene7File: '/content/dam/evhub-sample/images/16-9/16_9.jpg', });\n // console.log(test, 'test');\n return (\n \n \n \"Volkswagen\"\n \n \n \n {title}\n \n \n \n \n <>{fields}\n \n );\n}\n\nexport const MGMTitle = ({ title, copy }: MGMTitleProps) => {\n return (\n <>\n \n \n {title}\n \n \n
\n \n {copy}\n \n \n );\n};\n","import { Container, ContainerPadding, CTA, styled } from '@volkswagen-onehub/components-core';\nimport { CloseHandleV2, FocusLayerSizeV2, LayerHandleV2, LayerManagerV2 } from '@volkswagen-onehub/layer-manager';\nimport React, { useEffect, useState } from 'react';\nimport { useFormContext } from 'react-hook-form';\nimport { useDispatch, useSelector, useStore } from 'react-redux';\nimport { Apellido, Email, Nombre, Telefono, GeneralInputWidthWrapper } from 'src/components';\nimport {\n LayerManagerWrapper,\n useFeatureAppEnvironment,\n useFeatureServices,\n useOneFormContext,\n useTrackingManager,\n} from 'src/feature-app';\nimport { KoScreen, LoadingScreen } from 'src/forms/CitaPosventa/NuevaCitaPosventa/ConfirmarCitaLayer';\nimport { MGMFieldsProps } from 'src/forms';\nimport { OneFormState } from 'src/types';\nimport { MGMTitle } from './MGMLayout';\n\nconst GeneralconfirmacionWrapper = styled.div``;\n\nexport function BonoClienteFields({ title, copy }: MGMFieldsProps) {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n
\n \n
\n
\n );\n}\n\nfunction LastNavigation() {\n // const dispatch = useDispatch();\n const { handleShowFinalScreen, handleSubmit } = useOneFormContext();\n const { getValues, triggerValidation } = useFormContext();\n const [layerVisible, setLayerVisible] = useState(false);\n const [koLayer, setKoLayer] = useState>(null);\n const [koScreen, setKoScreen] = useState(false);\n const layerManager = useFeatureServices()['layer-manager'] as LayerManagerV2;\n const store = useStore();\n const env = useFeatureAppEnvironment();\n const dispatch = useDispatch();\n const trackingManager = useTrackingManager();\n const { formData } = useSelector((state: OneFormState) => state);\n\n //Loading and Ko layers\n\n const handleKoLayer = () => {\n const layer = layerManager.openFocusLayer(renderKoLayer, {}, { size: FocusLayerSizeV2.A });\n setKoLayer(layer);\n };\n\n const renderKoLayer = (state: any, close: CloseHandleV2) => {\n const NoCompraTitle = 'Uy, algo ha pasado';\n const NoCompraBody = 'Por alguna razón no hemos podido guardar tu respuesta. ¿Lo intentamos de nuevo? ';\n\n return (\n \n \n \n );\n };\n\n const handleLoadingScreenLayer = () => {\n const layer = layerManager.openFocusLayer(renderLoadingScreen, {}, { size: FocusLayerSizeV2.A });\n\n return layer;\n };\n\n const renderLoadingScreen = (state: any, close: CloseHandleV2) => {\n return (\n \n \n \n );\n };\n\n async function handleConfirmarCita(e: any) {\n trackingManager.trackFormCTAClick({\n contentId: 'Quiero mi bono',\n });\n\n const isValid = await triggerValidation();\n\n if (isValid) {\n const loadingLayer = handleLoadingScreenLayer();\n setLayerVisible(true);\n\n const value = await handleSubmit(e);\n loadingLayer.close();\n\n if (value) {\n handleShowFinalScreen();\n } else {\n handleKoLayer();\n }\n }\n }\n\n async function retrySubmit(e: any) {\n if (koLayer) {\n koLayer.close();\n }\n setKoScreen(false);\n const loadingLayer = handleLoadingScreenLayer();\n const value = await handleSubmit(e);\n loadingLayer.close();\n if (value) {\n handleShowFinalScreen();\n } else {\n handleKoLayer();\n setKoScreen(true);\n }\n }\n\n useEffect(() => {\n if (!layerVisible && koScreen) setKoScreen(false);\n }, [layerVisible]);\n\n useEffect(() => {\n dispatch({ type: 'UPDATE_FORM_ENDED', payload: true });\n }, []);\n\n return (\n <>\n {\n e.preventDefault();\n handleConfirmarCita(e);\n }}\n stretchContent={window.innerWidth <= 560}\n >\n Quiero mi bono\n \n \n );\n}\n","import {\n Container,\n ContainerGutter,\n ContainerPadding,\n CTA,\n styled,\n Text,\n TokenTextAppearance,\n} from '@volkswagen-onehub/components-core';\nimport React from 'react';\n\nconst TextColor = styled.span`\n color: #6a767d;\n`;\nexport function LegalMGM({ isFriendForm }: { isFriendForm?: boolean }) {\n return (\n \n \n \n *Promoción solo válida para los 100 primeros pedidos de clientes particulares y autónomos que se adhieran a la presente promoción. El cupón solo puede canjearse con pedidos realizados antes del 28/02/2023. Válido para la compra de vehículos en stock y vehículos a producción. El cupón tendrá un valor de: 1.000€ PVP adicionales para los acabados R-Line, Sport, GTI o R y 500€ PVP adicionales para el resto de acabados. Quedan excluidos vehículos de la promoción los modelos Polo, Tiguan Life y T-Cross Clic2go. El cupón no será acumulable a ofertas ya realizadas por parte del Concesionario ni para pedidos ya realizados, ni cancelados en el último mes. Este cupón no tiene ningún valor en metálico. Solo se aceptará un único cupón por compra y solo se podrá canjear una única vez.\n \n \n {isFriendForm ? (\n \n \n **Te recordamos que en caso de que nos proporciones datos relativos a otra persona física deberás, con carácter previo a su inclusión, informarle de los extremos contenidos en la presente cláusula.\n \n \n ) : null}\n \n \n Te informamos que el responsable del tratamiento de tus datos es la compañía VOLKSWAGEN GROUP ESPAÑA DISTRIBUCION, S.A.U., con la finalidad de atender tus consultas y solicitudes, realizar un control de calidad sobre los productos y servicios solicitados, realizar encuestas de opinión y estudios de mercado con fines estadísticos. En caso que nos hayas dado tu consentimiento, para las finalidades descritas en los consentimientos adicionales.\n \n \n \n \n Te informamos que tienes derecho a retirar tu consentimiento en cualquier momento, así como a oponerte al tratamiento, limitar el mismo, acceder, rectificar, suprimir los datos y ejercer tu derecho a la portabilidad, mediante petición escrita a :{' '}\n \n atencioncliente@volkswagen.es\n \n .\n \n \n \n \n Puedes consultar con mayor detalle la información adicional sobre la política de privacidad{' '}\n \n aquí\n \n .\n \n \n \n );\n}\n","import React, { useEffect } from 'react';\nimport { useDispatch, useStore } from 'react-redux';\nimport { dpsSend } from 'src/bff';\nimport { FormController, useOneFormContext, formatPrefix } from 'src/feature-app';\nimport { getParamsForm } from 'src/feature-app/get-params-form';\nimport { FormDataGroup, FormInfo, MolecularResponse, OneFormState, Steps } from 'src/types';\nimport { BonoClienteFields, ThankYouMGM } from './';\nimport { LegalMGM } from './LegalMGM';\nimport { MGMFormProps } from './MGMController';\nimport { formatHeaders, formDataBuilder } from '../format-fields';\nimport { MGMLayout } from './MGMLayout';\n\nconst bonoClienteCopies = {\n title: 'Solo te queda un Sí, para tener hasta 1.000€.',\n copy: '¡Comprueba tus datos y envía!',\n};\n\nexport function BonoClienteForm(props: MGMFormProps) {\n const { dpsData, idLead, idPerson, trackFormLoad } = props;\n const { initializeForm } = useOneFormContext();\n const store = useStore();\n const dispatch = useDispatch();\n const steps: Steps[] = [\n {\n title: <>, // El title se renderiza en los fields al ser un form de un solo step con un diseño que incluye un stage.\n fields: (\n }\n />\n ),\n screenIndex: 0,\n name: 'Form',\n },\n ];\n\n const BonoClienteData: Partial = {\n headers: {\n DESC_BRAND: 'VW',\n DESC_GDPR_ADAPTED: 'true',\n DESC_CAMPAIGNBLOCK: '16. One shot',\n DESC_ID_CAMPAIGN: '7011n000001FY4sAAG',\n DESC_TOKEN: 'VW_DDB_FRM_MGM_CLIENTE_RENOVACION_STOCK_22',\n DESC_FORM_DETAIL: 'MGM Bono Cliente Renovación Stock 22',\n },\n fields: {\n formName: 'mgm-bono-cliente',\n formType: 'otherform',\n pageCategory: 'Cupon',\n name: idPerson.FirstName,\n surname: idPerson.LastName,\n secondSurname: idPerson.TXT_2_Surname__c,\n email: idPerson.TXT_Email__c,\n cellphone: idPerson.NUM_Phone_mobile__c,\n }, // Analítica\n };\n\n const generateData = () => {\n const { formData }: OneFormState = store.getState();\n const { fields, headers } = formData;\n const { tc, today, url, device } = getParamsForm();\n\n return {\n 'headers[COD_FORM_ID]': `vw-oneform-${fields.formName}`,\n 'headers[DESC_DEVICETYPE]': device,\n 'headers[DESC_FORMOBJECTIVE]': fields.pageCategory, // Revisar\n 'headers[DESC_URLORIGIN]': url,\n 'headers[FECHA_INSERTION_DATE]': today,\n 'headers[TC]': tc,\n 'headers[PINCODE]': dpsData?.pincode?.pincodeResponse?.params?.pincode,\n ...formatHeaders(headers), // Headers comunes a todos los formularios de leads\n\n 'fields[DESC_SURNAME_2]': fields.secondSurname,\n 'fields[DESC_SURNAME_1]': fields.surname,\n 'fields[DESC_NAME]': fields.name,\n 'fields[DESC_EMAIL_ADDRESS]': fields.email,\n 'fields[NUM_CELLPHONE]': `${formatPrefix(fields.prefix)}${fields.cellphone}`,\n 'fields[DESC_FORM_VERSION]': `vw-oneform-${fields.formName}-${process.env.VERSION}`,\n 'fields[DESC_AUXFIELD20]': idPerson.Id,\n 'fields[DESC_AUXFIELD1]': 'Bono Cliente',\n 'fields[DESC_LOPD]': 'PERMITE',\n 'fields[DESC_TRANF_DATA_THIRD]': 'NO INFORMADO',\n 'fields[DESC_LSSI]': idPerson.LSSI__c,\n 'fields[DESC_LOPD_GDPR_PERFILADO]': idPerson.Robinson__c,\n\n 'flags[FLAG_ISLEAD]': 'false',\n 'flags[FLAG_ISPROSPECT]': 'true',\n 'flags[FLAG_VOUCHER]': 'true',\n };\n };\n\n const generateSubmitData = () => generateData();\n\n const sendForm = (): Promise => {\n return new Promise(async (resolve) => {\n const data = generateSubmitData();\n\n const dataStringified = JSON.stringify(data);\n const dataParsed = JSON.parse(dataStringified);\n const formData = formDataBuilder(dataParsed);\n\n const response = await dpsSend(formData);\n\n if (response && response.data && response.data.content && response.data.content.code === '200') {\n dispatch({ type: 'SET_FORM_RESPONSE', payload: response.data });\n resolve(true);\n } else {\n resolve(false);\n }\n });\n };\n\n // const { loading, steps, firstStep, lastStep } = useInitializeMGMForm(steps, idLead);\n\n useEffect(() => {\n const BonoClienteInfo: Partial = {\n formStarted: true,\n sendFormCallback: sendForm,\n fullScreen: steps[0].fullScreen ? true : false,\n lastStep: steps[steps.length - 1],\n numberOfScreens: steps.length,\n screenIndex: steps[0].screenIndex,\n hideLegal: true,\n formTheme: 'main',\n notALayer: true,\n formType: 'inPage',\n step: steps[0],\n steps,\n stepsHistory: [0],\n customLegal: ,\n thankYouComponent: ,\n };\n initializeForm(BonoClienteInfo, BonoClienteData, true);\n trackFormLoad();\n }, []);\n\n return !steps ? null : ;\n}\n","import {\n Container,\n CTA,\n styled,\n ContainerPadding,\n} from '@volkswagen-onehub/components-core';\nimport { CloseHandleV2, FocusLayerSizeV2, LayerHandleV2, LayerManagerV2 } from '@volkswagen-onehub/layer-manager';\nimport React, { useEffect, useState } from 'react';\nimport { useFormContext } from 'react-hook-form';\nimport { useDispatch, useSelector, useStore } from 'react-redux';\nimport { MGMFieldsProps } from 'src/forms';\nimport { Apellido, Email, Nombre, Telefono, LssiTkmQuestions, GeneralInputWidthWrapper } from 'src/components';\nimport {\n LayerManagerWrapper,\n useFeatureAppEnvironment,\n useFeatureServices,\n useOneFormContext,\n useTrackingManager,\n} from 'src/feature-app';\nimport { KoScreen, LoadingScreen } from 'src/forms/CitaPosventa/NuevaCitaPosventa/ConfirmarCitaLayer';\nimport { OneFormState } from 'src/types';\nimport { MGMTitle } from './MGMLayout';\n\nconst GeneralconfirmacionWrapper = styled.div``;\n\nexport function BonoRegaloFields({ title, copy }: MGMFieldsProps) {\n const [lssi, setLssi] = useState(null);\n const [tmk, setTmk] = useState(null);\n const [lssiError, setLssiError] = useState(false);\n const [tmkError, setTmkError] = useState(false);\n const dispatch = useDispatch();\n\n useEffect(() => {\n if (lssi) {\n const values = { lssi: lssi };\n dispatch({ type: 'UPDATE_FIELDS', payload: values });\n setLssiError(false);\n }\n if (tmk) {\n const values = { tmk: tmk };\n dispatch({ type: 'UPDATE_FIELDS', payload: values });\n setTmkError(false);\n }\n }, [lssi, tmk]);\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n
\n \n
\n
\n );\n}\n\ninterface LastNavigationProps {\n tmk: string;\n lssi: string;\n tmkError: boolean;\n lssiError: boolean;\n setTmkError: React.Dispatch>;\n setLssiError: React.Dispatch>;\n setTmk: React.Dispatch>;\n setLssi: React.Dispatch>;\n}\n\nfunction LastNavigation(props: LastNavigationProps) {\n const { tmk, lssi, setTmkError, setLssiError, tmkError, lssiError, setLssi, setTmk } = props;\n // const dispatch = useDispatch();\n const { handleShowFinalScreen, handleSubmit } = useOneFormContext();\n const { getValues, triggerValidation } = useFormContext();\n const [layerVisible, setLayerVisible] = useState(false);\n const [koLayer, setKoLayer] = useState>(null);\n const [koScreen, setKoScreen] = useState(false);\n const layerManager = useFeatureServices()['layer-manager'] as LayerManagerV2;\n const store = useStore();\n const env = useFeatureAppEnvironment();\n const dispatch = useDispatch();\n const trackingManager = useTrackingManager();\n const { formData } = useSelector((state: OneFormState) => state);\n\n //Loading and Ko layers\n\n const handleKoLayer = () => {\n const layer = layerManager.openFocusLayer(renderKoLayer, {}, { size: FocusLayerSizeV2.A });\n setKoLayer(layer);\n };\n\n const renderKoLayer = (state: any, close: CloseHandleV2) => {\n const NoCompraTitle = 'Uy, algo ha pasado';\n const NoCompraBody = 'Por alguna razón no hemos podido guardar tu respuesta. ¿Lo intentamos de nuevo? ';\n\n return (\n \n \n \n );\n };\n\n const handleLoadingScreenLayer = () => {\n const layer = layerManager.openFocusLayer(renderLoadingScreen, {}, { size: FocusLayerSizeV2.A });\n\n return layer;\n };\n\n const renderLoadingScreen = (state: any, close: CloseHandleV2) => {\n return (\n \n \n \n );\n };\n\n async function handleConfirmarCita(e: any) {\n trackingManager.trackFormCTAClick({\n contentId: 'Quiero mi bono',\n });\n\n const isValid = await triggerValidation();\n\n if (isValid && !lssiError && !tmkError) {\n const loadingLayer = handleLoadingScreenLayer();\n setLayerVisible(true);\n\n const value = await handleSubmit(e);\n loadingLayer.close();\n\n if (value) {\n handleShowFinalScreen();\n } else {\n handleKoLayer();\n }\n }\n }\n\n async function retrySubmit(e: any) {\n if (koLayer) {\n koLayer.close();\n }\n setKoScreen(false);\n const loadingLayer = handleLoadingScreenLayer();\n const value = await handleSubmit(e);\n loadingLayer.close();\n if (value) {\n handleShowFinalScreen();\n } else {\n handleKoLayer();\n setKoScreen(true);\n }\n }\n\n useEffect(() => {\n if (!layerVisible && koScreen) setKoScreen(false);\n }, [layerVisible]);\n\n useEffect(() => {\n dispatch({ type: 'UPDATE_FORM_ENDED', payload: true });\n }, []);\n\n return (\n
\n \n {\n e.preventDefault();\n handleConfirmarCita(e);\n }}\n stretchContent={window.innerWidth <= 560}\n >\n Quiero mi bono\n \n
\n );\n}\n","import Axios, { AxiosResponse } from 'axios';\nimport React, { useEffect } from 'react';\nimport { useFormContext } from 'react-hook-form';\nimport { useDispatch, useStore } from 'react-redux';\nimport { dpsSend } from 'src/bff';\nimport { formatPrefix, FormController, useOneFormContext } from 'src/feature-app';\nimport { getParamsForm } from 'src/feature-app/get-params-form';\nimport { OneElementTemplateFullScreen } from 'src/feature-app/Screen';\nimport { } from 'src/forms/MGM';\nimport { FormDataGroup, FormInfo, MolecularResponse, OneFormState, Steps } from 'src/types';\nimport { ThankYouMGM } from '.';\nimport { formatHeaders, formDataBuilder } from '../format-fields';\nimport { BonoRegaloFields } from './BonoRegaloFields';\nimport { LegalMGM } from './LegalMGM';\nimport { MGMFormProps } from './MGMController';\nimport { MGMLayout } from './MGMLayout';\n\nconst bonoRegaloCopies = {\n title: 'Solo te queda un Sí, para tener hasta 1.000€ de descuento.',\n copy: '¡Rellena el formulario con tus datos y envía!',\n};\n\nexport function BonoRegaloForm(props: MGMFormProps) {\n const { dpsData, idLead, idPerson, trackFormLoad } = props;\n const { initializeForm } = useOneFormContext();\n const store = useStore();\n const dispatch = useDispatch();\n const { getValues } = useFormContext();\n const steps: Steps[] = [\n {\n title: <>, // El title se renderiza en los fields al ser un form de un solo step con un diseño que incluye un stage.\n fields: (\n }\n />\n ),\n screenIndex: 0,\n name: 'Form',\n },\n ];\n\n const BonoRegaloData: Partial = {\n headers: {\n DESC_BRAND: 'VW',\n DESC_GDPR_ADAPTED: 'true',\n DESC_CAMPAIGNBLOCK: '16. One shot',\n DESC_ID_CAMPAIGN: '7011n000001FY4sAAG',\n DESC_TOKEN: 'VW_DDB_FRM_MGM_REGALO_RENOVACION_STOCK_22',\n DESC_FORM_DETAIL: 'MGM Bono Regalo Renovación Stock 22',\n },\n fields: {\n formName: 'mgm-bono-regalo',\n formType: 'otherform',\n pageCategory: 'Cupon',\n }, // Analítica\n };\n\n const generateData = () => {\n const { formData }: OneFormState = store.getState();\n const { fields, headers } = formData;\n const { tc, today, url, device } = getParamsForm();\n const values = getValues();\n\n return {\n 'headers[COD_FORM_ID]': `vw-oneform-${fields.formName}`,\n 'headers[DESC_DEVICETYPE]': device,\n 'headers[DESC_FORMOBJECTIVE]': fields.pageCategory, // Revisar\n 'headers[DESC_URLORIGIN]': url,\n 'headers[FECHA_INSERTION_DATE]': today,\n 'headers[TC]': tc,\n 'headers[PINCODE]': dpsData?.pincode?.pincodeResponse?.params?.pincode,\n ...formatHeaders(headers), // Headers comunes a todos los formularios de leads\n\n 'fields[DESC_SURNAME_2]': values.secondSurname,\n 'fields[DESC_SURNAME_1]': values.surname,\n 'fields[DESC_NAME]': values.name,\n 'fields[DESC_EMAIL_ADDRESS]': values.email,\n 'fields[NUM_CELLPHONE]': `${formatPrefix(fields.prefix)}${values.cellphone}`,\n 'fields[DESC_FORM_VERSION]': `vw-oneform-${fields.formName}-${process.env.VERSION}`,\n 'fields[DESC_AUXFIELD20]': idPerson.Id,\n 'fields[DESC_AUXFIELD1]': 'Bono Regalo',\n 'fields[DESC_AUXFIELD2]': idPerson.FirstName,\n 'fields[DESC_AUXFIELD3]': idPerson.LastName,\n 'fields[DESC_AUXFIELD4]': idPerson.TXT_2_Surname__c,\n 'fields[DESC_AUXFIELD5]': idPerson.TXT_Email__c,\n 'fields[DESC_AUXFIELD6]': idPerson.NUM_Phone_mobile__c,\n 'fields[DESC_LOPD]': 'PERMITE',\n 'fields[DESC_TRANF_DATA_THIRD]': 'NO INFORMADO',\n 'fields[DESC_LSSI]': fields.lssi ? fields.lssi : 'NO INFORMADO',\n 'fields[DESC_LOPD_GDPR_PERFILADO]': fields.tmk ? fields.tmk : 'NO INFORMADO',\n };\n };\n\n const generateSubmitData = () => generateData();\n\n const sendForm = (): Promise => {\n return new Promise(async (resolve, reject) => {\n const data = generateSubmitData();\n\n const dataStringified = JSON.stringify(data);\n const dataParsed = JSON.parse(dataStringified);\n const formData = formDataBuilder(dataParsed);\n\n const response = await dpsSend(formData);\n\n if (response && response.data && response.data.content && response.data.content.code === '200') {\n dispatch({ type: 'SET_FORM_RESPONSE', payload: response.data });\n resolve(true);\n } else {\n resolve(false);\n }\n });\n };\n\n // const { loading, steps, firstStep, lastStep } = useInitializeMGMForm(steps, idLead);\n\n useEffect(() => {\n const BonoRegaloInfo: Partial = {\n formStarted: true,\n sendFormCallback: sendForm,\n fullScreen: steps[0].fullScreen ? true : false,\n lastStep: steps[steps.length - 1],\n numberOfScreens: steps.length,\n screenIndex: steps[0].screenIndex,\n formTheme: 'main',\n notALayer: true,\n formType: 'inPage',\n step: steps[0],\n steps,\n hideLegal: true,\n stepsHistory: [0],\n customLegal: ,\n thankYouComponent: ,\n };\n initializeForm(BonoRegaloInfo, BonoRegaloData, true);\n trackFormLoad();\n }, []);\n\n return !steps ? null : ;\n}\n","import { Container, ContainerPadding, CTA, styled } from '@volkswagen-onehub/components-core';\nimport { CloseHandleV2, FocusLayerSizeV2, LayerHandleV2, LayerManagerV2 } from '@volkswagen-onehub/layer-manager';\nimport React, { useEffect, useState } from 'react';\nimport { useFormContext } from 'react-hook-form';\nimport { useDispatch, useStore } from 'react-redux';\nimport { Apellido, Email, GeneralInputWidthWrapper, Nombre, Telefono } from 'src/components';\nimport {\n LayerManagerWrapper,\n useFeatureAppEnvironment,\n useFeatureServices,\n useOneFormContext,\n useTrackingManager\n} from 'src/feature-app';\nimport { MGMFieldsProps } from 'src/forms';\nimport { KoScreen, LoadingScreen } from 'src/forms/CitaPosventa/NuevaCitaPosventa/ConfirmarCitaLayer';\nimport { MGMTitle } from './MGMLayout';\n\nconst GeneralconfirmacionWrapper = styled.div``;\n\nexport function EnvioRegaloFields({ title, copy }: MGMFieldsProps) {\n const [lssi, setLssi] = useState(null);\n const [tmk, setTmk] = useState(null);\n const [lssiError, setLssiError] = useState(false);\n const [tmkError, setTmkError] = useState(false);\n const dispatch = useDispatch();\n\n useEffect(() => {\n if (lssi) {\n const values = { lssi: lssi };\n dispatch({ type: 'UPDATE_FIELDS', payload: values });\n setLssiError(false);\n }\n if (tmk) {\n const values = { tmk: tmk };\n dispatch({ type: 'UPDATE_FIELDS', payload: values });\n setTmkError(false);\n }\n }, [lssi, tmk]);\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n
\n \n
\n
\n );\n}\n\ninterface LastNavigationProps {\n tmk: string;\n lssi: string;\n tmkError: boolean;\n lssiError: boolean;\n setTmkError: React.Dispatch>;\n setLssiError: React.Dispatch>;\n setTmk: React.Dispatch>;\n setLssi: React.Dispatch>;\n}\n\nfunction LastNavigation() {\n const { handleShowFinalScreen, handleSubmit } = useOneFormContext();\n const { triggerValidation } = useFormContext();\n const [layerVisible, setLayerVisible] = useState(false);\n const [koLayer, setKoLayer] = useState>(null);\n const [koScreen, setKoScreen] = useState(false);\n const layerManager = useFeatureServices()['layer-manager'] as LayerManagerV2;\n const store = useStore();\n const env = useFeatureAppEnvironment();\n const dispatch = useDispatch();\n const trackingManager = useTrackingManager();\n\n //Loading and Ko layers\n\n const handleKoLayer = () => {\n const layer = layerManager.openFocusLayer(renderKoLayer, {}, { size: FocusLayerSizeV2.A });\n setKoLayer(layer);\n };\n\n const renderKoLayer = (state: any, close: CloseHandleV2) => {\n const NoCompraTitle = 'Uy, algo ha pasado';\n const NoCompraBody = 'Por alguna razón no hemos podido guardar tu respuesta. ¿Lo intentamos de nuevo? ';\n\n return (\n \n \n \n );\n };\n\n const handleLoadingScreenLayer = () => {\n const layer = layerManager.openFocusLayer(renderLoadingScreen, {}, { size: FocusLayerSizeV2.A });\n\n return layer;\n };\n\n const renderLoadingScreen = (state: any, close: CloseHandleV2) => {\n return (\n \n \n \n );\n };\n\n async function handleConfirmarCita(e: any) {\n trackingManager.trackFormCTAClick({\n contentId: 'Sí a sorprender',\n });\n\n const isValid = await triggerValidation();\n\n if (isValid) {\n const loadingLayer = handleLoadingScreenLayer();\n setLayerVisible(true);\n\n const value = await handleSubmit(e);\n loadingLayer.close();\n\n if (value) {\n handleShowFinalScreen();\n } else {\n handleKoLayer();\n }\n }\n }\n\n async function retrySubmit(e: any) {\n if (koLayer) {\n koLayer.close();\n }\n setKoScreen(false);\n const loadingLayer = handleLoadingScreenLayer();\n const value = await handleSubmit(e);\n loadingLayer.close();\n if (value) {\n handleShowFinalScreen();\n } else {\n handleKoLayer();\n setKoScreen(true);\n }\n }\n\n useEffect(() => {\n if (!layerVisible && koScreen) setKoScreen(false);\n }, [layerVisible]);\n\n useEffect(() => {\n dispatch({ type: 'UPDATE_FORM_ENDED', payload: true });\n }, []);\n\n return (\n
\n {\n e.preventDefault();\n handleConfirmarCita(e);\n }}\n stretchContent={window.innerWidth <= 560}\n >\n Sí a sorprender\n \n
\n );\n}\n","\nimport React, { useEffect } from 'react';\nimport { useFormContext } from 'react-hook-form';\nimport { useDispatch, useStore } from 'react-redux';\nimport { dpsSend } from 'src/bff';\nimport { FormController, useOneFormContext, formatPrefix } from 'src/feature-app';\nimport { getParamsForm } from 'src/feature-app/get-params-form';\nimport {} from 'src/forms/MGM';\nimport { FormDataGroup, FormInfo, OneFormState, Steps } from 'src/types';\nimport { ThankYouMGM } from '.';\nimport { formDataBuilder, formatHeaders } from '../format-fields';\nimport { EnvioRegaloFields } from './EnvioRegaloFields';\nimport { LegalMGM } from './LegalMGM';\nimport { MGMFormProps } from './MGMController';\nimport { MGMLayout } from './MGMLayout';\n\nconst envioRegaloCopies = {\n title: 'Di Sí a sorprender a esa persona tan especial.',\n copy: '¡Rellena el formulario con sus datos!',\n};\n\nexport function EnvioRegaloForm(props: MGMFormProps) {\n const { dpsData, idLead, idPerson, trackFormLoad } = props;\n const { initializeForm } = useOneFormContext();\n const store = useStore();\n const dispatch = useDispatch();\n const { getValues } = useFormContext();\n\n const steps: Steps[] = [\n {\n title: <>, // El title se renderiza en los fields al ser un form de un solo step con un diseño que incluye un stage.\n fields: (\n }\n />\n ),\n screenIndex: 0,\n name: 'Form',\n },\n ];\n\n const EnvioRegaloData: Partial = {\n headers: {\n DESC_BRAND: 'VW',\n DESC_GDPR_ADAPTED: 'true',\n DESC_CAMPAIGNBLOCK: '16. One shot',\n DESC_ID_CAMPAIGN: '7011n000001FY4sAAG',\n DESC_TOKEN: 'VW_DDB_FRM_MGM_CLIENTE_RENOVACION_STOCK_22',\n DESC_FORM_DETAIL: 'MGM Envío Regalo Renovación Stock 22',\n },\n fields: {\n formName: 'mgm-envio-regalo',\n formType: 'otherform',\n pageCategory: 'Regalar Cupon',\n }, // Analítica\n };\n\n const generateData = () => {\n const { formData }: OneFormState = store.getState();\n const { fields, headers } = formData;\n const { tc, today, url, device } = getParamsForm();\n const values = getValues();\n\n return {\n 'headers[COD_FORM_ID]': `vw-oneform-${fields.formName}`,\n 'headers[DESC_DEVICETYPE]': device,\n 'headers[DESC_URLORIGIN]': url,\n 'headers[FECHA_INSERTION_DATE]': today,\n 'headers[DESC_FORMOBJECTIVE]': fields.pageCategory, // Revisar\n 'headers[TC]': tc,\n 'headers[PINCODE]': dpsData?.pincode?.pincodeResponse?.params?.pincode,\n ...formatHeaders(headers), // Headers comunes a todos los formularios de leads\n\n 'fields[DESC_SURNAME_2]': idPerson.TXT_2_Surname__c,\n 'fields[DESC_SURNAME_1]': idPerson.LastName,\n 'fields[DESC_NAME]': idPerson.FirstName,\n 'fields[DESC_EMAIL_ADDRESS]': idPerson.TXT_Email__c,\n 'fields[NUM_CELLPHONE]': idPerson.NUM_Phone_mobile__c,\n 'fields[DESC_FORM_VERSION]': `vw-oneform-${fields.formName}-${process.env.VERSION}`,\n 'fields[DESC_AUXFIELD20]': idPerson.Id,\n 'fields[DESC_AUXFIELD1]': 'Envío Regalo',\n 'fields[DESC_AUXFIELD2]': values.name,\n 'fields[DESC_AUXFIELD3]': values.surname,\n 'fields[DESC_AUXFIELD4]': values.secondSurname,\n 'fields[DESC_AUXFIELD5]': values.email,\n 'fields[DESC_AUXFIELD6]': `${formatPrefix(fields.prefix)}${values.cellphone}`,\n 'fields[DESC_LOPD]': 'PERMITE',\n 'fields[DESC_TRANF_DATA_THIRD]': 'NO INFORMADO',\n 'fields[DESC_LSSI]': idPerson.LSSI__c,\n 'fields[DESC_LOPD_GDPR_PERFILADO]': idPerson.Robinson__c,\n\n 'flags[FLAG_ISLEAD]': 'false',\n 'flags[FLAG_ISPROSPECT]': 'false',\n 'flags[FLAG_VOUCHER]': 'false',\n };\n };\n\n const generateSubmitData = () => generateData();\n\n const sendForm = (): Promise => {\n return new Promise(async (resolve) => {\n const data = generateSubmitData();\n\n const dataStringified = JSON.stringify(data);\n const dataParsed = JSON.parse(dataStringified);\n const formData = formDataBuilder(dataParsed);\n\n const response = await dpsSend(formData);\n\n if (response && response.data && response.data.content && response.data.content.code === '200') {\n dispatch({ type: 'SET_FORM_RESPONSE', payload: response.data });\n resolve(true);\n } else {\n resolve(false);\n }\n });\n };\n\n // const { loading, steps, firstStep, lastStep } = useInitializeMGMForm(steps, idLead);\n\n useEffect(() => {\n const EnvioRegaloInfo: Partial = {\n formStarted: true,\n sendFormCallback: sendForm,\n fullScreen: steps[0].fullScreen ? true : false,\n lastStep: steps[steps.length - 1],\n numberOfScreens: steps.length,\n screenIndex: steps[0].screenIndex,\n formTheme: 'main',\n notALayer: true,\n formType: 'inPage',\n hideLegal: true,\n step: steps[0],\n steps,\n stepsHistory: [0],\n customLegal: ,\n thankYouComponent: ,\n };\n initializeForm(EnvioRegaloInfo, EnvioRegaloData, true);\n trackFormLoad();\n }, []);\n\n return !steps ? null : ;\n}\n","import { Spinner, styled, Text } from '@volkswagen-onehub/components-core';\nimport dayjs from 'dayjs';\nimport React, { useEffect, useRef, useState } from 'react';\nimport { useDispatch } from 'react-redux';\nimport { BonoClienteForm } from './';\n// import { MGMContactadoForm } from './MGMContactadoForm';\n// import { MGMNoContactadoForm } from './MGMNoContactadoForm';\nimport { GenericErrorLayer } from 'src/components/layers';\nimport { useFeatureServices, useTrackingManager, useFaContent} from 'src/feature-app';\nimport { DpsData, EsOneformCoreServiceV1 } from 'src/feature-service/es-oneform-core-feature-service/types';\nimport { CarlineBase, DealersData, IdLead, IdPerson } from 'src/types';\n// import { checkIdLeadHasCarline } from './use-initialize-MGM-form';\nimport { createPincodeEntity } from '../dps-utils';\nimport { EnvioRegaloForm } from './EnvioRegaloForm';\nimport { BonoRegaloForm } from './BonoRegaloForm';\n\nexport interface MGMFormProps {\n idLead: IdLead;\n idPerson: IdPerson;\n dpsData: DpsData;\n handleError: () => void;\n trackFormLoad: () => void;\n}\n\nexport interface MGMFieldsProps {\n title: string;\n copy: string;\n}\n\nexport function MGMController() {\n const [loading, setLoading] = useState(true);\n const [error, setError] = useState(false);\n const [usado, setUsado] = useState(false);\n const [caducado, setCaducado] = useState(false);\n const [bonoCliente, setBonoCliente] = useState(false);\n const [envioRegalo, setEnvioRegalo] = useState(false);\n const [bonoRegalo, setBonoRegalo] = useState(false);\n const trackingManager = useTrackingManager();\n const dpsDataRef = useRef(null);\n const idLeadRef = useRef(null);\n const idPersonRef = useRef(null);\n const oneFormService = useFeatureServices()['es:oneform-core'] as EsOneformCoreServiceV1;\n const faContent = useFaContent();\n\n const handleNext = (value: any) => {};\n const handleComplete = () => {\n const dpsData = oneFormService.getDpsData();\n\n if (dpsData.pincode === null || dpsData.pincode.noPincodeFound || dpsData.pincode.pincodeError) {\n handleError();\n } else if (dpsData.pincode.pincodeUsed) {\n setUsado(true);\n setLoading(false);\n } else {\n const idLead = createPincodeEntity(dpsData, 'LEAD');\n const idPerson = createPincodeEntity(dpsData, 'PERSON');\n\n dpsDataRef.current = dpsData;\n idLeadRef.current = idLead;\n idPersonRef.current = idPerson;\n\n if (faContent.mgm === 'Bono Cliente') {\n setBonoCliente(true);\n } else if (faContent.mgm === 'Envío Regalo') {\n setEnvioRegalo(true);\n } else if (faContent.mgm === 'Bono Regalo') {\n setBonoRegalo(true);\n }\n setLoading(false);\n }\n };\n\n const handleError = () => {\n setError(true);\n setLoading(false);\n };\n\n const trackFormLoad = () => {\n trackingManager.trackFormLoad();\n };\n\n useEffect(() => {\n const oneFormCoreDpsIsLoaded = oneFormService.getLoadedState();\n\n oneFormCoreDpsIsLoaded.subscribe({\n next(value) {\n handleNext(value);\n },\n error(err) {\n console.error(err);\n handleError();\n },\n complete() {\n handleComplete();\n },\n });\n }, []);\n\n if (loading) {\n return ;\n } else if (error) {\n return (\n <>\n \n \n );\n } else if (caducado) {\n return (\n <>\n \n \n );\n } else if (usado) {\n return (\n <>\n \n \n );\n } else {\n return (\n <>\n {bonoCliente ? (\n \n ) : envioRegalo ? (\n \n ) : bonoRegalo ? (\n \n ) : null}\n \n );\n }\n}\ninterface CenterContentProps {\n height: string;\n}\nconst CenterContent = styled.div`\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n height: ${(props) => (props.height ? props.height : '100%')};\n`;\n\nconst Loading = () => {\n const [height, setHeight] = useState('100%');\n\n useEffect(() => {\n const viewportHeight = window.innerHeight;\n const viewportWidth = window.innerWidth;\n let aux;\n\n if (viewportWidth < 560) {\n aux = viewportHeight - 152;\n } else if (viewportWidth < 1600) {\n aux = viewportHeight - 252;\n } else {\n aux = viewportHeight - 380;\n }\n setHeight(`${aux}px`);\n }, []);\n\n return (\n \n \n Cargando tus datos\n \n );\n};\n","import { Text } from '@volkswagen-onehub/components-core';\nimport React, { useEffect } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { TrackingForm, useTrackingManager } from 'src/feature-app';\nimport { RenderController } from 'src/feature-app/Screen';\nimport { OneFormState, Steps } from 'src/types';\n\nexport function ThankYouMGM({ friend }: { friend?: boolean }) {\n const { formInfo } = useSelector((state: OneFormState) => state);\n const { formResponse } = formInfo;\n const trackingManager = useTrackingManager();\n const dispatch = useDispatch();\n const getTrackingForm = (): TrackingForm => ({\n LeadID: undefined,\n FormFields: undefined,\n });\n\n useEffect(() => {\n // Thank you page no es gestionado como un step pero sí lo haremos en la analítica. Por eso Modificamos formInfo después del submit y antes del RESET\n const screenIndexThankyou = formInfo?.numberOfScreens;\n\n dispatch({ type: 'SET_FORM_SUBMITTED', payload: true });\n dispatch({ type: 'SET_FORM_INFO', payload: { step: { screenIndex: screenIndexThankyou, name: \"ThankYou\" } } });\n\n trackingManager.trackFormSubmissionSuccessMessageLoad(\n {\n contentId: undefined,\n },\n getTrackingForm()\n );\n }, []);\n\n const screen: Steps = {\n title: friend ? (\n <>\n ¡Muchas gracias! Esa persona tan especial ya está más cerca de estrenar su Volkswagen.\n \n ) : (\n <>\n ¡Muchas gracias! Ya estás más cerca de estrenar tu Volkswagen.\n \n ),\n fields: <>,\n };\n return (\n \n );\n}\n","import { Breakpoints, Layout } from '@volkswagen-onehub/components-core';\nimport { \n LegalesFormatoLayer, \n LssiTkmQuestions, \n LastNavigation, \n PoliticaPrivacidad,\n GeneralConfirmacionLayerWrapper\n} from 'src/components';\nimport React from 'react';\n\nexport const ConfirmacionNewsletter = () => {\n\n return (\n \n \n \n \n \n \n \n \n );\n};\n","import Axios, { AxiosResponse } from 'axios';\nimport React, { useEffect } from 'react';\nimport { Text } from '@volkswagen-onehub/components-core';\nimport { OneElementTemplate } from 'src/feature-app/Screen';\nimport { ConfirmacionNewsletter } from './ConfirmacionNewsletter';\nimport { Email, PantallaNombreApellido } from 'src/components';\nimport { useDispatch, useStore } from 'react-redux';\nimport { oneformBFFNdpsSend } from 'src/bff';\nimport { getParamsForm } from 'src/feature-app/get-params-form';\nimport { FormDataGroup, FormInfo, OneFormState, Steps, MolecularResponse } from 'src/types';\nimport { FormController, removeWhiteSpace, useFeatureAppConfig, useOneFormContext } from 'src/feature-app';\nimport { ThankYouNewsletter } from './';\nimport { formDataBuilder } from '../format-fields';\n\nexport enum NewsletterSteps {\n NombreApellido,\n Email,\n Confirmacion,\n}\n\nexport function NewsletterForm() {\n const { initializeForm } = useOneFormContext();\n const store = useStore();\n const config = useFeatureAppConfig();\n const dispatch = useDispatch();\n const steps: Steps[] = [\n {\n title: (\n <>\n Queremos contártelo todo sobre la familia ID. Pero antes, nos gustaría saber quién eres\n \n ),\n fields: (\n \n \n \n }\n />\n ),\n screenIndex: NewsletterSteps.NombreApellido,\n name: 'NombreApellido',\n outputs: ['name', 'surname', 'secondSurname'],\n outputsText: ['name', 'surname', 'secondSurname'],\n },\n {\n title: (\n <>\n ¿A qué email te enviamos nuestras novedades?\n \n ),\n fields: (\n \n \n \n }\n />\n ),\n screenIndex: NewsletterSteps.Email,\n name: 'Email',\n outputs: ['email'],\n outputsText: ['email'],\n },\n {\n fields: ,\n screenIndex: NewsletterSteps.Confirmacion,\n name: 'Confirmacion',\n isLastStep: true,\n hidePreviousStep: true,\n },\n ];\n\n const NuevoFormData: Partial = {\n headers: {\n DESC_BRAND: 'VW',\n DESC_VN_VO: 'VN',\n DESC_GDPR_ADAPTED: 'true',\n },\n fields: { formName: 'newsletter', formType: 'newsletter', pageCategory: 'Suscripción Newsletter' }, // Analítica\n };\n\n const getFormInfo = (): {\n firstStep: Steps;\n lastStep: Steps;\n stepsHistory: number[];\n numberOfScreens: number;\n newSteps?: Steps[];\n } => {\n return {\n firstStep: steps[0],\n lastStep: steps[steps.length - 1],\n stepsHistory: [0],\n numberOfScreens: steps.length,\n newSteps: null,\n };\n };\n\n const sendForm = (): Promise => {\n const { formData, dealersInfo }: OneFormState = store.getState();\n\n const { fields, headers } = formData;\n\n return new Promise(async (resolve, reject) => {\n const { tc, today, referalUrl, url, device } = getParamsForm();\n\n const data = {\n 'headers[DPS_TOKEN]': 'VW_DDB_FRM_ID_NEWSLETTER',\n 'headers[FORM_DATE_INSERTION]': today,\n 'headers[FORM_DETAILS]': 'ID', //Este debería pasarse a variable, aunque actualmente siempre sea ID\n 'headers[FORM_NAME]': 'vw-oneform-newsletter', \n 'headers[FORM_OBJECTIVE]': 'Suscripción Newsletter',\n 'headers[FORM_URL]': url,\n 'headers[FORM_VERSION]': `vw-oneform-newsletter-${process.env.VERSION}`,\n 'headers[ORIGIN_DEVICE_TYPE]': device,\n 'headers[ORIGIN_TRACKING_CODE]': tc,\n 'headers[SF_CAMPAIGN_ID]': '7011n000000APfGAAW',\n 'headers[SF_CAMPAIGN_NAME]': 'PENDIENTE',\n 'headers[SF_CAMPAIGN_ORIGIN_ID]': 'PENDIENTE',\n\n 'flags[FLAG_RELACION_MARCA_SIN_IC]': false,\n 'flags[PERSON_RGPD_ADAPTED]': true,\n\n 'fields[DPS_BRAND]': 'Volkswagen',\n 'fields[SF_LEAD_SALES_INITIAL_ACTION]': 'Prospect',\n 'fields[PERSON_NAME]': fields.name,\n 'fields[PERSON_SURNAME_1]': fields.surname,\n 'fields[PERSON_SURNAME_2]': fields.secondSurname,\n 'fields[PERSON_EMAIL]': removeWhiteSpace(fields.email),\n 'fields[PERSON_PHONE_MOBILE]': fields.cellphone,\n 'fields[PERSON_RGPD_COM_COMERCIALES]': fields.lssi ? fields.lssi : 'NO INFORMADO',\n 'fields[PERSON_RGPD_PERFILADO]': fields.tmk ? fields.tmk : 'NO INFORMADO',\n };\n const dataStringified = JSON.stringify(data);\n const dataParsed = JSON.parse(dataStringified);\n\n const formData = formDataBuilder(dataParsed);\n\n const response = await oneformBFFNdpsSend(formData);\n\n if (response && response.data && response.data.content && response.data?.status?.code == '200') {\n dispatch({ type: 'SET_FORM_RESPONSE', payload: response.data });\n resolve(true);\n } else {\n resolve(false);\n }\n });\n };\n\n useEffect(() => {\n const { firstStep, lastStep, stepsHistory, numberOfScreens, newSteps } = getFormInfo();\n\n const NuevoFormInfo: Partial = {\n formStarted: true,\n sendFormCallback: sendForm,\n fullScreen: firstStep.fullScreen ? true : false,\n lastStep,\n numberOfScreens,\n formTheme: 'inverted',\n screenIndex: firstStep.screenIndex,\n step: firstStep,\n steps: newSteps ? newSteps : steps,\n stepsHistory,\n notALayer: false,\n formType: 'layer',\n thankYouComponent: ,\n };\n\n initializeForm(NuevoFormInfo, NuevoFormData);\n }, []);\n\n return ;\n}\n","import React, { useEffect } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { useTrackingManager, getTrackingForm } from 'src/feature-app';\nimport { RenderController } from 'src/feature-app/Screen';\nimport { OneFormState, Steps } from 'src/types';\nimport { ThankYouTitle, ThankYouFields } from 'src/components';\n\nexport const ThankYouNewsletter = () => {\n const { formInfo } = useSelector((state: OneFormState) => state);\n const { formResponse } = formInfo;\n\n const trackingManager = useTrackingManager();\n const dispatch = useDispatch();\n\n useEffect(() => {\n // Thank you page no es gestionado como un step pero sí lo haremos en la analítica. Por eso Modificamos formInfo después del submit y antes del RESET\n const screenIndexThankyou = formInfo.numberOfScreens;\n\n dispatch({ type: 'SET_FORM_SUBMITTED', payload: true });\n dispatch({ type: 'SET_FORM_INFO', payload: { step: { screenIndex: screenIndexThankyou, name: \"ThankYou\" } } });\n\n trackingManager.trackFormSubmissionSuccessMessageLoad(\n {\n contentId: undefined,\n },\n getTrackingForm(formResponse)\n );\n }, []);\n\n const screen: Steps = {\n title: ,\n fields: ,\n };\n return (\n \n );\n};\n","import { useEffect, useState } from 'react';\nimport { useDispatch } from 'react-redux';\nimport { getCarlines } from 'src/bff';\nimport { useGetInstalaciones } from 'src/feature-app';\nimport { IdLead, Steps } from 'src/types';\n\nconst getLastItemOfSteps = (steps: Steps[]) => steps[steps.length - 1];\n\nconst propertyHasValue = (property: string) => property !== 'null';\n\nexport const checkHasCarline = (idLead: IdLead) =>\n idLead &&\n idLead.NUM_COD_INTEREST_CARLINE__c &&\n idLead.DESC_Model__c &&\n propertyHasValue(idLead.NUM_COD_INTEREST_CARLINE__c) &&\n propertyHasValue(idLead.DESC_Model__c);\n\nexport function useInitializeNoCompraForm(steps: Steps[]) {\n const dispatch = useDispatch();\n const [loading, setLoading] = useState(true);\n const installations = useGetInstalaciones('VW_DDB_FRM_ENCUESTA_NO_COMPRA'); // Inicialización de las instalaciones\n\n useEffect(() => {\n const requestCarlines = async () => {\n const carlines = await getCarlines();\n\n dispatch({ type: 'SET_CARLINES', payload: carlines });\n setLoading(false);\n };\n\n requestCarlines();\n }, []);\n\n return { firstStep: steps[0], lastStep: getLastItemOfSteps(steps), loading };\n}\n","import React, { useEffect, useRef, useState } from 'react';\nimport { useDispatch } from 'react-redux';\nimport { useFeatureServices, useTrackingManager } from 'src/feature-app';\nimport { DpsData, EsOneformCoreServiceV1 } from 'src/feature-service/es-oneform-core-feature-service/types';\nimport { CarlineBase, DealersData, IdLead, IdPerson } from 'src/types';\nimport { NoCompraYaTengo, NoCompraNoTengo, NoCompraNoQuiero } from '.';\nimport { GenericErrorLayer } from 'src/components/layers';\nimport { checkHasCarline } from './use-initialize-no-compra-form';\nimport { createPincodeEntity } from '../dps-utils';\nimport { LoadingEncuestas } from 'src/components';\n\nexport interface NoCompraFormProps {\n idLead: IdLead;\n idPerson: IdPerson;\n dpsData: DpsData;\n handleError: () => void;\n trackFormLoad: () => void;\n estado: string;\n}\n\nexport function NoCompraController() {\n const [loading, setLoading] = useState(true);\n const [error, setError] = useState(false);\n const [usado, setUsado] = useState(false);\n const [estado, setEstado] = useState(null);\n const [yaTengo, setYaTengo] = useState(false);\n const [noTengo, setNoTengo] = useState(false);\n const [noQuiero, setNoQuiero] = useState(false);\n const trackingManager = useTrackingManager();\n const dpsDataRef = useRef(null);\n const idLeadRef = useRef(null);\n const idPersonRef = useRef(null);\n const oneFormService = useFeatureServices()['es:oneform-core'] as EsOneformCoreServiceV1;\n const dispatch = useDispatch();\n\n const handleNext = (value: any) => { };\n const handleComplete = () => {\n const dpsData = oneFormService.getDpsData();\n const { estado } = dpsData;\n setEstado(estado);\n\n if (dpsData.pincode === null || dpsData.pincode.noPincodeFound || dpsData.pincode.pincodeError) {\n handleError();\n } else if (dpsData.pincode.pincodeUsed) {\n setUsado(true);\n setLoading(false);\n } else {\n const idLead = createPincodeEntity(dpsData, 'LEAD');\n const idPerson = createPincodeEntity(dpsData, 'PERSON');\n\n dpsDataRef.current = dpsData;\n idLeadRef.current = idLead;\n idPersonRef.current = idPerson;\n\n if (estado === 'ya_tengo') {\n setYaTengo(true);\n } else if (estado === 'no_quiero') {\n setNoQuiero(true);\n } else if (estado === 'no_tengo') {\n setNoTengo(true);\n } else {\n handleError();\n }\n setLoading(false);\n }\n };\n\n const handleError = () => {\n setError(true);\n setLoading(false);\n };\n\n {/* useEffect(() => {\n console.log(error, 'error');\n }, [error]);*/}\n\n const trackFormLoad = () => {\n if (idLeadRef.current) {\n const customDealer: DealersData = {\n kvps: idLeadRef.current.TXT_DESC_DEALER_CODE__c,\n name: idLeadRef.current.DESC_Dealer_Code__c,\n markerInfo: { dealerInfo: { zipCode: idLeadRef.current.TXT_Postal_Code__c } },\n };\n dispatch({ type: 'SET_SELECTED_DEALER', payload: customDealer });\n if (checkHasCarline(idLeadRef.current)) {\n const carline: Partial = {\n title: idLeadRef.current.DESC_Model__c,\n code: Number(idLeadRef.current.NUM_COD_INTEREST_CARLINE__c),\n };\n dispatch({ type: 'SET_SELECTED_CARLINE', payload: carline });\n }\n }\n trackingManager.trackFormLoad();\n };\n\n useEffect(() => {\n const oneFormCoreDpsIsLoaded = oneFormService.getLoadedState();\n\n oneFormCoreDpsIsLoaded.subscribe({\n next(value) {\n handleNext(value);\n },\n error(err) {\n console.error(err);\n handleError();\n },\n complete() {\n handleComplete();\n },\n });\n }, []);\n\n // función para layer de error\n const handleTryAgain = async () => {\n // oneFormService.\n setError(false);\n setLoading(true);\n await oneFormService.retryPincodeLoad();\n handleComplete();\n };\n\n if (loading) {\n return ;\n } else if (error) {\n return (\n <>\n \n \n );\n } else if (usado) {\n return (\n <>\n \n \n );\n } else {\n return (\n <>\n {yaTengo ? (\n \n ) : noTengo ? (\n \n ) : noQuiero ? (\n \n ) : null}\n \n );\n }\n}\n","import { Text } from '@volkswagen-onehub/components-core';\nimport React, { useEffect, useState } from 'react';\nimport { useDispatch, useSelector, useStore } from 'react-redux';\nimport { oneformBFFNdpsSend, getVehiculosModelo } from 'src/bff';\nimport { FechaCompra, PantallaIntroduccionStars, SelectMarcaModelo, MultipleCTASelection } from 'src/components';\nimport { FormController, useOneFormContext } from 'src/feature-app';\nimport { OneElementTemplateFullScreen } from 'src/feature-app/Screen';\nimport { useTrackingManager } from 'src/feature-app/hooks/use-tracking-manager';\nimport { formDataBuilder } from 'src/forms/format-fields';\nimport { FormDataGroup, FormInfo, OneFormState, Steps } from 'src/types';\nimport { useInitializeNoCompraForm, NoCompraFormProps, ConfirmacionNoCompra, ThankYouNoCompra, getCommonFormData, RatingSteps } from '.';\n\nexport enum NoCompraYaTengoSteps {\n //FechaCompra,\n TipoCompra,\n Modelo,\n Valoracion,\n Plazos,\n\tVisita,\n\tPrecio,\n\tEquipamiento,\n\tConsumo,\n\tGarantia,\n\tFinanciacion,\n Confirmacion,\n}\n\nexport function NoCompraYaTengo({ dpsData, idLead, idPerson, handleError, trackFormLoad, estado }: NoCompraFormProps) {\n const { initializeForm, nextStep } = useOneFormContext();\n const trackingManager = useTrackingManager();\n const store = useStore();\n const dispatch = useDispatch();\n const { formData } = useSelector((state: OneFormState) => state);\n const [loadingPresubmit, setLoadingPresubmit] = useState(true);\n\n const ctasTipoCompra = [\n {\n label: 'He comprado un vehículo nuevo',\n value: '1'\n },\n {\n label: 'He comprado un vehículo de ocasión',\n value: '2'\n },\n ];\n \n /*\n const getModeloInteresOutputs = (modelo: string, list: any) => {\n const aux = list.find((mod: any) => mod.name === 'modelo');\n return [aux.title];\n };\n\n const { modelo } = formData;\n\n\tuseEffect(() => {\n if (modelo) updateModelo(modelo);\n }, [modelo]);\n\n const updateModelo = (modelo: string) => {\n const outputs = getModeloInteresOutputs(modelo, list);\n\n let newSteps = [...steps];\n\n const modeloIndex = newSteps.findIndex((step: Steps) => step.name === 'Modelo');\n newSteps[modeloIndex].outputsText = outputs;\n\n dispatch({ type: 'UPDATE_STEPS', payload: newSteps });\n };*/\n\n const [list, setList] = useState(null);\n\n useEffect(() => {\n getVehiculosModelo().then((modelos) => {\n setList(modelos);\n });\n }, []);\n\n useEffect(() => {\n const sendPresubmit = async () => {\n const result = await sendForm(true);\n\n if (!result) {\n handleError();\n }\n setLoadingPresubmit(false);\n };\n\n sendPresubmit();\n }, []);\n\n const steps: Steps[] = [\n /*{\n title: (\n <>\n Nos encantaría saber más. ¿Desde cuándo tienes coche nuevo?\n \n ),\n fields: (\n \n \n \n }\n />\n ),\n screenIndex: NoCompraYaTengoSteps.FechaCompra,\n name: 'FechaCompra',\n },*/\n {\n title: (\n <>\n ¿Podrías indicarnos si has comprado finalmente un vehículo nuevo o de ocasión?\n \n ),\n fields: (\n }\n />\n ),\n screenIndex: NoCompraYaTengoSteps.TipoCompra,\n name: 'TipoCompra',\n },\n {\n title: (\n <>\n Por curiosidad,{' '}\n \n ¿qué modelo{' '}\n \n es?*\n \n \n \n ),\n fields: (\n \n }\n />\n ),\n screenIndex: NoCompraYaTengoSteps.Modelo,\n name: 'Modelo',\n showOverflow: true,\n },\n {\n title: (\n <>\n Nos hubiera encantado que fuera un Volkswagen. ¿Nos ayudas a mejorar?\n \n ),\n fields: ,\n screenIndex: NoCompraYaTengoSteps.Valoracion,\n name: 'Valoracion',\n },\n\n ...RatingSteps('ya_tengo', NoCompraYaTengoSteps.Valoracion),\n \n {\n fields: ,\n screenIndex: NoCompraYaTengoSteps.Confirmacion,\n name: 'Confirmacion',\n },\n ];\n\n const NuevoFormData: Partial = {\n headers: {},\n\t\tfields: { \n formName: 'no_compra-ya_tengo', \n formType: 'otherform', \n pageCategory: 'Encuesta' \n }\n };\n\n const generateData = (isPresubmit: boolean, data: Partial) => {\n const { formData }: OneFormState = store.getState();\n const { fields } = formData; \n\n\t\tconst submitData = !isPresubmit ? {\n //'fields[SURVEY_ANSWER_02]': fields.fecha,\n 'fields[SURVEY_ANSWER_02]': fields.tipoCompra,\n 'fields[SURVEY_ANSWER_03]': fields.marca,\n 'fields[SURVEY_ANSWER_04]': fields.modelo,\n 'fields[SURVEY_ANSWER_05]': fields.plazos,\n 'fields[SURVEY_ANSWER_06]': fields.visita,\n 'fields[SURVEY_ANSWER_08]': fields.precio,\n 'fields[SURVEY_ANSWER_09]': fields.equipamiento,\n 'fields[SURVEY_ANSWER_10]': fields.consumo,\n 'fields[SURVEY_ANSWER_11]': fields.garantia,\n 'fields[SURVEY_ANSWER_12]': fields.financiacion,\n 'flags[FLAG_SF_INTEGRATION]' : false,\n\t\t} : null;\n\n return {\n\t\t\t...getCommonFormData(isPresubmit, idLead, dpsData, fields, data),\n\t\t\t...submitData,\n };\n };\n\n const sendForm = async (isPresubmit?: boolean): Promise => {\n return new Promise(async (resolve, reject) => {\n const data = generateData(isPresubmit, NuevoFormData);\n const dataStringified = JSON.stringify(data);\n const dataParsed = JSON.parse(dataStringified);\n const formData = formDataBuilder(dataParsed);\n\n const response = await oneformBFFNdpsSend(formData, isPresubmit);\n\n if (response?.data?.status?.code == '200') {\n dispatch({ type: 'SET_FORM_RESPONSE', payload: response.data });\n resolve(true);\n } else {\n resolve(false);\n }\n });\n };\n\n const { firstStep, lastStep, loading } = useInitializeNoCompraForm(steps);\n\n useEffect(() => {\n const NuevoFormInfo: Partial = {\n formStarted: true,\n sendFormCallback: sendForm,\n fullScreen: firstStep.fullScreen ? true : false,\n lastStep,\n numberOfScreens: steps.length,\n screenIndex: firstStep.screenIndex,\n formTheme: 'main',\n notALayer: true,\n formType: 'inPage',\n step: firstStep,\n steps,\n stepsHistory: [0],\n thankYouComponent: ,\n };\n\n if (!loading) {\n initializeForm(NuevoFormInfo, NuevoFormData, true);\n trackFormLoad();\n }\n }, [loading]);\n\n return loading || loadingPresubmit || !steps ? null : ;\n}\n","import {\n Breakpoints,\n Container,\n ContainerPadding,\n styled,\n Text,\n Layout,\n TokenTextAppearance,\n} from '@volkswagen-onehub/components-core';\nimport React, { useEffect, useState } from 'react';\nimport { useDispatch, useSelector, useStore } from 'react-redux';\nimport { LastNavigation, LssiTkmQuestions, MultipleCTASelection, PoliticaPrivacidad } from 'src/components';\nimport { CTAsSiNo } from 'src/feature-app';\nimport { IdLead, OneFormState } from 'src/types';\n\nconst GeneralconfirmacionWrapper = styled.div``;\n\nconst InputErrorLegales = styled.p`\n position: relative;\n margin-top: 10px;\n background-color: #e4002c;\n color: white;\n width: max-content;\n max-width: 280px;\n padding: 4px 8px;\n border-radius: 4px;\n font-size: 14px;\n`;\ninterface ConfirmacionNoCompraProps {\n idLead: IdLead;\n}\n\nexport const ConfirmacionNoCompra = (props: ConfirmacionNoCompraProps) => {\n const dispatch = useDispatch();\n const { formData } = useSelector((state: OneFormState) => state);\n const [compartir, setCompartir] = useState(null);\n const [compartirError, setCompartirError] = useState(false);\n const store = useStore();\n\n const noTengo = formData.fields.formName == 'no_compra-no_tengo';\n const quieroContacto: boolean = store.getState().formData.fields.quieroContacto == 'true';\n const lssiPermite: boolean = props.idLead?.LSSI__c == 'PERMITE';\n\n useEffect(() => {\n if (compartir) {\n const values = { compartir: compartir };\n dispatch({ type: 'UPDATE_FIELDS', payload: values });\n setCompartirError(false);\n }\n }, [compartir]);\n\n useEffect(() => {\n if (lssiPermite) {\n dispatch({ type: 'UPDATE_FIELDS', payload: { lssi: 'NO INFORMADO', tkm: 'NO INFORMADO' } });\n }\n }, [props.idLead]);\n\n return (\n \n \n { lssiPermite && (!quieroContacto || !noTengo) ? \n (\n
\n \n ¿Listo para enviar?\n \n
\n ) \n :\n (\n \n Y unas últimas preguntas\n \n )\n }\n { noTengo && quieroContacto ?\n (\n \n
\n \n ¿Podemos compartir tu respuesta con el{' '}\n \n punto de venta?*\n \n \n
\n \n {compartirError ? Este campo es obligatorio : null}\n
\n )\n :\n null\n }\n\n \n \n\n \n \n
\n );\n};\n","import React, { useEffect } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { useTrackingManager, getTrackingForm } from 'src/feature-app';\nimport { RenderController } from 'src/feature-app/Screen';\nimport { OneFormState, Steps } from 'src/types';\nimport { ThankYouTitle, ThankYouFields } from 'src/components';\ninterface NDPSField {\n name: string;\n value: string;\n}\n\nconst ctasNoCompra = [\n {\n emphasis: 'primary',\n url: 'https://www.volkswagen.es/stock/',\n label: 'Ofertas y stock'\n },\n {\n emphasis: 'primary',\n url: 'https://www.volkswagen.es/es/financiacion-seguros.html',\n label: 'Tipos de financiación'\n },\n];\n\nexport const ThankYouNoCompra = () => {\n const { formInfo } = useSelector((state: OneFormState) => state);\n const { formResponse } = formInfo;\n\n const trackingManager = useTrackingManager();\n const dispatch = useDispatch();\n\n useEffect(() => {\n // Thank you page no es gestionado como un step pero sí lo haremos en la analítica. Por eso Modificamos formInfo después del submit y antes del RESET\n const screenIndexThankyou = formInfo.numberOfScreens;\n\n dispatch({ type: 'SET_FORM_SUBMITTED', payload: true });\n dispatch({ type: 'SET_FORM_INFO', payload: { step: { screenIndex: screenIndexThankyou, name: \"ThankYou\" } } });\n\n trackingManager.trackFormSubmissionSuccessMessageLoad(\n {\n contentId: undefined,\n },\n getTrackingForm(formResponse)\n );\n }, []);\n\n const screen: Steps = {\n title: (\n \n ),\n fields: (\n \n ),\n };\n return (\n \n );\n};\n","import { Breakpoints, BreakpointWrapper } from '@volkswagen-onehub/components-core';\nimport { CloseHandleV2, FocusLayerSizeV2, LayerManagerV2 } from '@volkswagen-onehub/layer-manager';\nimport React, { useCallback, useEffect, useRef, useState } from 'react';\nimport { useDispatch, useSelector, useStore } from 'react-redux';\nimport { AvailabilityErrorLayer } from 'src/components';\nimport {\n LayerManagerWrapper,\n useFeatureAppEnvironment,\n useMapGeneralController,\n sortPoints,\n useOneFormContext,\n useFeatureServices,\n NewDealerCard,\n} from 'src/feature-app';\nimport { LoadingLayer } from 'src/forms/CitaPosventa/NuevaCitaPosventa';\nimport { Horario, OneFormState, Points } from 'src/types';\nimport { fetchProvince, fetchProvinceLegacy } from 'src/bff';\nimport { useIsComerciales } from 'src/feature-app/hooks';\nimport { \n getDistanceFromLatLngCenter, \n LayerDesktopView, \n LayerMobileView \n} from 'src/feature-app/NewMap';\n\nexport const JourneyNoCompraController = () => {\n const { formData, formInfo } = useSelector((state: OneFormState) => state);\n const { horario }: { horario?: Horario } = formData.fields;\n const { handleNextStep } = useOneFormContext();\n const layerManager = useFeatureServices()['layer-manager'] as LayerManagerV2;\n const store = useStore();\n const dispatch = useDispatch();\n const env = useFeatureAppEnvironment();\n const [loading, setLoading] = useState(false);\n const pointsByDistanceRef = useRef(null);\n const isComerciales = useIsComerciales();\n\n const loadingLayer = useRef(null);\n const {\n clusters,\n centerToCalculateDistance,\n superClusterRef,\n cardsDistanceRef,\n cardsTimeRef,\n } = useMapGeneralController();\n\n const [pointsToList, setPointsToList] = useState(null);\n\n useEffect(() => {\n if (clusters && superClusterRef.current) {\n const { pointsByDistance } = sortPoints(\n clusters,\n horario,\n centerToCalculateDistance.current,\n superClusterRef.current\n );\n pointsByDistanceRef.current = pointsByDistance;\n setPointsToList(pointsByDistance);\n }\n }, [clusters, superClusterRef.current]);\n\n const renderPoints = (points: Points[], isTime?: boolean, isCarouselCard?: boolean): JSX.Element[] => {\n // const pointsToRender = isTime ? pointsByTime : pointsByDistance;\n\n return points.map((point: Points, index: number) => {\n if (!point.properties.cluster) {\n const { dealer } = point.properties;\n const distanceFromCenter = getDistanceFromLatLngCenter(centerToCalculateDistance.current, point);\n\n return (\n {\n cardsDistanceRef.current[index] = el;\n }}\n >\n \n \n );\n }\n return null;\n });\n };\n\n // Gestión del point seleccionado y del boton de seleccionar (dms)\n const handleSeleccionarOnClick = useCallback((point: Points) => {\n // Añadir lógica para guardar el dealer seleccionado\n dispatch({ type: 'SET_SELECTED_INSTALLATION', payload: point.properties.installation });\n dispatch({ type: 'UPDATE_FIELDS', payload: { quieroContacto: 'true' } });\n dispatch({ type: 'UPDATE_LITERAL_FIELDS_STEPS', payload: { MapSearch: point.properties.installation.VGED_CommercialName__c } });\n \n // Necesitamos el nombre de la provincia, y éste no está disponible en la request de instalaciones.\n if(isComerciales) {\n fetchProvinceLegacy('LCV_DDB_FRM_LEM_REC_LEM').then((response) => {\n const province = response.content.find((att) =>\n att.attributes.find((prov) => prov.value === point.properties.installation.BillingStateCode)\n );\n const provinceName = province?.attributes[1]?.value ? province.attributes[1].value : point.properties.installation.Province;\n \n dispatch({ type: 'UPDATE_FIELDS', payload: { provinceName } });\n });\n }\n else {\n fetchProvince('VW_DDB_FRM_LEM_REC_LEM').then((response) => {\n const province = response.content.find((att) =>\n att.attributes.find((prov) => prov.value === point.properties.installation.BillingStateCode)\n );\n const provinceName = province?.attributes[1]?.value ? province.attributes[1].value : point.properties.installation.Province;\n \n dispatch({ type: 'UPDATE_FIELDS', payload: { provinceName } });\n });\n }\n \n handleNextStep();\n }, []);\n\n const renderAvailabilityErrorLayer = (state: any, close: CloseHandleV2) => {\n return (\n \n \n \n );\n };\n const renderLoadingLayer = () => {\n return (\n \n \n \n );\n };\n\n const handleAvailabilityErrorLayer = () => {\n layerManager.openFocusLayer(renderAvailabilityErrorLayer, {}, { size: FocusLayerSizeV2.A });\n };\n\n const handleLoadingLayer = () => {\n if (loading) {\n const layer = layerManager.openFocusLayer(renderLoadingLayer, {}, { size: FocusLayerSizeV2.A });\n loadingLayer.current = layer;\n } else {\n if (loadingLayer.current) {\n loadingLayer.current.close();\n loadingLayer.current = null;\n }\n }\n };\n\n useEffect(() => {\n handleLoadingLayer();\n }, [loading]);\n\n // availability functions\n\n return (\n
\n \n \n \n\n \n \n \n
\n );\n};\n","import React from 'react';\nimport { JourneyNoCompraController } from '.';\nimport { MapGeneralController } from 'src/feature-app';\n\n/**\n * Este componente está creado únicamente para que JourneyNoCompraController tenga acceso a las variables de MapGeneralController.\n */\nexport const JourneyNoCompraWrapper = () => {\n \n return (\n \n \n \n );\n};\n","import { Text, CTA, styled } from '@volkswagen-onehub/components-core';\nimport React, { useEffect, useRef, useState } from 'react';\nimport { useDispatch, useSelector, useStore } from 'react-redux';\nimport { LocateUserFullScreen } from 'src/components';\nimport {\n LayerManagerWrapper,\n useFeatureAppEnvironment,\n useFeatureServices,\n useOneFormContext,\n} from 'src/feature-app';\nimport { RenderController, OneElementTemplateFullScreen } from 'src/feature-app/Screen';\nimport LoadScriptInstance from 'src/feature-app/NewMap/Loadscript';\nimport { TIME_FOR_TRANSFORM } from 'src/globals';\nimport { DealersData, OneFormState, Steps } from 'src/types';\nimport { JourneyNoCompraWrapper } from './JourneyNoCompraWrapper';\nimport { InteractionLayerSizeV2, ShimBackgroundTypeV2 } from '@volkswagen-onehub/layer-manager';\n\nenum MapaNoCompraSteps {\n Dealer,\n Horario,\n SeleccionCita,\n SeleccionFecha,\n}\n\ninterface MapaNoCompraProps {\n showHorario?: boolean;\n formName: string;\n}\n\nconst isLastScreen = (steps: Steps[], multiStepScreenIndex: number) => steps.length - 1 === multiStepScreenIndex;\nconst isFirstScreen = (multiStepScreenIndex: number) => multiStepScreenIndex === 0;\n\nexport function MapaNoCompra(props: MapaNoCompraProps) {\n const dispatch = useDispatch();\n const store = useStore();\n const { formData, formInfo } = useSelector((state: OneFormState) => state);\n const { firstMapLoad, multiStepScreenIndex, navigationMovingForward } = formInfo;\n const layerManager = useFeatureServices()['layer-manager'];\n const env = useFeatureAppEnvironment();\n const {\n handleScreenChange,\n // setWaitForNextStep,\n setNextMultiStep,\n setNextMultiStepScreenIndex,\n setPreviousMultiStep,\n setWaitForPreviousStep,\n waitForPreviousStep,\n // waitForNextStep,\n setIsFullScreen,\n setShowPreviousStep,\n nextStepEventEmitter,\n nextStep,\n handleNextStep\n } = useOneFormContext();\n\n const steps: Steps[] = [\n {\n title: (\n <>\n Si tienes dudas, puedes pedir a un punto de venta que te contacte.\n \n ),\n fields: (\n }\n />\n ),\n screenIndex: MapaNoCompraSteps.Dealer,\n name: 'MapSearch',\n showOverflow: true,\n },\n {\n screenIndex: 1,\n name: 'MapSelect',\n alternateTitle: (\n \n ¿Qué experto quieres que se{' '}\n \n encargue?*\n \n \n ),\n title: <>,\n fields: ,\n fullScreen: true,\n multiStepLastScreen: true,\n hidePreviousStep: true,\n },\n ];\n\n const [selectedStep, setSelectedStep] = useState(null);\n const layerRef = useRef(null);\n /**\n * Hay que esperar a que se cree el mapa de google para tener acceso a window.google\n */\n const onMapLoad = () => {\n if (multiStepScreenIndex === 0) {\n handleFirstLoad();\n }\n };\n\n const handleFirstLoad = async () => {\n if (firstMapLoad) {\n // Inicialización\n initializeMultiStep();\n } else {\n if (navigationMovingForward || navigationMovingForward === null || navigationMovingForward === undefined) {\n // Inicialización cuando se va hacia adelante una vez inicializado el mapa o después de cerrar el layer y abrir en el mapa.\n initializeMultiStep();\n } else {\n // En caso de que estemos en la última pantalla, desactivamos el wait for next step.\n const newWaitForNextStep = !isLastScreen(steps, multiStepScreenIndex);\n // Lo mismo para previous, solo le desactivamos si estamos en la primera.\n const newWaitForPreviousStep = !isFirstScreen(multiStepScreenIndex);\n\n updateWaitForNextAndPreviousStep(newWaitForNextStep, newWaitForPreviousStep);\n updateScreenChangeVariables(multiStepScreenIndex);\n\n\n }\n }\n setNextMultiStep(() => nextMapaNoCompra);\n setPreviousMultiStep(() => previousMapaNoCompra);\n };\n\n const initializeMultiStep = () => {\n updateWaitForNextAndPreviousStep(true, false);\n updateScreenChangeVariables(0);\n };\n\n const updateWaitForNextAndPreviousStep = (waitForNextStep: boolean, waitForPreviousStep: boolean) => {\n if (waitForNextStep !== null) {\n dispatch({ type: 'UPDATE_WAIT_FOR_NEXT_STEP', payload: waitForNextStep });\n }\n if (waitForPreviousStep !== null) {\n setWaitForPreviousStep(waitForPreviousStep);\n }\n };\n\n const nextMapaNoCompra = () => {\n // const { multiStepScreenIndex } = store.getState().formInfo;\n\n // handleScreenChange();\n\n // // Una vez avanzamos dentro de los multisteps se activa el wait\n // // previous step para volver hacia atrás dentro del propio multistep.\n // if (!waitForPreviousStep || multiStepScreenIndex === 0) {\n // updateWaitForNextAndPreviousStep(null, true);\n // }\n\n // setTimeout(() => {\n // updateScreenChangeVariables(multiStepScreenIndex + 1);\n // // Si estamos en el último paso del multistep se desactiva el\n // // wait next step para poder salir del multistep y avanzar hacia la siguiente pantalla.\n // if (steps[multiStepScreenIndex + 1].multiStepLastScreen) {\n // updateWaitForNextAndPreviousStep(false, null);\n // setShowPreviousStep(true);\n // }\n // }, TIME_FOR_TRANSFORM);\n renderLayer();\n };\n\n const previousMapaNoCompra = () => {\n const { multiStepScreenIndex, waitForNextStep } = store.getState().formInfo;\n\n handleScreenChange();\n\n // Se desactiva el wait previous step en la segunda pantalla para que\n // en el caso de volver hacia atrás en la primera salte de step y no busque dentro de los multisteps.\n if (multiStepScreenIndex === 1) {\n updateWaitForNextAndPreviousStep(null, false);\n }\n\n if (!waitForNextStep) {\n updateWaitForNextAndPreviousStep(true, null);\n }\n\n // Se fija en la pantalla previa a la primera para que cuando se cambie\n // a la primera pantalla el CTA de anterior pase del multistep al step anterior.\n setTimeout(() => {\n updateScreenChangeVariables(multiStepScreenIndex - 1);\n }, TIME_FOR_TRANSFORM);\n };\n\n const updateScreenChangeVariables = (newMultiStepScreenIndex: number) => {\n setNextMultiStepScreenIndex(newMultiStepScreenIndex);\n dispatch({ type: 'UPDATE_MULTISTEP_SCREENINDEX', payload: newMultiStepScreenIndex });\n setSelectedStep(steps[newMultiStepScreenIndex]);\n setIsFullScreen(steps[newMultiStepScreenIndex].fullScreen);\n setShowPreviousStep(!steps[newMultiStepScreenIndex].hidePreviousStep);\n };\n\n useEffect(() => {\n dispatch({ type: 'UPDATE_MULTISTEPS', payload: steps });\n\n handleFirstLoad();\n\n return () => {\n dispatch({ type: 'UPDATE_FIRST_MAP_LOAD', payload: false });\n setShowPreviousStep(true);\n updateWaitForNextAndPreviousStep(false, false);\n };\n }, []);\n\n const renderElement = (state?: any) => {\n if (state) {\n updateWaitForNextAndPreviousStep(false, null);\n }\n\n return (\n \n \n \n \n \n );\n };\n\n const renderLayer = () => {\n const layer = layerManager.openInteractionLayer(\n renderElement,\n { step: steps[1], nextStepEventEmitter },\n { size: InteractionLayerSizeV2.D, id: 'mapaNoCompra', shimBackgroundType: ShimBackgroundTypeV2.OPAQUE }\n );\n layerRef.current = layer;\n return null;\n };\n\n return selectedStep ? (\n selectedStep.screenIndex === 1 ? null : (\n \n \n \n )\n ) : null;\n}\n","import { Text } from '@volkswagen-onehub/components-core';\nimport React, { useEffect, useState } from 'react';\nimport { useDispatch, useSelector, useStore } from 'react-redux';\nimport { oneformBFFNdpsSend } from 'src/bff';\nimport { CarlineSelect, MultipleCTASelection, PantallaIntroduccionStars } from 'src/components';\nimport { FormController, useOneFormContext } from 'src/feature-app';\nimport { CTAsSiNo } from 'src/feature-app/InputsValues/CTAsObjects';\nimport { OneElementTemplateFullScreen } from 'src/feature-app/Screen';\nimport { formDataBuilder } from 'src/forms/format-fields';\nimport { addRemovedStep, getIndexInSteps, removeStep, resetStepsScreenIndex } from 'src/forms/helpers/add-remove-steps';\nimport { FormDataGroup, FormInfo, OneFormState, Steps } from 'src/types';\nimport { useInitializeNoCompraForm, NoCompraFormProps, MapaNoCompra, PantallaOtrosModelos, ConfirmacionNoCompra, ThankYouNoCompra, getCommonFormData, RatingSteps } from '.';\nimport { getDescInterestCarline } from '../Leads/helpers';\n\nexport enum NoCompraNoTengoSteps {\n ContactoConcesionario,\n QuieroVolkswagen,\n QuieroContacto,\n Modelo,\n Valoracion,\n\tVisita,\n\tPrecio,\n\tEquipamiento,\n\tConsumo,\n\tGarantia,\n\tFinanciacion,\n Mapa,\n Confirmacion,\n}\n\nexport function NoCompraNoTengo({ dpsData, idLead, idPerson, handleError, trackFormLoad, estado }: NoCompraFormProps) {\n const { initializeForm, handleNextStep } = useOneFormContext();\n const { formData, formInfo } = useSelector((state: OneFormState) => state);\n const { contactoConcesionario, quieroVolkswagen, quieroContacto } = formData.fields;\n const dispatch = useDispatch();\n const [loadingPresubmit, setLoadingPresubmit] = useState(true);\n const store = useStore();\n\n const ctasContactoConcesionario = [\n {\n label: 'Sí',\n value: 'true'\n },\n {\n label: 'No he tenido contacto con el concesionario',\n value: 'false'\n },\n ];\n\n const ctasQuieroContacto = [\n {\n label: 'Sí',\n value: 'true'\n },\n {\n label: 'No, ya no tengo interés',\n value: 'false'\n },\n ];\n\n\n const steps: Steps[] = [\n {\n title: (\n <>\n Sabiendo que sigues buscando un vehículo que se ajuste a tus necesidades, nos gustaría confirmar contigo algunos datos. ¿Has estado en contacto con el concesionario Volkswagen recientemente?\n \n ),\n fields: (\n }\n />\n ),\n screenIndex: NoCompraNoTengoSteps.ContactoConcesionario,\n name: 'contactoConcesionario',\n trueOrFalseQuestion: true,\n },\n {\n title: (\n <>\n Nos encantaría saber más.{' '}\n \n ¿Aún te interesa conducir un{' '}\n \n Volkswagen?*\n \n \n \n ),\n fields: (\n }\n />\n ),\n screenIndex: NoCompraNoTengoSteps.QuieroVolkswagen,\n name: 'QuieroVolkswagen',\n trueOrFalseQuestion: true,\n },\n {\n title: (\n <>\n ¿Quieres que un concesionario contacte contigo para resolver tus{' '}\n \n dudas?\n *\n \n \n ),\n fields: (\n }\n />\n ),\n screenIndex: NoCompraNoTengoSteps.QuieroContacto,\n name: 'QuieroContacto',\n showOverflow: true,\n },\n {\n title: (\n <>\n ¿Qué modelo en{' '}\n \n concreto?\n *\n \n \n ),\n fields: (\n \n \n \n }\n />\n ),\n screenIndex: NoCompraNoTengoSteps.Modelo,\n name: 'Modelo',\n showOverflow: true,\n },\n\t\t{\n title: (\n <>\n Nos hubiera encantado que fuera un Volkswagen. ¿Nos ayudas a mejorar?\n \n ),\n fields: ,\n screenIndex: NoCompraNoTengoSteps.Valoracion,\n name: 'Valoracion',\n },\n\n ...RatingSteps('no_tengo', NoCompraNoTengoSteps.Valoracion),\n\n {\n screenIndex: NoCompraNoTengoSteps.Mapa,\n name: 'Mapa',\n multiStep: true,\n component: ,\n },\n {\n fields: ,\n screenIndex: NoCompraNoTengoSteps.Confirmacion,\n name: 'Confirmacion',\n },\n ];\n\n\t\n\tuseEffect(() => {\n\t\tif (contactoConcesionario) {\n\t\t\tupdateSteps('QuieroVolkswagen', contactoConcesionario == 'true');\n\t\t\tupdateSteps('QuieroContacto', contactoConcesionario == 'false');\n\t\t}\n\t}, [contactoConcesionario]);\n\n\tuseEffect(() => {\n\t\tif (quieroVolkswagen) {\n\t\t\tupdateSteps('Modelo', quieroVolkswagen == 'true');\n\t\t}\n\t}, [quieroVolkswagen]);\n\n\tuseEffect(() => {\n\t\tif (quieroContacto) {\n\t\t\tconst steps = ['Modelo', 'Valoracion', 'Gestion', 'Precio', 'Equipamiento', 'Consumo', 'Garantia', 'Financiacion', 'Mapa'];\n\n\t\t\tsteps.reverse().forEach(function(step) {\n\t\t\t\tupdateSteps(step, quieroContacto == 'true');\n\t\t\t});\n\t\t}\n\t}, [quieroContacto]);\n\n\n\tconst updateSteps = (stepName: string, conditional: boolean) => {\n\t\tconst { steps: actualSteps, screenIndex } = store.getState().formInfo;\n\t\tlet newSteps = [...actualSteps];\n\t\tif (conditional) {\n\t\t\tconst stepIndex = getIndexInSteps(newSteps, stepName);\n\n\t\t\tif (stepIndex === -1) {\n\t\t\t\tnewSteps = addRemovedStep(steps, actualSteps, stepName, screenIndex);\n\t\t\t}\n\t\t} else {\n\t\t\tnewSteps = removeStep(newSteps, stepName);\n\t\t}\n\n\t\tconst newStepsWithIndex = resetStepsScreenIndex(newSteps);\n\n\t\tdispatch({ type: 'UPDATE_STEPS', payload: newStepsWithIndex });\n\t\tdispatch({ type: 'UPDATE_LAST_STEP', payload: newStepsWithIndex[newStepsWithIndex.length - 1] });\n\t\tdispatch({ type: 'SET_NUMBER_OF_SCREENS', payload: newStepsWithIndex.length });\n\t};\n\n\n useEffect(() => {\n const sendPresubmit = async () => {\n const result = await sendForm(true);\n\n if (!result) {\n handleError();\n }\n setLoadingPresubmit(false);\n };\n\n sendPresubmit();\n }, []);\n\n const NuevoFormData: Partial = {\n headers: {},\n fields: {\n formName: 'no_compra-no_tengo',\n formType: 'otherform',\n pageCategory: 'Encuesta'\n }\n };\n\n const generateData = (isPresubmit: boolean, data: Partial) => {\n const { formData, dealersInfo }: OneFormState = store.getState();\n const { fields } = formData;\n const { selectedInstallation } = dealersInfo;\n\n const personData = fields.quieroContacto == 'true' ? {\n 'fields[PERSON_NAME]': idLead.FirstName,\n 'fields[PERSON_SURNAME_1]': idLead.LastName,\n 'fields[PERSON_SURNAME_2]': idLead.MiddleName,\n 'fields[PERSON_EMAIL]': idLead.Email,\n 'fields[PERSON_PHONE_MOBILE]': idLead.MobilePhone,\n } : null;\n\n const installationData = selectedInstallation && fields.quieroContacto == 'true' ? {\n 'fields[SF_LEAD_INSTALLATION_ID]': selectedInstallation.Id,\n 'fields[SF_LEAD_INSTALLATION_CODE]': selectedInstallation.VGED_DealerCode__c,\n 'fields[SF_LEAD_INSTALLATION_NAME]': selectedInstallation.VGED_CommercialName__c,\n 'fields[SF_LEAD_INSTALLATION_PROVINCE_CODE]': selectedInstallation.BillingStateCode.toString().padStart(2, '0'),\n 'fields[SF_LEAD_RECORDTYPE_ID]': '0121i000000D7NyAAK',\n //'fields[SF_LEAD_RECORDTYPE_NAME]': 'Sales Assistant',\n 'fields[SF_LEAD_SALES_INITIAL_ACTION]': 'Direct to Sales Assistant',\n 'fields[VEH_INTEREST_ID]': fields.carlineCode,\n 'fields[VEH_INTEREST_MODEL]': getDescInterestCarline(dealersInfo, fields.modelo),\n } : null;\n\n const submitData = !isPresubmit ? {\n ...personData,\n ...installationData,\n 'fields[SURVEY_ANSWER_13]': fields.contactoConcesionario,\n 'fields[SURVEY_ANSWER_15]': fields.quieroVolkswagen == 'true' ? getDescInterestCarline(dealersInfo, fields.modelo) : null,\n 'fields[SURVEY_ANSWER_28]': fields.gestion,\n 'fields[SURVEY_ANSWER_30]': fields.precio,\n 'fields[SURVEY_ANSWER_31]': fields.equipamiento,\n 'fields[SURVEY_ANSWER_32]': fields.consumo,\n 'fields[SURVEY_ANSWER_33]': fields.garantia,\n 'fields[SURVEY_ANSWER_34]': fields.financiacion,\n 'fields[SURVEY_ANSWER_35]': fields.quieroContacto,\n\t\t\t'flags[FLAG_SF_INTEGRATION]' : fields.quieroContacto == 'true',\n } : null;\n\n return {\n ...getCommonFormData(isPresubmit, idLead, dpsData, fields, data),\n ...submitData,\n };\n };\n\n const sendForm = async (isPresubmit?: boolean): Promise => {\n return new Promise(async (resolve, reject) => {\n const data = generateData(isPresubmit, NuevoFormData);\n const dataStringified = JSON.stringify(data);\n const dataParsed = JSON.parse(dataStringified);\n const formData = formDataBuilder(dataParsed);\n\n const response = await oneformBFFNdpsSend(formData, isPresubmit);\n\n if (response?.data?.status?.code == '200') {\n dispatch({ type: 'SET_FORM_RESPONSE', payload: response.data });\n resolve(true);\n } else {\n resolve(false);\n }\n });\n };\n\n const { firstStep, lastStep, loading } = useInitializeNoCompraForm(steps);\n\n useEffect(() => {\n const NuevoFormInfo: Partial = {\n formStarted: true,\n sendFormCallback: sendForm,\n fullScreen: firstStep.fullScreen ? true : false,\n lastStep,\n numberOfScreens: steps.length,\n screenIndex: firstStep.screenIndex,\n formTheme: 'main',\n notALayer: true,\n formType: 'inPage',\n step: firstStep,\n steps,\n stepsHistory: [0],\n thankYouComponent: ,\n };\n\n if (!loading) {\n initializeForm(NuevoFormInfo, NuevoFormData, true);\n trackFormLoad();\n }\n }, [loading]);\n\n return loading || loadingPresubmit || !steps ? null : ;\n}\n","import React from 'react';\nimport { \n Text, \n styled, \n Container, \n ContainerGutter,\n TokenTextAppearance\n} from '@volkswagen-onehub/components-core';\nimport { SuggestModelo } from 'src/components';\n\n\nconst Wrapper = styled.div`\n margin-top: 44px;\n @media screen and (min-width: 960px) {\n display: flex;\n justify-content: space-between;\n flex-wrap: wrap;\n }\n`;\nconst MarginTop = styled.div`\n margin-top: 44px;\n @media all and (min-width: 960px) {\n margin-top: 0;\n }\n`;\n\nexport const PantallaOtrosModelos = () => {\n\n return (\n \n \n
\n Dudo entre este modelo*:\n
\n \n
\n \n \n Y este otro:\n \n \n \n
\n );\n};\n","import { Text } from '@volkswagen-onehub/components-core';\nimport Axios, { AxiosResponse } from 'axios';\nimport React, { useEffect, useState } from 'react';\nimport { useDispatch, useSelector, useStore } from 'react-redux';\nimport { oneformBFFNdpsSend } from 'src/bff';\nimport { CarlineSelect, PantallaNombreApellido, DetalleMotivo, MultipleCTASelection, MultipleOptionCTAs } from 'src/components';\nimport { FormController, useOneFormContext } from 'src/feature-app';\nimport { OneElementTemplateFullScreen } from 'src/feature-app/Screen';\nimport { formDataBuilder } from 'src/forms/format-fields';\nimport { addRemovedStep, getIndexInSteps, removeStep, resetStepsScreenIndex } from 'src/forms/helpers/add-remove-steps';\nimport { FormDataGroup, FormInfo, OneFormState, Steps } from 'src/types';\nimport { useInitializeNoCompraForm, NoCompraFormProps, ConfirmacionNoCompra, ThankYouNoCompra, getCommonFormData, MapaNoCompra } from '.';\nimport { getDescInterestCarline } from '../Leads/helpers';\n\nexport enum NoCompraNoQuieroSteps {\n Decision,\n Motivo,\n MotivoDetalle,\n Modelo,\n Mapa,\n DatosPersonales,\n Confirmacion,\n}\n\nexport function NoCompraNoQuiero({ dpsData, idLead, idPerson, handleError, trackFormLoad, estado }: NoCompraFormProps) {\n const { initializeForm, handleNextStep } = useOneFormContext();\n const store = useStore();\n const dispatch = useDispatch();\n const { formData } = useSelector((state: OneFormState) => state);\n const [loadingPresubmit, setLoadingPresubmit] = useState(true);\n\n const { decision, motivo } = formData.fields;\n\n const CTAsDecision = [\n {\n label: 'He decidido aplazar la compra',\n value: 'true',\n },\n {\n label: 'Finalmente he decidido no comprar ningún coche',\n value: 'false',\n },\n ];\n\n const CTAsMotivoNoQuiero = [\n {\n label: 'Coche compartido (car sharing o moto sharing)',\n value: '1',\n },\n {\n label: 'Transporte público',\n value: '2',\n },\n {\n label: 'Patinete - Moto - Bicicleta',\n value: '3',\n },\n {\n label: 'Más adelante, en coche',\n value: '4',\n },\n {\n label: 'Otros',\n value: '6',\n },\n ];\n\n const steps: Steps[] = [\n {\n title: (\n <>\n Entendemos que ya no estás interesado en la compra de un Volkswagen.{' '}\n \n ¿Podríamos conocer más detalles respecto a tu{' '}\n \n decisión?\n \n \n \n ),\n fields: (\n }\n />\n ),\n screenIndex: NoCompraNoQuieroSteps.Decision,\n name: 'Decision',\n },\n {\n title: (\n <>\n Nos encantaría saber más.{' '}\n \n ¿Cómo vas a moverte de ahora en{' '}\n \n adelante?*\n \n \n \n ),\n fields: (\n }\n />\n ),\n screenIndex: NoCompraNoQuieroSteps.Motivo,\n name: 'Motivo',\n },\n {\n title: (\n <>\n ¿Nos lo podrías concretar un poco más?\n \n ),\n fields: (\n }\n />\n ),\n screenIndex: NoCompraNoQuieroSteps.MotivoDetalle,\n name: 'MotivoDetalle',\n },\n {\n title: (\n <>\n ¿Qué modelo en{' '}\n \n concreto?\n *\n \n \n ),\n fields: (\n \n \n \n }\n />\n ),\n screenIndex: NoCompraNoQuieroSteps.Modelo,\n name: 'Modelo',\n showOverflow: true,\n },\n {\n screenIndex: NoCompraNoQuieroSteps.Mapa,\n name: 'Mapa',\n multiStep: true,\n component: ,\n },\n {\n title: (\n <>\n Por favor, introduce o comprueba tus datos:\n \n ),\n fields: (\n \n \n \n }\n />\n ),\n screenIndex: NoCompraNoQuieroSteps.DatosPersonales,\n name: 'DatosPersonales',\n },\n {\n fields: ,\n screenIndex: NoCompraNoQuieroSteps.Confirmacion,\n name: 'Confirmacion',\n },\n ];\n\n useEffect(() => {\n if (decision) {\n // Si en la updateSteps realiza la accion de añadir step, es necesario añadirlos por el orden inverso de aparición\n updateSteps('DatosPersonales', decision == 'true' );\n updateSteps('Mapa', decision == 'true' );\n updateSteps('Modelo', decision == 'true' );\n updateSteps('MotivoDetalle', decision == 'false' );\n updateSteps('Motivo', decision == 'false' );\n };\n }, [decision]);\n\n useEffect(() => {\n if (motivo) {\n updateSteps('MotivoDetalle', motivo == '6' );\n };\n }, [motivo]);\n\n\n const updateSteps = (stepName: string, conditional: boolean) => {\n\t\tconst { steps: actualSteps, screenIndex } = store.getState().formInfo;\n\t\tlet newSteps = [...actualSteps];\n\t\tif (conditional) {\n\t\t\tconst stepIndex = getIndexInSteps(newSteps, stepName);\n\n\t\t\tif (stepIndex === -1) {\n\t\t\t\tnewSteps = addRemovedStep(steps, actualSteps, stepName, screenIndex);\n\t\t\t}\n\t\t} else {\n\t\t\tnewSteps = removeStep(newSteps, stepName);\n\t\t}\n\n\t\tconst newStepsWithIndex = resetStepsScreenIndex(newSteps);\n\n\t\tdispatch({ type: 'UPDATE_STEPS', payload: newStepsWithIndex });\n\t\tdispatch({ type: 'UPDATE_LAST_STEP', payload: newStepsWithIndex[newStepsWithIndex.length - 1] });\n\t\tdispatch({ type: 'SET_NUMBER_OF_SCREENS', payload: newStepsWithIndex.length });\n\t};\n\n\n useEffect(() => {\n const sendPresubmit = async () => {\n const result = await sendForm(true);\n\n if (!result) {\n handleError();\n }\n setLoadingPresubmit(false);\n };\n\n sendPresubmit();\n }, []);\n\n const NuevoFormData: Partial = {\n headers: {},\n fields: { \n name: idLead?.FirstName ? idLead.FirstName : (idPerson?.FirstName ? idPerson.FirstName : ''),\n surname: idLead?.LastName ? idLead.LastName : (idPerson?.LastName ? idPerson.LastName : ''),\n secondSurname: idLead?.MiddleName ? idLead.MiddleName : (idPerson?.TXT_2_Surname__c ? idPerson.TXT_2_Surname__c : ''),\n formName: 'no_compra-no_quiero', \n formType: 'otherform', \n pageCategory: 'Encuesta' \n }\n };\n\n const generateData = (isPresubmit: boolean, data: Partial) => {\n const { formData, dealersInfo }: OneFormState = store.getState();\n const { fields } = formData;\n const { selectedInstallation } = dealersInfo;\n\n const personData = fields.decision == 'true' ? {\n 'fields[PERSON_NAME]': idLead.FirstName,\n 'fields[PERSON_SURNAME_1]': idLead.LastName,\n 'fields[PERSON_SURNAME_2]': idLead.MiddleName,\n 'fields[PERSON_EMAIL]': idLead.Email,\n 'fields[PERSON_PHONE_MOBILE]': idLead.MobilePhone,\n } : null;\n\n const installationData = selectedInstallation && fields.decision == 'true' ? {\n 'fields[SF_LEAD_INSTALLATION_ID]': selectedInstallation.Id,\n 'fields[SF_LEAD_INSTALLATION_CODE]': selectedInstallation.VGED_DealerCode__c,\n 'fields[SF_LEAD_INSTALLATION_NAME]': selectedInstallation.VGED_CommercialName__c,\n 'fields[SF_LEAD_INSTALLATION_PROVINCE_CODE]': selectedInstallation.BillingStateCode.toString().padStart(2, '0'),\n 'fields[SF_LEAD_RECORDTYPE_ID]': '0121i000000D7NyAAK',\n //'fields[SF_LEAD_RECORDTYPE_NAME]': 'Sales Assistant',\n 'fields[SF_LEAD_SALES_INITIAL_ACTION]': 'Direct to Sales Assistant',\n 'fields[VEH_INTEREST_ID]': fields.carlineCode,\n 'fields[VEH_INTEREST_MODEL]': getDescInterestCarline(dealersInfo, fields.modelo),\n } : null;\n\n const submitData = !isPresubmit ? {\n ...personData,\n ...installationData,\n 'fields[SURVEY_ANSWER_47]': fields.motivo,\n 'fields[SURVEY_ANSWER_49]': fields.motivoDetalle,\n 'flags[FLAG_SF_INTEGRATION]' : fields.decision == 'true',\n } : null;\n\n return {\n ...getCommonFormData(isPresubmit, idLead, dpsData, fields, data),\n ...submitData,\n };\n };\n\n const sendForm = async (isPresubmit?: boolean): Promise => {\n return new Promise(async (resolve, reject) => {\n const data = generateData(isPresubmit, NuevoFormData);\n const dataStringified = JSON.stringify(data);\n const dataParsed = JSON.parse(dataStringified);\n const formData = formDataBuilder(dataParsed);\n\n const response = await oneformBFFNdpsSend(formData, isPresubmit);\n\n if (response?.data?.status?.code == '200') {\n dispatch({ type: 'SET_FORM_RESPONSE', payload: response.data });\n resolve(true);\n } else {\n resolve(false);\n }\n });\n };\n\n const { firstStep, lastStep, loading } = useInitializeNoCompraForm(steps);\n\n useEffect(() => {\n const NuevoFormInfo: Partial = {\n formStarted: true,\n sendFormCallback: sendForm,\n fullScreen: firstStep.fullScreen ? true : false,\n lastStep,\n numberOfScreens: steps.length,\n screenIndex: firstStep.screenIndex,\n formTheme: 'main',\n notALayer: true,\n formType: 'inPage',\n step: firstStep,\n steps,\n stepsHistory: [0],\n thankYouComponent: ,\n };\n\n if (!loading) {\n initializeForm(NuevoFormInfo, NuevoFormData, true);\n trackFormLoad();\n }\n }, [loading]);\n\n return loading || loadingPresubmit || !steps ? null : ;\n}\n","import { getParamsForm } from 'src/feature-app/get-params-form';\n\nconst { tc, today, url, device } = getParamsForm();\n\nexport const getCommonFormData = (isPresubmit, idLead, dpsData, fields, data) => {\n\n\tconst formName = fields.formName ? fields.formName : data.fields.formName;\n\n\treturn {\n 'headers[DPS_TOKEN]': isPresubmit ? 'VW_DDB_FRM_ENCUESTA_NO_COMPRA_PREGRABACION' : 'VW_DDB_FRM_ENCUESTA_NO_COMPRA',\n 'headers[FORM_DATE_INSERTION]': today,\n 'headers[FORM_URL]': url,\n 'headers[FORM_NAME]': `vw-oneform-${formName}`,\n 'headers[FORM_DETAILS]': isPresubmit ? 'NoCompra Pregrabación' : 'NoCompra Grabación',\n 'headers[FORM_OBJECTIVE]': fields.quieroContacto == 'true' ? 'Más Información' : 'Encuesta',\n 'headers[FORM_VERSION]': `vw-oneform-${formName}-${process.env.VERSION}`,\n 'headers[ORIGIN_DEVICE_TYPE]': device,\n 'headers[ORIGIN_TRACKING_CODE]': tc,\n 'headers[SF_CAMPAIGN_ID]': '7011n000000Aj7uAAC',\n\t\t'headers[SF_CAMPAIGN_NAME]': 'PENDIENTE',\n 'headers[FK_SYSTEM]': idLead.Id,\n 'headers[PINCODE]': dpsData.pincode.pincodeResponse.params.pincode,\n\n //'headers[SF_CAMPAIGN_ORIGIN_ID]': 'PENDIENTE',\n\n 'flags[PERSON_RGPD_ADAPTED]': true,\n\n 'fields[DPS_BRAND]': 'Volkswagen',\n\t\t'fields[PERSON_RGPD_COM_COMERCIALES]': fields.lssi ? fields.lssi : 'NO INFORMADO',\n\t\t'fields[PERSON_RGPD_PERFILADO]': fields.tmk ? fields.tmk : 'NO INFORMADO',\n\n\t\t'fields[SURVEY_ANSWER_01]': formName == 'no_compra-no_quiero' ? '3' : formName == 'no_compra-no_tengo' ? '2' : '1',\n\n\t\t//'fields[DESC_LOPD]': isPresubmit ? '' : 'PERMITE',\n\t\t//'fields[DESC_TRANF_DATA_THIRD]': isPresubmit ? '' : 'NO INFORMADO',\n\n\t\t// Para no_tengo y ya_tengo: todo false\n\t\t//'flags[FLAG_ISLEAD]': fields.quieroVolkswagen == 'false' ? 'false' : fields.quieroContacto,\n\t\t//'flags[FLAG_ISPROSPECT]': fields.quieroVolkswagen == 'true' && fields.quieroContacto == 'false' ? 'true' : 'false',\n\t\t//'flags[FLAG_GENERATELEM]': fields.quieroVolkswagen == 'false' ? 'false' : fields.quieroContacto,\n\t}\n};\n","import React from 'react';\nimport { Text } from '@volkswagen-onehub/components-core';\nimport { Steps } from 'src/types';\nimport { RatingStars } from 'src/components';\nimport { OneElementTemplateFullScreen } from 'src/feature-app/Screen';\n\nconst resetStepsScreenIndex = (steps: Steps[], offset: number) => {\n return steps.map((step, index) => {\n step.screenIndex = index + offset;\n return step;\n });\n};\n\nexport function RatingSteps(formName: string, startIndex: number) {\n\t\n\tconst steps: Steps[] = [\n\n\t\t{\n\t\t\ttitle: El precio del modelo,\n\t\t\tfields: (\n\t\t\t\t}\n\t\t\t\t/>\n\t\t\t),\n\t\t\tscreenIndex: 0,\n\t\t\tname: 'Precio',\n\t\t\toutputsIsStars: true,\n\t\t},\n\t\t{\n\t\t\ttitle: Características del vehículo, equipamiento y asistentes adicionales,\n\t\t\tfields: (\n\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t),\n\t\t\tscreenIndex: 0,\n\t\t\tname: 'Equipamiento',\n\t\t\toutputsIsStars: true,\n\t\t},\n\t\t{\n\t\t\ttitle: El consumo del modelo,\n\t\t\tfields: (\n\t\t\t\t}\n\t\t\t\t/>\n\t\t\t),\n\t\t\tscreenIndex: 0,\n\t\t\tname: 'Consumo',\n\t\t\toutputsIsStars: true,\n\t\t},\n\t\t{\n\t\t\ttitle: La garantía del modelo,\n\t\t\tfields: (\n\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t),\n\t\t\tscreenIndex: 0,\n\t\t\tname: 'Garantia',\n\t\t\toutputsIsStars: true,\n\t\t},\n\t\t{\n\t\t\ttitle: Las condiciones de financiación,\n\t\t\tfields: (\n\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t),\n\t\t\tscreenIndex: 0,\n\t\t\tname: 'Financiacion',\n\t\t\toutputsIsStars: true,\n\t\t},\n\t];\n\n\tif (formName == 'ya_tengo') {\n\t\tconst prevSteps: Steps[] = [\n\t\t\t{\n\t\t\t\ttitle: Los plazos de entrega,\n\t\t\t\talternateTitle: Los plazos de entrega,\n\t\t\t\tfields: (\n\t\t\t\t\t\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t),\n\t\t\t\tscreenIndex: 0,\n\t\t\t\tname: 'Plazos',\n\t\t\t\toutputsIsStars: true,\n\t\t\t},\n\t\t\t{\n\t\t\t\ttitle: Tu visita al punto de venta,\n\t\t\t\tfields: (\n\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t),\n\t\t\t\tscreenIndex: 0,\n\t\t\t\tname: 'Visita',\n\t\t\t\toutputsIsStars: true,\n\t\t\t}\n\t\t];\n\n\t\treturn resetStepsScreenIndex(prevSteps.concat(steps), startIndex + 1);\n\t}\n\telse if(formName == 'no_tengo') {\n\t\tconst prevSteps: Steps[] = [\n\t\t\t{\n\t\t\t\ttitle: Gestión del punto de venta,\n\t\t\t\talternateTitle: Gestión del punto de venta,\n\t\t\t\tfields: (\n\t\t\t\t\t\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t),\n\t\t\t\tscreenIndex: 0,\n\t\t\t\tname: 'Gestion',\n\t\t\t\toutputsIsStars: true,\n\t\t\t}\n\t\t];\n\n\t\treturn resetStepsScreenIndex(prevSteps.concat(steps), startIndex + 1);\n\t}\n\telse {\n\t\treturn resetStepsScreenIndex(steps, startIndex + 1);\n\t}\n}","import { useEffect, useState } from 'react';\nimport { useDispatch } from 'react-redux';\nimport { getCarlines } from 'src/bff';\nimport { useGetInstalaciones } from 'src/feature-app';\nimport { IdLead, Steps } from 'src/types';\n\nconst getLastItemOfSteps = (steps: Steps[]) => steps[steps.length - 1];\n\nconst propertyHasValue = (property: string) => property !== 'null';\n\nexport const checkHasCarlineNoRenovacion = (idLead: IdLead) =>\n idLead &&\n idLead.NUM_COD_INTEREST_CARLINE__c &&\n idLead.DESC_Model__c &&\n propertyHasValue(idLead.NUM_COD_INTEREST_CARLINE__c) &&\n propertyHasValue(idLead.DESC_Model__c);\n\nexport function useInitializeNoRenovacionForm(steps: Steps[]) {\n const dispatch = useDispatch();\n const [loading, setLoading] = useState(true);\n const installations = useGetInstalaciones('VW_DDB_FORM_NORENUEVA'); // Inicialización de las instalaciones\n\n useEffect(() => {\n const requestCarlines = async () => {\n const carlines = await getCarlines();\n\n dispatch({ type: 'SET_CARLINES', payload: carlines });\n setLoading(false);\n };\n\n requestCarlines();\n }, []);\n\n return { firstStep: steps[0], lastStep: getLastItemOfSteps(steps), loading };\n}\n","import { Spinner, Text, styled } from '@volkswagen-onehub/components-core';\nimport React, { useEffect, useRef, useState } from 'react';\nimport { useDispatch } from 'react-redux';\nimport { useFeatureServices, useTrackingManager } from 'src/feature-app';\nimport { DpsData, EsOneformCoreServiceV1 } from 'src/feature-service/es-oneform-core-feature-service/types';\nimport { CarlineBase, DealersData, IdLead, IdPerson, IdVehicle } from 'src/types';\nimport { NoRenovacionYaTengo, NoRenovacionNoTengo, NoRenovacionNoQuiero } from '.';\nimport { GenericErrorLayer } from 'src/components/layers';\nimport { checkHasCarlineNoRenovacion } from './use-initialize-no-renovacion-form';\nimport { createPincodeEntity } from '../dps-utils';\nimport { LoadingEncuestas } from 'src/components';\n\nexport interface NoRenovacionFormProps {\n idLead: IdLead;\n idPerson: IdPerson;\n idVehicle: IdVehicle;\n dpsData: DpsData;\n handleError: () => void;\n trackFormLoad: () => void;\n estado: string;\n}\n\nexport function NoRenovacionController() {\n const [loading, setLoading] = useState(true);\n const [error, setError] = useState(false);\n const [usado, setUsado] = useState(false);\n const [estado, setEstado] = useState(null);\n const [yaTengo, setYaTengo] = useState(false);\n const [noTengo, setNoTengo] = useState(false);\n const [noQuiero, setNoQuiero] = useState(false);\n const trackingManager = useTrackingManager();\n const dpsDataRef = useRef(null);\n const idLeadRef = useRef(null);\n const idPersonRef = useRef(null);\n const idVehicleRef = useRef(null);\n const oneFormService = useFeatureServices()['es:oneform-core'] as EsOneformCoreServiceV1;\n const dispatch = useDispatch();\n\n const handleNext = (value: any) => { };\n const handleComplete = () => {\n const dpsData = oneFormService.getDpsData();\n const { estado } = dpsData;\n setEstado(estado);\n\n if (dpsData.pincode === null || dpsData.pincode.noPincodeFound || dpsData.pincode.pincodeError) {\n handleError();\n } else if (dpsData.pincode.pincodeUsed) {\n setUsado(true);\n setLoading(false);\n } else {\n const idLead = createPincodeEntity(dpsData, 'LEAD');\n const idPerson = createPincodeEntity(dpsData, 'PERSON');\n const idVehicle = createPincodeEntity(dpsData, 'VEHICLE');\n\n dpsDataRef.current = dpsData;\n idLeadRef.current = idLead;\n idPersonRef.current = idPerson;\n idVehicleRef.current = idVehicle;\n\n if (estado === 'ya_tengo') {\n setYaTengo(true);\n } else if (estado === 'no_quiero') {\n setNoQuiero(true);\n } else if (estado === 'no_tengo') {\n setNoTengo(true);\n } else {\n handleError();\n }\n setLoading(false);\n }\n };\n\n const handleError = () => {\n setError(true);\n setLoading(false);\n };\n\n {/* useEffect(() => {\n console.log(error, 'error');\n }, [error]);*/}\n\n const trackFormLoad = () => {\n if (idLeadRef.current) {\n const customDealer: DealersData = {\n kvps: idLeadRef.current.TXT_DESC_DEALER_CODE__c,\n name: idLeadRef.current.DESC_Dealer_Code__c,\n markerInfo: { dealerInfo: { zipCode: idLeadRef.current.TXT_Postal_Code__c } },\n };\n dispatch({ type: 'SET_SELECTED_DEALER', payload: customDealer });\n if (checkHasCarlineNoRenovacion(idLeadRef.current)) {\n const carline: Partial = {\n title: idLeadRef.current.DESC_Model__c,\n code: Number(idLeadRef.current.NUM_COD_INTEREST_CARLINE__c),\n };\n dispatch({ type: 'SET_SELECTED_CARLINE', payload: carline });\n }\n }\n trackingManager.trackFormLoad();\n };\n\n useEffect(() => {\n const oneFormCoreDpsIsLoaded = oneFormService.getLoadedState();\n\n oneFormCoreDpsIsLoaded.subscribe({\n next(value) {\n handleNext(value);\n },\n error(err) {\n console.error(err);\n handleError();\n },\n complete() {\n handleComplete();\n },\n });\n }, []);\n\n // función para layer de error\n const handleTryAgain = async () => {\n // oneFormService.\n setError(false);\n setLoading(true);\n await oneFormService.retryPincodeLoad();\n handleComplete();\n };\n\n if (loading) {\n return ;\n } else if (error) {\n return (\n <>\n \n \n );\n } else if (usado) {\n return (\n <>\n \n \n );\n } else {\n return (\n <>\n {yaTengo ? (\n \n ) : noTengo ? (\n \n ) : noQuiero ? (\n \n ) : null}\n \n );\n }\n}\n","\n\nimport { getParamsForm } from 'src/feature-app/get-params-form';\n\nconst { tc, today, url, device } = getParamsForm();\n\nexport const getCommonFormData = (isPresubmit, idPerson, dpsData, fields, data, surveyAnswer01) =>{\n\n const submitData = !isPresubmit ? {\n 'headers[FORM_SOURCE_INFO]': 'Encuesta Renovación',\n 'headers[PINCODE]': dpsData.pincode.pincodeResponse.params.pincode,\n 'fields[PERSON_RGPD_COM_COMERCIALES]': fields.lssi ? fields.lssi : 'NO INFORMADO',\n 'fields[PERSON_RGPD_PERFILADO]': fields.tmk ? fields.tmk : 'NO INFORMADO',\n } : null;\n\n return {\n ...submitData,\n\n 'headers[DPS_TOKEN]': isPresubmit ? 'VW_DDB_FORM_NORENUEVA_PREGRABACION': 'VW_DDB_FORM_NORENUEVA',\n 'headers[FORM_DATE_INSERTION]': today,\n 'headers[FORM_DETAILS]': isPresubmit ? 'NoRenovación Pregrabación' : 'NoRenovación Grabación',\n 'headers[FORM_MKT_CHANNEL]': 'CRM',\n 'headers[FORM_NAME]': fields.formName ? `vw-oneform-${fields.formName}` : `vw-oneform-${data.fields.formName}`,\n 'headers[FORM_OBJECTIVE]': fields.formName ==='no_renovacion-no_tengo' && fields.quieroContacto === 'true' ? 'Más Información' : 'Encuesta',\n 'headers[FORM_URL]': url,\n 'headers[FORM_WEB_SECTION]': 'Genérica',\n 'headers[ORIGIN_DEVICE_TYPE]': device,\n 'headers[ORIGIN_TRACKING_CODE]': tc,\n 'headers[PINCODE]': dpsData.pincode.pincodeResponse.params.pincode,\n 'headers[SF_CAMPAIGN_ID]': '7011n000000JvhCAAS',\n 'headers[SF_CAMPAIGN_NAME]': 'PENDIENTE',\n 'headers[SF_CAMPAIGN_ORIGIN_ID]': 'PENDIENTE',\n 'headers[FK_SYSTEM]': idPerson.Id,\n 'headers[FORM_VERSION]': fields.formName ? `vw-oneform-${fields.formName}-${process.env.VERSION}` : `vw-oneform-${data.fields.formName}-${process.env.VERSION}`,\n\n 'fields[DPS_BRAND]': 'Volkswagen',\n 'fields[PERSON_RGPD_PERFILADO]': fields.tmk ? fields.tmk : 'NO INFORMADO',\n 'fields[PERSON_RGPD_COM_COMERCIALES]': fields.lssi ? fields.lssi : 'NO INFORMADO',\n 'fields[PERSON_NAME]': idPerson.FirstName,\n 'fields[PERSON_SURNAME_1]': idPerson.LastName,\n 'fields[PERSON_EMAIL]': idPerson.PersonEmail,\n 'fields[PERSON_PHONE_MOBILE]': idPerson.MobilePhone,\n 'fields[SURVEY_ANSWER_01]': surveyAnswer01,\n \n 'flags[PERSON_RGPD_ADAPTED]': true,\n 'flags[FLAG_ALLOWS_DATA_ENRICHMENT]': false,\n 'flags[FLAG_IS_MYSTERY_LEAD]': false,\n 'flags[FLAG_RELACION_MARCA_SIN_IC]': false,\n 'flags[FLAG_SF_INTEGRATION]': fields.quieroVolkswagen === 'true' && fields.quieroContacto === 'true' ? 'true' : 'false',\n }\n};\n","import React, { useEffect, useState } from 'react';\nimport { useDispatch, useStore, useSelector } from 'react-redux';\nimport { FormController, useOneFormContext } from 'src/feature-app';\nimport { FormDataGroup, FormInfo, OneFormState, Steps, } from 'src/types';\nimport { OneElementTemplateFullScreen } from 'src/feature-app/Screen';\nimport { Container, ContainerPadding, Text, TokenTextAppearance } from '@volkswagen-onehub/components-core';\nimport { MultipleCTASelection, MultipleOptionCTAs, DetalleMotivo, SelectMarcaModelo } from 'src/components';\nimport { ConfirmacionNoRenovacion, ThankYouNoRenovacion, FakeTriggerCTA } from '.';\nimport { getCommonFormData } from './FormData';\nimport { formatHeaders, formDataBuilder } from 'src/forms/format-fields';\nimport { oneformBFFNdpsSend } from 'src/bff';\nimport { NoRenovacionFormProps } from './NoRenovacionController';\nimport { useInitializeNoRenovacionForm } from './use-initialize-no-renovacion-form';\nimport { useTrackingManager } from 'src/feature-app/hooks/use-tracking-manager';\nimport { addRemovedStep, getIndexInSteps, removeStep, resetStepsScreenIndex } from '../helpers/add-remove-steps';\nimport { CTAsMotivoRenovador, CTAsMotivoRenovadorProblemas, CTAsUsadoNuevo, CTAsLugarCompra } from 'src/feature-app/InputsValues';\n\nexport enum NoRenovacionNewCar {\n Introduccion,\n Modelo,\n UsadoNuevo,\n LugarCompra,\n Motivo,\n MasInformacion,\n ProblemasVehiculo,\n Confirmacion,\n}\n\nexport function NoRenovacionYaTengo({\n dpsData,\n idVehicle,\n idPerson,\n handleError,\n trackFormLoad,\n estado,\n}: NoRenovacionFormProps) {\n const { initializeForm } = useOneFormContext();\n const trackingManager = useTrackingManager();\n const store = useStore();\n const dispatch = useDispatch();\n const { formData } = useSelector((state: OneFormState) => state);\n const [loadingPresubmit, setLoadingPresubmit] = useState(false);\n const { selectMotivos, brand } = formData.fields;\n\n\n useEffect(() => {\n const sendPresubmit = async () => {\n const result = await sendForm(true);\n\n if (!result) {\n handleError();\n }\n setLoadingPresubmit(false);\n };\n\n sendPresubmit();\n }, []);\n\n const steps: Steps[] = [\n {\n title: (\n <>\n Nos encanta viajar contigo, pero sabemos que la vida da muchas vueltas y tenemos curiosidad…{' '}\n ¿Qué modelo te ha conquistado?\n \n ),\n fields: } />,\n screenIndex: NoRenovacionNewCar.Introduccion,\n name: 'introduccion',\n },\n {\n title: (\n <>\n \n ¿Qué modelo{' '}\n \n elegiste?*\n \n \n \n ),\n fields: (\n \n }\n />\n ),\n screenIndex: NoRenovacionNewCar.Modelo,\n name: 'Modelo',\n showOverflow: true,\n },\n {\n title: (\n \n ¿Qué tipo de vehículo has{' '}\n \n escogido?*\n \n \n ),\n fields: (\n }\n />\n ),\n screenIndex: NoRenovacionNewCar.UsadoNuevo,\n name: 'usadoNuevo',\n },\n {\n title: (\n \n ¿Dónde has adquirido tu nuevo{' '}\n \n vehículo?*\n \n \n ),\n fields: (\n }\n />\n ),\n screenIndex: NoRenovacionNewCar.LugarCompra,\n name: 'lugarCompra',\n },\n {\n title: (\n <>\n ¿Por qué motivos \n no has elegido un{' '}\n \n Volkswagen?*\n \n \n \n Elige un máximo de 3 opciones\n \n \n \n ),\n alternateTitle: (\n <>\n ¿Por qué motivos \n no has elegido un{' '}\n \n Volkswagen?*\n \n \n \n Elige un máximo de 3 opciones\n \n \n \n ),\n fields: (\n \n }\n />\n ),\n screenIndex: NoRenovacionNewCar.Motivo,\n name: 'selectMotivos',\n },\n {\n title: (\n <>\n ¿Por qué motivos \n tuviste problemas con {' '}\n \n tu vehículo anterior?*\n \n \n \n Elige un máximo de 3 opciones\n \n \n \n ),\n fields: (\n \n }\n />\n ),\n screenIndex: NoRenovacionNewCar.ProblemasVehiculo,\n name: 'selectMotivosProblems',\n },\n {\n title: (\n <>\n \n ¿Nos puedes decir cuáles{' '}\n \n son?*\n \n \n \n ),\n fields: } />,\n screenIndex: NoRenovacionNewCar.MasInformacion,\n name: 'masInformacion',\n },\n {\n fields: ,\n screenIndex: NoRenovacionNewCar.Confirmacion,\n name: 'Confirmacion',\n },\n ];\n\n const NuevoFormData: Partial = {\n fields: { formName: 'no_renovacion-ya_tengo', formType: 'otherform', pageCategory: 'Encuesta' }, // Analítica\n };\n\n const getFormInfo = (): {\n firstStep: Steps;\n lastStep: Steps;\n stepsHistory: number[];\n numberOfScreens: number;\n newSteps?: Steps[];\n } => {\n return {\n firstStep: steps[0],\n lastStep: steps[steps.length - 1],\n stepsHistory: [0],\n numberOfScreens: steps.length,\n newSteps: null,\n };\n }; \n\n useEffect(() => {\n if (brand) {\n updateSteps('lugarCompra', brand == '36', 'usadoNuevo');\n updateSteps('selectMotivos', brand != '36', 'usadoNuevo');\n updateSteps('selectMotivosProblems', brand != '36', 'selectMotivos');\n updateSteps('masInformacion', brand != '36', 'selectMotivosProblems');\n };\n }, [brand]);\n\n useEffect(() => {\n if (selectMotivos){\n if (!(selectMotivos.includes('14') && selectMotivos.includes('13'))) {\n if (selectMotivos.includes('14')) {\n updateSteps('masInformacion', false);\n }else if (selectMotivos.includes('13')) {\n updateSteps('selectMotivosProblems', false);\n }else{\n updateSteps('masInformacion', false);\n updateSteps('selectMotivosProblems', false);\n }\n }\n }\n }, [selectMotivos]);\n\n const updateSteps = (stepName: string, conditional: boolean, addOnNextStepName?: string ) => {\n const { steps: actualSteps, screenIndex } = store.getState().formInfo;\n let newSteps = [...actualSteps];\n let newScreenIndex = screenIndex;\n\n if (conditional) {\n\n const stepIndex = getIndexInSteps(newSteps, stepName);\n\n if (stepIndex === -1) {\n if (addOnNextStepName) {\n newScreenIndex = getIndexInSteps(newSteps, addOnNextStepName);\n }\n newSteps = addRemovedStep(steps, actualSteps, stepName, newScreenIndex);\n }\n } else {\n newSteps = removeStep(newSteps, stepName);\n }\n\n const newStepsWithIndex = resetStepsScreenIndex(newSteps);\n\n dispatch({ type: 'UPDATE_STEPS', payload: newStepsWithIndex });\n dispatch({ type: 'UPDATE_LAST_STEP', payload: newStepsWithIndex[newStepsWithIndex.length - 1] });\n dispatch({ type: 'SET_NUMBER_OF_SCREENS', payload: newStepsWithIndex.length });\n };\n\n const generateData = (isPresubmit: boolean, data?: Partial) => {\n const { formData }: OneFormState = store.getState();\n const { fields } = formData;\n\n let motivos = fields.selectMotivos;\n\n if(fields.selectMotivosProblems){\n motivos = motivos.replace(\"14\", fields.selectMotivosProblems);\n }else{\n motivos = deleteProblema(motivos);\n }\n\n motivos = orderString(motivos);\n\n const submitData = !isPresubmit ? {\n 'fields[SURVEY_ANSWER_02]': fields.brand,\n 'fields[SURVEY_ANSWER_03]': fields.modelo,\n 'fields[SURVEY_ANSWER_04]': fields.usadoNuevo,\n 'fields[SURVEY_ANSWER_05]': motivos,\n 'fields[SURVEY_ANSWER_06]': fields.lugarCompra,\n } : null;\n\n return {\n ...getCommonFormData(isPresubmit, idPerson, dpsData, fields, data, '1'),\n ...submitData,\n };\n };\n\n const orderString = (orderMotivos) => {\n\n if (orderMotivos == null) {\n return null;\n }\n\n const array = orderMotivos.split(\",\");\n \n const sortedArray = array.sort((a, b) => {\n return parseInt(a) - parseInt(b);\n });\n \n const orderString = sortedArray.join(\",\");\n \n return orderString;\n };\n\n const deleteProblema = (motivosProblema) => {\n\n if (motivosProblema != null) {\n const array = motivosProblema.split(\",\");\n \n if (array.length == 1 && (array[0] == \"14\" || array[0] == \"nada\")) {\n return null;\n }\n\n const motivos = array.filter(numero => numero != \"14\");\n \n return motivos.join(\",\");\n }\n }\n\n const sendForm = async (isPresubmit?: boolean): Promise => {\n return new Promise(async (resolve, reject) => {\n const data = generateData(isPresubmit, NuevoFormData);\n const dataStringified = JSON.stringify(data);\n const dataParsed = JSON.parse(dataStringified);\n const formData = formDataBuilder(dataParsed);\n\n const response = await oneformBFFNdpsSend(formData, isPresubmit);\n\n if (response.data?.status?.code == '200') {\n dispatch({ type: 'SET_FORM_RESPONSE', payload: response.data });\n resolve(true);\n } else {\n resolve(false);\n }\n });\n };\n\n const { firstStep, lastStep, loading } = useInitializeNoRenovacionForm(steps);\n\n useEffect(() => {\n const NuevoFormInfo: Partial = {\n formStarted: true,\n sendFormCallback: sendForm,\n fullScreen: firstStep.fullScreen ? true : false,\n lastStep,\n numberOfScreens: steps.length,\n screenIndex: firstStep.screenIndex,\n formTheme: 'main',\n notALayer: true,\n formType: 'inPage',\n step: firstStep,\n steps,\n stepsHistory: [0],\n thankYouComponent: ,\n };\n\n if (!loading) {\n initializeForm(NuevoFormInfo, NuevoFormData, true);\n trackFormLoad();\n }\n }, [loading]);\n\n return loading || loadingPresubmit || !steps ? null : ;\n}\n","import {\n Breakpoints,\n Container,\n ContainerPadding,\n styled,\n Text,\n Layout,\n TokenTextAppearance,\n} from '@volkswagen-onehub/components-core';\nimport React, { useEffect, useState } from 'react';\nimport { OneFormState } from 'src/types';\nimport {\n LssiTkmQuestions,\n PoliticaPrivacidad,\n LastNavigation,\n MultipleCTASelection\n} from 'src/components';\nimport { useDispatch, useSelector, useStore } from 'react-redux';\nimport { CTAsSiNo } from 'src/feature-app';\nimport { IdPerson } from 'src/types';\n\nconst GeneralconfirmacionWrapper = styled.div``;\n\nconst InputErrorLegales = styled.p`\n position: relative;\n margin-top: 10px;\n background-color: #e4002c;\n color: white;\n width: max-content;\n max-width: 280px;\n padding: 4px 8px;\n border-radius: 4px;\n font-size: 14px;\n `;\ninterface ConfirmacionNoRenovacionProps {\n idPerson: IdPerson;\n}\n\nexport const ConfirmacionNoRenovacion = (props: ConfirmacionNoRenovacionProps) => {\n const dispatch = useDispatch();\n const { formData } = useSelector((state: OneFormState) => state);\n const [compartir, setCompartir] = useState(null);\n const [compartirError, setCompartirError] = useState(false);\n const store = useStore();\n const isLead: boolean = store.getState().formData.fields.quieroContacto === 'true';\n const lssiPermited: boolean = props.idPerson?.LSSI__c === 'PERMITE';\n\n useEffect(() => {\n if (compartir) {\n const values = { compartir: compartir };\n dispatch({ type: 'UPDATE_FIELDS', payload: values });\n setCompartirError(false);\n }\n }, [compartir]);\n\n useEffect(() => {\n if (lssiPermited) {\n dispatch({ type: 'UPDATE_FIELDS', payload: { lssi: 'NO INFORMADO', tkm: 'NO INFORMADO' } });\n }\n }, [props.idPerson]);\n\n const generateLastQuestionTitle = () => {\n return lssiPermited ?\n (\n < Text bold >Mantente al día\n\n ) : (\n < Text bold >Mantente al día\n );\n };\n\n return (\n \n \n {lssiPermited && !isLead ||\n formData.fields.formName !== 'no_renovacion-no_tengo' && lssiPermited ? (\n
\n \n ¿Listo para enviar?\n \n
\n ) : (\n < Text appearance={TokenTextAppearance.headline300}>\n {generateLastQuestionTitle()}\n \n )}\n\n {formData.fields.formName === 'no_renovacion-no_tengo' && isLead && (\n \n
\n \n ¿Podemos compartir tu respuesta con el{' '}\n \n punto de venta?*\n \n \n
\n \n {compartirError ? Este campo es oblligatorio : null}\n
\n )}\n\n \n \n\n \n \n
\n );\n};\n","import React, { useEffect } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { useTrackingManager, getTrackingForm } from 'src/feature-app';\nimport { RenderController } from 'src/feature-app/Screen';\nimport { OneFormState, Steps } from 'src/types';\nimport { ThankYouTitle, ThankYouFields } from 'src/components';\n\nexport const ThankYouNoRenovacion = () => {\n const { formInfo } = useSelector((state: OneFormState) => state);\n const { formResponse } = formInfo;\n\n const trackingManager = useTrackingManager();\n const dispatch = useDispatch();\n\n useEffect(() => {\n // Thank you page no es gestionado como un step pero sí lo haremos en la analítica. Por eso Modificamos formInfo después del submit y antes del RESET\n const screenIndexThankyou = formInfo.numberOfScreens;\n\n dispatch({ type: 'SET_FORM_SUBMITTED', payload: true });\n dispatch({ type: 'SET_FORM_INFO', payload: { step: { screenIndex: screenIndexThankyou, name: \"ThankYou\" } } });\n\n trackingManager.trackFormSubmissionSuccessMessageLoad(\n {\n contentId: undefined,\n },\n getTrackingForm(formResponse)\n );\n }, []);\n\n const screen: Steps = {\n title: ,\n fields: ,\n };\n return (\n \n );\n};\n","import { Breakpoints, BreakpointWrapper } from '@volkswagen-onehub/components-core';\nimport { CloseHandleV2, FocusLayerSizeV2, LayerManagerV2 } from '@volkswagen-onehub/layer-manager';\nimport React, { useCallback, useEffect, useRef, useState } from 'react';\nimport { useDispatch, useSelector, useStore } from 'react-redux';\nimport { AvailabilityErrorLayer } from 'src/components';\nimport {\n LayerManagerWrapper,\n useFeatureAppEnvironment,\n useMapGeneralController,\n sortPoints,\n useOneFormContext,\n useFeatureServices,\n NewDealerCard,\n} from 'src/feature-app';\nimport { LoadingLayer } from 'src/forms/CitaPosventa/NuevaCitaPosventa';\nimport { Horario, OneFormState, Points } from 'src/types';\nimport { fetchProvince, fetchProvinceLegacy } from 'src/bff';\nimport { useIsComerciales } from 'src/feature-app/hooks';\nimport {\n getDistanceFromLatLngCenter,\n LayerDesktopView,\n LayerMobileView\n} from 'src/feature-app/NewMap';\n\nexport const JourneyNoRenovacionController = () => {\n const { formData } = useSelector((state: OneFormState) => state);\n const { horario }: { horario?: Horario } = formData.fields;\n const { handleNextStep } = useOneFormContext();\n const layerManager = useFeatureServices()['layer-manager'] as LayerManagerV2;\n const store = useStore();\n const dispatch = useDispatch();\n const env = useFeatureAppEnvironment();\n const [loading, setLoading] = useState(false);\n const pointsByDistanceRef = useRef(null);\n const isComerciales = useIsComerciales();\n\n const loadingLayer = useRef(null);\n const {\n clusters,\n centerToCalculateDistance,\n superClusterRef,\n cardsDistanceRef,\n } = useMapGeneralController();\n\n const [pointsToList, setPointsToList] = useState(null);\n\n useEffect(() => {\n if (clusters && superClusterRef.current) {\n const { pointsByDistance } = sortPoints(\n clusters,\n horario,\n centerToCalculateDistance.current,\n superClusterRef.current\n );\n pointsByDistanceRef.current = pointsByDistance;\n setPointsToList(pointsByDistance);\n }\n }, [clusters, superClusterRef.current]);\n\n const renderPoints = (points: Points[], isTime?: boolean, isCarouselCard?: boolean): JSX.Element[] => {\n // const pointsToRender = isTime ? pointsByTime : pointsByDistance;\n\n return points.map((point: Points, index: number) => {\n if (!point.properties.cluster) {\n const { dealer } = point.properties;\n const distanceFromCenter = getDistanceFromLatLngCenter(centerToCalculateDistance.current, point);\n\n return (\n {\n cardsDistanceRef.current[index] = el;\n }}\n >\n \n \n );\n }\n return null;\n });\n };\n\n // Gestión del point seleccionado y del boton de seleccionar (dms)\n const handleSeleccionarOnClick = useCallback((point: Points) => {\n // Añadir lógica para guardar el dealer seleccionado\n dispatch({ type: 'SET_SELECTED_INSTALLATION', payload: point.properties.installation });\n dispatch({ type: 'UPDATE_FIELDS', payload: { quieroContacto: 'true' } });\n // Necesitamos el nombre de la provincia, y éste no está disponible en la request de instalaciones.\n if(isComerciales) {\n fetchProvinceLegacy('LCV_DDB_FRM_LEM_REC_LEM').then((response) => {\n const province = response.content.find((att) =>\n att.attributes.find((prov) => prov.value === point.properties.installation.FRML_TXT_codVentaProvincia__c)\n );\n const provinceName = province.attributes[1].value;\n \n dispatch({ type: 'UPDATE_FIELDS', payload: { provinceName } });\n });\n }\n else {\n fetchProvince('VW_DDB_FRM_LEM_REC_LEM').then((response) => {\n const province = response.content.find((att) =>\n att.attributes.find((prov) => prov.value === point.properties.installation.FRML_TXT_codVentaProvincia__c)\n );\n const provinceName = province.attributes[1].value;\n \n dispatch({ type: 'UPDATE_FIELDS', payload: { provinceName } });\n });\n }\n \n handleNextStep();\n }, []);\n\n const renderAvailabilityErrorLayer = (state: any, close: CloseHandleV2) => {\n return (\n \n \n \n );\n };\n const renderLoadingLayer = () => {\n return (\n \n \n \n );\n };\n\n const handleLoadingLayer = () => {\n if (loading) {\n const layer = layerManager.openFocusLayer(renderLoadingLayer, {}, { size: FocusLayerSizeV2.A });\n loadingLayer.current = layer;\n } else {\n if (loadingLayer.current) {\n loadingLayer.current.close();\n loadingLayer.current = null;\n }\n }\n };\n\n useEffect(() => {\n handleLoadingLayer();\n }, [loading]);\n\n // availability functions\n\n return (\n
\n \n \n \n\n \n \n \n
\n );\n};\n","import React from 'react';\nimport { JourneyNoRenovacionController } from '.';\nimport { MapGeneralController } from 'src/feature-app';\n\n/**\n * Este componente está creado únicamente para que JourneyNoRenovacionController tenga acceso a las variables de MapGeneralController.\n */\nexport const JourneyNoRenovacionWrapper = () => {\n \n return (\n \n \n \n );\n};\n","import { Text, styled, CTA } from '@volkswagen-onehub/components-core';\nimport React, { useEffect, useRef, useState } from 'react';\nimport { useDispatch, useSelector, useStore } from 'react-redux';\nimport { LocateUserFullScreen } from 'src/components';\nimport {\n LayerManagerWrapper,\n useFeatureAppEnvironment,\n useFeatureServices,\n useOneFormContext,\n} from 'src/feature-app';\nimport { RenderController, OneElementTemplateFullScreen, TwoElementsTemplateFullScreen } from 'src/feature-app/Screen';\nimport LoadScriptInstance from 'src/feature-app/NewMap/Loadscript';\nimport { TIME_FOR_TRANSFORM } from 'src/globals';\nimport { OneFormState, Steps } from 'src/types';\nimport { JourneyNoRenovacionWrapper } from './JourneyNoRenovacionWrapper';\nimport { InteractionLayerSizeV2, ShimBackgroundTypeV2 } from '@volkswagen-onehub/layer-manager';\n\nenum MapaNoRenovacionSteps {\n Dealer,\n Horario,\n SeleccionCita,\n SeleccionFecha,\n}\nconst isLastScreen = (steps: Steps[], multiStepScreenIndex: number) => steps.length - 1 === multiStepScreenIndex;\nconst isFirstScreen = (multiStepScreenIndex: number) => multiStepScreenIndex === 0;\n\nexport const MapaNoRenovacion = () => {\n\n const dispatch = useDispatch();\n const store = useStore();\n const { formInfo } = useSelector((state: OneFormState) => state);\n const { firstMapLoad, multiStepScreenIndex, navigationMovingForward } = formInfo;\n const layerManager = useFeatureServices()['layer-manager'];\n const env = useFeatureAppEnvironment();\n const { nextStep } = useOneFormContext();\n\n const {\n handleScreenChange,\n // setWaitForNextStep,\n setNextMultiStep,\n setNextMultiStepScreenIndex,\n setPreviousMultiStep,\n setWaitForPreviousStep,\n waitForPreviousStep,\n // waitForNextStep,\n setIsFullScreen,\n setShowPreviousStep,\n nextStepEventEmitter,\n } = useOneFormContext();\n\n const steps: Steps[] = [\n {\n title: (\n <>\n Si tienes dudas, puedes pedir a un punto de venta que te contacte.\n \n ),\n fields: (\n }\n />\n ),\n screenIndex: MapaNoRenovacionSteps.Dealer,\n name: 'MapSearch',\n outputs: ['location'],\n outputsText: ['location'],\n showOverflow: true,\n },\n {\n screenIndex: 1,\n name: 'MapSelect',\n alternateTitle: (\n \n Elige{' '}\n el concesionario que{' '}\n \n prefieras*\n \n \n \n ),\n title: <>,\n fields: ,\n outputs: ['installation'],\n outputsText: ['installation'],\n fullScreen: true,\n multiStepLastScreen: true,\n hidePreviousStep: true,\n },\n ];\n\n const [selectedStep, setSelectedStep] = useState(null);\n const layerRef = useRef(null);\n /**\n * Hay que esperar a que se cree el mapa de google para tener acceso a window.google\n */\n const onMapLoad = () => {\n if (multiStepScreenIndex === 0) {\n handleFirstLoad();\n }\n };\n\n const handleFirstLoad = async () => {\n if (firstMapLoad) {\n // Inicialización\n initializeMultiStep();\n } else {\n if (navigationMovingForward || navigationMovingForward === null || navigationMovingForward === undefined) {\n // Inicialización cuando se va hacia adelante una vez inicializado el mapa o después de cerrar el layer y abrir en el mapa.\n initializeMultiStep();\n } else {\n // En caso de que estemos en la última pantalla, desactivamos el wait for next step.\n const newWaitForNextStep = !isLastScreen(steps, multiStepScreenIndex);\n // Lo mismo para previous, solo le desactivamos si estamos en la primera.\n const newWaitForPreviousStep = !isFirstScreen(multiStepScreenIndex);\n\n updateWaitForNextAndPreviousStep(newWaitForNextStep, newWaitForPreviousStep);\n updateScreenChangeVariables(multiStepScreenIndex);\n\n\n }\n }\n setNextMultiStep(() => nextMapaNoRenovacion);\n setPreviousMultiStep(() => previousMapaNoRenovacion);\n };\n\n const initializeMultiStep = () => {\n updateWaitForNextAndPreviousStep(true, false);\n updateScreenChangeVariables(0);\n };\n\n const updateWaitForNextAndPreviousStep = (waitForNextStep: boolean, waitForPreviousStep: boolean) => {\n if (waitForNextStep !== null) {\n dispatch({ type: 'UPDATE_WAIT_FOR_NEXT_STEP', payload: waitForNextStep });\n }\n if (waitForPreviousStep !== null) {\n setWaitForPreviousStep(waitForPreviousStep);\n }\n };\n\n const nextMapaNoRenovacion = () => {\n // const { multiStepScreenIndex } = store.getState().formInfo;\n\n // handleScreenChange();\n\n // // Una vez avanzamos dentro de los multisteps se activa el wait\n // // previous step para volver hacia atrás dentro del propio multistep.\n // if (!waitForPreviousStep || multiStepScreenIndex === 0) {\n // updateWaitForNextAndPreviousStep(null, true);\n // }\n\n // setTimeout(() => {\n // updateScreenChangeVariables(multiStepScreenIndex + 1);\n // // Si estamos en el último paso del multistep se desactiva el\n // // wait next step para poder salir del multistep y avanzar hacia la siguiente pantalla.\n // if (steps[multiStepScreenIndex + 1].multiStepLastScreen) {\n // updateWaitForNextAndPreviousStep(false, null);\n // setShowPreviousStep(true);\n // }\n // }, TIME_FOR_TRANSFORM);\n renderLayer();\n };\n\n const previousMapaNoRenovacion = () => {\n const { multiStepScreenIndex, waitForNextStep } = store.getState().formInfo;\n\n handleScreenChange();\n\n // Se desactiva el wait previous step en la segunda pantalla para que\n // en el caso de volver hacia atrás en la primera salte de step y no busque dentro de los multisteps.\n if (multiStepScreenIndex === 1) {\n updateWaitForNextAndPreviousStep(null, false);\n }\n\n if (!waitForNextStep) {\n updateWaitForNextAndPreviousStep(true, null);\n }\n\n // Se fija en la pantalla previa a la primera para que cuando se cambie\n // a la primera pantalla el CTA de anterior pase del multistep al step anterior.\n setTimeout(() => {\n updateScreenChangeVariables(multiStepScreenIndex - 1);\n }, TIME_FOR_TRANSFORM);\n };\n\n const updateScreenChangeVariables = (newMultiStepScreenIndex: number) => {\n setNextMultiStepScreenIndex(newMultiStepScreenIndex);\n dispatch({ type: 'UPDATE_MULTISTEP_SCREENINDEX', payload: newMultiStepScreenIndex });\n setSelectedStep(steps[newMultiStepScreenIndex]);\n setIsFullScreen(steps[newMultiStepScreenIndex].fullScreen);\n setShowPreviousStep(!steps[newMultiStepScreenIndex].hidePreviousStep);\n };\n\n useEffect(() => {\n dispatch({ type: 'UPDATE_MULTISTEPS', payload: steps });\n\n handleFirstLoad();\n\n return () => {\n dispatch({ type: 'UPDATE_FIRST_MAP_LOAD', payload: false });\n setShowPreviousStep(true);\n updateWaitForNextAndPreviousStep(false, false);\n };\n }, []);\n\n const renderElement = (state?: any) => {\n if (state) {\n updateWaitForNextAndPreviousStep(false, null);\n }\n\n return (\n \n \n \n \n \n );\n };\n\n const renderLayer = () => {\n const layer = layerManager.openInteractionLayer(\n renderElement,\n { step: steps[1], nextStepEventEmitter },\n { size: InteractionLayerSizeV2.D, id: 'mapaNoRenovacion', shimBackgroundType: ShimBackgroundTypeV2.OPAQUE }\n );\n layerRef.current = layer;\n return null;\n };\n\n return selectedStep ? (\n selectedStep.screenIndex === 1 ? null : (\n \n \n \n )\n ) : null;\n};\n","import React, { useEffect, useState } from 'react';\nimport { FormController, getParamsForm, useOneFormContext } from 'src/feature-app';\nimport { OneElementTemplateFullScreen } from 'src/feature-app/Screen';\nimport { useDispatch, useSelector, useStore } from 'react-redux';\nimport { FormDataGroup, FormInfo, OneFormState, Steps } from 'src/types';\nimport { Text, Container, ContainerPadding, TokenTextAppearance } from '@volkswagen-onehub/components-core';\nimport { CarlineSelect, MultipleCTASelection, DetalleMotivo, MultipleOptionCTAs, SelectMarcaModelo } from 'src/components';\nimport { ConfirmacionNoRenovacion, ThankYouNoRenovacion, MapaNoRenovacion, FakeTriggerCTA } from '.';\nimport { getCommonFormData } from './FormData';\nimport { NoRenovacionFormProps } from './NoRenovacionController';\nimport { formDataBuilder } from 'src/forms/format-fields';\nimport { oneformBFFNdpsSend } from 'src/bff';\nimport { useInitializeNoRenovacionForm } from './use-initialize-no-renovacion-form';\nimport { addRemovedStep, getIndexInSteps, removeStep, resetStepsScreenIndex } from '../helpers/add-remove-steps';\nimport { getDescInterestCarline } from '../Leads/helpers';\nimport {\n CTAsSiNo,\n CTAsNuevoOcasión,\n CTAsMotivoRenovador,\n CTAsMotivoRenovadorNoTengoExclusivo,\n CTAsMotivoRenovadorProblemas\n} from 'src/feature-app/InputsValues/CTAsObjects';\n\nconst getModeloInteresTitle = (quieroVolkswagen: string) => {\n if (quieroVolkswagen === 'true') {\n return (\n <>\n ¿Qué modelo te llama más la{' '}\n \n atención?\n *\n \n \n );\n } else {\n return (\n <>\n ¿Qué otra marca y modelo estás valorando principalmente?\n \n );\n }\n};\n\nconst getModeloInteresFields = (quieroVolkswagen: string) => {\n if (quieroVolkswagen === 'true') {\n return (\n \n \n \n }\n />\n );\n } else {\n return (\n \n }\n />\n );\n }\n};\n\nconst getModeloInteresOutputs = (quieroVolkswagen: string) => {\n if (quieroVolkswagen === 'true') {\n return ['modelo'];\n } else {\n return ['brand', 'model'];\n }\n};\nconst getModeloInteresOutputsText = (quieroVolkswagen: string) => {\n if (quieroVolkswagen === 'true') {\n return ['modelo'];\n } else {\n return ['brand', 'model'];\n }\n};\n\nconst getDudasTitle = (quieroVolkswagen: string) => {\n if (quieroVolkswagen === 'true') {\n return (\n <>\n ¿Hay algo que te esté{' '}\n \n haciendo dudar en la compra del{' '}\n \n Volkswagen?*\n \n \n \n \n Elige un máximo de 3 opciones\n \n \n\n \n );\n } else {\n return (\n <>\n ¿Por qué motivos \n no estás valorando un{' '}\n \n Volkswagen?*\n \n \n \n Elige un máximo de 3 opciones\n \n \n \n );\n }\n};\nconst getDudasAlternatTitle = (quieroVolkswagen: string) => {\n if (quieroVolkswagen === 'true') {\n return (\n <>\n ¿Hay algo que te esté{' '}\n \n haciendo dudar en la compra del{' '}\n \n Volkswagen?*\n \n \n \n );\n } else {\n return (\n <>\n ¿Por qué motivo \n no estás valorando un{' '}\n \n Volkswagen?*\n \n \n );\n }\n};\n\nconst getDudasFields = (quieroVolkswagen: string) => {\n if (quieroVolkswagen === 'true') {\n return (\n \n }\n />\n );\n } else {\n return (\n \n }\n />\n );\n }\n};\n\nexport enum NoRenovacionSigueBuscando {\n Introduccion,\n QuieroVolkswagen,\n Modelo,\n TipoCoche,\n OtraMarca,\n Motivo,\n MasInformacion,\n ProblemasVehiculo,\n // QuieroContacto,\n Mapa,\n Confirmacion,\n}\n\nexport function NoRenovacionNoTengo({\n dpsData,\n idVehicle,\n idPerson,\n handleError,\n trackFormLoad,\n estado,\n}: NoRenovacionFormProps) {\n const { initializeForm, handleNextStep } = useOneFormContext();\n const { formData, formInfo } = useSelector((state: OneFormState) => state);\n const { quieroVolkswagen, selectMotivos } = formData.fields;\n const { screenIndex } = formInfo;\n const dispatch = useDispatch();\n const [loadingPresubmit, setLoadingPresubmit] = useState(false);\n const store = useStore();\n\n useEffect(() => {\n const sendPresubmit = async () => {\n const result = await sendForm(true);\n\n if (!result) {\n handleError();\n }\n setLoadingPresubmit(false);\n };\n\n sendPresubmit();\n }, []);\n\n const updateModeloInteresStep = (quieroVolkswagen: string) => {\n const { steps: actualSteps } = store.getState().formInfo;\n const title = getModeloInteresTitle(quieroVolkswagen);\n const fields = getModeloInteresFields(quieroVolkswagen);\n const outputs = getModeloInteresOutputs(quieroVolkswagen);\n const outputsText = getModeloInteresOutputsText(quieroVolkswagen);\n\n let newSteps = [...steps];\n\n const modeloIndex = newSteps.findIndex((step: Steps) => step.name === 'Modelo');\n\n newSteps[modeloIndex].title = title;\n newSteps[modeloIndex].fields = fields;\n newSteps[modeloIndex].outputs = outputs;\n newSteps[modeloIndex].outputsText = outputsText;\n\n if (quieroVolkswagen === 'false') {\n newSteps = removeStep(newSteps, 'Mapa');\n dispatch({ type: 'UPDATE_FIELDS', payload: { quieroContacto: 'false' } });\n } else {\n const mapaIndex = getIndexInSteps(newSteps, 'Mapa');\n dispatch({ type: 'UPDATE_FIELDS', payload: { quieroContacto: 'true' } });\n\n if (mapaIndex === -1) {\n newSteps = addRemovedStep(steps, actualSteps, 'Mapa', screenIndex);\n }\n }\n\n newSteps = resetStepsScreenIndex(newSteps);\n\n dispatch({ type: 'UPDATE_STEPS', payload: newSteps });\n dispatch({ type: 'UPDATE_LAST_STEP', payload: newSteps[newSteps.length - 1] });\n dispatch({ type: 'SET_NUMBER_OF_SCREENS', payload: newSteps.length });\n };\n\n const handleStepsNoVolkswagen = (quieroVolkswagen: string) => {\n const { steps: actualSteps, screenIndex } = store.getState().formInfo;\n let newSteps = [...steps];\n\n if (quieroVolkswagen === 'true') {\n newSteps = [...steps];\n } else {\n newSteps = removeStep(newSteps, 'tipoCoche');\n newSteps = removeStep(newSteps, 'otraMarca');\n newSteps = removeStep(newSteps, 'Mapa');\n }\n\n newSteps = resetStepsScreenIndex(newSteps);\n\n dispatch({ type: 'UPDATE_STEPS', payload: newSteps });\n dispatch({ type: 'UPDATE_LAST_STEP', payload: newSteps[newSteps.length - 1] });\n dispatch({ type: 'SET_NUMBER_OF_SCREENS', payload: newSteps.length });\n };\n\n const steps: Steps[] = [\n {\n title: (\n <>\n Nos encantaría seguir siendo tu compañero de viaje. \n Cuéntanos qué te hace dudar para poder ayudarte.\n \n ),\n fields: } />,\n screenIndex: NoRenovacionSigueBuscando.Introduccion,\n name: 'introduccion',\n },\n {\n title: (\n <>\n \n ¿Estás valorando un{' '}\n \n Volkswagen?*\n \n \n \n ),\n fields: (\n }\n />\n ),\n screenIndex: NoRenovacionSigueBuscando.QuieroVolkswagen,\n name: 'quieroVolkswagen',\n trueOrFalseQuestion: true,\n },\n {\n title: <>, // Se actualiza en updateModeloInteresStep\n fields: <>, // Se actualiza en updateModeloInteresStep\n screenIndex: NoRenovacionSigueBuscando.Modelo,\n name: 'Modelo',\n showOverflow: true,\n },\n {\n title: (\n <>\n ¿Qué tipo de coche \n te{' '}\n \n interesa?*\n \n \n ),\n fields: (\n }\n />\n ),\n screenIndex: NoRenovacionSigueBuscando.TipoCoche,\n name: 'tipoCoche',\n },\n {\n title: (\n <>\n ¿Estás valorando algún{' '}\n \n modelo de otra{' '}\n \n marca?*\n \n \n \n ),\n fields: (\n \n }\n />\n ),\n screenIndex: NoRenovacionSigueBuscando.OtraMarca,\n name: 'otraMarca',\n showOverflow: true,\n },\n {\n title: getDudasTitle(quieroVolkswagen),\n alternateTitle: getDudasAlternatTitle(quieroVolkswagen),\n fields: getDudasFields(quieroVolkswagen),\n screenIndex: NoRenovacionSigueBuscando.Motivo,\n name: 'selectMotivos',\n },\n {\n title: (\n <>\n ¿Por qué motivos \n tuviste problemas con tu {' '}\n \n vehículo anterior?*\n \n \n \n Elige un máximo de 3 opciones\n \n \n\n \n ),\n fields: (\n \n }\n />\n ),\n screenIndex: NoRenovacionSigueBuscando.ProblemasVehiculo,\n name: 'selectMotivosProblems',\n },\n {\n title: (\n <>\n ¿Qué otros motivos te hacen dudar?\n \n ),\n fields: (\n } />\n ),\n screenIndex: NoRenovacionSigueBuscando.MasInformacion,\n name: 'masInformacion',\n },\n {\n screenIndex: NoRenovacionSigueBuscando.Mapa,\n name: 'Mapa',\n multiStep: true,\n component: ,\n },\n {\n fields: ,\n screenIndex: NoRenovacionSigueBuscando.Confirmacion,\n name: 'Confirmacion',\n },\n ];\n\n const NuevoFormData: Partial = {\n fields: {\n formName: 'no_renovacion-no_tengo',\n formType: 'otherform',\n pageCategory: 'Encuesta',\n }, // Analítica\n };\n //mostrar u ocultar pantalla mas información según los ctas de dudas seleccionados\n\n const updateSteps = (stepName: string, conditional: boolean, addOnNextStepName?: string ) => {\n const { steps: actualSteps, screenIndex } = store.getState().formInfo;\n let newSteps = [...actualSteps];\n let newScreenIndex = screenIndex;\n\n if (conditional) {\n\n const stepIndex = getIndexInSteps(newSteps, stepName);\n\n if (stepIndex === -1) {\n if (addOnNextStepName) {\n newScreenIndex = getIndexInSteps(newSteps, addOnNextStepName);\n }\n newSteps = addRemovedStep(steps, actualSteps, stepName, newScreenIndex);\n }\n } else {\n newSteps = removeStep(newSteps, stepName);\n }\n\n const newStepsWithIndex = resetStepsScreenIndex(newSteps);\n\n dispatch({ type: 'UPDATE_STEPS', payload: newStepsWithIndex });\n dispatch({ type: 'UPDATE_LAST_STEP', payload: newStepsWithIndex[newStepsWithIndex.length - 1] });\n dispatch({ type: 'SET_NUMBER_OF_SCREENS', payload: newStepsWithIndex.length });\n };\n\n\n const generateData = (isPresubmit: boolean, data?: Partial) => {\n const { formData, dealersInfo }: OneFormState = store.getState();\n const { fields } = formData;\n const { selectedInstallation } = dealersInfo;\n\n let motivos = fields.selectMotivos;\n\n if(fields.selectMotivosProblems){\n motivos = motivos.replace(\"14\", fields.selectMotivosProblems);\n }else{\n motivos = deleteProblema(motivos);\n }\n\n motivos = orderString(motivos);\n\n const installationData = selectedInstallation && fields.quieroContacto === 'true' ? {\n 'fields[SF_LEAD_RECORDTYPE_ID]': '0121i000000D7NyAAK',\n 'fields[SF_LEAD_RECORDTYPE_NAME]': 'Sales Assistant',\n 'fields[SF_LEAD_SALES_INITIAL_ACTION]': 'Direct to Sales Assistant',\n 'fields[SF_LEAD_INSTALLATION_ID]': selectedInstallation.Id,\n 'fields[SF_LEAD_INSTALLATION_CODE]': selectedInstallation.VGED_DealerCode__c,\n 'fields[SF_LEAD_INSTALLATION_NAME]': selectedInstallation.VGED_CommercialName__c,\n 'fields[SF_LEAD_INSTALLATION_ADDRESS]': selectedInstallation.BillingStreet,\n 'fields[SF_LEAD_INSTALLATION_PROVINCE_CODE]': selectedInstallation.BillingStateCode.toString().padStart(2, '0'),\n } : null;\n\n const submitData = !isPresubmit ? {\n ...installationData,\n 'fields[COMMENTS_BRAND]': fields.masInformacion\n ? 'Motivos de duda indicados por el cliente en la encuesta: ' + fields.masInformacion\n : motivos,\n 'fields[SURVEY_ANSWER_11]': fields.quieroVolkswagen,\n 'fields[SURVEY_ANSWER_13]': fields.tipoCoche == 'nuevo' ? '1' : '2',\n 'fields[SURVEY_ANSWER_14]': fields.otraMarca == 'false' ? null : fields.otraMarca,\n 'fields[SURVEY_ANSWER_16]': fields.quieroVolkswagen == 'true' ? motivos : null,\n 'fields[SURVEY_ANSWER_19]': fields.brand,\n 'fields[SURVEY_ANSWER_20]': fields.model,\n 'fields[SURVEY_ANSWER_21]': fields.quieroVolkswagen == \"true\" ? null : motivos, \n 'fields[VEH_INTEREST_ID]': fields.carlineCode,\n 'fields[VEH_INTEREST_MODEL]': getDescInterestCarline(dealersInfo, fields.modelo), \n 'fields[VEH_INTEREST_NEW_OR_USED]': fields.tipoCoche === 'nuevo' ? 'New Car' : 'Used Car',\n } : null;\n\n return {\n ...getCommonFormData(isPresubmit, idPerson, dpsData, fields, data, '3'),\n ...submitData,\n };\n };\n\n const orderString = (orderMotivos) => {\n\n if (orderMotivos == null) {\n return null;\n }\n\n const array = orderMotivos.split(\",\");\n \n const sortedArray = array.sort((a, b) => {\n return parseInt(a) - parseInt(b);\n });\n \n const orderString = sortedArray.join(\",\");\n \n return orderString;\n };\n\n const deleteProblema = (motivosProblema) => {\n \n if (motivosProblema != null) {\n const array = motivosProblema.split(\",\");\n \n if (array.length == 1 && (array[0] == \"14\" || array[0] == \"nada\")) {\n return null;\n }\n\n const motivos = array.filter(numero => numero != \"14\");\n \n return motivos.join(\",\");\n }\n };\n\n const sendForm = async (isPresubmit?: boolean): Promise => {\n return new Promise(async (resolve, reject) => {\n const data = generateData(isPresubmit, NuevoFormData);\n const dataStringified = JSON.stringify(data);\n const dataParsed = JSON.parse(dataStringified);\n const formData = formDataBuilder(dataParsed);\n\n const response = await oneformBFFNdpsSend(formData, isPresubmit);\n\n if (response.data?.status?.code == '200') {\n dispatch({ type: 'SET_FORM_RESPONSE', payload: response.data });\n resolve(true);\n } else {\n resolve(false);\n }\n });\n };\n\n const { firstStep, lastStep, loading } = useInitializeNoRenovacionForm(steps);\n\n useEffect(() => {\n const NuevoFormInfo: Partial = {\n formStarted: true,\n sendFormCallback: sendForm,\n fullScreen: firstStep.fullScreen ? true : false,\n lastStep,\n numberOfScreens: steps.length,\n screenIndex: firstStep.screenIndex,\n formTheme: 'main',\n notALayer: true,\n formType: 'inPage',\n step: firstStep,\n steps,\n stepsHistory: [0],\n thankYouComponent: ,\n };\n\n if (!loading) {\n initializeForm(NuevoFormInfo, NuevoFormData, true);\n trackFormLoad();\n }\n }, [loading]);\n\n //activación de lógica para la gestion de steps\n\n useEffect(() => {\n if (quieroVolkswagen) {\n updateModeloInteresStep(quieroVolkswagen);\n handleStepsNoVolkswagen(quieroVolkswagen);\n }\n }, [quieroVolkswagen]);\n\n useEffect(() => {\n if (selectMotivos){\n if (!(selectMotivos.includes('14') && selectMotivos.includes('13'))) {\n if (selectMotivos.includes('14')) {\n updateSteps('masInformacion', false);\n }else if (selectMotivos.includes('13')) {\n updateSteps('selectMotivosProblems', false);\n }else{\n updateSteps('masInformacion', false);\n updateSteps('selectMotivosProblems', false);\n }\n }\n }\n }, [selectMotivos]);\n\n return loading || loadingPresubmit || !steps ? null : ;\n}\n","import React, { useEffect, useState } from 'react';\nimport { OneElementTemplateFullScreen } from 'src/feature-app/Screen';\nimport { Container, ContainerPadding, Text, TokenTextAppearance } from '@volkswagen-onehub/components-core';\nimport { DetalleMotivo, MultipleOptionCTAs, LegalFullScreenSinConsentmientos } from 'src/components';\nimport { ConfirmacionNoRenovacion, ThankYouNoRenovacion, FakeTriggerCTA } from '.';\nimport { getCommonFormData } from './FormData';\nimport { useDispatch, useStore, useSelector } from 'react-redux';\nimport { oneformBFFNdpsSend } from 'src/bff';\nimport { getParamsForm } from 'src/feature-app/get-params-form';\nimport { FormDataGroup, FormInfo, OneFormState, Steps } from 'src/types';\nimport { FormController, useOneFormContext } from 'src/feature-app';\nimport { formDataBuilder } from 'src/forms/format-fields';\nimport { NoRenovacionFormProps } from './NoRenovacionController';\nimport { useInitializeNoRenovacionForm } from './use-initialize-no-renovacion-form';\nimport {\n addRemovedStep,\n getIndexInSteps,\n removeStep,\n resetStepsScreenIndex,\n removeMultipleSteps,\n} from '../helpers/add-remove-steps';\nimport { CTAsFormasMovilidad, CTAsRazones, CTAsFormasMovilidadExclusive } from 'src/feature-app/InputsValues';\n\nexport enum NoRenovacionNoBuscaSteps {\n Introduccion,\n FormasMovilidad,\n MasInformacion,\n Razones,\n MasInformacionRazones,\n Confirmacion,\n}\n\nexport function NoRenovacionNoQuiero({\n dpsData,\n idLead,\n idVehicle,\n idPerson,\n trackFormLoad,\n handleError,\n estado,\n}: NoRenovacionFormProps) {\n const { initializeForm, handleNextStep } = useOneFormContext();\n const store = useStore();\n const dispatch = useDispatch();\n const { formData } = useSelector((state: OneFormState) => state);\n const [loadingPresubmit, setLoadingPresubmit] = useState(false);\n const [loadingForm, setLoadingForm] = useState(false);\n\n const { motivo, razones, formasMovilidad } = formData.fields;\n\n const handleSteps = (formasMovilidad: string) => {\n const { steps: actualSteps, screenIndex } = store.getState().formInfo;\n let newSteps = [...steps];\n setLoadingForm(true);\n if (formasMovilidad.includes('7')) {\n const aux = formasMovilidad.split(',');\n if (aux.length <= 1) {\n newSteps = removeMultipleSteps(newSteps, ['razones', 'masInformacionRazones']);\n // newSteps = removeStep(newSteps, 'razones');\n // newSteps = removeStep(newSteps, 'masInformacionRazones');\n }\n } else {\n const razones = getIndexInSteps(newSteps, 'razones');\n const masInformacionRazones = getIndexInSteps(newSteps, 'masInformacionRazones');\n\n if (razones === -1) {\n newSteps = addRemovedStep(steps, actualSteps, 'razones', screenIndex);\n }\n if (masInformacionRazones === -1) {\n newSteps = addRemovedStep(steps, actualSteps, 'masInformacionRazones', screenIndex);\n }\n }\n\n newSteps = resetStepsScreenIndex(newSteps);\n\n dispatch({ type: 'UPDATE_STEPS', payload: newSteps });\n dispatch({ type: 'UPDATE_LAST_STEP', payload: newSteps[newSteps.length - 1] });\n dispatch({ type: 'SET_NUMBER_OF_SCREENS', payload: newSteps.length });\n\n setTimeout(() => {\n handleNextStep();\n setLoadingForm(false);\n }, 0);\n };\n\n const handleDetalleFormasMovilidad = (motivo: Array) => {\n const { steps: actualSteps, screenIndex } = store.getState().formInfo;\n let newSteps = [...actualSteps];\n\n if (formasMovilidad.includes('8')) {\n const stepIndex = getIndexInSteps(newSteps, 'masInformacion');\n\n if (stepIndex === -1) {\n newSteps = addRemovedStep(steps, actualSteps, 'masInformacion', screenIndex);\n setTimeout(() => {\n handleNextStep();\n }, 0);\n }\n } else {\n newSteps = removeStep(newSteps, 'masInformacion');\n }\n\n const newStepsWithIndex = resetStepsScreenIndex(newSteps);\n\n dispatch({ type: 'UPDATE_STEPS', payload: newStepsWithIndex });\n dispatch({ type: 'UPDATE_LAST_STEP', payload: newStepsWithIndex[newStepsWithIndex.length - 1] });\n dispatch({ type: 'SET_NUMBER_OF_SCREENS', payload: newStepsWithIndex.length });\n };\n\n const handleDetalleRazones = (razones: Array) => {\n const { steps: actualSteps, screenIndex } = store.getState().formInfo;\n let newSteps = [...actualSteps];\n\n if (razones.includes('8')) {\n const stepIndex = getIndexInSteps(newSteps, 'masInformacionRazones');\n\n if (stepIndex === -1) {\n newSteps = addRemovedStep(steps, actualSteps, 'masInformacionRazones', screenIndex);\n setTimeout(() => {\n handleNextStep();\n }, 0);\n }\n } else {\n newSteps = removeStep(newSteps, 'masInformacionRazones');\n }\n\n const newStepsWithIndex = resetStepsScreenIndex(newSteps);\n\n dispatch({ type: 'UPDATE_STEPS', payload: newStepsWithIndex });\n dispatch({ type: 'UPDATE_LAST_STEP', payload: newStepsWithIndex[newStepsWithIndex.length - 1] });\n dispatch({ type: 'SET_NUMBER_OF_SCREENS', payload: newStepsWithIndex.length });\n };\n\n useEffect(() => {\n const sendPresubmit = async () => {\n const result = await sendForm(true);\n\n if (!result) {\n handleError();\n }\n setLoadingPresubmit(false);\n };\n\n sendPresubmit();\n }, []);\n\n const steps: Steps[] = [\n {\n title: (\n <>\n Nos hubiese encantado seguir siendo tu compañero de viaje. \n ¿Nos cuentas el porqué de este cambio por si te podemos ayudar en un futuro?\n \n ),\n fields: } />,\n screenIndex: NoRenovacionNoBuscaSteps.Introduccion,\n name: 'introduccion',\n },\n {\n title: (\n <>\n \n ¿Cómo vas a realizar tus desplazamientos de ahora en{' '}\n \n adelante?*\n \n \n \n \n Puedes elegir más de una opción\n \n \n \n ),\n alternateTitle: (\n <>\n \n ¿Cómo vas a realizar tus desplazamientos de ahora en{' '}\n \n adelante?*\n \n \n \n ),\n fields: (\n \n }\n />\n ),\n screenIndex: NoRenovacionNoBuscaSteps.FormasMovilidad,\n name: 'formasMovilidad',\n outputs: ['formasMovilidad'],\n outputsText: ['formasMovilidad'],\n },\n {\n title: (\n <>\n ¿Nos explicas en{' '}\n \n qué medio te vas a{' '}\n \n desplazar?*\n \n \n \n ),\n fields: } />,\n screenIndex: NoRenovacionNoBuscaSteps.MasInformacion,\n name: 'masInformacion',\n outputs: ['masInformacion'],\n outputsText: ['masInformacion'],\n },\n {\n title: (\n <>\n ¿Cuáles han sido las razones \n para hacer este{' '}\n \n cambio?*\n \n \n \n Puedes elegir más de una opción\n \n \n \n ),\n alternateTitle: (\n <>\n ¿Cuáles han sido las razones \n para hacer este{' '}\n \n cambio?*\n \n \n ),\n fields: (\n \n }\n />\n ),\n screenIndex: NoRenovacionNoBuscaSteps.Razones,\n name: 'razones',\n outputs: ['razones'],\n outputsText: ['razones'],\n },\n {\n title: (\n <>\n \n ¿Puedes{' '}\n \n compartirlas?*\n \n \n \n ),\n fields: } />,\n screenIndex: NoRenovacionNoBuscaSteps.MasInformacionRazones,\n name: 'masInformacionRazones',\n outputs: ['masInformacionRazones'],\n outputsText: ['masInformacionRazones'],\n },\n {\n fields: ,\n screenIndex: NoRenovacionNoBuscaSteps.Confirmacion,\n name: 'Confirmacion',\n outputs: ['confirmacion'],\n outputsText: ['confirmacion'],\n },\n ];\n\n const NuevoFormData: Partial = {\n fields: {\n formName: 'no_renovacion-no_quiero',\n formType: 'otherform',\n pageCategory: 'Encuesta',\n }, // Analítica\n };\n\n const getFormInfo = (): {\n firstStep: Steps;\n lastStep: Steps;\n stepsHistory: number[];\n numberOfScreens: number;\n newSteps?: Steps[];\n } => {\n return {\n firstStep: steps[0],\n lastStep: steps[steps.length - 1],\n stepsHistory: [0],\n numberOfScreens: steps.length,\n newSteps: null,\n };\n };\n\n const generateData = (isPresubmit: boolean, data?: Partial) => {\n const { formData }: OneFormState = store.getState();\n const { fields } = formData;\n\n let formasMovilidad = orderString(fields.formasMovilidad);\n let razones = orderString(fields.razones);\n\n const submitData = !isPresubmit ? {\n 'fields[SURVEY_ANSWER_07]': formasMovilidad,\n 'fields[SURVEY_ANSWER_08]': fields.masInformacion,\n 'fields[SURVEY_ANSWER_09]': razones,\n 'fields[SURVEY_ANSWER_10]': fields.masInformacionRazones,\n } : null;\n\n return {\n ...getCommonFormData(isPresubmit, idPerson, dpsData, fields, data, '2'),\n ...submitData,\n };\n };\n\n const orderString = (orderMotivos) => {\n\n if (orderMotivos == null) {\n return null;\n }\n\n const array = orderMotivos.split(\",\");\n \n const sortedArray = array.sort((a, b) => {\n return parseInt(a) - parseInt(b);\n });\n \n const orderString = sortedArray.join(\",\");\n \n return orderString;\n };\n\n const sendForm = async (isPresubmit?: boolean): Promise => {\n return new Promise(async (resolve, reject) => {\n const data = generateData(isPresubmit, NuevoFormData);\n const dataStringified = JSON.stringify(data);\n const dataParsed = JSON.parse(dataStringified);\n const formData = formDataBuilder(dataParsed);\n\n const response = await oneformBFFNdpsSend(formData, isPresubmit);\n\n if (response.data?.status?.code == '200') {\n dispatch({ type: 'SET_FORM_RESPONSE', payload: response.data });\n resolve(true);\n } else {\n resolve(false);\n }\n });\n };\n\n const { firstStep, lastStep, loading } = useInitializeNoRenovacionForm(steps);\n\n useEffect(() => {\n const NuevoFormInfo: Partial = {\n formStarted: true,\n sendFormCallback: sendForm,\n fullScreen: firstStep.fullScreen ? true : false,\n lastStep,\n numberOfScreens: steps.length,\n screenIndex: firstStep.screenIndex,\n formTheme: 'main',\n notALayer: true,\n formType: 'inPage',\n step: firstStep,\n steps,\n stepsHistory: [0],\n customLegal: idPerson.LSSI__c === 'PERMITE' ? : null,\n hideLegal: idPerson.LSSI__c === 'PERMITE' ? true : false,\n thankYouComponent: ,\n };\n\n if (!loading) {\n initializeForm(NuevoFormInfo, NuevoFormData, true);\n trackFormLoad();\n }\n }, [loading]);\n\n useEffect(() => {\n if (formasMovilidad) {\n handleSteps(formasMovilidad);\n handleDetalleFormasMovilidad(formasMovilidad);\n }\n }, [formasMovilidad]);\n\n useEffect(() => {\n if (razones) handleDetalleRazones(razones);\n }, [razones]);\n\n return loadingForm || loading || loadingPresubmit || !steps ? null : (\n \n );\n}\n","import React from 'react';\nimport {\n styled\n} from '@volkswagen-onehub/components-core';\nimport { SuggestModelo, SuggestMarca } from 'src/components';\n\nconst ContentWrapper = styled.div`\n margin-top: 4px;\n @media screen and (min-width: 960px) {\n display: flex;\n justify-content: space-between;\n flex-wrap: wrap;\n margin-top: 0;\n }\n label {\n margin-top: 40px;\n @media all and (min-width: 560px) {\n width: var(--size-grid013);\n }\n @media all and (min-width: 960px) {\n width: var(--size-grid008);\n }\n @media all and (min-width: 1280px) {\n width: var(--size-grid006);\n }\n @media all and (min-width: 1920px) {\n width: var(--size-grid005);\n }\n @media all and (min-width: 2560px) {\n width: var(--size-grid004);\n }\n }\n`;\n\nexport const PantallaMarcaModelo = () => {\n return (\n \n
\n
\n
\n );\n};\n","import React from 'react';\nimport {\n CTA,\n} from '@volkswagen-onehub/components-core';\nimport { useTrackingManager } from 'src/feature-app/hooks/use-tracking-manager';\nimport { useOneFormContext } from 'src/feature-app';\n\nexport const FakeTriggerCTA = () => {\n const { nextStep } = useOneFormContext();\n const trackingManager = useTrackingManager();\n\n return (\n
\n {\n trackingManager.trackFormStepButtonClick({\n contentId: 'Siguiente',\n });\n e.preventDefault();\n nextStep();\n }}\n ariaLabel=\"aria label\"\n >\n Empezar\n \n
\n );\n};\n","import { Breakpoints, styled, Layout } from '@volkswagen-onehub/components-core';\nimport { LegalesFormatoLayer, LssiTkmQuestions, PoliticaPrivacidad, LastNavigation, GeneralConfirmacionLayerWrapper } from 'src/components';\nimport React from 'react';\n\nexport const ConfirmacionProspects = () => {\n\n return (\n \n \n \n \n\n \n \n \n \n );\n};\n","import Axios, { AxiosResponse } from 'axios';\nimport React, { useEffect } from 'react';\nimport { Text } from '@volkswagen-onehub/components-core';\nimport { OneElementTemplate } from 'src/feature-app/Screen';\nimport { ConfirmacionProspects } from './ConfirmacionProspects';\nimport { Email, PantallaNombreApellido, CarlineSelect, findCarline } from 'src/components';\nimport { useDispatch, useStore } from 'react-redux';\nimport { getCarlines, getMolecularUrl } from 'src/bff';\nimport { isCalculadoraForm } from 'src/forms';\nimport { getParamsForm } from 'src/feature-app/get-params-form';\nimport { FormDataGroup, FormInfo, OneFormState, Steps, MolecularResponse } from 'src/types';\nimport {\n FormController,\n removeWhiteSpace,\n useFaContent,\n useFeatureAppConfig,\n useFeatureServices,\n useOneFormContext,\n} from 'src/feature-app';\nimport { ThankYouProspects } from '.';\nimport { formatFields, formatHeaders, formDataBuilder } from '../format-fields';\nimport { removeStep, resetStepsScreenIndex } from '../helpers/add-remove-steps';\nimport { getCodInterestCarline, getDescInterestCarline, getMatchData, getCalculadoraData } from '../Leads';\n\nexport enum ProspectsSteps {\n Modelo,\n NombreApellido,\n Email,\n Confirmacion,\n}\n\ninterface ProspectsFormProps {\n customSteps?: Steps[];\n updatedFormData?: Partial;\n updatedFormInfo?: Partial;\n}\n\nexport function ProspectsVentaForm({ customSteps, updatedFormData }: ProspectsFormProps) {\n const { initializeForm } = useOneFormContext();\n const store = useStore();\n const config = useFeatureAppConfig();\n const dispatch = useDispatch();\n const faContent = useFaContent();\n\n const steps: Steps[] = customSteps\n ? customSteps\n : [\n {\n title: (\n <>\n ¿Qué modelo te apetece conducir?\n \n ),\n fields: (\n \n \n \n }\n />\n ),\n screenIndex: ProspectsSteps.Modelo,\n name: 'Modelo',\n outputs: ['modelo'],\n outputsText: ['modelo'],\n },\n {\n title: (\n <>\n Queremos contártelo todo sobre nuestro próximo modelo, el Nuevo Taigo. Pero antes, nos gustaría saber{' '}\n quién eres\n \n ),\n fields: (\n \n \n \n }\n />\n ),\n screenIndex: ProspectsSteps.NombreApellido,\n name: 'NombreApellido',\n outputs: ['name', 'surname', 'secondSurname'],\n outputsText: ['name', 'surname', 'secondSurname'],\n },\n {\n title: (\n <>\n ¿A qué email te enviamos las novedades sobre el Nuevo Taigo?\n \n ),\n fields: (\n \n \n \n }\n />\n ),\n screenIndex: ProspectsSteps.Email,\n name: 'Email',\n outputs: ['email'],\n outputsText: ['email'],\n },\n {\n fields: ,\n screenIndex: ProspectsSteps.Confirmacion,\n name: 'Confirmacion',\n isLastStep: true,\n hidePreviousStep: true,\n },\n ];\n\n const NuevoFormData: Partial = {\n headers: {\n DESC_BRAND: 'VW',\n DESC_GDPR_ADAPTED: 'true',\n DESC_CAMPAIGNBLOCK: 'B5. VW Launch Prospects',\n DESC_FORMOBJECTIVE: 'Prospect',\n DESC_ID_CAMPAIGN: '7011n000000JrSNAA0',\n DESC_TOKEN: 'VW_DDB_FRM_PROSPECT_LAUNCH',\n ...updatedFormData?.headers,\n },\n fields: {\n formName: 'prospect',\n formType: 'otherform',\n pageCategory: 'Prospect',\n formFields: {\n DESC_LOPD: 'PERMITE',\n DESC_TRANF_DATA_THIRD: 'NO INFORMADO',\n },\n ...updatedFormData?.fields,\n }, // Analítica\n };\n\n const getFormInfo = (steps: Steps[]): Partial => {\n const firstStep = steps[0];\n const lastStep = steps[steps.length - 1];\n const stepsHistory = [0];\n const numberOfScreens = steps.length;\n\n return {\n formStarted: true,\n sendFormCallback: sendForm,\n fullScreen: firstStep.fullScreen ? true : false,\n lastStep,\n numberOfScreens,\n formTheme: 'inverted',\n formType: 'layer',\n screenIndex: firstStep.screenIndex,\n step: firstStep,\n steps,\n stepsHistory,\n thankYouComponent: ,\n };\n };\n\n const getFormDataWithCarline = async () => {\n const carlineCode = faContent?.carlines[0];\n const carlines = await getCarlines();\n const carlineFromFaContent = carlines.find((carline) => carline.code === Number(carlineCode));\n\n return {\n ...NuevoFormData,\n fields: {\n ...NuevoFormData.fields,\n formFields: {\n ...NuevoFormData.fields.formFields,\n COD_INTEREST_CARLINE: carlineFromFaContent?.code,\n DESC_INTEREST_CARLINE: carlineFromFaContent?.title,\n },\n },\n };\n };\n\n const sendForm = (): Promise => {\n const { formData, dealersInfo }: OneFormState = store.getState();\n\n const { fields, headers } = formData;\n\n return new Promise(async (resolve, reject) => {\n const { tc, today, url, device } = getParamsForm();\n\n const data = {\n ...formatHeaders(headers),\n 'headers[DESC_VN_VO]': 'VN',\n 'headers[DESC_DEVICETYPE]': device,\n 'headers[DESC_URLORIGIN]': url,\n 'headers[FECHA_INSERTION_DATE]': today,\n 'headers[TC]': tc,\n 'headers[COD_FORM_ID]': `vw-oneform-${fields.formName}`,\n\n 'fields[DESC_NAME]': fields.name,\n 'fields[DESC_SURNAME_1]': fields.surname,\n 'fields[DESC_SURNAME_2]': fields.secondSurname,\n 'fields[DESC_EMAIL_ADDRESS]': removeWhiteSpace(fields.email),\n 'fields[DESC_FORM_VERSION]': `vw-oneform-${fields.formName}-${process.env.VERSION}`,\n 'fields[COD_INTEREST_CARLINE]': getCodInterestCarline(dealersInfo, fields.carlineCode),\n 'fields[DESC_INTEREST_CARLINE]': getDescInterestCarline(dealersInfo, fields.modelo),\n ...formatFields(fields.formFields),\n\n 'fields[DESC_LSSI]': fields.lssi ? fields.lssi : 'NO INFORMADO',\n 'fields[DESC_LOPD_GDPR_PERFILADO]': fields.tmk ? fields.tmk : 'NO INFORMADO',\n ...(await getMatchData(formData, dealersInfo, faContent)),\n };\n\n const dataStringified = JSON.stringify(data);\n const dataParsed = JSON.parse(dataStringified);\n\n const formDataInfo = formDataBuilder(dataParsed);\n\n const MOLECULAR_URL = getMolecularUrl(); // Legacy\n\n const response: AxiosResponse = await Axios.post(\n `${MOLECULAR_URL}/request-dps-send.php`,\n formDataInfo\n );\n\n if (response && response.data && response.data.content && response.data.content.code === '200') {\n dispatch({ type: 'SET_FORM_RESPONSE', payload: response.data });\n resolve(true);\n } else {\n resolve(false);\n }\n });\n };\n\n const getFormDataAndInfo = async () => {\n let formData = { ...NuevoFormData };\n let formInfo = getFormInfo(steps);\n\n if (faContent?.match) {\n let match = faContent.match;\n const carlines = await getCarlines();\n const carline = findCarline(carlines, match.carline.code);\n dispatch({ type: 'SET_SELECTED_CARLINE', payload: carline });\n dispatch({ type: 'SET_CARLINES', payload: carlines });\n dispatch({ type: 'SET_OFERTA', payload: match });\n\n return { formData, formInfo };\n } else if (faContent?.carlines && faContent?.carlines?.length > 0) {\n formData = await getFormDataWithCarline();\n const newSteps = removeStep(steps, 'Modelo');\n const finalSteps = resetStepsScreenIndex(newSteps);\n formInfo = getFormInfo(finalSteps);\n } else {\n const carlines = await getCarlines();\n dispatch({ type: 'SET_CARLINES', payload: carlines });\n }\n\n return { formData, formInfo };\n };\n\n useEffect(() => {\n getFormDataAndInfo().then((response) => {\n const { formData, formInfo } = response;\n initializeForm(formInfo, formData);\n });\n }, []);\n\n return ;\n}\n","import { Text } from '@volkswagen-onehub/components-core';\nimport React, { useEffect } from 'react';\nimport { useDispatch } from 'react-redux';\nimport { getCarlines } from 'src/bff';\nimport { CarlineSelect, Email, findCarline, PantallaNombreApellido } from 'src/components';\nimport { useFaContent } from 'src/feature-app';\nimport { OneElementTemplate } from 'src/feature-app/Screen';\nimport { createSalesgroup } from '../Leads';\nimport { ConfirmacionProspects } from './ConfirmacionProspects';\nimport { ProspectsVentaForm } from './ProspectsVentaForm';\n\nenum ProspectsSteps {\n Email,\n NombreApellido,\n Confirmacion,\n}\n\nexport function MatchProspectForm() {\n const faContent = useFaContent();\n const dispatch = useDispatch();\n\n const steps = [\n {\n title: (\n <>\n ¿A qué email{' '}quieres que te enviemos esta configuración?\n \n ),\n fields: (\n \n \n \n }\n />\n ),\n screenIndex: ProspectsSteps.Email,\n name: 'Email',\n outputs: ['email'],\n outputsText: ['email'],\n },\n {\n title: (\n <>\n Para hacerlo, nos gustaría saber{' '}quién eres\n \n ),\n fields: (\n \n \n \n }\n />\n ),\n screenIndex: ProspectsSteps.NombreApellido,\n name: 'NombreApellido',\n outputs: ['name', 'surname', 'secondSurname'],\n outputsText: ['name', 'surname', 'secondSurname'],\n },\n \n {\n fields: ,\n screenIndex: ProspectsSteps.Confirmacion,\n name: 'Confirmacion',\n isLastStep: true,\n hidePreviousStep: true,\n },\n ];\n\n return (\n \n );\n}\n","import { Text } from '@volkswagen-onehub/components-core';\nimport Axios, { AxiosResponse } from 'axios';\nimport React, { useEffect } from 'react';\nimport { useDispatch, useStore } from 'react-redux';\nimport { getMolecularUrl } from 'src/bff';\nimport { Email, PantallaNombreApellido } from 'src/components';\nimport { FormController, removeWhiteSpace, useFaContent, useOneFormContext } from 'src/feature-app';\nimport { getParamsForm } from 'src/feature-app/get-params-form';\nimport { OneElementTemplate } from 'src/feature-app/Screen';\nimport { isCalculadoraForm } from 'src/forms';\nimport { FormDataGroup, FormInfo, MolecularResponse, OneFormState, Steps } from 'src/types';\nimport { formatFields, formatHeaders, formDataBuilder } from '../format-fields';\nimport { getCalculadoraData, getCodInterestCarline, getDescInterestCarline, getMatchData } from '../Leads';\nimport { ThankYouProspects } from './';\nimport { ConfirmacionProspects } from './ConfirmacionProspects';\n\nexport enum ProspectsPosventaSteps {\n Email,\n NombreApellido,\n Confirmacion,\n}\n\ninterface ProspectsFormProps {\n customSteps?: Steps[];\n updatedFormData?: Partial;\n updatedFormInfo?: Partial;\n}\n\nexport function ProspectsPosventaForm({ updatedFormData }: ProspectsFormProps) {\n const { initializeForm } = useOneFormContext();\n const store = useStore();\n const dispatch = useDispatch();\n const faContent = useFaContent();\n\n const steps: Steps[] = [\n {\n title: (\n <>\n ¿A qué email te enviamos este presupuesto de mantenimiento?\n \n ),\n fields: (\n \n \n \n }\n />\n ),\n screenIndex: ProspectsPosventaSteps.Email,\n name: 'Email',\n outputs: ['email'],\n outputsText: ['email'],\n },\n {\n title: (\n <>\n Genial. Aunque antes de mandártelo, nos gustaría saber quién eres\n \n ),\n fields: (\n \n \n \n }\n />\n ),\n screenIndex: ProspectsPosventaSteps.NombreApellido,\n name: 'NombreApellido',\n outputs: ['name', 'surname', 'secondSurname'],\n outputsText: ['name', 'surname', 'secondSurname'],\n },\n {\n fields: ,\n screenIndex: ProspectsPosventaSteps.Confirmacion,\n name: 'Confirmacion',\n isLastStep: true,\n hidePreviousStep: true,\n },\n ];\n\n const NuevoFormData: Partial = {\n headers: {\n DESC_BRAND: 'VW',\n DESC_GDPR_ADAPTED: 'true',\n DESC_TOKEN: 'VW_DDB_FRM_PROSPECT_POSVENTA',\n DESC_CAMPAIGNBLOCK: '13. VW Posventa Inbound',\n DESC_FORMOBJECTIVE: 'Presupuesto Posventa',\n DESC_ID_CAMPAIGN: '7011n000000JwcWAAS',\n ...updatedFormData.headers,\n },\n fields: {\n formName: 'prospect-posventa',\n formType: 'otherform',\n pageCategory: 'Prospect',\n formFields: {\n DESC_LOPD: 'PERMITE',\n DESC_TRANF_DATA_THIRD: 'NO INFORMADO',\n },\n ...updatedFormData?.fields,\n }, // Analítica\n };\n\n const getFormInfo = (steps: Steps[]): Partial => {\n const firstStep = steps[0];\n const lastStep = steps[steps.length - 1];\n const stepsHistory = [0];\n const numberOfScreens = steps.length;\n\n return {\n formStarted: true,\n sendFormCallback: sendForm,\n fullScreen: firstStep.fullScreen ? true : false,\n lastStep,\n numberOfScreens,\n formTheme: 'inverted',\n screenIndex: firstStep.screenIndex,\n step: firstStep,\n steps,\n stepsHistory,\n thankYouComponent: ,\n };\n };\n\n const sendForm = (): Promise => {\n const { formData, dealersInfo }: OneFormState = store.getState();\n\n const { fields, headers } = formData;\n\n return new Promise(async (resolve, reject) => {\n const { tc, today, url, device } = getParamsForm();\n\n const data = {\n ...formatHeaders(headers),\n 'headers[DESC_VN_VO]': 'VN',\n 'headers[DESC_DEVICETYPE]': device,\n 'headers[DESC_URLORIGIN]': url,\n 'headers[FECHA_INSERTION_DATE]': today,\n 'headers[TC]': tc,\n 'headers[COD_FORM_ID]': `vw-oneform-${fields.formName}`,\n\n 'fields[DESC_NAME]': fields.name,\n 'fields[DESC_SURNAME_1]': fields.surname,\n 'fields[DESC_SURNAME_2]': fields.secondSurname,\n 'fields[DESC_EMAIL_ADDRESS]': removeWhiteSpace(fields.email),\n 'fields[DESC_FORM_VERSION]': `vw-oneform-${fields.formName}-${process.env.VERSION}`,\n 'fields[COD_INTEREST_CARLINE]': getCodInterestCarline(dealersInfo, fields.carlineCode),\n 'fields[DESC_INTEREST_CARLINE]': getDescInterestCarline(dealersInfo, fields.modelo),\n ...formatFields(fields.formFields),\n\n 'fields[DESC_LSSI]': fields.lssi ? fields.lssi : 'NO INFORMADO',\n 'fields[DESC_LOPD_GDPR_PERFILADO]': fields.tmk ? fields.tmk : 'NO INFORMADO',\n ...getCalculadoraData(formData),\n };\n\n if (isCalculadoraForm(fields.formName)) {\n delete data['fields[COD_INTEREST_CARLINE]'];\n delete data['fields[DESC_INTEREST_CARLINE]'];\n delete data['headers[DESC_VN_VO]'];\n }\n\n const dataStringified = JSON.stringify(data);\n const dataParsed = JSON.parse(dataStringified);\n\n const formDataInfo = formDataBuilder(dataParsed);\n\n const MOLECULAR_URL = getMolecularUrl(); // Legacy\n\n const response: AxiosResponse = await Axios.post(\n `${MOLECULAR_URL}/request-dps-send.php`,\n formDataInfo\n );\n\n if (response && response.data && response.data.content && response.data.content.code === '200') {\n dispatch({ type: 'SET_FORM_RESPONSE', payload: response.data });\n resolve(true);\n } else {\n resolve(false);\n }\n });\n };\n\n useEffect(() => {\n const formInfo = getFormInfo(steps);\n\n initializeForm(formInfo, NuevoFormData);\n }, []);\n\n return ;\n}\n","import {\n Breakpoints,\n BreakpointWrapper,\n Container,\n ContainerPadding,\n Layout,\n Text,\n TextAlignment,\n TokenTextAppearance,\n} from '@volkswagen-onehub/components-core';\nimport React, { useEffect, useState } from 'react';\nimport { connect, useDispatch, useSelector } from 'react-redux';\nimport { useFeatureAppConfig, useTrackingManager, TrackingForm } from 'src/feature-app';\nimport { RenderController } from 'src/feature-app/Screen';\nimport { FormDataFields, FormInfo, OneFormState, Steps } from 'src/types';\n\nconst copiesThankYou = [\n {\n name: 'prospect',\n titleCopyRegular: '',\n titleCopyBold: '¡Listo!',\n bodyCopy: [\n 'Muy pronto, recibirás toda la información sobre el Nuevo Taigo.',\n ],\n },\n {\n name: 'prospect-match',\n titleCopyRegular: 'Ya te hemos enviado ',\n titleCopyBold: 'los detalles de tu configuración',\n bodyCopy: [\n 'Muy pronto recibirás un email con las características del Volkswagen que más encaja contigo. ',\n ],\n },\n {\n name: 'prospect-posventa-calculadora',\n titleCopyRegular: 'Ya tienes ',\n titleCopyBold: 'tu presupuesto de mantenimiento',\n bodyCopy: [\n 'Te hemos enviado un email con todos los detalles sobre tu mantenimiento para que puedas consultarlo cuando quieras.',\n ],\n }\n];\ninterface FieldProps {\n copyBook?: string;\n}\n\ninterface NDPSField {\n name: string;\n value: string;\n}\n\nfunction Fields(props: FieldProps) {\n const { formData, formInfo } = useSelector((state: OneFormState) => state);\n const config = useFeatureAppConfig();\n\n return (\n \n
\n \n \n {props.copyBook}\n \n \n
\n \n );\n}\n\ninterface ThankYouProps {\n formData: FormDataFields;\n formInfo: FormInfo;\n}\n\nfunction ThankYouProspects(props: ThankYouProps) {\n const { formData, formInfo } = props;\n const { formResponse } = formInfo;\n const { formName } = formData;\n\n\n const [completeInfo, setCompletInfo] = useState(null);\n const [titleBold, setTitleBold] = useState('');\n const [titleRegular, setTitleRegular] = useState('');\n const [copybook, setCoopybook] = useState('');\n\n\n const trackingManager = useTrackingManager();\n const dispatch = useDispatch();\n const getTrackingForm = (): TrackingForm => {\n let LeadID;\n if (formResponse && formResponse.content && formResponse.content.data && formResponse.content.data.fields) {\n const leadField: NDPSField = formResponse.content.data.fields.find(\n (field: NDPSField) => field.name === 'COD_LEAD_ID'\n );\n LeadID = leadField ? leadField.value : undefined;\n }\n return {\n LeadID,\n FormFields: undefined,\n };\n };\n\n useEffect(() => {\n // Thank you page no es gestionado como un step pero sí lo haremos en la analítica. Por eso Modificamos formInfo después del submit y antes del RESET\n const screenIndexThankyou = formInfo.numberOfScreens;\n\n dispatch({ type: 'SET_FORM_SUBMITTED', payload: true });\n dispatch({ type: 'SET_FORM_INFO', payload: { step: { screenIndex: screenIndexThankyou, name: \"ThankYou\" } } });\n\n const aux = copiesThankYou.filter((a: any) => {\n return a.name === formName;\n });\n setCompletInfo(aux);\n\n trackingManager.trackFormSubmissionSuccessMessageLoad(\n {\n contentId: undefined,\n },\n getTrackingForm()\n );\n }, []);\n\n const renderTitle = () => {\n return (\n <>\n \n \n {completeInfo ? completeInfo[0].titleCopyRegular : null}\n {completeInfo ? completeInfo[0].titleCopyBold : null}\n \n \n \n \n {completeInfo ? completeInfo[0].titleCopyRegular : null}\n {completeInfo ? completeInfo[0].titleCopyBold : null}\n \n \n \n );\n };\n\n const screen: Steps = {\n title: <>{renderTitle()},\n fields: ,\n };\n return (\n \n );\n}\n\nconst mapStateToProps = (state: OneFormState) => {\n return {\n formData: state.formData.fields,\n formInfo: state.formInfo,\n };\n};\n\nconst ConnectedComponent = connect(mapStateToProps)(ThankYouProspects);\n\nexport { ConnectedComponent as ThankYouProspects };\n","import { CTA, styled, ThemeProvider, Spinner } from '@volkswagen-onehub/components-core';\nimport { ArrowRight } from '@volkswagen-onehub/icons-core/dist/ArrowRight';\nimport { Checkmark } from '@volkswagen-onehub/icons-core/dist/Checkmark';\nimport React, { useEffect, useRef, useState } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { TelefonoInput, PrefijoInput } from 'src/components';\nimport { OneFormState } from 'src/types';\nimport { useWindowWidth } from '@react-hook/window-size';\nimport { Phone } from '@volkswagen-onehub/icons-core/dist/Phone';\nimport { keyframes, css } from 'styled-components';\nimport { useTrackingManager, getTrackingForm, useOneFormContext } from 'src/feature-app';\n\nconst moveLeft = keyframes`\n from {\n /* left: 70%; */\n left: 75%;\n }\n to {\n left: 0;\n /* right: auto; */\n }\n`;\n\nconst RaceFormWrapper = styled.div<{ width: number; isSending: boolean; isSent: boolean; showFullWidth: boolean }>`\n display: flex;\n margin-bottom: 24px;\n margin-top: 24px;\n width: ${(props) => {\n if (props.showFullWidth) {\n return '605px';\n }\n if (window.innerWidth < 418) {\n if (props.isSending || props.isSent) {\n return '100%';\n return `${props.width}px`;\n }\n return '75%';\n } else {\n if (props.isSending || props.isSent) {\n return '100%';\n }\n return 'fit-content';\n }\n }};\n\n min-height: 44px;\n position: relative;\n`;\n\nconst PrefijoWrapper = styled.div`\n width: 78px;\n padding-top: 3px;\n margin-right: 24px;\n\n & label {\n color: #001e50 !important;\n }\n`;\n\ninterface CTAWrapperProps{\n width: number;\n isSending: boolean;\n isSent: boolean;\n isPristine: boolean;\n showFullWidth: boolean;\n successful: boolean;\n}\nconst CTAWrapper = styled.div`\n position: absolute;\n left: ${(props) => (props.isSent || props.isSending ? '0' : '100%')};\n width: auto;\n animation: ${(props) => {\n if (props.isSending) {\n return css`\n ${moveLeft} 1s ease\n `;\n } else {\n return 'none';\n }\n }};\n\n & button {\n margin-left: ${(props) => (props.isSending || props.isSent ? '0px' : '15px')};\n margin-top: 5px;\n width: ${(props) => {\n if (props.isSending || props.isSent) {\n if (props.showFullWidth) {\n return '250px';\n } else {\n if (props.isSending) {\n return '250px';\n }\n return '100%';\n }\n }\n return '44px';\n }};\n height: 44px;\n background-color: ${(props) => (props.isSent ? '#029640' : '#ffaa27')};\n border: ${(props) => (props.isSent ? '2px solid #029640' : '2px solid #ffaa27')};\n /* transition: all 1s ease; */\n cursor: ${(props) => (props.isSent ? 'auto' : 'pointer')};\n\n @media all and (min-width: 375px) {\n margin-left: ${(props) => (props.isSending || props.isSent ? '0px' : '25px')};\n }\n @media all and (min-width: 560px) {\n margin-left: ${(props) => (props.isSending || props.isSent ? '0px' : '32px')};\n }\n\n & > span {\n height: 24px;\n }\n\n &:focus,\n &:hover::before,\n &:active::before {\n background-color: ${(props) => (props.isSent && !props.isPristine ? '#029640' : '#ffaa27')};\n position: relative;\n /* margin: 0px; */\n box-shadow: none;\n }\n &:hover::before {\n margin: 0px;\n }\n }\n & button[disabled] {\n cursor: not-allowed;\n background-color: ${(props) => (props.successful ? '#029640' : 'rgb(223, 228, 232)')};\n color: ${(props) => (props.successful ? '#ffffff' : 'inherit')};\n border: 2px ${(props) => (props.successful ? '#029640' : 'rgb(223, 228, 232)')};\n }\n`;\n\ninterface CTAWrapperFullScreenProps {\n isSending: boolean;\n isSent: boolean;\n isPristine: boolean;\n showFullWidth: boolean;\n successful: boolean;\n}\n\nconst CTAWrapperFullScreen = styled.div`\n position: absolute;\n left: ${(props) => (props.isSent || props.isSending ? '0' : '45%')};\n width: auto;\n\n animation: ${(props) => {\n if (props.isSending) {\n return css`\n ${moveLeft} 1s ease\n `;\n } else {\n return 'none';\n }\n }};\n\n @media all and (min-width: 1600px) {\n left: ${(props) => (props.isSent || props.isSending ? '0' : '49%')};\n }\n\n & button {\n margin-left: ${(props) => (props.isSending || props.isSent ? '0px' : '32px')};\n margin-top: 5px;\n width: ${(props) => (props.isSending ? '250px' : props.isSent || props.showFullWidth ? 'auto' : '44px')};\n height: 44px;\n background-color: ${(props) => (props.isSent && props.successful ? '#029640' : '#ffaa27')};\n border: ${(props) => (props.isSent && props.successful ? '2px solid #029640' : '2px solid #ffaa27')};\n cursor: ${(props) => (props.isSent && props.successful ? 'auto' : 'pointer')};\n\n & > span {\n height: 24px;\n }\n\n &:focus,\n &:hover::before,\n &:active::before {\n background-color: ${(props) => (props.isSent && props.successful && !props.isPristine ? '#029640' : '#ffaa27')};\n position: relative;\n /* margin: 0px; */\n box-shadow: none;\n }\n\n &:hover::before {\n margin: 0px;\n }\n }\n & button[disabled] {\n cursor: not-allowed;\n background-color: ${(props) => (props.successful ? '#029640' : 'rgb(223, 228, 232)')};\n color: ${(props) => (props.successful ? '#ffffff' : 'inherit')};\n border: ${(props) => (props.successful ? '2px solid #029640' : '2px solid rgb(223, 228, 232)')};\n }\n`;\n\ninterface RaceFormProps {\n isSent: boolean;\n isSending: boolean;\n disabledButton: boolean;\n sendForm: () => Promise;\n isPristine: boolean;\n isFullScreen: boolean;\n copyWidth?: number; // Con el resize en algunos dispositivos móviles se pierde el tamaño necesario del cta y se descuadra.\n setIsPristine: React.Dispatch>;\n successful?: boolean;\n error?: boolean;\n}\n\nconst showFullCta = (isFullScreen: boolean) => isFullScreen && window.innerWidth > 1279;\n\nexport const RaceForm = ({\n isSent,\n isSending,\n isPristine,\n disabledButton,\n sendForm,\n copyWidth,\n isFullScreen,\n setIsPristine,\n successful,\n}: RaceFormProps) => {\n const initialSizeRef = useRef(null); // Hay que determinar el width del contenedor al principio para que cuando desaparezcan los campos de telf y prefijo no cambie el ancho y la animación del cta empiece desde otro sitio.\n const [containerWidth, setContainerWidth] = useState(0);\n const windowWidth = useWindowWidth();\n const { initializeForm } = useOneFormContext();\n const { formInfo } = useSelector((state: OneFormState) => state);\n const { formResponse } = formInfo;\n const trackingManager = useTrackingManager();\n const dispatch = useDispatch();\n\n useEffect(() => {\n initializeForm(\n {},\n {\n headers: {},\n fields: {\n formName: 'race',\n formType: 'otherform',\n pageCategory: 'other',\n },\n },\n isFullScreen\n );\n }, []);\n\n useEffect(() => {\n if (initialSizeRef) {\n if (copyWidth && copyWidth <= 346) {\n // El contenedor crece hasta 346px\n setContainerWidth(copyWidth);\n } else {\n setContainerWidth(initialSizeRef.current.offsetWidth);\n }\n }\n }, [windowWidth, copyWidth]);\n\n useEffect(() => {\n if (successful){\n dispatch({ type: 'SET_FORM_SUBMITTED', payload: true });\n\n trackingManager.trackFormSubmissionSuccessMessageLoad(\n {\n contentId: undefined,\n },\n getTrackingForm(formResponse)\n );\n }\n }, [successful]);\n\n return (\n \n <>\n {isSending || isSent ? null : (\n <>\n \n \n \n \n \n
\n {\n setIsPristine(false);\n }}\n onFocusHandler={() => {\n setIsPristine(false);\n }}\n name='raceCellphone'\n />\n
\n \n )}\n\n {showFullCta(isFullScreen) ? (\n \n : isSent ? : }\n onClick={async () => {\n if (!isSending && !isSent) {\n await sendForm();\n }\n }}\n stretchContent\n >\n {isSending ? 'Enviando' : isSent && successful ? 'Te llamaremos pronto' : 'Te llamamos'}\n \n \n ) : (\n \n : isSent ? : }\n onClick={async () => {\n if (!isSending && !isSent) {\n await sendForm();\n }\n }}\n >\n {isSending ? 'Enviando' : isSent ? 'Te llamaremos pronto' : null}\n \n
\n )}\n \n \n );\n};\n","import { OneFormState } from 'src';\nimport { formDataBuilder } from 'src/forms/format-fields';\nimport { raceSend } from 'src/bff';\nimport { useEffect, useState } from 'react';\nimport { cellphoneIsInvalid } from 'src/components';\nimport { useSelector } from 'react-redux';\n\nexport const useRaceFormController = (raceCellphone: string) => {\n const [isPristine, setIsPristine] = useState(true);\n const [isSent, setIsSent] = useState(false);\n const [isSending, setIsSending] = useState(false);\n const [error, setError] = useState(false);\n const [successful, setSuccessful] = useState(false);\n const [disabledButton, setDisabledButton] = useState(true);\n const {racePrefix }= useSelector((state: OneFormState) => state.formData.fields);\n\n useEffect(() => {\n if (\n raceCellphone &&\n !cellphoneIsInvalid(raceCellphone) &&\n /[6|7|8|9][0-9]{8}/gi.test(raceCellphone) &&\n raceCellphone.length === 9\n ) {\n setDisabledButton(false);\n } else {\n setDisabledButton(true);\n }\n }, [raceCellphone]);\n\n const retry = () => {\n reset();\n sendForm();\n };\n\n const reset = () => {\n setError(false);\n setIsSent(false);\n setIsSending(false);\n setIsPristine(true);\n setSuccessful(false);\n setDisabledButton(true);\n };\n\n const sendForm = async (): Promise => {\n setIsSending(true);\n setDisabledButton(true);\n setIsPristine(false);\n\n const data = {\n id: 'CTC VOLKSWAGEN',\n canal: 'FORM',\n telefono: `${racePrefix}${raceCellphone}`,\n };\n\n const dataStringified = JSON.stringify(data);\n const dataParsed = JSON.parse(dataStringified);\n\n const formDataInfo = formDataBuilder(dataParsed);\n const response = await raceSend(formDataInfo);\n\n setIsSending(false);\n setDisabledButton(false);\n\n if (response?.data?.status?.result === 'success' && response?.data?.status?.code === 1) {\n setSuccessful(true);\n } else {\n setError(true);\n }\n setIsSent(true);\n };\n\n return { isSent, isSending, isPristine, disabledButton, error, sendForm, retry, setIsPristine, successful, reset };\n};\n","import { getParamsForm } from 'src/feature-app/get-params-form';\nimport { removeWhiteSpace, formatPrefix } from 'src/feature-app';\n\nconst { tc, today, url, device } = getParamsForm();\n\nexport const getCommonFormData = (fields) =>{\n return {\n\n 'headers[DPS_TOKEN]': 'VW_DDB_FRM_SAC',\n 'headers[FORM_DATE_INSERTION]': today,\n 'headers[FORM_NAME]': `vw-oneform-${fields.formName}`, \n 'headers[FORM_OBJECTIVE]': 'Atención al cliente',\n 'headers[FORM_URL]': url,\n 'headers[FORM_VERSION]': `vw-oneform-${fields.formName}-${process.env.VERSION}`,\n 'headers[ORIGIN_DEVICE_TYPE]': device,\n 'headers[ORIGIN_TRACKING_CODE]': tc,\n 'headers[SF_CAMPAIGN_ID]': '7011n000000AglrAAC',\n 'headers[SF_CAMPAIGN_NAME]': 'PENDIENTE',\n 'headers[SF_CAMPAIGN_ORIGIN_ID]': 'PENDIENTE',\n \n 'flags[FLAG_RELACION_MARCA_SIN_IC]': false,\n 'flags[PERSON_RGPD_ADAPTED]': true,\n\n 'fields[DPS_BRAND]': 'Volkswagen', \n 'fields[SURVEY_ANSWER_01]': fields.motivoSac ? fields.motivoSac : 'ONESHOP',\n 'fields[PERSON_PREFERRED_CHANNEL]': fields.contactoSAC ? fields.contactoSAC : 'TELEFONO',\n 'fields[PERSON_NAME]': fields.name,\n 'fields[PERSON_SURNAME_1]': fields.surname,\n 'fields[PERSON_SURNAME_2]': fields.secondSurname,\n 'fields[PERSON_EMAIL]': removeWhiteSpace(fields.email),\n 'fields[PERSON_PHONE_PREFIX]': fields.prefix,\n 'fields[PERSON_PHONE_MOBILE]': fields.cellphone,\n 'fields[PERSON_PHONE_MOBILE_FULL]': `${formatPrefix(fields.prefix)}${fields.cellphone}`,\n 'fields[PERSON_RGPD_COM_COMERCIALES]': fields.lssi ? fields.lssi : 'NO INFORMADO',\n 'fields[PERSON_RGPD_PERFILADO]': fields.tmk ? fields.tmk : 'NO INFORMADO',\n }\n};\n","import React, { useEffect, useState } from 'react';\nimport { useDispatch, useStore } from 'react-redux';\nimport { oneformBFFNdpsSend } from 'src/bff';\nimport {\n FormController,\n useOneFormContext,\n formatPrefix,\n removeWhiteSpace\n} from 'src/feature-app';\nimport { getParamsForm } from 'src/feature-app/get-params-form';\nimport { getCommonFormData } from '../FormData';\nimport { OneElementTemplateFullScreen } from 'src/feature-app/Screen';\nimport { FormDataGroup, FormInfo, OneFormState, Steps } from 'src/types';\nimport { ThankYouOneShop, SACOneShopFields } from '.';\nimport { formDataBuilder, formatHeaders } from '../../format-fields';\nimport { IdPerson } from 'src/types';\nimport { DpsData } from 'src/feature-service/es-oneform-core-feature-service/types';\n\n\n\nlet NuevoFormData: Partial = {\n headers: {\n DESC_BRAND: 'VW',\n DESC_GDPR_ADAPTED: 'true',\n DESC_TOKEN: 'VW_DDB_FRM_SAC',\n DESC_FORMOBJECTIVE: 'Atención al cliente',\n DESC_ID_CAMPAIGN: '7011n000000AglrAAC',\n COD_FORM_ID: 'vw-oneform-sac-oneshop',\n DESC_FORM_DETAIL: 'SAC OneShop',\n DESC_CAMPAIGNBLOCK: '18 - VW Customer Care',\n },\n fields: {\n formName: 'sac-oneshop',\n formType: 'otherform',\n pageCategory: 'SAC OneShop',\n }, // Analítica\n};\n\ninterface SACOneShopProps {\n idPerson?: IdPerson;\n dpsData?: DpsData;\n}\n\nexport const SACOneShopForm = (props: SACOneShopProps) => {\n const { initializeForm } = useOneFormContext();\n const { idPerson } = props;\n const store = useStore();\n const dispatch = useDispatch();\n const [loading, setLoading] = useState(true);\n\n\n const steps: Steps[] = [\n {\n title: <>, // El title se renderiza en los fields al ser un form de un solo step con un diseño que incluye un stage.\n fields: } />,\n screenIndex: 0,\n name: 'Form',\n },\n ];\n\n useEffect(() => {\n if (idPerson) {\n dispatch({ type: 'UPDATE_FIELDS', payload: { 'cellphone': idPerson.NUM_Phone_mobile__c } });\n dispatch({ type: 'UPDATE_FIELDS', payload: { 'name': idPerson.FirstName } });\n dispatch({ type: 'UPDATE_FIELDS', payload: { 'surname': idPerson.LastName } });\n dispatch({ type: 'UPDATE_FIELDS', payload: { 'email': idPerson.TXT_Email__c } });\n }\n }, [idPerson]);\n\n useEffect(() => {\n const urlParams = new URLSearchParams(window.location.search);\n const info = urlParams.get('q');\n if (info) {\n const decodedParms = atob(info);\n const splittedParams = decodedParms.split(';');\n const [DESC_ID_CLIMAPRO] = splittedParams;\n\n NuevoFormData = {\n headers: { ...NuevoFormData.headers, DESC_ID_CLIMAPRO },\n fields: { ...NuevoFormData.fields },\n };\n }\n setLoading(false);\n }, []);\n\n const getFormInfo = (): {\n firstStep: Steps;\n lastStep: Steps;\n stepsHistory: number[];\n numberOfScreens: number;\n newSteps?: Steps[];\n } => {\n return {\n firstStep: steps[0],\n lastStep: steps[steps.length - 1],\n stepsHistory: [0],\n numberOfScreens: steps.length,\n newSteps: null,\n };\n };\n\n const sendForm = (): Promise => {\n const { formData, dealersInfo }: OneFormState = store.getState();\n\n const { fields, headers } = formData;\n\n return new Promise(async (resolve, reject) => {\n\n const data = {\n 'headers[FORM_DETAILS]': 'SAC OneShop',\n ...getCommonFormData(fields),\n };\n\n const dataStringified = JSON.stringify(data);\n const dataParsed = JSON.parse(dataStringified);\n\n const formData = formDataBuilder(dataParsed);\n\n const response = await oneformBFFNdpsSend(formData);\n\n if (response && response.data && response.data.content && response.data?.status?.code == '200') {\n dispatch({ type: 'SET_FORM_RESPONSE', payload: response.data });\n resolve(true);\n } else {\n resolve(false);\n }\n });\n };\n\n useEffect(() => {\n if (loading) {\n return;\n }\n const { firstStep, lastStep, stepsHistory, numberOfScreens, newSteps } = getFormInfo();\n\n const NuevoFormInfo: Partial = {\n formStarted: true,\n sendFormCallback: sendForm,\n fullScreen: firstStep.fullScreen ? true : false,\n lastStep,\n numberOfScreens,\n formTheme: 'main',\n screenIndex: firstStep.screenIndex,\n step: firstStep,\n steps: newSteps ? newSteps : steps,\n stepsHistory,\n notALayer: true,\n formType: 'inPage',\n alingItemsCenter: true,\n thankYouComponent: ,\n };\n initializeForm(NuevoFormInfo, NuevoFormData);\n }, [loading]);\n\n return !steps ? null : ;\n};\n","import React, { useEffect } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { useTrackingManager, getTrackingForm } from 'src/feature-app';\nimport { RenderController } from 'src/feature-app/Screen';\nimport { OneFormState, Steps } from 'src/types';\nimport { ThankYouTitle, ThankYouFields } from 'src/components';\n\nexport const ThankYouOneShop = () => {\n const {formResponse} = useSelector((state: OneFormState) => state.formInfo);\n const trackingManager = useTrackingManager();\n const dispatch = useDispatch();\n\n useEffect(() => {\n // Thank you page no es gestionado como un step pero sí lo haremos en la analítica. Por eso Modificamos formInfo después del submit y antes del RESET\n const screenIndexThankyou = formResponse.numberOfScreens;\n\n dispatch({ type: 'SET_FORM_SUBMITTED', payload: true });\n dispatch({ type: 'SET_FORM_INFO', payload: { step: { screenIndex: screenIndexThankyou, name: \"ThankYou\" } } });\n\n trackingManager.trackFormSubmissionSuccessMessageLoad(\n {\n contentId: undefined,\n },\n getTrackingForm(formResponse)\n );\n }, []);\n\n const screen: Steps = {\n title: ,\n fields: (\n \n ),\n };\n return (\n \n );\n};\n","import {\n styled,\n Container,\n ContainerPadding,\n CTA,\n Text,\n ContainerGutter,\n TokenTextAppearance,\n} from '@volkswagen-onehub/components-core';\nimport { CloseHandleV2, FocusLayerSizeV2, LayerHandleV2, LayerManagerV2 } from '@volkswagen-onehub/layer-manager';\n\nimport {\n InputError,\n PoliticaPrivacidad,\n Telefono,\n MultipleCTASelection,\n KoScreen,\n LoadingScreen,\n GeneralInputWidthWrapper,\n Nombre,\n Apellido,\n Email,\n} from 'src/components';\nimport { questionTwoOptions } from 'src/feature-app/InputsValues';\nimport React, { useEffect, useState } from 'react';\nimport { useDispatch, useSelector, useStore } from 'react-redux';\nimport { useFormContext } from 'react-hook-form';\nimport {\n LayerManagerWrapper,\n useFeatureAppEnvironment,\n useFeatureServices,\n useOneFormContext,\n useTrackingManager,\n formatPrefix,\n} from 'src/feature-app';\nimport { OneFormState, IdPerson } from 'src/types';\n\nconst TextAreaWrapper = styled.div`\n label {\n width: 100%;\n }\n`;\n\nconst PaddingWrapper = styled.div`\n`;\n\nconst NameLastNameWrapper = styled.div`\n padding-bottom: 2px;\n gap: 20px;\n display: flex;\n flex-direction: column;\n @media all and (min-width: 960px) {\n flex-direction: row;\n gap: 32px;\n }\n`;\n\ninterface OneShopProps {\n idPerson?: IdPerson;\n}\n\nexport const SACOneShopFields = (props: OneShopProps) => {\n const { idPerson } = props;\n const [motivoError, setMotivoError] = useState(false);\n const [masInfoValue, setMasInfoValue] = useState(null);\n const [nameError, setNameError] = useState(false);\n\n return (\n
\n \n <>\n \n \n Confirma tus datos y te llamaremos lo antes posible\n \n \n \n Sea cual sea tu duda, estamos aquí para ayudarte. Solo necesitamos que completes la siguiente\n información y nos pondremos en contacto contigo.\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n }\n />\n \n \n \n \n
\n );\n};\n\ninterface FieldProps {\n question?: string;\n input: JSX.Element;\n isRequired?: boolean;\n emailError?: boolean;\n motivoError?: boolean;\n}\nconst Field = (props: FieldProps) => {\n const { question, input, isRequired, emailError, motivoError } = props;\n\n return (\n \n {\n question ? (\n \n {question} {isRequired ? * : null}\n \n ) : null\n }\n\n {input}\n {emailError || motivoError ? Necesitamos esta información para seguir : null}\n \n );\n};\n\ninterface lastNavigationsProps {\n setMotivoError: (value: boolean) => void;\n setNameError: (value: boolean) => void;\n masInfoValue?: null | string;\n idPerson?: IdPerson;\n}\n\nfunction LastNavigation(props: lastNavigationsProps) {\n const { setMotivoError, masInfoValue, idPerson, setNameError } = props;\n // const dispatch = useDispatch();\n const { handleShowFinalScreen, handleSubmit } = useOneFormContext();\n const { getValues, triggerValidation } = useFormContext();\n const [layerVisible, setLayerVisible] = useState(false);\n const [koLayer, setKoLayer] = useState>(null);\n const [koScreen, setKoScreen] = useState(false);\n const layerManager = useFeatureServices()['layer-manager'] as LayerManagerV2;\n const store = useStore();\n const env = useFeatureAppEnvironment();\n const dispatch = useDispatch();\n const trackingManager = useTrackingManager();\n const { formData } = useSelector((state: OneFormState) => state);\n\n //Loading and Ko layers\n\n const handleKoLayer = () => {\n const layer = layerManager.openFocusLayer(renderKoLayer, {}, { size: FocusLayerSizeV2.A });\n setKoLayer(layer);\n };\n\n const renderKoLayer = (state: any, close: CloseHandleV2) => {\n const NoCompraTitle = 'Uy, algo ha pasado';\n const NoCompraBody = 'Por alguna razón no hemos podido enviar tu petición. ¿Lo intentamos de nuevo?';\n\n return (\n \n \n \n );\n };\n\n const handleLoadingScreenLayer = () => {\n const layer = layerManager.openFocusLayer(renderLoadingScreen, {}, { size: FocusLayerSizeV2.A });\n\n return layer;\n };\n\n const renderLoadingScreen = (state: any, close: CloseHandleV2) => {\n return (\n \n \n \n );\n };\n\n\n\n async function handleConfirmarCita(e: any) {\n\n //activar o desactivar mensajes de error\n const values = await getValues();\n\n trackingManager.trackFormCTAClick({\n contentId: 'Confirmar',\n });\n\n const isValid = await triggerValidation();\n\n if (isValid) {\n const loadingLayer = handleLoadingScreenLayer();\n setLayerVisible(true);\n\n dispatch({ type: 'UPDATE_FIELDS', payload: { 'name': values.name } });\n dispatch({ type: 'UPDATE_FIELDS', payload: { 'surname': values.surname } });\n dispatch({ type: 'UPDATE_FIELDS', payload: { 'email': values.email } });\n dispatch({ type: 'UPDATE_FIELDS', payload: { 'cellphone': `${formatPrefix(values.prefix)}${values.cellphone}` } });\n\n dispatch({ type: 'SET_FORM_SUBMITTED', payload: true });\n\n const value = await handleSubmit(e);\n loadingLayer.close();\n\n if (value) {\n handleShowFinalScreen();\n } else {\n handleKoLayer();\n }\n }\n }\n\n async function retrySubmit(e: any) {\n if (koLayer) {\n koLayer.close();\n }\n setKoScreen(false);\n const loadingLayer = handleLoadingScreenLayer();\n const value = await handleSubmit(e);\n loadingLayer.close();\n if (value) {\n handleShowFinalScreen();\n } else {\n handleKoLayer();\n setKoScreen(true);\n }\n }\n\n useEffect(() => {\n if (!layerVisible && koScreen) setKoScreen(false);\n }, [layerVisible]);\n\n useEffect(() => {\n dispatch({ type: 'UPDATE_FORM_ENDED', payload: true });\n }, []);\n\n return (\n <>\n {\n e.preventDefault();\n handleConfirmarCita(e);\n }}\n stretchContent={window.innerWidth <= 560}\n >\n Confirmar\n \n \n );\n}\n","import React, { useState, useEffect } from 'react';\nimport { BreakpointWrapper, Breakpoints } from '@volkswagen-onehub/components-core';\nimport { SelectExtended } from '.';\nimport { getActualYearNumber } from 'src/feature-app';\nimport { styled } from '@volkswagen-onehub/components-core';\nimport dayjs from 'dayjs';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { OneFormState } from 'src/types';\nimport { meses } from 'src/feature-app/InputsValues/OtherInputTypesObjects';\n\ninterface HeaderImageProps {\n imageSmall?: string;\n imageBig?: string;\n imageLogo?: string;\n}\nconst ImageWrapper = styled.div<{ background: string }>`\n div{\n display: flex;\n justify-content: center;\n background-image: ${(props) => `url(${props.background})`};\n background-position: center;\n background-repeat: no-repeat;\n background-size: cover;\n height: 30vh;\n }\n @media screen and (max-width: 700px) {\n div{\n height: 40vh;\n }\n } \n`;\nconst LogoCenter = styled.div`\n .image-front{\n position: relative;\n width: 50vw;\n left: 0;\n top: 0;\n right: 0;\n bottom: 0;\n display: block;\n margin: auto; \n }\n @media screen and (min-width: 500px) {\n .image-front{\n width: 40vw;\n }\n }\n @media screen and (min-width: 700px) {\n .image-front{\n width: 30vw;\n }\n }\n`;\n\n\nexport const HeaderImage = (props: HeaderImageProps) => {\n return (\n <>\n \n \n \n \"logo\"\n \n \n \n \n \n \n \"logo\"\n \n \n \n \n );\n}","import React, { useEffect, useRef, useState } from 'react';\nimport { useDispatch, useStore } from 'react-redux';\nimport { useFeatureServices } from 'src/feature-app';\nimport { EsOneformCoreServiceV1 } from 'src/feature-service/es-oneform-core-feature-service/types';\nimport { IdPerson } from 'src/types';\nimport { SACOneShopForm } from '.';\nimport { createPincodeEntity } from '../../dps-utils';\nimport { LoadingEncuestas } from 'src/components';\nimport { HeaderImage } from \"../../../components/HeaderImage\";\n\nexport interface SACOneShopProps {\n idPerson: IdPerson;\n handleError: () => void;\n\n}\n\nexport function SACOneShopController() {\n const [loading, setLoading] = useState(true);\n const [error, setError] = useState(false);\n\n const dpsDataRef = useRef(null);\n const idPersonRef = useRef(null);\n const oneFormService = useFeatureServices()['es:oneform-core'] as EsOneformCoreServiceV1;\n\n const imagesUrl = {\n imageBigUrl: 'https://assets.volkswagen.com/is/image/volkswagenag/es-oneform-sac-oneshop-2560x760?Zml0PWNyb3AlMkMxJndpZD0yNTYwJmhlaT03NjAmZm10PXdlYnAtYWxwaGEmcWx0PTc5JmJmYz1vZmYmYTYzZA==',\n imageSmallUrl: 'https://assets.volkswagen.com/is/image/volkswagenag/es-oneform-sac-oneshop-1080x520?Zml0PWNyb3AlMkMxJndpZD0xMDgwJmhlaT01MjAmZm10PXdlYnAtYWxwaGEmcWx0PTc5JmJmYz1vZmYmMjAxZA==',\n imageLogoUrl: 'https://assets.volkswagen.com/is/image/volkswagenag/es-oneform-sac-oneshop-logo-v2?Zml0PWNyb3AlMkMxJndpZD0zNjImaGVpPTc0JmZtdD1wbmctYWxwaGEmYmZjPW9mZiZjZmYy'\n }\n\n const handleNext = (value: any) => { };\n const handleComplete = () => {\n const dpsData = oneFormService.getDpsData();\n\n if (dpsData.pincode === null || dpsData.pincode.noPincodeFound || dpsData.pincode.pincodeError) {\n handleError();\n } else if (dpsData.pincode.pincodeUsed) {\n setLoading(false);\n } else {\n const idPerson = createPincodeEntity(dpsData, 'PERSON');\n\n dpsDataRef.current = dpsData;\n idPersonRef.current = idPerson;\n\n setLoading(false);\n }\n };\n\n const handleError = () => {\n setError(true);\n setLoading(false);\n };\n\n useEffect(() => {\n const oneFormCoreDpsIsLoaded = oneFormService.getLoadedState();\n\n oneFormCoreDpsIsLoaded.subscribe({\n next(value) {\n handleNext(value);\n },\n error(err) {\n console.error(err);\n handleError();\n },\n complete() {\n handleComplete();\n },\n });\n }, []);\n\n if (loading) {\n return ;\n } else if (error) {\n return (\n <>\n \n \n \n );\n } else {\n return (\n <>\n \n \n \n );\n }\n}\n","import React, { useEffect } from 'react';\nimport { Text } from '@volkswagen-onehub/components-core';\nimport { OneElementTemplate } from 'src/feature-app/Screen';\nimport { Email, PantallaNombreApellido, DetalleMotivo, Telefono, MultipleCTASelection, ContactInfoWrapper } from 'src/components';\nimport { PantallaMotivoSAC, ConfirmacionSAC, ThankYouSAC } from '.';\nimport { getCommonFormData } from './FormData';\nimport { useStore, useDispatch } from 'react-redux';\nimport { oneformBFFNdpsSend } from 'src/bff';\nimport { getParamsForm } from 'src/feature-app/get-params-form';\nimport { FormDataGroup, FormInfo, OneFormState, Steps } from 'src/types';\nimport {\n FormController,\n removeWhiteSpace,\n useOneFormContext,\n formatPrefix,\n} from 'src/feature-app';\nimport { formDataBuilder } from '../format-fields';\nimport { contactoOptionsSAC } from 'src/feature-app/InputsValues/CTAsObjects';\n\nexport enum SACFormSteps {\n Motivo,\n MasInformacion,\n NombreApellido,\n EmailTelefono,\n Contacto,\n Confirmacion,\n}\n\nexport const SACForm = () => {\n const { initializeForm } = useOneFormContext();\n const store = useStore();\n const dispatch = useDispatch();\n\n const steps: Steps[] = [\n {\n title: (\n <>\n ¿Cómo podemos ayudarte?\n \n ),\n fields: (\n \n \n \n }\n />\n ),\n screenIndex: SACFormSteps.Motivo,\n name: 'motivoSac',\n outputs: ['motivoSac'],\n outputsText: ['motivoSac'],\n },\n {\n title: (\n <>\n ¿Podrías darnos más detalles sobre tu{' '}\n \n petición?*\n \n \n ),\n fields: } />,\n screenIndex: SACFormSteps.MasInformacion,\n name: 'MasInformacion',\n outputs: ['masInformacion'],\n outputsText: ['masInformacion'],\n },\n {\n title: (\n <>\n Para responderte, nos gustaría saber quién eres\n \n ),\n fields: (\n \n \n \n }\n />\n ),\n screenIndex: SACFormSteps.NombreApellido,\n name: 'NombreApellido',\n outputs: ['name', 'surname', 'secondSurname'],\n outputsText: ['name', 'surname', 'secondSurname'],\n },\n {\n title: (\n <>\n ¿En qué teléfono e email podemos localizarte?\n \n ),\n fields: (\n \n \n \n \n }\n />\n ),\n screenIndex: SACFormSteps.EmailTelefono,\n name: 'EmailTelefono',\n outputs: ['cellphone', 'email'],\n outputsText: ['cellphone', '/', 'email'],\n },\n {\n title: (\n <>\n ¿Cómo prefieres que te{' '}\n \n respondamos?\n *\n \n \n ),\n fields: (\n }\n />\n ),\n screenIndex: SACFormSteps.Contacto,\n name: 'contactoSAC',\n outputs: ['contactoSAC'],\n outputsText: ['contactoSAC'],\n },\n {\n fields: ,\n screenIndex: SACFormSteps.Confirmacion,\n name: 'Confirmacion',\n isLastStep: true,\n hidePreviousStep: true,\n },\n ];\n\n const SACFormData: Partial = {\n headers: {\n DESC_BRAND: 'VW',\n DESC_VN_VO: 'VN',\n DESC_GDPR_ADAPTED: 'true',\n },\n fields: { formName: 'sac', formType: 'otherform', pageCategory: 'Atención al cliente' }, // Analítica\n };\n\n const getFormInfo = (): {\n firstStep: Steps;\n lastStep: Steps;\n stepsHistory: number[];\n numberOfScreens: number;\n newSteps?: Steps[];\n } => {\n return {\n firstStep: steps[0],\n lastStep: steps[steps.length - 1],\n stepsHistory: [0],\n numberOfScreens: steps.length,\n newSteps: null,\n };\n };\n\n const sendForm = (): Promise => {\n const { formData }: OneFormState = store.getState();\n\n const { fields } = formData;\n\n return new Promise(async (resolve, reject) => {\n\n const data = {\n ...getCommonFormData(fields),\n 'fields[COMMENTS_PERSON]': fields.masInformacion,\n };\n const dataStringified = JSON.stringify(data);\n const dataParsed = JSON.parse(dataStringified);\n\n const formData = formDataBuilder(dataParsed);\n\n const response = await oneformBFFNdpsSend(formData);\n\n if (response && response.data && response.data.content && response.data?.status?.code == '200') {\n dispatch({ type: 'SET_FORM_RESPONSE', payload: response.data });\n resolve(true);\n } else {\n resolve(false);\n }\n });\n };\n\n useEffect(() => {\n const { firstStep, lastStep, stepsHistory, numberOfScreens, newSteps } = getFormInfo();\n\n const SACFormInfo: Partial = {\n formStarted: true,\n sendFormCallback: sendForm,\n fullScreen: firstStep.fullScreen ? true : false,\n lastStep,\n numberOfScreens,\n screenIndex: firstStep.screenIndex,\n step: firstStep,\n steps: newSteps ? newSteps : steps,\n stepsHistory,\n formType: 'layer',\n formTheme: 'inverted',\n notALayer: false,\n thankYouComponent: ,\n };\n\n initializeForm(SACFormInfo, SACFormData);\n }, []);\n\n return ;\n};\n","import React, { useEffect, useState } from 'react';\nimport { useFormContext } from 'react-hook-form';\nimport { SelectExtended } from 'src/components';\nimport { useOneFormContext } from 'src/feature-app/OneForm';\nimport { useSelector, useDispatch } from 'react-redux';\nimport { OneFormState } from 'src/types';\nimport { styled } from '@volkswagen-onehub/components-core';\n\nconst InputsWrapper = styled.div`\n padding-top: 44px;\n width: 100%;\n @media all and (min-width: 560px) {\n width: 303px;\n }\n @media all and (min-width: 960px) {\n width: 320px;\n }\n`;\n\nconst motivoOptions = [\n { code: null, name: null },\n {\n code: 'VE',\n name: 'Venta',\n },\n {\n code: 'PV',\n name: 'Posventa',\n },\n {\n code: 'GDP',\n name: 'Gestión de datos personales y privacidad',\n },\n {\n code: 'OT',\n name: 'Otras consultas',\n },\n];\n\nexport const PantallaMotivoSAC = () => {\n const [motivo, setMotivo] = useState(null);\n const { fields } = useSelector((state: OneFormState) => state.formData);\n const dispatch = useDispatch();\n const { handleNextStep } = useOneFormContext();\n\n useEffect(() => {\n if (fields.motivoSac) {\n const motivo = getMotivoByCode(fields.motivoSac);\n setMotivo(motivo);\n }\n }, []);\n\n const getMotivoByName = (name) => {\n\t\treturn motivoOptions ? motivoOptions.find(obj => obj.name == name) : null;\n\t}\n\n const getMotivoByCode = (code) => {\n return motivoOptions ? motivoOptions.find(obj => obj.code == code) : null;\n\t}\n\n function handleChangeMotivo(e: any) {\n e.preventDefault();\n if (e.target.value) {\n\t\t\tconst motivo = getMotivoByName(e.target.value);\n setMotivo(motivo);\n dispatch({ type: 'UPDATE_FIELDS', payload: { ['motivoSac']: motivo.code } });\n dispatch({ type: 'UPDATE_LITERAL_FIELDS_STEPS', payload: { ['motivoSac']: motivo.name } });\n handleNextStep();\n\t\t}\n }\n\n return (\n <>\n \n null}\n setOption={setMotivo}\n handleChange={handleChangeMotivo}\n />\n \n \n );\n};\n","import React, { useEffect, useState } from 'react';\nimport { useFormContext } from 'react-hook-form';\nimport { InputError, TextInputExtended, SelectExtended } from 'src/components';\nimport { useOnlyLettersControl } from 'src/components/inputs/use-only-letters-control';\nimport {\n styled,\n} from '@volkswagen-onehub/components-core';\nimport { OneFormState } from 'src/types';\nimport { useSelector } from 'react-redux';\ninterface ContentProps {\n notALayer?: boolean;\n}\n\nconst ContentWrapper = styled.div`\n margin-top: 4px;\n @media screen and (min-width: 960px) {\n display: flex;\n justify-content: space-between;\n flex-wrap: wrap;\n margin-top: 0;\n }\n label {\n margin-top: 40px;\n @media all and (min-width: 560px) {\n width: ${(props) => (props.notALayer ? 'var(--size-grid013)' : '303px')};\n }\n @media all and (min-width: 960px) {\n width: ${(props) => (props.notALayer ? 'var(--size-grid008)' : '320px')};\n }\n @media all and (min-width: 1280px) {\n width: ${(props) => (props.notALayer ? 'var(--size-grid006)' : '320px')};\n }\n @media all and (min-width: 1920px) {\n width: ${(props) => (props.notALayer ? 'var(--size-grid005)' : '320px')};\n }\n @media all and (min-width: 2560px) {\n width: ${(props) => (props.notALayer ? 'var(--size-grid004)' : '320px')};\n }\n }\n`;\n\nconst roadOptions = [\n {\n code: 'AUTOP',\n name: 'Autopista',\n },\n {\n code: 'AUTOV',\n name: 'Autovía',\n },\n {\n code: 'AVENI',\n name: 'Avenida',\n },\n {\n code: 'BARIO',\n name: 'Barrio',\n },\n {\n code: 'CALLE',\n name: 'Calle',\n },\n {\n code: 'CAMIN',\n name: 'Camino',\n },\n {\n code: 'CARRT',\n name: 'Carretera',\n },\n {\n code: 'GRANV',\n name: 'Gran vía',\n },\n {\n code: 'PASAJ',\n name: 'Pasaje',\n },\n {\n code: 'PASEO',\n name: 'Paseo',\n },\n {\n code: 'PLAYA',\n name: 'Playa',\n },\n {\n code: 'RAMBL',\n name: 'Rambla',\n },\n {\n code: 'RONDA',\n name: 'Ronda',\n },\n {\n code: 'TRAVE',\n name: 'Travesía',\n },\n {\n code: 'URBAN',\n name: 'Urbanización',\n },\n {\n code: 'VIA',\n name: 'Vía',\n },\n];\n\nexport const PantallaDireccionPostal = () => {\n const { register } = useFormContext();\n const { fields } = useSelector((state: OneFormState) => state.formData);\n\n //tipo de vía\n\n const [tipoVia, setTipoVia] = useState('Autopista');\n\n useEffect(() => {\n if (fields.tipoVia) {\n setTipoVia(fields.tipoVia);\n }\n }, []);\n\n function handleChangeTipoVia(event: any) {\n const newTipoVia = event.currentTarget.value;\n setTipoVia(newTipoVia);\n }\n\n //Nombre de la vía\n const [viaValue, setViaValue] = useState('');\n const [pristineVia, setPristineVia] = useState(true);\n const { error, regExp } = useOnlyLettersControl(pristineVia, viaValue);\n const numberRegExp = /\\d|[sS]\\/[nN]/gi;\n const handleChangeVia = (e: any) => {\n setViaValue(e.target.value);\n setPristineVia(false);\n };\n\n //Número\n\n const [numberValue, setNumberValue] = useState('');\n const [pristineNumber, setPristineNumber] = useState(true);\n const [numberError, setNumberError] = useState(false);\n const regExpNonDigit = /\\D/;\n\n const handleChangeNumber = (e: any) => {\n setNumberValue(e.target.value);\n if (regExpNonDigit.test(e.target.value) || (numberValue.length > 1 && numberValue.length < 8)) {\n setNumberError(true);\n } else if (numberValue === 's/n') {\n setNumberError(true);\n }\n\n setNumberError(false);\n\n setPristineNumber(false);\n };\n\n //Piso y puerta\n const [pisoPuertaValue, setPisoPuertaValue] = useState('');\n\n const handleChangePisoPuerta = (e: any) => {\n setPisoPuertaValue(e.target.value);\n };\n\n return (\n \n {}}\n setOption={setTipoVia}\n handleChange={handleChangeTipoVia}\n updateFields\n />\n handleChangeVia(e)}\n required\n />\n {error && Solo se aceptan letras}\n handleChangeNumber(e)}\n required\n />\n {numberError && Se aceptan números o la expresión s/n}\n handleChangePisoPuerta(e)}\n />\n \n );\n};\n","import React, { useEffect, useState } from 'react';\nimport { useFormContext } from 'react-hook-form';\nimport { InputError, Provincia, TextInputExtended } from 'src/components';\nimport { useOnlyLettersControl } from 'src/components/inputs/use-only-letters-control';\nimport {\n styled,\n} from '@volkswagen-onehub/components-core';\n\ninterface ContentProps {\n notALayer?: boolean;\n}\n\nconst ContentWrapper = styled.div`\n margin-top: 4px;\n @media screen and (min-width: 960px) {\n display: flex;\n justify-content: space-between;\n flex-wrap: wrap;\n margin-top: 0;\n }\n label {\n margin-top: 40px;\n @media all and (min-width: 560px) {\n width: ${(props) => (props.notALayer ? 'var(--size-grid013)' : '303px')};\n }\n @media all and (min-width: 960px) {\n width: ${(props) => (props.notALayer ? 'var(--size-grid008)' : '320px')};\n }\n @media all and (min-width: 1280px) {\n width: ${(props) => (props.notALayer ? 'var(--size-grid006)' : '320px')};\n }\n @media all and (min-width: 1920px) {\n width: ${(props) => (props.notALayer ? 'var(--size-grid005)' : '320px')};\n }\n @media all and (min-width: 2560px) {\n width: ${(props) => (props.notALayer ? 'var(--size-grid004)' : '320px')};\n }\n }\n`;\n\nexport const PantallaMunicipio = () => {\n const { register } = useFormContext();\n\n //Localidad\n const [localidadValue, setLocalidadValue] = useState('');\n const [pristineLocalidad, setPristineLocalidad] = useState(true);\n const { error, regExp } = useOnlyLettersControl(pristineLocalidad, localidadValue);\n\n const handleChangeLocalidad = (e: any) => {\n setLocalidadValue(e.target.value);\n setPristineLocalidad(false);\n };\n\n // PostalCode\n const [inputValuePostalCode, setInputValuePostalCode] = useState('');\n const [pristinePostalCode, setPristinePostalCode] = useState(true);\n const [errorPostalCode, setErrorPostalCode] = useState(false);\n const regExpPostalCode = /\\d{5}/gi;\n\n const handleChangePostalCode = (e: any) => {\n setInputValuePostalCode(e.target.value);\n setPristinePostalCode(false);\n };\n\n useEffect(() => {\n if (!pristinePostalCode && inputValuePostalCode.match(regExpPostalCode) === null) {\n setErrorPostalCode(true);\n } else {\n setErrorPostalCode(false);\n }\n }, [inputValuePostalCode, pristinePostalCode]);\n\n //Provincia\n\n const [provinceValue, setProvinceValue] = useState('');\n const [pristineProvince, setPristineProvince] = useState(true);\n const { error: errorProvincia, regExp: regExpProvincia } = useOnlyLettersControl(pristineProvince, provinceValue);\n\n const handleChangeProvince = (e: any) => {\n setProvinceValue(e.target.value);\n setPristineProvince(false);\n };\n\n return (\n \n handleChangeLocalidad(e)}\n required\n />\n {error && Solo se aceptan letras}\n\n handleChangePostalCode(e)}\n required\n />\n {errorPostalCode && Solo se aceptan números}\n\n \n\n \n );\n};\n","import { Breakpoints, Layout } from '@volkswagen-onehub/components-core';\nimport React from 'react';\nimport { \n LegalesFormatoLayer, \n LssiTkmQuestions, \n PoliticaPrivacidad, \n LastNavigation, \n GeneralConfirmacionLayerWrapper \n} from 'src/components';\n\nexport const ConfirmacionSAC = () => {\n\n return (\n \n \n \n \n\n \n\n \n \n \n );\n};\n","import React, { useEffect } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { useTrackingManager, getTrackingForm } from 'src/feature-app';\nimport { RenderController } from 'src/feature-app/Screen';\nimport { OneFormState, Steps } from 'src/types';\nimport { ThankYouTitle, ThankYouFields } from 'src/components';\n\nexport const ThankYouSAC = () => {\n const { formInfo } = useSelector((state: OneFormState) => state);\n const { formResponse } = formInfo;\n\n const trackingManager = useTrackingManager();\n const dispatch = useDispatch();\n\n useEffect(() => {\n // Thank you page no es gestionado como un step pero sí lo haremos en la analítica. Por eso Modificamos formInfo después del submit y antes del RESET\n const screenIndexThankyou = formInfo?.numberOfScreens;\n\n dispatch({ type: 'SET_FORM_SUBMITTED', payload: true });\n dispatch({ type: 'SET_FORM_INFO', payload: { step: { screenIndex: screenIndexThankyou, name: \"ThankYou\" } } });\n\n trackingManager.trackFormSubmissionSuccessMessageLoad(\n {\n contentId: undefined,\n },\n getTrackingForm(formResponse)\n );\n }, []);\n\n const screen: Steps = {\n title: ,\n fields: ,\n };\n return (\n \n );\n};\n","import { PincodeResponseOk } from 'src/bff';\nimport { DpsData } from 'src/feature-service/es-oneform-core-feature-service/types';\nimport { IdLead, IdOrder, IdPerson, IdVehicle } from 'src/types';\n\nexport const createPincodeEntity = (dpsData: DpsData, stringToFind: 'LEAD' | 'PERSON' | 'ORDER' | 'VEHICLE' | 'DEALER') => {\n if (!dpsData.pincode?.pincodeResponse) {\n return null;\n }\n const atts = (dpsData.pincode?.pincodeResponse?.content as PincodeResponseOk[]).find((att: any) =>\n att.attributes.find((att: any) => att.name === 'ID' && att.value === stringToFind)\n );\n\n if (!atts) {\n return null;\n }\n\n const id: IdLead | IdPerson | IdOrder | IdVehicle = atts.attributes.reduce((obj: any, att: any) => {\n const key = Object.values(att)[0];\n const value = Object.values(att)[1];\n obj[key] = value;\n return obj;\n }, {});\n\n return id;\n};\n","import { OneFormContent } from 'src/feature-app';\nimport { FormDataFields, FormDataFlags, FormDataHeaders } from 'src/types';\n\nexport const formDataBuilder = (data: any): FormData => {\n const formData = new FormData();\n\n for (const key in data) {\n if (data[key] === null || data[key] === 'null') {\n formData.append(key, '');\n } else {\n formData.append(key, data[key]);\n }\n }\n return formData;\n};\n\nexport const formatFormData = (object: object, string: string) => {\n if (typeof object !== 'object' || Object.keys(object).length === 0) {\n return {};\n }\n return Object.entries(object)\n .map((key) => [`${string}[${key[0]}]`, key[1]])\n .reduce((accum: FormDataFields, [k, v]) => {\n accum[k] = v;\n return accum;\n }, {});\n};\n\n/**\n * Formato de entrada: {DESC_FORM_VERSION: ''}\n * Formato de salida: {fields[DESC_FORM_VERSION]: ''}\n * @param fields\n */\nexport const formatFields = (fields: FormDataFields): FormDataFields => {\n return formatFormData(fields, 'fields');\n};\n\n/**\n * Formato de entrada: {DESC_FORM_DETAIL: ''}\n * Formato de salida: {headers[DESC_FORM_DETAIL]: ''}\n * @param headers\n */\nexport const formatHeaders = (headers: FormDataHeaders): FormDataHeaders => {\n return formatFormData(headers, 'headers');\n};\n\n/**\n * Formato de entrada: {DESC_FORM_DETAIL: ''}\n * Formato de salida: {flags[DESC_FORM_DETAIL]: ''}\n * @param flags\n */\nexport const formatFlags = (flags: FormDataFlags): FormDataFlags => {\n return formatFormData(flags, 'flags');\n};\n\nexport const getDpsFields = (faContent: OneFormContent) => {\n if (faContent && faContent.dpsFields && faContent.dpsFields.length > 0) {\n const headers = faContent.dpsFields.reduce((initialValue, header) => {\n const key = header.field;\n const value = header.value;\n const obj = { [key]: value };\n initialValue = { ...initialValue, ...obj };\n return initialValue;\n }, {});\n\n return { ...headers };\n }\n return null;\n};\n","import { Steps } from 'src/types';\n\nexport const getIndexInSteps = (steps: Steps[], stepName: string) => {\n if (steps?.length === 0 || !stepName) {\n return;\n }\n return steps.findIndex((step) => step.name === stepName);\n};\n\n/**\n * En caso de haber eliminado un step hay que volver a añadirlo de nuevo con los steps por defecto y llamar a la función handleNextStep ya que \n * ésta se llama antes de tiempo y realiza el cálculo con los steps sin actualizar.\n * @param steps \n * @param stepName \n */\nexport const addRemovedStep = (initialSteps: Steps[], actualSteps: Steps[], stepName: string, screenIndex: number) => {\n const addedStep = getIndexInSteps(initialSteps, stepName);\n actualSteps.splice(screenIndex + 1, 0, initialSteps[addedStep]);\n return actualSteps;\n};\n\n\nexport const removeStep = (steps: Steps[], stepName: string): Steps[] => {\n const indexToSplice = getIndexInSteps(steps, stepName);\n \n if (indexToSplice !== -1) {\n steps.splice(indexToSplice, 1);\n }\n return steps;\n};\n\nexport const removeMultipleSteps = (steps: Steps[], stepNames: string[]): Steps[] => {\n const indexesToSplice = stepNames.map(stepName => getIndexInSteps(steps, stepName));\n\n const newSteps = steps.filter((step, index) => {\n return indexesToSplice.indexOf(index) === -1;\n });\n\n return newSteps;\n};\n\nexport const removeMultipleStepsAndResetScreenIndex = (steps: Steps[], stepNames: string[]): Steps[] => {\n const newSteps = removeMultipleSteps(steps, stepNames);\n\n return resetStepsScreenIndex(newSteps);\n};\n\nexport const resetStepsScreenIndex = (steps: Steps[]) => {\n return steps.map((step, index) => {\n step.screenIndex = index;\n return step;\n });\n};\n\n/**\n * Utilizamos esta función cuando queremos eliminar muchos steps seguidos, cuando por ejemplo hay \n * una pregunta que en caso negativo elimina una serie de preguntas condicionales. \n * Hay que pasar el firstStep como el step que desencadena la pregunta y el lastStep como el primer step que tendremos que mostrar\n * después de eliminar.\n * @param steps \n * @param firstStep Este step no se eliminará, se eliminará el siguiente.\n * @param lastStep Este step no se eliminará, se eliminará el anterior.\n */\nexport const getArrayOfStepsNames = (steps: Steps[], firstStep: string, lastStep: string) => {\n const indexOfFirstStep = getIndexInSteps(steps, firstStep);\n const indexOfLastStep = getIndexInSteps(steps, lastStep);\n\n if (indexOfFirstStep !== -1 && indexOfLastStep !== -1) {\n const newSteps = [...steps];\n const stepsToRemove = newSteps.slice(indexOfFirstStep + 1, indexOfLastStep);\n const arrayOfStepsNames = stepsToRemove.map(step => step.name);\n return arrayOfStepsNames;\n }\n return [];\n};\n","/**\n * @param kmCalculadora\n */\nexport const transformMillage = (kmCalculadora: number) => {\n try {\n if (kmCalculadora && !Number.isNaN(kmCalculadora)) {\n return Number(kmCalculadora);\n } else {\n return 0;\n } \n } catch (error) {\n return 0;\n }\n};\n","export const TIME_FOR_TRANSFORM = 400;\nexport const TIME_FOR_TRANSFORM_MS = `${TIME_FOR_TRANSFORM}ms`;\n\nexport const TIME_FOR_OPACITY = 600;\nexport const TIME_FOR_OPACITY_MS = `${TIME_FOR_OPACITY}ms`;\n","export const arrayToObject = (arr: []) => {\n if(!arr) return null;\n const obj = {};\n for(const i in arr) {\n obj[arr[i].name] = arr[i].value;\n }\n return obj;\n}\n\nexport const strTitlelize = (str: string) => {\n if(!str) return '';\n return str\n .toLowerCase()\n .split(' ') // separar palabras para capitalizar\n .map(word => word.charAt(0).toUpperCase() + word.slice(1))\n .join(' ')\n .split('.') // separar sociedades para capitalizar (S.A., S.L.U.)\n .map(word => word.charAt(0).toUpperCase() + word.slice(1))\n .join('.')\n ;\n};","import {\n Container, ContainerPadding\n} from '@volkswagen-onehub/components-core';\nimport React from 'react';\nimport { TriggerProps } from 'src/feature-app';\nimport { DisplayImagenesYCTATrigger, SectionMensajes } from 'src/forms/FormsAdhoc/DiaDeLaMadre/componentsAndViews';\n\nexport function DiaDeLaMadreTrigger(props: TriggerProps) {\n\n const { setSelectedJourney, setCTALabel } = props;\n\n return (\n <>\n \n \n \n \n \n );\n}\n","import React from 'react';\nimport { TriggerProps } from 'src/feature-app';\nimport { EurocopaForm } from 'src/forms/FormsAdhoc/Eurocopa';\nimport { ScreenController } from 'src/feature-app/Screen';\n\nexport function EurocopaTrigger(props: TriggerProps) {\n\n return (\n
\n }\n closeLayerCallback={close}\n handleAreYouSureLayer={() => null}\n notALayer={true}\n />\n
\n );\n}\n","import React from 'react';\nimport { ScreenController, TriggerProps, useFaContent } from 'src/feature-app';\nimport { FidelizacionController } from 'src/forms/FormsAdhoc/Fidelizacion';\n\nexport function FidelizacionTrigger(props: TriggerProps) {\n const { setSelectedJourney, setCTALabel } = props;\n const faContent = useFaContent();\n\n const getCtaLabel = () => (faContent?.cta ? faContent.cta : 'Pide esta oferta');\n\n return (\n
\n }\n closeLayerCallback={close}\n handleAreYouSureLayer={() => null}\n notALayer={true}\n />\n
\n );\n}\n","import {\n Breakpoints,\n styled,\n Layout,\n Container,\n ContainerPadding,\n CTA,\n TextAlignment,\n Text,\n TokenTextAppearance\n} from '@volkswagen-onehub/components-core';\nimport { LegalesFormatoLayer, LssiTkmQuestions, LastNavigation, PoliticaPrivacidad } from 'src/components';\nimport React, { useEffect, useState } from 'react';\nimport { useDispatch } from 'react-redux';\n\n\nconst GeneralconfirmacionWrapper = styled.div`\n padding: 72px 0 44px;\n @media all and (min-width: 960px) {\n padding: 86px 0 0;\n }\n`;\n\nconst WhiteLinkWrapper = styled.span`\n a {\n color: #ffffff;\n font-weight: bold;\n }\n`;\n\nconst InputErrorLegales = styled.p`\n position: relative;\n margin-top: 8px;\n margin-bottom: 0;\n background-color: #e4002c;\n color: white;\n width: max-content;\n padding: 4px 8px;\n border-radius: 4px;\n font-size: 14px;\n`;\n\nexport const ConfirmacionNavidad = () => {\n const dispatch = useDispatch();\n\n const [lssi, setLssi] = useState(null);\n const [tmk, setTmk] = useState(null);\n const [lssiError, setLssiError] = useState(false);\n const [tmkError, setTmkError] = useState(false);\n\n useEffect(() => {\n if (lssi) {\n const values = { lssi: lssi };\n dispatch({ type: 'UPDATE_FIELDS', payload: values });\n setLssiError(false);\n }\n if (tmk) {\n const values = { tmk: tmk };\n dispatch({ type: 'UPDATE_FIELDS', payload: values });\n setTmkError(false);\n }\n }, [lssi, tmk]);\n\n return (\n \n \n \n \n \n Enviando este formulario, aceptas las{' '}\n \n \n Bases Legales\n \n {' '}\n de la promoción y declaras haber leído y comprendido la información sobre el{' '}\n \n \n tratamiento de tus datos personales.\n \n \n \n \n \n \n \n \n );\n};\n","import React, { useEffect, useState } from 'react';\nimport { useFormContext } from 'react-hook-form';\nimport { InputError, TextInputExtended, Email, GeneralInputWidthWrapper } from 'src/components';\nimport { useOnlyLettersControl } from 'src/components';\nimport { styled } from '@volkswagen-onehub/components-core';\n\nconst ContentWrapper = styled.div`\n padding-bottom: 2px;\n margin-top: 4px;\n @media screen and (min-width: 960px) {\n display: flex;\n justify-content: space-between;\n flex-wrap: wrap;\n margin-top: 0;\n }\n`;\n\ninterface FriendsInfoProps {\n nameNombre: string;\n labelNombre: string;\n nameMail: string;\n labelMail: string;\n}\n\nexport const FriendsInfo = (props: FriendsInfoProps) => {\n const { nameNombre, labelMail, labelNombre, nameMail } = props;\n const { register } = useFormContext();\n const [inputValue, setInputValue] = useState('');\n const [pristine, setPristine] = useState(true);\n const { error, regExp } = useOnlyLettersControl(pristine, inputValue);\n\n const handleChange = (e: any) => {\n setInputValue(e.target.value);\n setPristine(false);\n };\n\n return (\n \n \n handleChange(e)}\n required\n />\n {error && Solo se aceptan letras} \n \n \n \n );\n};\n","import {\n Breakpoints,\n BreakpointWrapper,\n Container,\n ContainerPadding,\n Layout,\n Text,\n TextAlignment,\n TokenTextAppearance,\n} from '@volkswagen-onehub/components-core';\nimport React, { useEffect, useState } from 'react';\nimport { connect, useDispatch, useSelector } from 'react-redux';\nimport { useTrackingManager, TrackingForm } from 'src/feature-app';\nimport { RenderController } from 'src/feature-app/Screen';\nimport { FormDataFields, FormInfo, OneFormState, Steps } from 'src/types';\n\ninterface FieldProps {\n copyBook?: string;\n cliente?: string;\n}\n\ninterface NDPSField {\n name: string;\n value: string;\n}\n\nfunction Fields(props: FieldProps) {\n\n return (\n \n
\n \n \n {props.copyBook}\n \n {props.cliente === 'true' ? (\n \n ¡Mucha suerte!\n \n ) : null}\n \n
\n \n );\n}\n\ninterface ThankYouProps {\n formData: FormDataFields;\n formInfo: FormInfo;\n}\n\nfunction ThankYouNavidad(props: ThankYouProps) {\n const { formData, formInfo } = useSelector((state: OneFormState) => state);\n const { formResponse } = formInfo;\n const { cliente } = formData.fields;\n\n const clienteTitle = '¡Bien hecho! Este año los Reyes tienen muchas pistas';\n const clienteBody = 'La carta ya se ha enviado con tus deseos de Navidad. Muy pronto sabrás si el deseo de conducir un ID.4 durante un fin de semana se hace realidad...';\n const NoClienteTitle = '¡Qué ilusión! Seguro que los Reyes aciertan con tu regalo';\n const NoClienteBody = 'La carta ya se ha enviado con tus deseos de Navidad. Muchas gracias por crear tu lista de deseos en Volkswagen.';\n\n const [title, setTitle] = useState('');\n const [bodyCopy, setBodyCopy] = useState('');\n\n useEffect(() => {\n if (cliente === 'true') {\n setTitle(clienteTitle);\n setBodyCopy(clienteBody);\n } else {\n setTitle(NoClienteTitle);\n setBodyCopy(NoClienteBody);\n }\n }, [cliente]);\n\n const trackingManager = useTrackingManager();\n const dispatch = useDispatch();\n const getTrackingForm = (): TrackingForm => {\n let LeadID;\n if (formResponse && formResponse.content && formResponse.content.data && formResponse.content.data.fields) {\n const leadField: NDPSField = formResponse.content.data.fields.find(\n (field: NDPSField) => field.name === 'COD_LEAD_ID'\n );\n LeadID = leadField ? leadField.value : undefined;\n }\n return {\n LeadID,\n FormFields: undefined,\n };\n };\n\n useEffect(() => {\n // Thank you page no es gestionado como un step pero sí lo haremos en la analítica. Por eso Modificamos formInfo después del submit y antes del RESET\n const screenIndexThankyou = formInfo.numberOfScreens;\n\n dispatch({ type: 'SET_FORM_SUBMITTED', payload: true });\n dispatch({ type: 'SET_FORM_INFO', payload: { step: { screenIndex: screenIndexThankyou, name: \"ThankYou\" } } });\n\n trackingManager.trackFormSubmissionSuccessMessageLoad(\n {\n contentId: undefined,\n },\n getTrackingForm()\n );\n }, []);\n\n const renderTitle = () => {\n return (\n <>\n \n \n {title}\n \n \n \n \n {title}\n \n \n \n );\n };\n\n const screen: Steps = {\n title: <>{renderTitle()},\n fields: ,\n };\n return (\n \n );\n}\n\nconst mapStateToProps = (state: OneFormState) => {\n return {\n formData: state.formData.fields,\n formInfo: state.formInfo,\n };\n};\n\nconst ConnectedComponent = connect(mapStateToProps)(ThankYouNavidad);\n\nexport { ConnectedComponent as ThankYouNavidad };\n","import React, { useEffect } from 'react';\nimport { Text, Container, ContainerPadding, TokenTextAppearance } from '@volkswagen-onehub/components-core';\nimport { OneElementTemplate } from 'src/feature-app/Screen';\nimport { ConfirmacionNavidad } from './ConfirmacionNavidad';\nimport {\n Email,\n PantallaNombreApellido,\n Telefono,\n YaTienesVolkswagen,\n NoCliente,\n MultipleOptionCTAs,\n DetalleMotivo,\n ContactInfoWrapper\n} from 'src/components';\nimport { FriendsInfo } from './ComponentsAndViews';\nimport { useDispatch, useStore, useSelector } from 'react-redux';\nimport { dpsSend } from 'src/bff';\nimport { getParamsForm } from 'src/feature-app/get-params-form';\nimport { FormDataGroup, FormInfo, OneFormState, Steps, MolecularResponse } from 'src/types';\nimport {\n FormController,\n removeWhiteSpace,\n useFeatureAppConfig,\n useOneFormContext,\n formatPrefix,\n} from 'src/feature-app';\nimport { ThankYouNavidad } from './ThankYouNavidad';\nimport { formatHeaders, formDataBuilder } from 'src/forms/format-fields';\nimport { addRemovedStep, getIndexInSteps, removeStep, resetStepsScreenIndex } from 'src/forms/helpers/add-remove-steps';\nimport { CTAsDisfrutarID4 } from 'src/feature-app/InputsValues';\n\nexport enum NavidadSteps {\n Cliente,\n NoCliente,\n NombreApellido,\n EnviarA,\n NoClienteContacto,\n EmailTelefono,\n MultipleChoice,\n MasInformacion,\n ImaginarExperiencia,\n Confirmacion,\n}\n\ninterface NavidadFormProps {\n updatedFormData?: Partial;\n}\n\nexport function NavidadForm({ updatedFormData }: NavidadFormProps) {\n const { initializeForm, handleNextStep } = useOneFormContext();\n const { formData, formInfo } = useSelector((state: OneFormState) => state);\n const { screenIndex } = formInfo;\n const { cliente, multipleChoice } = formData.fields;\n const store = useStore();\n const config = useFeatureAppConfig();\n const dispatch = useDispatch();\n\n const handleStepsCliente = (cliente: string) => {\n const { steps: actualSteps, screenIndex } = store.getState().formInfo;\n let newSteps = [...steps];\n\n if (cliente === 'true') {\n newSteps = removeStep(newSteps, 'NoCliente');\n newSteps = removeStep(newSteps, 'NoClienteContacto');\n } else {\n newSteps = removeStep(newSteps, 'NombreApellido');\n newSteps = removeStep(newSteps, 'EmailTelefono');\n newSteps = removeStep(newSteps, 'MultipleChoice');\n newSteps = removeStep(newSteps, 'MasInformacion');\n newSteps = removeStep(newSteps, 'ImaginarExperiencia');\n }\n\n newSteps = resetStepsScreenIndex(newSteps);\n\n dispatch({ type: 'UPDATE_STEPS', payload: newSteps });\n dispatch({ type: 'UPDATE_LAST_STEP', payload: newSteps[newSteps.length - 1] });\n dispatch({ type: 'SET_NUMBER_OF_SCREENS', payload: newSteps.length });\n };\n\n const handleMasInformacion = (multipleChoice: string[]) => {\n const { steps: actualSteps } = store.getState().formInfo;\n\n let newSteps = [...actualSteps];\n\n if (multipleChoice.includes('Otros')) {\n const stepIndex = getIndexInSteps(newSteps, 'MasInformacion');\n\n if (stepIndex === -1) {\n newSteps = addRemovedStep(steps, actualSteps, 'MasInformacion', screenIndex);\n setTimeout(() => {\n handleNextStep();\n }, 0);\n }\n } else {\n newSteps = removeStep(newSteps, 'MasInformacion');\n }\n\n const newStepsWithIndex = resetStepsScreenIndex(newSteps);\n\n dispatch({ type: 'UPDATE_STEPS', payload: newStepsWithIndex });\n dispatch({ type: 'UPDATE_LAST_STEP', payload: newStepsWithIndex[newStepsWithIndex.length - 1] });\n dispatch({ type: 'SET_NUMBER_OF_SCREENS', payload: newStepsWithIndex.length });\n };\n\n const steps: Steps[] = [\n {\n title: (\n <>\n Ya tienes un Volkswagen, \n \n ¿verdad? \n 1\n \n \n ),\n fields: } />,\n screenIndex: NavidadSteps.Cliente,\n name: 'Cliente',\n outputs: ['cliente'],\n outputsText: ['cliente'],\n trueOrFalseQuestion: true,\n },\n {\n title: (\n <>\n Este sorteo es solo para clientes Volkswagen \n \n ),\n fields: (\n \n }\n />\n ),\n screenIndex: NavidadSteps.NoCliente,\n name: 'NoCliente',\n outputs: ['noCliente'],\n outputsText: ['noCliente'],\n trueOrFalseQuestion: true,\n },\n {\n title: (\n <>\n Para que los Reyes sepan lo que deseas, necesitamos saber quién eres\n \n ),\n fields: (\n \n \n \n }\n />\n ),\n screenIndex: NavidadSteps.NombreApellido,\n name: 'NombreApellido',\n outputs: ['name', 'surname', 'secondSurname'],\n outputsText: ['name', 'surname', 'secondSurname'],\n },\n {\n title: (\n <>\n Y, ¿a qué Reyes quieres que le enviemos tu lista de los deseos?\n \n ),\n fields: (\n \n }\n />\n ),\n screenIndex: NavidadSteps.EnviarA,\n name: 'EnviarA',\n outputs: ['friendName', 'friendMail'],\n outputsText: ['friendName','/', 'friendMail'],\n },\n {\n title: (\n <>\n ¿De parte de quién se lo hacemos llegar?\n \n ),\n fields: (\n \n }\n />\n ),\n screenIndex: NavidadSteps.NoClienteContacto,\n name: 'NoClienteContacto',\n outputs: ['noClienteName', 'noClienteMail'],\n outputsText: ['noClienteName','/', 'noClienteMail'],\n },\n {\n title: (\n <>\n ¡Listo! ¿Cómo podemos contactar contigo en caso de ganar el sorteo?\n \n ),\n fields: (\n \n \n \n \n }\n />\n ),\n screenIndex: NavidadSteps.EmailTelefono,\n name: 'EmailTelefono',\n outputs: ['cellphone', 'email'],\n outputsText: ['cellphone', '/', 'email'],\n },\n {\n title: (\n <>\n Tenemos curiosidad, ¿qué te atrae de disfrutar un ID.4?\n \n \n Puedes elegir dos opciones\n \n \n \n ),\n alternateTitle: (\n <>\n Tenemos curiosidad, ¿qué te atrae de disfrutar un ID.4?\n \n ),\n fields: (\n \n }\n />\n ),\n screenIndex: NavidadSteps.MultipleChoice,\n name: 'MultipleChoice',\n outputs: ['multipleChoice'],\n outputsText: ['multipleChoice'],\n },\n {\n title: (\n <>\n ¿Nos puedes detallar cuáles?\n \n ),\n fields: } />,\n screenIndex: NavidadSteps.MasInformacion,\n name: 'MasInformacion',\n outputs: ['masInformacion'],\n outputsText: ['masInformacion'],\n },\n {\n title: (\n <>\n ¿Cómo te imaginas la experiencia de conducir un ID.4?\n \n \n Estoy impaciente por ver cómo es la conducción1 del nuevo ID.4, además de ....\n \n \n \n ),\n fields: (\n \n 1 Tus inquietudes son muy interesantes para personalizar tu experiencia, además de\n compartirlas en nuestra web para ayudar a otros usuarios.\n \n }\n />\n }\n />\n ),\n screenIndex: NavidadSteps.ImaginarExperiencia,\n name: 'ImaginarExperiencia',\n outputs: ['imaginarExperiencia'],\n outputsText: ['imaginarExperiencia'],\n },\n {\n fields: ,\n screenIndex: NavidadSteps.Confirmacion,\n name: 'Confirmacion',\n isLastStep: true,\n hidePreviousStep: true,\n },\n ];\n\n const NuevoFormData: Partial = {\n headers: {\n DESC_BRAND: 'VW',\n DESC_VN_VO: 'VN',\n DESC_GDPR_ADAPTED: 'true',\n DESC_TOKEN: 'VW_DDB_FRM_NAVIDAD',\n DESC_ID_CAMPAIGN: '7011n000000JvfaAAC',\n DESC_FORM_DETAIL: 'Navidad 2021',\n DESC_CAMPAIGNBLOCK: 'B3 VW Emotional CRM',\n DESC_FORMOBJECTIVE: 'Concurso',\n },\n fields: {\n formName: 'adhoc-2021-navidad',\n formType: 'otherform',\n pageCategory: 'Concurso',\n ...updatedFormData?.fields,\n }, // Analítica\n };\n\n const getFormInfo = (): {\n firstStep: Steps;\n lastStep: Steps;\n stepsHistory: number[];\n numberOfScreens: number;\n newSteps?: Steps[];\n } => {\n return {\n firstStep: steps[0],\n lastStep: steps[steps.length - 1],\n stepsHistory: [0],\n numberOfScreens: steps.length,\n newSteps: null,\n };\n };\n\n const sendForm = (): Promise => {\n const { formData, dealersInfo }: OneFormState = store.getState();\n\n const { fields, headers } = formData;\n\n return new Promise(async (resolve, reject) => {\n const { tc, today, referalUrl, url, device } = getParamsForm();\n\n const data = {\n 'headers[COD_FORM_ID]': `vw-oneform-${fields.formName}`,\n 'headers[DESC_URLORIGIN]': url,\n 'headers[DESC_DEVICETYPE]': device,\n ...formatHeaders(headers),\n\n 'headers[FECHA_INSERTION_DATE]': today,\n 'headers[TC]': tc,\n\n 'fields[DESC_NAME]': fields.noClienteName ? fields.noClienteName : fields.name,\n 'fields[DESC_SURNAME_1]': fields.surname,\n 'fields[DESC_SURNAME_2]': fields.secondSurname,\n 'fields[DESC_EMAIL_ADDRESS]': removeWhiteSpace(fields.email),\n 'fields[NUM_CELLPHONE]': `${formatPrefix(fields.prefix)}${fields.cellphone}`,\n 'fields[DESC_AUXFIELD1]': fields.wishlist,\n 'fields[DESC_AUXFIELD2]': fields.cliente,\n 'fields[DESC_AUXFIELD3]': fields.friendName,\n 'fields[DESC_AUXFIELD4]': fields.friendMail,\n 'fields[DESC_AUXFIELD5]': fields.multipleChoice,\n 'fields[DESC_AUXFIELD6]': fields.masInformacion,\n 'fields[DESC_AUXFIELD7]': fields.imaginarExperiencia,\n 'fields[DESC_FORM_VERSION]': `vw-oneform-adhoc_2021_navidad-${process.env.VERSION}`,\n 'fields[DESC_LOPD]': 'PERMITE',\n 'fields[DESC_TRANF_DATA_THIRD]': 'NO INFORMADO',\n 'fields[DESC_LSSI]': fields.lssi ? fields.lssi : 'NO INFORMADO',\n 'fields[DESC_LOPD_GDPR_PERFILADO]': fields.tmk ? fields.tmk : 'NO INFORMADO',\n };\n const dataStringified = JSON.stringify(data);\n const dataParsed = JSON.parse(dataStringified);\n\n const formData = formDataBuilder(dataParsed);\n\n const response = await dpsSend(formData);\n\n if (response && response.data && response.data.content && response.data.content.code === '200') {\n dispatch({ type: 'SET_FORM_RESPONSE', payload: response.data });\n resolve(true);\n } else {\n resolve(false);\n }\n });\n };\n\n useEffect(() => {\n const { firstStep, lastStep, stepsHistory, numberOfScreens, newSteps } = getFormInfo();\n\n const NuevoFormInfo: Partial = {\n formStarted: true,\n sendFormCallback: sendForm,\n fullScreen: firstStep.fullScreen ? true : false,\n lastStep,\n numberOfScreens,\n formTheme: 'inverted',\n screenIndex: firstStep.screenIndex,\n step: firstStep,\n steps: newSteps ? newSteps : steps,\n stepsHistory,\n thankYouComponent: ,\n };\n\n initializeForm(NuevoFormInfo, NuevoFormData);\n }, []);\n\n //activacion logica steps\n\n useEffect(() => {\n if (cliente) handleStepsCliente(cliente);\n }, [cliente]);\n\n useEffect(() => {\n if (multipleChoice) {\n handleMasInformacion(multipleChoice);\n }\n }, [multipleChoice]);\n\n return ;\n}\n","import { styled } from '@volkswagen-onehub/components-core';\nimport React from 'react';\n\nconst Svg = styled.svg`\n width: 100vw;\n height: auto;\n svg{\n width: 100vw;\n }\n`;\nconst SvgWrapper = styled.div`\n`;\n\nexport const SobreMobile = () => {\n return (\n \n \n Custom Preset 2\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport const SobreDesktop = () => {\n return (\n \n \n Group 2\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\nexport const Sobre2560Desktop = () => {\n return (\n \n \n WEb DDB\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport const CircleCheck = () => {\n return (\n \n \n icon check\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n","import {\n Breakpoints,\n BreakpointWrapper,\n CTA,\n Layout,\n styled,\n Text,\n ThemeProvider,\n TokenTextAppearance,\n} from '@volkswagen-onehub/components-core';\nimport { InputError } from 'src/components';\nimport React, { useState } from 'react';\nimport { TriggerProps, useFaContent } from 'src/feature-app';\nimport { NavidadForm } from 'src/forms/FormsAdhoc/NavidadForm/NavidadForm';\nimport { SobreDesktop, SobreMobile, CircleCheck, Sobre2560Desktop } from 'src/forms/FormsAdhoc/NavidadForm/assets';\nimport { Edit } from 'src/icons-core-imports';\n\nconst Content = styled.div`\n overflow: hidden;\n background-color: #001e50;\n position: relative;\n padding-top: 66px;\n\n @media all and (min-width: 960px) {\n padding-top: 114px;\n padding-bottom: 108px;\n }\n\n & > div {\n width: 100%;\n }\n`;\n\nconst BorderSection = styled.div<{ backColor: string }>`\n clip-path: polygon(25% 0%, 100% 0%, 75% 100%, 0% 100%);\n background-color: ${(props) => (props.backColor ? props.backColor : '#FFFFFF')};\n min-height: 30px;\n min-width: 44px;\n`;\n\nconst DisplayBorder = styled.div`\n display: flex;\n flex-wrap: no-wrap;\n width: fit-content;\n gap: 22px;\n transform: translateX(-33px);\n`;\nconst CenterCTA = styled.div`\n text-align: center;\n padding-bottom: 26px;\n @media all and (min-width: 960px) {\n text-align: left;\n padding-top: 32px;\n padding-bottom: 0;\n }\n @media all and (min-width: 1600px) {\n text-align: left;\n padding-top: 54px;\n }\n button {\n background-color: #00deff;\n border: none;\n font-weight: 700;\n }\n`;\n\nconst SobrePosition = styled.div`\n position: absolute;\n top: 0;\n left: 0;\n`;\n\nconst FakeInputWrapper = styled.div`\n border: 2px solid #00deff;\n padding: 8px;\n padding-right: 12px;\n color: #ffffff;\n width: 100%;\n display: flex;\n align-items: center;\n p {\n font-size: 18px;\n line-height: 32px;\n font-weight: 700;\n margin: 0;\n }\n svg {\n height: 22px;\n width: 22px;\n }\n`;\n\nconst CheckWrapper = styled.div`\n padding-right: 14px;\n margin-right: 8px;\n height: 28px;\n svg {\n color: #00deff;\n }\n`;\n\n//Tamaños tipo y containers\n\nconst TipoDos = styled.span`\n font-size: 38px;\n line-height: 42px;\n width: 100%;\n\n @media all and (min-width: 960px) {\n font-size: 44px;\n line-height: 56px;\n }\n`;\n\nconst ContainerTitle = styled.div`\n padding-top: 54px;\n padding-bottom: 64px;\n\n @media all and (min-width: 960px) {\n padding-top: 0;\n padding-bottom: 0;\n }\n`;\n\nconst InputTitleWrapper = styled.div`\n padding-bottom: 44px;\n @media all and (min-width: 1600px) {\n padding-bottom: 56px;\n }\n @media all and (min-width: 1600px) {\n padding-bottom: 36px;\n }\n @media all and (min-width: 1920px) {\n padding-bottom: 56px;\n }\n`;\nconst BulletLine = styled.div`\n width: 20px;\n min-width: 20px;\n height: 2px;\n background-color: #ffffff;\n margin: 15px 0;\n`;\nconst ListItemWrapper = styled.div`\n display: flex;\n gap: 8px;\n padding-left: 20px;\n`;\n\nconst formatListElement = (value: string) => {\n if (!value || value === '') {\n return null;\n }\n return value;\n};\n\nexport const NavidadTrigger = (props: TriggerProps) => {\n const { setSelectedJourney, setCTALabel } = props;\n\n const [listUno, setListUno] = useState(null);\n const [listDos, setListDos] = useState(null);\n const [listTres, setListTres] = useState(null);\n const [error, setError] = useState(false);\n\n const navidadImgSrc = useFaContent()?.navidadImgSrc;\n\n const renderForm = () => {\n const wishlist = `Un fin de semana con un ID.4, ${formatListElement(listUno)}, ${formatListElement(\n listDos\n )}, ${formatListElement(listTres)}`;\n setCTALabel('Enviar la carta');\n setSelectedJourney();\n };\n\n return (\n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n \n
\n \n \n Escribe tu carta y pide lo que más ilusión te haga. ¡El ID.4 lo ponemos nosotros! \n Escribe tu lista de deseos…\n \n \n
\n \n \n \n \n

Un fin de semana con un ID.4

\n
\n \n {\n error ? Falta añadir tus deseos, ¿vas a dejarlos? : null\n }\n \n \n
\n
\n\n \n
\n
\n \n Y ahora envíasela \n \n a los tuyos\n \n \n
\n\n \n \n {\n if(listUno === null || listUno ==='') {\n setError(true);\n } else {\n setError(false);\n renderForm();\n } \n }}\n stretchContent\n >\n Quiero participar\n \n \n \n\n \n ¡Nosotros ya sabemos lo que quieres! Ahora díselo a tus seres queridos y participa en un sorteo\n 1 y gana:\n \n
\n \n \n \n Una experiencia de fin de semana con un ID.4\n \n \n \n \n \n Una escapada de hotel con esa persona especial\n \n \n \n \n \n Un bono de 100€ de carga para que la energía no pare\n \n \n \n \n \n Y hacer realidad tus deseos con una tarjeta regalo de 300€ en Volkswagen Store\n \n \n
\n
\n\n \n \n {\n if(listUno === null || listUno ==='') {\n setError(true);\n } else {\n setError(false);\n renderForm();\n } \n }}\n >\n Quiero participar\n \n \n \n
\n \n
\n
\n
\n
\n );\n};\n\nconst InputTextWrapper = styled.div<{error: boolean}>`\n border: ${(props)=> props.error ? '2px solid #e4002c' : '2px solid #ffffff'};\n padding: 8px;\n display: flex;\n width: 100%;\n margin-top: 30px;\n align-items: center;\n`;\n\nconst InputText = styled.input`\n border: none;\n background-color: transparent;\n all: unset;\n width: 100%;\n font-size: 18px;\n line-height: 32px;\n color: #ffffff;\n\n #placeholder {\n color: rgba(255, 255, 255, 0.46);\n }\n`;\nconst IconWrapper = styled.div`\n padding-right: 14px;\n margin-right: 8px;\n border-right: 1px solid #ffffff;\n height: 28px;\n svg {\n color: #ffffff;\n }\n`;\ninterface InputsProps {\n placeholder: string;\n setList: any;\n error?: boolean;\n}\n\nconst Inputs = (props: InputsProps) => {\n\n return (\n \n \n \n \n props.setList(e.target.value)} \n />\n \n );\n};\nconst Border = () => {\n return (\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n );\n};\n","import React, { useState, useEffect } from 'react';\nimport { styled, ThemeProvider } from '@volkswagen-onehub/components-core';\nimport { LiSection } from '.';\nimport { CarlineWithOffers } from 'src/types';\nimport { TriggerProps } from 'src/feature-app';\nimport { useWindowHeight, useWindowWidth } from '@react-hook/window-size';\n\nconst Wrapper = styled.div`\n position: relative;\n overflow: hidden;\n`;\n\ninterface WrapperProps {\n isVertical: boolean;\n}\n\nconst UlWrapper = styled.ul`\n display: flex;\n min-height: ${(props)=> props.isVertical ? '50vh':'670px'};\n height: ${(props)=> props.isVertical ? '50vh':'100vh'};\n margin: 0;\n padding: 0;\n overflow: hidden;\n list-style-type: none;\n @media all and (min-width: 1280px){\n min-height: ${(props)=> props.isVertical ? '50vh':'720px'};\n }\n @media all and (min-width: 1600px){\n min-height: ${(props)=> props.isVertical ? '50vh':'1000px'};\n }\n\n`;\n\ninterface BackgroundImagProps {\n liSection?: boolean;\n idLi?: number;\n isVertical: boolean;\n}\nexport const BackgroundImage = styled.img`\n position: absolute;\n top: ${(props) => props.liSection ? null : '0'};\n bottom: ${(props) => props.liSection ? '0' : null};\n left: ${(props) => props.idLi === 2 ? null : '0'};\n right:${(props) => props.idLi === 2 ? '0' : null};\n width: auto;\n height: ${(props)=> props.isVertical ? '50vh':'100vh'};\n transform-origin: ${(props) => props.liSection && props.idLi === 2 ? 'right bottom' : props.liSection ? 'left bottom' : null};\n transform: ${(props) => props.idLi === 0 ? 'scale(1.2) translateX(-20%)' : props.idLi === 1 ? 'scale(1.2) translateX(-35%)' : props.idLi === 2 ? 'scale(1.2)' : null};\n\n min-width: 100vw;\n min-height: ${(props)=> props.isVertical ? '50vh':'670px'};\n @media all and (min-width: 1280px){\n min-height: ${(props)=> props.isVertical ? '50vh':'720px'};\n }\n @media all and (min-width: 1600px){\n min-height: ${(props)=> props.isVertical ? '50vh':'1000px'};\n }\n`;\n\nexport const backgroundUrl = 'https://assets.volkswagen.com/is/image/volkswagenag/background-gradient-v2?Zml0PWNyb3AlMkMxJndpZD0xMjgwJmhlaT03MjAmZm10PWpwZWcmcWx0PTc5JmJmYz1vZmYmMmI5ZQ==';\n\nexport const AcordionHorizontal = (props: TriggerProps & { carlinesWithOffers: CarlineWithOffers[] }) => {\n const { carlinesWithOffers, setSelectedJourney } = props;\n const height = useWindowHeight();\n const width = useWindowWidth();\n const [active, setActive] = useState(0);\n const [isVertical, setVertical] = useState(false);\n\n useEffect(()=>{\n if(width - height <= 100 || height > width) {\n setVertical(true);\n } else {\n setVertical(false);\n }\n },[width]);\n\n const handleClick = (e, index) => {\n e.preventDefault();\n if (active === index) {\n return;\n } else {\n setActive(index);\n }\n };\n\n return (\n \n \n \n \n {\n carlinesWithOffers.map((carlineWithOffers, i) => {\n return ;\n })\n }\n \n \n \n );\n};\n","import { CTA } from '@volkswagen-onehub/components-core';\nimport { OfertaForm } from 'src/forms';\nimport { useDispatch } from 'react-redux';\nimport { TriggerProps } from 'src/feature-app';\nimport React from 'react';\nimport { CarlineWithOffers } from 'src/types';\n\nexport const CTAOfertaSuv = (props: TriggerProps & { carlineWithOffers: CarlineWithOffers; }) => {\n const dispatch = useDispatch();\n const { setSelectedJourney, carlineWithOffers } = props;\n return (\n {\n dispatch({ type: 'SET_OFERTA', payload: carlineWithOffers.ofertas[0] });\n setSelectedJourney();\n }}\n emphasis='primary'\n >Pide esta oferta\n );\n};\n","import React, { useState, useEffect } from 'react';\nimport {\n styled,\n Text,\n ThemeProvider,\n Container,\n ContainerPadding,\n TokenTextAppearance\n} from '@volkswagen-onehub/components-core';\nimport { CTAOfertaSuv } from './CTAOfertaSuv';\nimport { TriggerProps } from 'src/feature-app';\nimport { useWindowHeight, useWindowWidth } from '@react-hook/window-size';\nimport { CarlineWithOffers } from 'src/types';\n\n\nconst Wrapper = styled.div`\n position: relative;\n width: 100vw;\n height: 100vh;\n min-height: 400px;\n padding: 94px var(--size-grid001) 32px;\n text-align: center;\n`;\n\ninterface CarImageProps {\n name: string;\n height: number;\n width: number;\n}\n\nconst CarImage = styled.img`\n width: ${(props) => props.height < 600 ? '90%' : '100%'};\n height: auto;\n position: ${(props) => props.height < 500 ? 'relative' : 'absolute'};\n margin: 0 auto;\n left: ${(props) => props.height < 500 ? null : props.name === 'Taigo' ? null : 'var(--size-grid005)'};\n right: ${(props) => props.height < 500 ? null : props.name === 'Taigo' ? '0' : null};\n bottom: ${(props) => props.height < 500 ? null : '20%'};\n margin-top: ${(props) => props.height < 500 ? '24px' : null};\n transform: ${(props) => props.height < 600 ? null : 'scale(1.1)'};\n transform-origin: ${(props) => props.name === 'Taigo' ? 'right bottom' : 'left bottom'};\n`;\n\nconst TextWrapper = styled.div`\n display: flex;\n flex-direction: column ;\n justify-content: flex-start;\n align-items: flex-start;\n`;\n\ninterface MobileCardProps {\n content: any;\n carlineWithOffers: CarlineWithOffers;\n}\n\nexport const formatNumber = (num: any) => {\n\n let transformedNumber = '';\n\n let decimals = num.toString().split('.');\n let numerals = decimals.shift().split('');\n let aux = [];\n\n while (numerals.length > 0) {\n aux.unshift(numerals.splice(-3, 3).join(''));\n }\n if (decimals.length <= 0) {\n transformedNumber = aux.join('.') + ',00';\n } else if (decimals[0].length === 1) {\n transformedNumber = aux.join('.') + ',' + decimals.toString() + '0';\n } else {\n transformedNumber = aux.join('.') + ',' + decimals.toString();\n }\n\n return transformedNumber;\n};\n\nexport const MobileCard = (props: TriggerProps & MobileCardProps) => {\n const { content, setSelectedJourney, carlineWithOffers } = props;\n const [imageUrl, setImageUrl] = useState(null);\n const height = useWindowHeight();\n const width = useWindowWidth();\n\n useEffect(() => {\n if (content.carline.title === 'Taigo') {\n setImageUrl('https://assets.volkswagen.com/is/image/volkswagenag/taigo_suvperheroes_v2?Zml0PWNyb3AlMkMxJndpZD0xMDM5JmhlaT01MjAmZm10PXBuZy1hbHBoYSZiZmM9b2ZmJmIzZmE=');\n } else if (content.carline.title === 'T-Cross') {\n setImageUrl('https://assets.volkswagen.com/is/image/volkswagenag/t-cross_suvperheroes_v3?Zml0PWNyb3AlMkMxJndpZD0xMDQyJmhlaT01ODYmZm10PXBuZy1hbHBoYSZiZmM9b2ZmJjVlZWU=');\n } else {\n setImageUrl('https://assets.volkswagen.com/is/image/volkswagenag/t-roc_suvperheroes_v3?Zml0PWNyb3AlMkMxJndpZD0xMDI4JmhlaT01NzgmZm10PXBuZy1hbHBoYSZiZmM9b2ZmJmIwNTU=');\n }\n }, [content]);\n\n return (\n \n \n \n {content.carline.title}{' '}\n por\n \n \n {' '}{content.cuota}€\n /mes*\n \n \n \n con{' '}\n {content.financiacionText.replace('con', '')}\n \n \n {content.myWay.activo === 1 ?\n \n Cuota final: {formatNumber(content.cuotaFinal)}€\n \n : null\n }\n \n \n \n \n\n {\n imageUrl && \n }\n \n );\n};\n","import React, { useState, useEffect } from 'react';\nimport {\n Text,\n styled,\n Container,\n ContainerPadding,\n TextAlignment,\n ThemeProvider,\n Breakpoints,\n BreakpointWrapper,\n TokenTextAppearance\n} from '@volkswagen-onehub/components-core';\nimport { BackgroundImage, backgroundUrl } from './AcordionHorizontal';\nimport { keyframes, css } from 'styled-components';\nimport { useWindowHeight, useWindowWidth } from '@react-hook/window-size';\nimport { CTAOfertaSuv } from './CTAOfertaSuv';\nimport { TriggerProps } from 'src/feature-app';\nimport { CarlineWithOffers } from 'src/types';\nimport { formatNumber } from './MobileCard';\n\ninterface LiProps {\n idLi: number;\n shadowSide?: string;\n isVertical?: boolean;\n}\nconst LiWrapper = styled.li`\n flex: 1;\n display: flex;\n position: relative;\n align-items: stretch;\n box-shadow: ${(props) => props.shadowSide === 'interior' ? 'inset -10px 0px 9px -5px rgba(0,0,0,0.1)' : '10px 0px 20px 0px rgba(0, 0, 0, 0.4)'};\n padding: 0 5px;\n overflow: hidden;\n flex-direction: column;\n @media all and (min-width: 1600px){\n padding: 0 20px;\n }\n cursor: pointer;\n overflow: hidden;\n transition: all 0.3s ease-in;\n &.active {\n flex: 4;\n cursor: default;\n overflow: hidden;\n padding: 0;\n .section-content {\n opacity: 1;\n min-width: var(--size-grid012);\n }\n }\n .section-title {\n height: fit-content;\n position:absolute;\n margin-top: 130px;\n margin-left: 24px;\n transform: rotate(-90deg) translateX(-100%);\n transform-origin: top left;\n white-space: nowrap;\n }\n .section-content {\n display: flex;\n align-items: center;\n justify-content: space-between;\n flex-direction: column;\n opacity: 0;\n position: absolute;\n padding-top: 100px;\n width: 100%;\n height: ${(props) => props.isVertical ? '50vh' : '100vh'};\n min-height: ${(props) => props.isVertical ? '50vh' : '670px'};\n @media all and (min-width: 1280px){\n padding-top: 140px;\n min-height: ${(props) => props.isVertical ? '50vh' : '720px'};\n }\n @media all and (min-width: 1600px){\n padding-top: 186px;\n min-height: ${(props) => props.isVertical ? '50vh' : '1000px'};;\n }\n @media all and (min-width: 1920px){\n padding-top: 260px;\n }\n @media all and (min-width: 2560px){\n padding-top: 340px;\n }\n }\n`;\n\nconst Divider = styled.div`\n background-color: #FFFFFF;\n width: 3px;\n height: 84px;\n margin: 0 24px;\n @media all and (min-width: 1600px){\n width: 5px;\n height: 116px;\n margin: 0 32px;\n }\n`;\n\nconst fadeInImage = keyframes`\n 0% { opacity: 0; }\n 100% { opacity: 1; }\n`;\n\ninterface CarImageProps {\n small?: boolean;\n taigo?: boolean;\n height?: number;\n isVertical: boolean;\n}\n\nconst ImageWrapper = styled.div`\n align-self: flex-start;\n position: relative;\n width: 100%;\n height: ${(props) => props.isVertical ? '50vh' : '100vh'};\n min-height:${(props) => props.isVertical ? '50vh' : '670px'};\n display: ${(props) => props.height < 560 && props.small ? 'flex' : null};\n align-items: ${(props) => props.height < 560 && props.small ? 'flex-end' : null};\n @media all and (min-width: 1280px) {\n display: ${(props) => props.height < 720 && props.small ? 'flex' : null};\n align-items: ${(props) => props.height < 720 && props.small ? 'flex-end' : null};\n min-height: ${(props) => props.isVertical ? '50vh' : '720px'};\n }\n @media all and (min-width: 1600px) {\n display: ${(props) => props.height < 1000 && props.small ? 'flex' : null};\n align-items: ${(props) => props.height < 1000 && props.small ? 'flex-end' : null};\n min-height: ${(props) => props.isVertical ? '50vh' : '1000px'};\n }\n`;\n\nconst CarImage = styled.img`\n position: ${(props) => props.small ? 'absolute' : null};\n animation: ${(props) => props.small ? null : css`${fadeInImage} 0.2s ease-in`};\n width: ${(props) => props.small ? 'var(--size-grid006)' : 'var(--size-grid009)'};\n height: auto;\n transform:${(props) => props.taigo && props.small ? 'translateX(-20%) scale(1.2)' : props.taigo ? 'scale(1.2)' : 'translateX(5%)'};\n bottom: ${(props) => props.isVertical && props.small ? '25%' : props.small ? '18%' : null};\n right: ${(props) => props.small ? null : props.taigo ? '-64px' : '-126px'};\n margin-bottom: ${(props) => props.small ? null : '32px'};\n transform-origin: center bottom;\n @media all and (min-width: 1600px) {\n width: ${(props) => props.small ? 'var(--size-grid006)' : 'var(--size-grid009)'};\n }\n @media all and (min-width: 1920px) {\n margin-bottom: ${(props) => props.small ? null : '64px'};\n width: ${(props) => props.small ? '480px' : '720px'};\n transform:${(props) => props.taigo && props.small ? 'translateX(-20%) ' : 'translateX(5%)'};\n }\n`;\n\nconst CTAanimation = keyframes`\n 0% { transform: translateY(0); }\n 50% { transform: translateY(-20px); }\n 100% { transform: translateY(0); }\n`;\n\nconst CTAPostion = styled.div`\n display: flex;\n width: 100%;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding-bottom: calc( var(--size-grid001) / 2);\n @media all and (min-width: 1600px){\n padding-bottom: 64px;\n }\n`;\n\nconst CTAWrapper = styled.div`\n animation: ${CTAanimation} 4s ease infinite;\n`;\n\nconst shadowAnimation = keyframes`\n 0% { opacity: 1; }\n 50% { opacity: 0.5 ; }\n 100% { opacity: 1 ; }\n`;\nconst Shadow = styled.div`\n animation: ${shadowAnimation} 4s ease infinite;\n margin: 15px 0 30px;\n height: 6px;\n width: 176px;\n border-radius: 50%;\n filter: blur(8px);\n background-color: #000000;\n @media all and (min-width: 1600px) {\n margin: 15px 0;\n }\n`;\n\nconst NoMarginWrapper = styled.div`\n display: flex;\n align-items: flex-end;\n div {\n margin-bottom: 0;\n }\n`;\n\nconst BottomContentWrapper = styled.div`\n position: ${(props) => props.height < 560 ? 'relative' : 'absolute'};\n left: 0;\n bottom: 0;\n width: 100%;\n display: flex;\n flex-direction: column;\n align-items: center;\n @media all and (min-width: 1280px) {\n position: ${(props) => props.height < 720 ? 'relative' : 'absolute'};\n }\n @media all and (min-width: 1600px) {\n position: ${(props) => props.height < 1000 ? 'relative' : 'absolute'};\n }\n`;\n\ninterface LiSectionProps {\n active: number;\n handleClick: (e: React.MouseEvent, i: number) => void;\n id: number;\n content: any;\n carlineWithOffers: CarlineWithOffers;\n}\n\nexport const LiSection = (props: TriggerProps & LiSectionProps) => {\n const { handleClick, active, id, content, carlineWithOffers, setSelectedJourney } = props;\n const height = useWindowHeight();\n const width = useWindowWidth();\n\n const [imageUrl, setImageUrl] = useState(null);\n const [isVertical, setVertical] = useState(false);\n\n useEffect(() => {\n if (width - height <= 100 || height > width) {\n setVertical(true);\n } else {\n setVertical(false);\n }\n }, [width]);\n\n useEffect(() => {\n console.log(isVertical);\n }, [isVertical]);\n\n useEffect(() => {\n if (content.carline.title === 'Taigo') {\n setImageUrl('https://assets.volkswagen.com/is/image/volkswagenag/taigo_suvperheroes_v2?Zml0PWNyb3AlMkMxJndpZD0xMDM5JmhlaT01MjAmZm10PXBuZy1hbHBoYSZiZmM9b2ZmJmIzZmE=');\n } else if (content.carline.title === 'T-Cross') {\n setImageUrl('https://assets.volkswagen.com/is/image/volkswagenag/t-cross_suvperheroes_v3?Zml0PWNyb3AlMkMxJndpZD0xMDQyJmhlaT01ODYmZm10PXBuZy1hbHBoYSZiZmM9b2ZmJjVlZWU=');\n } else {\n setImageUrl('https://assets.volkswagen.com/is/image/volkswagenag/t-roc_suvperheroes_v3?Zml0PWNyb3AlMkMxJndpZD0xMDI4JmhlaT01NzgmZm10PXBuZy1hbHBoYSZiZmM9b2ZmJmIwNTU=');\n }\n }, [content]);\n\n return (\n handleClick(e, id)} className={id === active ? 'active' : 'inactive'} idLi={id} shadowSide={id < active ? 'interior' : 'exterior'} isVertical={isVertical}>\n {\n id !== active ? (\n <>\n
\n {content.carline.title}\n
\n \n \n \n \n\n ) : (\n <>\n \n
\n\n \n \n \n {content.carline.title}\n con ACC, Front Assist y\n detector de peatones\n \n \n \n\n \n {content.cuota}€\n /mes*\n \n {content.financiacionText}\n {content.myWay.activo === 1 ?\n Cuota final: {formatNumber(content.cuotaFinal)}€\n : null\n }\n \n \n \n\n \n \n \n {content.carline.title}\n con ACC, Front Assist y\n detector de peatones\n \n \n \n\n \n {content.cuota}€\n /mes*\n \n {content.financiacionText}\n {content.myWay.activo === 1 ?\n Cuota final: {formatNumber(content.cuotaFinal)}€\n : null\n }\n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n
\n \n )\n }\n
\n );\n};\n","import React, { useState } from 'react';\nimport { MobileCard } from '.';\nimport {\n styled,\n ThemeProvider,\n} from '@volkswagen-onehub/components-core';\nimport { TabsNavigation } from '.';\nimport { useWindowHeight } from '@react-hook/window-size';\nimport { TriggerProps } from 'src/feature-app';\nimport { CarlineWithOffers } from 'src/types';\n\ninterface styleProps {\n height?: number;\n}\n\nconst TabsWrapper = styled.div`\n min-height: 100vh;\n overflow: hidden;\n position: relative;\n`;\nconst BackgroundImage = styled.img`\n height: auto;\n min-height: 100vh;\n min-width: 100vw;\n width: auto;\n overflow: hidden;\n position: absolute;\n bottom: 0;\n left: 0;\n`;\n\nconst ContentWrapper = styled.div`\n position: ${(props)=> props.height < 500 ? 'relative' : 'absolute'};\n top: 0;\n left: 0;\n min-height: 400px;\n`;\n\nconst mobileBackgroundUrl = 'https://assets.volkswagen.com/is/image/volkswagenag/background-gradient_mobile-v2?Zml0PWNyb3AlMkMxJndpZD0zOTAmaGVpPTY5MyZmbXQ9anBlZyZxbHQ9NzkmYmZjPW9mZiZjYmIy';\ninterface TabsProps {\n carlinesWithOffers: CarlineWithOffers[];\n}\n\nexport const Tabs = (props: TabsProps & TriggerProps) => {\n const { carlinesWithOffers, setSelectedJourney } = props;\n\n const [ activeTab, setActiveTab ] = useState(0);\n const height= useWindowHeight();\n\n\n return (\n \n \n \n \n { \n activeTab === 0 ? (\n \n ) : activeTab === 1 ? (\n \n ) : (\n \n ) \n }\n \n \n \n \n );\n};\n","import React from 'react';\nimport { styled } from '@volkswagen-onehub/components-core';\nimport { keyframes } from 'styled-components';\n\nconst ColorBarWrapper = styled.div`\n position: relative;\n margin-top: 16px;\n height: 5px;\n width: 100%;\n overflow: hidden;\n`;\n\nconst greyAnimate = keyframes`\n 0% { transform: translateX(0) }\n 100% { transform: translateX(100%) }\n`;\n\nconst GreyBar = styled.div`\n position: absolute;\n top: 0;\n bottom: 0;\n width: 100%;\n border-radius: 0 100px 100px 0;\n background-color: #DFE4E8;\n &.start {\n animation: ${greyAnimate} 5s linear infinite normal;\n }\n`;\nconst ColorBar = styled.div`\n position: absolute;\n top: 0;\n bottom: 0;\n width: 100%;\n border-radius: 100px;\n background: #00B0F0;\n`;\n\nexport const ProgressBar = () => {\n return (\n \n \n \n \n\n );\n};\n","import React, { useEffect } from 'react';\nimport {\n styled,\n Text,\n} from '@volkswagen-onehub/components-core';\nimport { ProgressBar } from './ProgressBar';\nimport { CarlineWithOffers } from 'src/types';\n\ninterface styleProps {\n height?: number;\n}\nconst Nav = styled.div`\n padding:16px;\n margin: 0 var(--size-grid001);\n position: ${(props) => props.height <500 ? 'relative' : 'absolute'};\n margin-top: ${(props) => props.height < 500 ? '20px' : null};\n bottom: 24px;\n height: 85px;\n border-radius: 8px;\n background-color: #FFFFFF;\n width: var(--size-grid022);\n box-shadow: 0px 8px 8px rgba(0, 0, 0, 0.5);\n`;\n\nconst UlWrapper = styled.ul`\n display: flex;\n justify-content: space-between;\n padding: 0;\n margin: 0;\n`;\ninterface LiButtonProps {\n activeTab: boolean;\n}\nconst LiButton = styled.li`\n z-index: 1;\n width: 72px;\n height: 32px;\n border: 1px solid #00B0F0;\n border-radius: 16px;\n list-style: none;\n cursor: pointer;\n transition: all 0.1s;\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n background-color: ${(props) => props.activeTab ? ' #00B0F0' : '#FFFFFF'};\n`;\n\nconst TextStyles = styled.span`\n color: ${(props) => !props.activeTab ? ' #00B0F0' : '#FFFFFF'}\n`;\ninterface TabsNavigationProps {\n setActiveTab: React.Dispatch>;\n offers: CarlineWithOffers[];\n activeTab: number;\n height: number;\n}\n\nexport const TabsNavigation = (props: TabsNavigationProps) => {\n const { setActiveTab, offers, activeTab, height } = props;\n\n\n const resetProgressBar = (select: number) => {\n setActiveTab(select);\n const aux = document.getElementById('animated-bar');\n if (aux) {\n aux.classList.remove('start');\n aux.offsetWidth;\n aux.classList.add('start');\n }\n };\n\n useEffect(() => {\n const aux = activeTab === 2 ? 0 : activeTab + 1;\n\n const timer = setTimeout(() => {\n setActiveTab(aux);\n resetProgressBar(aux);\n }, 5000);\n\n return () => clearTimeout(timer);\n\n }, [activeTab]);\n\n return (\n \n );\n};\n","import React, { useEffect, useState } from 'react';\nimport { AcordionHorizontal, Tabs } from './Suvperheroes';\nimport { getOfertasSUV } from 'src/bff';\nimport { CarlineWithOffers } from 'src/types';\nimport { useWindowWidth } from '@react-hook/window-size';\nimport { TriggerProps } from 'src/feature-app';\n\n\nexport function SuvperheroesTrigger({ setSelectedJourney }: TriggerProps) {\n const [carlinesWithOffers, setCarlinesWithOffers] = useState(null);\n const width = useWindowWidth();\n\n useEffect(() => {\n getOfertasSUV()\n .then((data) => {\n setCarlinesWithOffers(data);\n });\n }, []);\n\n return (\n <>\n {\n carlinesWithOffers ? (\n
\n {\n width < 560 ?\n :\n \n }\n
\n ) : null\n }\n \n );\n}\n","import React from 'react';\nimport { ScreenController } from 'src/feature-app';\nimport { ConcursoRodajeController } from 'src/forms';\n\nexport function ConcursoRodajeTrigger() {\n return }\n closeLayerCallback={close}\n handleAreYouSureLayer={() => null}\n notALayer={true}\n formType='inPage'\n />;\n}\n","import React from 'react';\nimport { ScreenController, TriggerProps, useFaContent } from 'src/feature-app';\nimport { PlanIdealController } from 'src/forms/FormsAdhoc/2023PlanIdeal/PlanIdealController';\n\nexport function PlanIdealTrigger(props: TriggerProps) {\n\n\n return (\n }\n closeLayerCallback={close}\n handleAreYouSureLayer={() => null}\n notALayer={true}\n formType = 'inPage'\n />\n );\n}\n","import React, { useEffect, useState } from 'react';\nimport { useFaContent } from 'src/feature-app';\nimport { AutosubmitController } from 'src/forms/Autosubmit/AutosubmitController';\n\nexport function AutosubmitTrigger() {\n const faContent = useFaContent();\n const [action, setAction] = useState(null);\n\n useEffect(() => {\n setAction(faContent.action);\n }, [faContent]);\n\n const renderForm = () => {\n switch (action) {\n case 'newsletter-electricos':\n return \n default:\n return null;\n }\n };\n\n return renderForm();\n}\n","import React, { useEffect } from 'react';\nimport { TriggerProps, useFaContent, ScreenController } from 'src/feature-app';\nimport { BajaComunicacionesController } from 'src/forms/BajaComunicaciones';\n\nexport function BajaComunicacionesTrigger({ setSelectedJourney }: TriggerProps): JSX.Element {\n const faContent = useFaContent();\n\n return (\n <>\n }\n closeLayerCallback={close}\n handleAreYouSureLayer={() => null}\n notALayer={true}\n formType = 'inPage'\n />\n \n );\n}\n","import React, { useEffect } from 'react';\nimport { TriggerProps, useFaContent } from 'src/feature-app';\nimport { CallMeOfertaForm } from 'src/forms';\n\nexport function CallMeOfertasTrigger({ setSelectedJourney }: TriggerProps): JSX.Element {\n const faContent = useFaContent();\n const getCtaLabel = () => (faContent?.cta ? faContent.cta : 'Llámame');\n\n useEffect(() => {\n setSelectedJourney(, true);\n }, []);\n\n return null;\n\n}\n","import React from 'react';\nimport { EmbeddedFeatureApp, TriggerProps, useFaContent } from 'src/feature-app';\nimport { CallMeOfertasTrigger } from './CallMeOfertasTrigger';\n\nconst renderTrigger = (featureApp: EmbeddedFeatureApp, props: TriggerProps) => {\n if (featureApp === 'es-ofertas') {\n return ;\n }\n\n return null;\n};\n\nexport function CallMeEmbeddedTrigger(props: TriggerProps) {\n const faContent = useFaContent();\n\n return renderTrigger(faContent.featureApp, props);\n}\n","import React, { useEffect, useState } from 'react';\nimport {\n Breakpoints,\n Container,\n ContainerGutter,\n ContainerPadding,\n CTA,\n Layout,\n Text,\n TextAlignment,\n ThemeProvider,\n Spinner,\n Divider,\n LayoutRowGap,\n TokenTextAppearance,\n} from '@volkswagen-onehub/components-core';\nimport { Mail, Phone, CarPickupService, FleetServicePrivate } from 'src/icons-core-imports';\nimport { useGetDealer, useFeatureServices, LayerManagerWrapper, useFeatureAppEnvironment, useNavigate } from 'src/feature-app';\nimport { NuevaCitaPosventaFormController } from '../forms/CitaPosventa/NuevaCitaPosventa';\nimport { MapGeneralController, NewMap } from 'src/feature-app/NewMap';\nimport { useSelector, useStore, useDispatch } from 'react-redux';\nimport { DealersData, OneFormState } from 'src/types';\nimport { GenericErrorLayer } from 'src/components/layers';\nimport { FocusLayerSizeV2 } from '@volkswagen-onehub/layer-manager';\n\ninterface CitaPosventaDEalerTriggerProps {\n setSelectedJourney: any;\n setCTALabel?: any;\n}\n\nexport const CitaPosventaDealerTrigger = (props: CitaPosventaDEalerTriggerProps) => {\n const { dealerName, selectedDealer, loading } = useGetDealer();\n const { setSelectedJourney } = props;\n const { points } = useSelector((state: OneFormState) => state.dealersInfo);\n const [error, setError] = useState(false);\n const [dealerInfo, setDealerInfo] = useState(null);\n const [dealerDmsInfo, setDealerDmsInfo] = useState(null);\n const [pointsLodaded, setPointsLoaded] = useState(false);\n const layerManager = useFeatureServices()['layer-manager'];\n const store = useStore();\n const env = useFeatureAppEnvironment();\n const {navigateToCita} = useNavigate();\n const dispatch = useDispatch();\n\n const renderErrorScreen = () => {\n return (\n \n {\n navigateToCita();\n }}\n />\n \n );\n };\n\n const handleErrorLayer = () => {\n const layer = layerManager.openFocusLayer(renderErrorScreen, {}, { size: FocusLayerSizeV2.A });\n\n return layer;\n };\n\n // la altura del mapa en 375 debe ser = al width, mientras que en 560 tiene que ser 50% del width\n\n const initializeState = (selectedDealer: DealersData) => {\n if (selectedDealer) {\n if (selectedDealer.dmsInfo.dmsAvailable === true) {\n setDealerDmsInfo(selectedDealer.dmsInfo);\n }\n setDealerInfo(selectedDealer.markerInfo.dealerInfo);\n } else {\n setError(true);\n handleErrorLayer();\n }\n };\n\n useEffect(() => {\n if (points) {\n setPointsLoaded(true);\n }\n }, [points]);\n\n useEffect(() => {\n if (!loading) {\n initializeState(selectedDealer);\n }\n }, [selectedDealer, loading]);\n\n return error ? null : (\n \n \n \n \n ¿Quieres visitar nuestro Servicio Oficial?\n \n \n \n {dealerInfo && pointsLodaded ? (\n \n
\n \n \n \n {dealerDmsInfo ? dealerDmsInfo.name : dealerInfo.name}\n \n \n \n {\n e.preventDefault();\n initializeState(selectedDealer);\n setSelectedJourney();\n }}\n ariaLabel=\"aria label\"\n >\n Pide tu cita\n \n \n \n Dirección\n \n \n {dealerInfo.address}, {dealerInfo.zipCode} {dealerInfo.city}\n \n \n \n \n \n Datos de contacto\n \n
\n
\n \n
\n \n {dealerDmsInfo ? dealerDmsInfo.phone : dealerInfo.phone} \n \n
\n
\n
\n \n
\n \n {dealerDmsInfo ? dealerDmsInfo.email : dealerInfo.mail}\n \n
\n
\n {!dealerDmsInfo ? null : (\n <>\n {dealerDmsInfo.pickupCarServiceAvailabe || dealerDmsInfo.replacementCarServiceAvailable ? (\n \n \n \n \n {' '}\n Servicios adicionales{' '}\n \n {dealerDmsInfo.pickupCarServiceAvailabe ? (\n
\n
\n \n
\n Servicio de recogida y entrega \n
\n ) : null}\n {dealerDmsInfo.replacementCarServiceAvailable ? (\n
\n
\n \n
\n Coche de sustitución \n
\n ) : null}\n
\n
\n ) : null}\n \n )}\n
\n
\n
\n \n \n \n \n ) : (\n \n
\n \n Cargando los datos de la instalación\n
\n \n )}\n
\n );\n};\n","import { useWindowWidth } from '@react-hook/window-size';\nimport {\n Breakpoints,\n BreakpointWrapper,\n Container,\n ContainerGutter,\n ContainerPadding,\n CTA,\n Layout,\n styled,\n Text,\n TokenTextAppearance,\n TokenTextColor,\n} from '@volkswagen-onehub/components-core';\nimport { Close } from '@volkswagen-onehub/icons-core/dist/Close';\nimport { Phone } from '@volkswagen-onehub/icons-core/dist/Phone';\nimport React, { useEffect, useRef, useState } from 'react';\nimport { useDispatch, useSelector, useStore } from 'react-redux';\nimport {\n ScreenController,\n TriggerProps,\n useFeatureAppConfig,\n useOneFormContext,\n useFeatureServices,\n LayerManagerWrapper,\n useTrackingManager,\n useFeatureAppEnvironment,\n useOnScreen,\n} from 'src/feature-app';\nimport { RaceForm, useRaceFormController } from 'src/forms';\nimport { GenericErrorLayer } from 'src/components';\nimport { OneFormState } from 'src/types';\nimport { CloseHandleV2, FocusLayerSizeV2 } from '@volkswagen-onehub/layer-manager';\n\nconst RaceDiv = styled.div`\n position: fixed;\n right: 10px;\n bottom: 5%;\n z-index: 2;\n\n & button {\n background-color: #ffaa27;\n border: 2px solid #ffaa27;\n color: #001e50;\n }\n\n & button[disabled] {\n background-color: rgb(223, 228, 232);\n border: 2px solid rgb(223, 228, 232);\n }\n`;\nexport function RaceTrigger(props: TriggerProps) {\n const config = useFeatureAppConfig();\n return config.trigger === 'race' ? (\n }\n closeLayerCallback={close}\n handleAreYouSureLayer={() => null}\n formType='module'\n />\n ) : (\n \n );\n}\n\nconst Box = styled.div`\n width: 100%;\n border: 2px solid #ffaa27;\n height: 100%;\n`;\n\nconst StyledImage = styled.img`\n height: auto;\n width: 100%;\n\n @media screen and (min-width: 960px) {\n width: var(--size-grid008);\n }\n\n @media screen and (min-width: 1280px) {\n width: var(--size-grid007);\n }\n @media screen and (min-width: 1920px) {\n width: var(--size-grid006);\n }\n`;\n\nconst ImageWrapper = styled.div`\n height: 100%;\n display: flex;\n justify-content: center;\n align-items: center;\n margin-bottom: 24px;\n @media screen and (min-width: 960px) {\n margin-bottom: 0px;\n }\n`;\nconst ContentWrapper = styled.div`\n height: 100%;\n display: flex;\n flex-direction: column;\n justify-content: center;\n width: 100%;\n\n @media screen and (min-width: 960px) {\n width: var(--size-grid009);\n }\n @media screen and (min-width: 1280px) {\n width: var(--size-grid010);\n }\n @media screen and (min-width: 1920px) {\n width: var(--size-grid011);\n }\n`;\nconst ImageAndContentWrapper = styled.div`\n height: 100%;\n display: flex;\n flex-direction: column;\n justify-content: center;\n\n @media screen and (min-width: 960px) {\n flex-direction: row;\n gap: var(--size-grid001);\n }\n\n @media screen and (min-width: 2560px) {\n padding-top: calc(var(--size-grid001) / 2);\n padding-bottom: calc(var(--size-grid001) / 2);\n }\n`;\n\nexport const RaceTriggerFullScreen = () => {\n const { raceCellphone } = useSelector((state: OneFormState) => state.formData.fields);\n const { isSent, isSending, isPristine, disabledButton, error, sendForm, reset, setIsPristine, successful, retry } =\n useRaceFormController(raceCellphone);\n const ref = useRef(null);\n const containerRef = useRef(null);\n const isVisible = useOnScreen(containerRef);\n const [copyWidth, setCopyWidth] = useState(0);\n const { initializeForm } = useOneFormContext();\n const windowWidth = useWindowWidth();\n const dispatch = useDispatch();\n const store = useStore();\n const env = useFeatureAppEnvironment();\n const layerManager = useFeatureServices()['layer-manager'];\n const trackingManager = useTrackingManager();\n const firstView = useRef(true);\n\n useEffect(() => {\n if (ref) {\n setCopyWidth(ref.current.offsetWidth);\n }\n }, [windowWidth]);\n\n useEffect(() => {\n // Disparamos el evento de analítica solo cuando el trigger es visible en pantalla.\n if (isVisible && firstView.current) {\n trackingManager.trackFormLoadRace();\n firstView.current = false;\n }\n }, [isVisible]);\n\n useEffect(() => {\n if (raceCellphone && isPristine) {\n // bug al enviar el formulario y volver a abrirlo, se puede reenviar sin introducir teléfono.\n dispatch({ type: 'UPDATE_FIELDS', payload: { raceCellphone: undefined } });\n }\n }, [raceCellphone, isPristine]);\n\n useEffect(() => {\n if (error) {\n handleErrorLayer();\n }\n }, [error]);\n\n useEffect(() => { }, []);\n\n const renderErrorScreen = (state: any, close: CloseHandleV2) => {\n return (\n \n {\n retry();\n close({}, {}, {});\n }}\n icon={false}\n ctaTextAlign=\"left\"\n secondCta={\n {\n reset();\n close({}, {}, {});\n }}\n >\n Volver a probar más tarde\n \n }\n />\n \n );\n };\n\n const handleErrorLayer = () => {\n layerManager.openFocusLayer(renderErrorScreen, {}, { size: FocusLayerSizeV2.A });\n };\n\n return (\n <>\n
\n \n \n\n \n \n \n \n \n \n \n \n \n \n \n
\n \n Habla con un experto\n \n
\n \n ¿Te gustaría preguntar algo sobre la mecánica de tu coche? ¿Se ha encendido una luz que no\n identificas? Tenemos las respuestas que necesitas.\n \n
\n
\n \n \n
\n
\n \n
\n \n
\n \n );\n};\n\nexport const RaceTriggerPopUp = ({ setSelectedFocusJourney, setCTALabel, selectedFocusJourney }: TriggerProps) => {\n const [ctaDisabled, setCtaDisabled] = useState(false);\n const trackingManager = useTrackingManager();\n\n useEffect(() => {\n if (!selectedFocusJourney && ctaDisabled) {\n setCtaDisabled(false);\n }\n }, [selectedFocusJourney]);\n\n useEffect(() => {\n trackingManager.trackFormLoadRace();\n }, []);\n\n return (\n \n }\n onClick={() => {\n setSelectedFocusJourney();\n setCTALabel('Te llamamos');\n setCtaDisabled(true);\n }}\n stretchContent\n >\n Habla con un experto\n \n \n );\n};\n\nconst TitleDiv = styled.div`\n background-color: #f2ad47;\n`;\nconst TitleInside = styled.div`\n display: flex;\n justify-content: space-between;\n align-items: center;\n`;\n\nconst CloseDiv = styled.div`\n cursor: pointer;\n`;\n\ninterface RacePopUpProps {\n setCtaDisabled: React.Dispatch>;\n}\n\nconst RacePopUp = ({ setCtaDisabled }: RacePopUpProps) => {\n const { closeLayer } = useOneFormContext();\n const { fields } = useSelector((state: OneFormState) => state.formData);\n const { raceCellphone } = fields;\n const { isSent, isSending, isPristine, disabledButton, error, sendForm, retry, setIsPristine, successful } =\n useRaceFormController(raceCellphone);\n const ref = useRef(null);\n const [copyWidth, setCopyWidth] = useState(0);\n const windowWidth = useWindowWidth();\n const dispatch = useDispatch();\n\n useEffect(() => {\n if (ref) {\n setCopyWidth(ref.current.offsetWidth);\n }\n }, [windowWidth]);\n\n useEffect(() => {\n if (raceCellphone && isPristine) {\n // bug al enviar el formulario y volver a abrirlo, se puede reenviar sin introducir teléfono.\n dispatch({ type: 'UPDATE_FIELDS', payload: { raceCellphone: undefined } });\n }\n }, [raceCellphone, isPristine]);\n\n return (\n <>\n \n \n \n \n Habla con un experto\n \n {\n closeLayer();\n setCtaDisabled(false);\n }}\n >\n \n \n \n \n \n\n \n {!error ? (\n <>\n
\n \n ¿Te gustaría preguntar algo sobre la mecánica de tu coche? ¿Se ha encendido una luz que no identificas?\n Tenemos las respuestas que necesitas.\n \n
\n \n \n \n ) : (\n \n )}\n \n \n );\n};\n\ninterface ErrorPageProps {\n retry: () => void;\n close: () => void;\n setCtaDisabled: React.Dispatch>;\n}\n\nconst LegalWrapper = styled.div`\n color: #6a767d;\n`;\n\nconst Legal = () => {\n return (\n \n \n Tu número de teléfono será tratado por Volkswagen Group España Distribución, S.A.U. como responsable del\n tratamiento con el fin de contactar contigo. Si quieres más información, puedes consultar nuestra{' '}\n \n \n política de privacidad\n \n .\n \n \n );\n};\n\nconst ErrorPage = ({ retry, close, setCtaDisabled }: ErrorPageProps) => {\n return (\n <>\n \n \n Uy, algo ha pasado\n \n \n Por alguna razón no hemos podido guardar tu petición. ¿Lo intentamos de nuevo?\n \n \n \n {\n retry();\n }}\n >\n Reintentar\n \n {\n close();\n setCtaDisabled(false);\n }}\n >\n Volver a probar más tarde\n \n \n \n );\n};\n","import {\n Breakpoints,\n BreakpointWrapper,\n Container,\n ContainerGutter,\n ContainerPadding,\n CTA,\n Layout,\n styled,\n Text,\n TextAlignment,\n ThemeProvider,\n TokenTextAppearance,\n} from '@volkswagen-onehub/components-core';\nimport React from 'react';\nimport { useSelector, useDispatch } from 'react-redux';\nimport {\n useFaContent,\n} from 'src/feature-app';\nimport { OneFormState } from 'src/types';\nimport { TriggerCitaProps } from 'src/triggers';\nimport { NuevaCitaPosventaFormController } from '../forms/CitaPosventa/NuevaCitaPosventa';\nimport { RaceTrigger } from './RaceTrigger';\n\ninterface contentProps {\n themeColor: 'main' | 'inverted' | 'image';\n}\n\nconst Content = styled.div`\n overflow: hidden;\n display: flex;\n justify-content: center;\n align-items: center;\n background: ${(props) =>\n props.themeColor === 'inverted' ? 'radial-gradient(circle at bottom, #00437a 0%, #001e50 100%)' : '#FFFFFF'};\n padding: ${(props) => (props.themeColor === 'inverted' ? '44px 0' : '0')};\n\n @media all and (min-width: 560px) {\n padding: ${(props) => (props.themeColor === 'inverted' ? '68px 0' : '0')};\n }\n @media all and (min-width: 1600px) {\n padding: ${(props) => (props.themeColor === 'inverted' ? '84px 0' : '0')};\n }\n\n & > div {\n width: 100%;\n }\n`;\n//background-color: ${(props) => props.theme.global.backgroundColor};\n\nconst CenterCTA = styled.div`\n text-align: center;\n`;\nexport function CitaPosventaDefaultTrigger({\n setSelectedJourney,\n setCTALabel,\n setSelectedFocusJourney,\n selectedFocusJourney,\n theme,\n getTitle,\n getBodyCopy,\n getCtaLabel,\n getCtaRegister,\n}: TriggerCitaProps) {\n const { formInfo } = useSelector((state: OneFormState) => state);\n const { userIsAuthenticated } = formInfo;\n const faContent = useFaContent();\n const dispatch = useDispatch();\n const useLoggedJourney = false; // De momento no es necesario usar todas las funciones del journey logueado/no logueado, tan solo el fill de los datos\n\n return (\n <>\n \n \n \n \n \n \n
\n \n {getBodyCopy()}\n \n \n \n \n {\n dispatch({ type: 'RESET_STATE' });\n setCTALabel(getCtaLabel());\n setSelectedJourney();\n }}\n stretchContent\n >\n {getCtaLabel()}\n \n \n\n \n {\n dispatch({ type: 'RESET_STATE' });\n setCTALabel(getCtaLabel());\n setSelectedJourney();\n }}\n >\n {getCtaLabel()}\n \n \n \n {!userIsAuthenticated && useLoggedJourney ? (\n \n \n {getCtaRegister('Regístrate')} o {getCtaRegister('inicia sesión')} para disfrutar de una mejor\n experiencia.\n \n \n ) : null}\n \n \n \n \n \n {faContent?.race === 'true' ? (\n \n ) : null}\n \n );\n}\n","import React, { useEffect } from 'react';\nimport { NuevaCitaPosventaFormController } from 'src/forms';\nimport { TriggerProps, useFaContent } from 'src/feature-app';\nimport { CitaPosventaCalculadoraForm, CitaPosventaBonosForm, CitaPosventaMaintenanceForm } from '../forms/CitaPosventa/CitaPosventaEmbedded';\n\nexport function CitaPosventaEmbeddedTrigger({ setSelectedJourney }: TriggerProps) {\n const faContent = useFaContent();\n\n switch (faContent.featureApp) {\n case 'es-calculadora':\n return ;\n case 'es-maintenance':\n return ;\n case 'es-bono':\n return ;\n case 'es-mis_beneficios':\n return ;\n }\n return null;\n}\n","import { useScrollPosition } from '@n8tb1t/use-scroll-position';\nimport {\n Breakpoints,\n Container,\n ContainerGutter,\n ContainerPadding,\n CTA,\n Image,\n Layout,\n styled,\n Text,\n TextAlignment,\n ThemeProvider,\n TokenTextAppearance,\n} from '@volkswagen-onehub/components-core';\nimport React, { useState } from 'react';\nimport { useFaContent } from 'src/feature-app';\nimport { TriggerCitaProps } from 'src/triggers';\nimport { NuevaCitaPosventaFormController } from '../forms/CitaPosventa/NuevaCitaPosventa';\nimport { useDispatch } from 'react-redux';\n\n\nconst MediaWrapper = styled.div<{ scrollY: number }>`\n transform: ${(props) => `translateY(${props.scrollY / 2}px)`};\n grid-area: 1 / 1 / 2 / 25;\n overflow: hidden;\n position: fixed;\n top: 0px;\n left: 0px;\n width: 100vw;\n height: 70vh;\n\n & img {\n width: 100%;\n height: 100%;\n object-fit: cover;\n object-position: 66% 50%;\n }\n`;\n\nconst CTAWrapper = styled.div`\n display: inline-block;\n\n & a {\n color: #ffffff;\n font-weight: bold;\n }\n & svg {\n fill: #ffffff;\n width: 17px;\n height: 14px;\n }\n`;\n\nconst ContentStage = styled.div<{ themeColor: string }>`\n overflow: hidden;\n display: flex;\n justify-content: center;\n align-items: center;\n position: relative;\n background: ${(props) =>\n props.themeColor === 'inverted' ? 'radial-gradient(circle at bottom, #00437a 0%, #001e50 100%)' : '#FFFFFF'};\n\n & > div {\n width: 100%;\n }\n`;\n\nconst ContainerNew = styled.div`\n display: grid;\n grid-template-rows: 70vh;\n grid-auto-rows: minmax(min-content, max-content);\n grid-template-columns: repeat(24, 1fr);\n`;\n\nexport const CitaPosventaStageTrigger = ({\n setSelectedJourney,\n setCTALabel,\n theme,\n getTitle,\n getBodyCopy,\n getCtaLabel,\n getIntro,\n}: TriggerCitaProps) => {\n const [scrollY, setScrollY] = useState(-window.scrollY);\n const faContent = useFaContent();\n const dispatch = useDispatch();\n\n useScrollPosition(({ prevPos, currPos }) => {\n setScrollY(currPos.y);\n }, []);\n\n return (\n \n \n \"Volkswagen\"\n \n
\n \n \n \n \n \n \n {getIntro()}\n \n \n {/* Como en Volkswagen, en ningún sitio */}\n
\n \n \n {getBodyCopy(TextAlignment.left)}\n \n \n \n {\n dispatch({ type: 'RESET_STATE' });\n setCTALabel(getCtaLabel());\n setSelectedJourney();\n }}\n >\n {getCtaLabel()}\n \n \n \n \n \n \n
\n \n );\n};\n","import { CTA, Text, TextAlignment, TokenTextAppearance, WhiteSpace } from '@volkswagen-onehub/components-core';\nimport React, { useEffect, useState } from 'react';\nimport { useSelector } from 'react-redux';\nimport {\n CitaPreviaTile,\n CitaPreviaTileGrid,\n TriggerProps,\n useFaContent,\n useFeatureAppConfig,\n useFeatureServices,\n useGetDealers,\n useTransformToHtml,\n} from 'src/feature-app';\nimport { useGetAuthService } from 'src/feature-app/hooks/use-get-auth-service';\nimport { OneFormState } from 'src/types';\nimport { NuevaCitaPosventaFormController } from '../forms/CitaPosventa/NuevaCitaPosventa';\nimport { CitaPosventaDefaultTrigger, CitaPosventaStageTrigger } from './';\nexport interface TriggerCitaProps extends TriggerProps {\n theme?: 'main' | 'inverted' | 'image';\n getCtaLabel: () => string;\n getBodyCopy: (textAlignment?: TextAlignment) => JSX.Element;\n getTitle: () => {\n __html: string;\n };\n getCtaRegister: (copy: string) => JSX.Element;\n getIntro: () => string;\n setSelectedFocusJourney?: any\n}\n\nexport function CitaPosventaTrigger({ setSelectedJourney, setCTALabel, setSelectedFocusJourney }: TriggerProps) {\n const config = useFeatureAppConfig();\n const faContent = useFaContent();\n const userInteractionService = useFeatureServices()['user-interaction-service'];\n const { formData, formInfo } = useSelector((state: OneFormState) => state);\n const { userIsAuthenticated } = formInfo;\n const { name } = formData.fields;\n const { dealerName } = useGetDealers();\n const authService = useGetAuthService();\n const useLoggedJourney = false; // De momento no es necesario usar todas las funciones del journey logueado/no logueado, tan solo el fill de los datos\n\n const [theme, setTheme] = useState<'main' | 'inverted' | 'image'>('inverted');\n\n const getCtaLabel = () => (faContent?.cta ? faContent.cta : 'Pide cita en tu taller');\n\n const getIntro = () => (faContent?.intro ? faContent.intro : '');\n\n const alternativeHeadline = '¿Necesitas pasar por el taller?';\n const getTitle = () => {\n if (userIsAuthenticated && useLoggedJourney) {\n return faContent?.['headline-logged']\n ? useTransformToHtml(faContent?.['headline-logged'])\n : useTransformToHtml('Usuario Logueado');\n }\n return faContent?.headline ? useTransformToHtml(faContent.headline) : useTransformToHtml(alternativeHeadline);\n };\n\n const getBodyCopy = (textAlignment?: TextAlignment) => {\n if (userIsAuthenticated && useLoggedJourney) {\n return faContent?.['bodycopy-logged'] ? (\n \n
\n \n ) : (\n \n
hola')} />\n \n );\n }\n return faContent?.bodycopy ? (\n \n
\n \n ) : dealerName ? (\n \n Elige el día y la hora que prefieras para que cuiden de tu Volkswagen en\n {dealerName}.\n \n ) : (\n \n Elige el día, la hora y el Servicio Oficial que prefieras para que cuiden de tu Volkswagen.\n \n );\n };\n\n const getCtaRegister = (copy: string) => {\n return (\n {\n e.preventDefault();\n authService.login();\n }}\n >\n {copy}\n \n );\n };\n\n useEffect(() => {\n if (faContent?.modo === 'Light') {\n setTheme('main');\n }\n if (faContent?.userInteraction === 'true') {\n userInteractionService.register('es-oneform::cita-posventa', {\n action: () => {\n // setCTALabel(getCtaLabel());\n setSelectedJourney();\n },\n });\n }\n }, []);\n\n return config.trigger === 'cita-posventa-tile-grid' ? (\n \n ) : config.trigger === 'cita-posventa-tile' ? (\n \n ) : faContent.isCitaPosventaStageOrDefault === 'Stage' ? (\n \n ) : (\n \n );\n}\n","import {\n Breakpoints,\n BreakpointWrapper,\n Container,\n ContainerGutter,\n ContainerPadding,\n CTA,\n Layout,\n styled,\n Text,\n TextAlignment,\n ThemeProvider,\n TokenTextAppearance,\n} from '@volkswagen-onehub/components-core';\nimport React from 'react';\nimport { TriggerProps, useFaContent, useTransformToHtml } from 'src/feature-app';\nimport { EmpresasForm } from 'src/forms';\nimport { useDispatch } from 'react-redux';\n\nconst Content = styled.div`\n overflow: hidden;\n display: flex;\n justify-content: center;\n align-items: center;\n background: radial-gradient(circle at bottom, #00437a 0%, #001e50 100%);\n\n & > div {\n width: 100%;\n }\n`;\n\nconst CenterCTA = styled.div`\n text-align: center;\n`;\n\nexport function EmpresasTrigger(props: TriggerProps) {\n const { setSelectedJourney, setCTALabel } = props;\n const dispatch = useDispatch();\n\n const faContent = useFaContent();\n\n const getCtaLabel = () => (faContent?.cta ? faContent.cta : 'Pide presupuesto para tu proyecto');\n\n const alternativeHeadline = '¿Necesitas una flota de hasta 50 coches?';\n const getTriggerHeadline = () =>\n faContent?.headline ? useTransformToHtml(faContent.headline) : useTransformToHtml(alternativeHeadline);\n\n const alternativeBodyCopy = 'Solo cuéntanos qué estás buscando y te haremos una propuesta a medida.';\n const getTriggerbodycopy = () =>\n faContent?.bodycopy ? useTransformToHtml(faContent.bodycopy) : useTransformToHtml(alternativeBodyCopy);\n\n return (\n \n \n \n \n \n \n
\n \n\n \n
\n \n \n \n \n \n {\n dispatch({ type: 'RESET_STATE' });\n setCTALabel(getCtaLabel());\n setSelectedJourney();\n }}\n stretchContent\n >\n {getCtaLabel()}\n \n \n\n \n {\n dispatch({ type: 'RESET_STATE' });\n setCTALabel(getCtaLabel());\n setSelectedJourney();\n }}\n >\n {getCtaLabel()}\n \n \n \n \n \n \n \n \n );\n}\n","import {\n BreakpointWrapper,\n Breakpoints,\n styled,\n Text,\n TextAlignment,\n ThemeProvider,\n Container,\n ContainerPadding,\n CTA,\n TokenTextAppearance,\n} from '@volkswagen-onehub/components-core';\nimport { CloseHandleV2, FocusLayerSizeV2, LayerHandleV2, LayerManagerV2 } from '@volkswagen-onehub/layer-manager';\nimport React, { useEffect, useState } from 'react';\nimport { useFormContext } from 'react-hook-form';\nimport { useDispatch, useStore, useSelector } from 'react-redux';\nimport {\n LayerManagerWrapper,\n useFeatureAppEnvironment,\n useFeatureServices,\n useOneFormContext,\n useTrackingManager,\n} from 'src/feature-app';\nimport { KoScreen, LoadingScreen } from '../../CitaPosventa/NuevaCitaPosventa/ConfirmarCitaLayer';\nimport { OneFormState } from 'src/types';\n\ninterface lastNavigationProps {\n refProps?: any;\n formMin?: any;\n setShowError?: any;\n}\n\nconst NavigationWrapper = styled.div`\n display: block;\n padding-top: 44px;\n`;\n\nexport const LastNavigationCEMOneShop = (props: lastNavigationProps) => {\n const { setShowError } = props;\n // const dispatch = useDispatch();\n const { handleShowFinalScreen, handleSubmit } = useOneFormContext();\n const { reset, getValues, triggerValidation } = useFormContext();\n const { fields } = useSelector((state: OneFormState) => state.formData);\n const [layerVisible, setLayerVisible] = useState(false);\n const [koLayer, setKoLayer] = useState>(null);\n const [koScreen, setKoScreen] = useState(false);\n\n const layerManager = useFeatureServices()['layer-manager'] as LayerManagerV2;\n const store = useStore();\n const env = useFeatureAppEnvironment();\n const dispatch = useDispatch();\n const trackingManager = useTrackingManager();\n const [isValid, setIsValid] = useState(false);\n\n //Loading and Ko layers\n\n const handleKoLayer = () => {\n const layer = layerManager.openFocusLayer(renderKoLayer, {}, { size: FocusLayerSizeV2.A });\n setKoLayer(layer);\n };\n\n const renderKoLayer = (state: any, close: CloseHandleV2) => {\n return (\n \n \n \n );\n };\n\n const handleLoadingScreenLayer = () => {\n const layer = layerManager.openFocusLayer(renderLoadingScreen, {}, { size: FocusLayerSizeV2.A });\n\n return layer;\n };\n\n const renderLoadingScreen = (state: any, close: CloseHandleV2) => {\n return (\n \n \n \n );\n };\n\n const handleConfirmarEnvio = async (e: any) => {\n const values = getValues();\n const isValid = await triggerValidation();\n setShowError(false);\n\n if (isValid) {\n setShowError(false);\n\n dispatch({ type: 'UPDATE_FIELDS', payload: values });\n\n trackingManager.trackFormCTAClick({\n contentId: 'Enviar',\n });\n\n const loadingLayer = handleLoadingScreenLayer();\n setLayerVisible(true);\n\n const value = await handleSubmit(e);\n\n loadingLayer.close();\n\n if (value) {\n handleShowFinalScreen();\n } else {\n handleKoLayer();\n }\n } else {\n setShowError(true);\n }\n };\n\n async function retrySubmit(e: any) {\n if (koLayer) {\n koLayer.close();\n }\n setKoScreen(false);\n const loadingLayer = handleLoadingScreenLayer();\n const value = await handleSubmit(e);\n loadingLayer.close();\n if (value) {\n handleShowFinalScreen();\n } else {\n handleKoLayer();\n setKoScreen(true);\n }\n }\n\n useEffect(() => {\n if (!layerVisible && koScreen) setKoScreen(false);\n }, [layerVisible]);\n\n useEffect(() => {\n if (fields.enviarInformacion) setIsValid(true);\n }, [fields]);\n\n useEffect(() => {\n dispatch({ type: 'UPDATE_FORM_ENDED', payload: true });\n }, []);\n\n return (\n \n \n \n Enviando este formulario declaras estar informado de la{' '}\n \n política de privacidad.\n \n \n \n\n \n \n \n {\n e.preventDefault();\n handleConfirmarEnvio(e);\n }}\n stretchContent\n >\n Enviar\n \n \n \n \n \n {\n e.preventDefault();\n handleConfirmarEnvio(e);\n }}\n >\n Enviar\n \n \n \n \n \n );\n};\n","import { Text, TokenTextAppearance } from '@volkswagen-onehub/components-core';\nimport React, { useEffect, useState } from 'react';\nimport { useDispatch, useStore } from 'react-redux';\nimport { dpsSend } from 'src/bff';\nimport { RatingStars, DetalleMotivo, MultipleCTASelection } from 'src/components';\nimport { FormController, useOneFormContext } from 'src/feature-app';\nimport { getParamsForm } from 'src/feature-app/get-params-form';\nimport { OneElementTemplateFullScreen } from 'src/feature-app/Screen';\nimport { FormDataGroup, FormInfo, OneFormState, Steps } from 'src/types';\nimport { formDataBuilder } from '../../format-fields';\nimport { useInitializeLEMForm } from '.';\nimport { ThankYouCEMOneShop, ConfirmacionCEMOneShop } from 'src/forms/Cem/CEM OneShop';\nimport { CEMOneShopFormProps } from './CEMOneShopController';\nimport { CTAsSiNo, ctaPruebaTCross } from 'src/feature-app/InputsValues/CTAsObjects';\n\nexport enum CEMOneShopSteps {\n Atencion,\n Planificacion,\n Organizacion,\n ExplicacionConfiguracion,\n ExplicacionPersonalizacion,\n VehiculoProbado,\n MasInformacion,\n Confirmacion,\n}\n\nexport function CEMOneShopForm(props: CEMOneShopFormProps) {\n const { dpsData, idLead, idPerson, idOrder, handleError, trackFormLoad } = props;\n const [loadingPresubmit, setLoadingPresubmit] = useState(true);\n const { initializeForm } = useOneFormContext();\n const store = useStore();\n const dispatch = useDispatch();\n const stepsWithModel: Steps[] = [\n {\n title: (\n <>\n Tenemos curiosidad, \n ¿cómo fue la atención recibida en la entrega?\n \n ),\n fields: (\n \n \n Nos gustaría saber si desde la Concesión te ayudaron en todo lo que necesitabas.\n \n \n \n }\n />\n ),\n screenIndex: CEMOneShopSteps.Atencion,\n name: 'Atencion',\n outputs: ['atencion'],\n outputsText: ['atencion'],\n outputsIsStars: true,\n },\n {\n title: (\n <>\n ¿Fue fácil planificar la entrega?\n \n ),\n fields: (\n \n \n Nos preguntamos si te ofrecieron opciones que se adaptaban a tus horarios.\n \n \n \n }\n />\n ),\n screenIndex: CEMOneShopSteps.Planificacion,\n name: 'Planificacion',\n outputs: ['planificacion'],\n outputsText: ['planificacion'],\n outputsIsStars: true,\n },\n {\n title: (\n <>\n ¿Estaba todo organizado el día de la entrega?\n \n ),\n fields: (\n \n \n Nos gustaría saber si te recibieron con puntualidad y estaba todo listo para llevarte tu T-Cross Clic2Go.\n \n \n
\n }\n />\n ),\n screenIndex: CEMOneShopSteps.Organizacion,\n name: 'Organizacion',\n trueOrFalseQuestion: true,\n outputs: ['organizacion'],\n outputsText: ['organizacion'],\n },\n {\n title: (\n <>\n Una duda, \n ¿te explicaron cómo funcionaban y cómo se configuraban los asistentes de tu coche?\n \n ),\n fields: (\n \n \n Nos preguntamos si saliste del punto de venta sabiendo sacar el máximo partido a tu Volkswagen.\n \n \n
\n }\n />\n ),\n screenIndex: CEMOneShopSteps.ExplicacionConfiguracion,\n name: 'ExplicacionConfiguracion',\n trueOrFalseQuestion: true,\n outputs: ['explicacionConfiguracion'],\n outputsText: ['explicacionConfiguracion'],\n },\n {\n title: (\n <>\n ¿Probaste tu T-Cross Clic2Go antes de salir del punto de venta?\n \n ),\n fields: (\n \n \n Nos preguntamos si te ayudaron a poner en práctica todo lo explicado durante la entrega.\n \n \n
\n }\n />\n ),\n screenIndex: CEMOneShopSteps.VehiculoProbado,\n name: 'VehiculoProbado',\n trueOrFalseQuestion: true,\n outputs: ['vehiculoProbado'],\n outputsText: ['vehiculoProbado'],\n },\n {\n title: (\n <>\n Antes de terminar, \n ¿hay algo más que nos quieras contar?\n \n *\n \n \n ),\n fields: } />,\n screenIndex: CEMOneShopSteps.MasInformacion,\n name: 'MasInformacion',\n outputs: ['masInformacion'],\n outputsText: ['masInformacion'],\n },\n {\n fields: ,\n screenIndex: CEMOneShopSteps.Confirmacion,\n name: 'Confirmacion',\n outputs: ['confirmacion'],\n outputsText: ['confirmacion'],\n },\n ];\n\n const CEMOneShopData: Partial = {\n headers: {},\n fields: {\n formName: 'cem-oneshop',\n formType: 'otherform',\n pageCategory: 'Encuesta',\n }, // Analítica\n };\n\n useEffect(() => {\n const sendPresubmit = async () => {\n const result = await sendForm(true);\n\n if (!result) {\n handleError();\n }\n setLoadingPresubmit(false);\n };\n\n sendPresubmit();\n\n }, []);\n\n const generateData = (data?: Partial) => {\n const { formData, dealersInfo }: OneFormState = store.getState();\n const { fields, headers } = formData;\n const { tc, today, url, device } = getParamsForm();\n\n return {\n\n 'headers[DESC_ID_CAMPAIGN]': '7011n000001FXvCAAW',\n 'headers[PINCODE]': dpsData.pincode.pincodeResponse.params.pincode,\n 'headers[DESC_TOKEN]': 'VW_DDB_FRM_CEM_ONESHOP_CONTESTADO',\n 'headers[TC]': tc,\n 'headers[FECHA_INSERTION_DATE]': today,\n 'headers[DESC_URLORIGIN]': url,\n 'headers[DESC_ID_CLIMAPRO]': idPerson.ID_Person_DIM_IMP__c,\n 'headers[DESC_FORM_DETAIL]': 'CEM OneShop Grabación',\n 'headers[DESC_FORMOBJECTIVE]': 'Encuesta',\n 'headers[DESC_DEVICETYPE]': device,\n 'headers[DESC_CAMPAIGNBLOCK]': '21. VW OneShop',\n 'headers[DESC_GDPR_ADAPTED]': true,\n 'headers[DESC_BRAND]': 'VW',\n 'headers[COD_FORM_ID]': fields.formName ? `vw-oneform-${fields.formName}` : `vw-oneform-${data.fields.formName}`,\n\n 'fields[DESC_NUMBER_ORDER]': idOrder ? idOrder.IDClimapro__c : \"\",\n 'fields[DESC_FORM_VERSION]': fields.formName\n ? `vw-oneform-${fields.formName}-${process.env.VERSION}`\n : `vw-oneform-${data.fields.formName}-${process.env.VERSION}`,\n 'fields[DESC_NAME]': idPerson.FirstName,\n 'fields[DESC_SURNAME_1]': idPerson.LastName,\n 'fields[DESC_SURNAME_2]': idPerson.TXT_2_Surname__c,\n 'fields[DESC_EMAIL_ADDRESS]': idPerson.TXT_Email__c,\n 'fields[NUM_CELLPHONE]': idPerson.NUM_Phone_mobile__c,\n 'fields[DESC_LOPD]': 'PERMITE',\n 'fields[DESC_TRANF_DATA_THIRD]': 'NO INFORMADO',\n 'fields[DESC_LSSI]': fields.lssi ? fields.lssi : 'NO INFORMADO',\n 'fields[DESC_LOPD_GDPR_PERFILADO]': fields.tmk ? fields.tmk : 'NO INFORMADO',\n 'fields[DESC_AUXFIELD1]': dpsData.rating,\n 'fields[DESC_AUXFIELD2]': fields.atencion,\n 'fields[DESC_AUXFIELD3]': fields.planificacion,\n 'fields[DESC_AUXFIELD4]': fields.organizacion,\n 'fields[DESC_AUXFIELD5]': fields.explicacionConfiguracion,\n 'fields[DESC_AUXFIELD7]': fields.vehiculoProbado,\n 'fields[DESC_AUXFIELD8]': fields.masInformacion,\n\n };\n };\n\n /**\n * Generamos la misma data que para el submit y eliminamos todos los campos que no son necesarios para el presubmit.\n */\n const generatePresubmitData = () => {\n const data = generateData(CEMOneShopData);\n\n delete data['headers[PINCODE]'];\n delete data['fields[DESC_AUXFIELD2]'];\n delete data['fields[DESC_AUXFIELD3]'];\n delete data['fields[DESC_AUXFIELD4]'];\n delete data['fields[DESC_AUXFIELD5]'];\n delete data['fields[DESC_AUXFIELD7]'];\n delete data['fields[DESC_AUXFIELD8]'];\n\n data['headers[DESC_FORM_DETAIL]'] = 'CEM OneShop Pregrabación';\n data['headers[DESC_TOKEN]'] = 'VW_DDB_FRM_CEM_ONESHOP_ENCUESTA';\n\n return data;\n };\n const generateSubmitData = () => generateData();\n\n const sendForm = (isPresubmit?: boolean): Promise => {\n return new Promise(async (resolve, reject) => {\n const data = isPresubmit ? generatePresubmitData() : generateSubmitData();\n //resolve(true);\n const dataStringified = JSON.stringify(data);\n const dataParsed = JSON.parse(dataStringified);\n const formData = formDataBuilder(dataParsed);\n\n const response = await dpsSend(formData, isPresubmit);\n\n if (response && response.data && response.data.content && response.data.content.code === '200') {\n dispatch({ type: 'SET_FORM_RESPONSE', payload: response.data });\n resolve(true);\n } else {\n resolve(false);\n }\n });\n };\n\n const { loading, steps, firstStep, lastStep } = useInitializeLEMForm(stepsWithModel, idLead);\n\n useEffect(() => {\n const CEMOneShopInfo: Partial = {\n formStarted: true,\n sendFormCallback: sendForm,\n fullScreen: firstStep.fullScreen ? true : false,\n lastStep,\n numberOfScreens: steps.length,\n screenIndex: firstStep.screenIndex,\n formTheme: 'main',\n notALayer: true,\n step: firstStep,\n steps,\n stepsHistory: [0],\n thankYouComponent: ,\n };\n if (!loading) {\n initializeForm(CEMOneShopInfo, CEMOneShopData, true);\n trackFormLoad();\n }\n }, [loading]);\n\n return loading || loadingPresubmit || !steps ? null : ;\n}\n","import { Text } from '@volkswagen-onehub/components-core';\nimport React, { useEffect, useState } from 'react';\nimport { useDispatch, useStore } from 'react-redux';\nimport { getCarlines } from 'src/bff';\nimport { useFaContent, useFeatureServices } from 'src/feature-app';\nimport { CarlineBase, IdLead, Steps } from 'src/types';\n\nconst getLastItemOfSteps = (steps: Steps[]) => steps[steps.length - 1];\n\nconst propertyHasValue = (property: string) => property !== 'null';\n\nexport const checkIdLeadHasCarline = (idLead: IdLead) =>\n idLead &&\n idLead.NUM_COD_INTEREST_CARLINE__c &&\n idLead.DESC_Model__c &&\n propertyHasValue(idLead.NUM_COD_INTEREST_CARLINE__c) &&\n propertyHasValue(idLead.DESC_Model__c);\n\nexport function useInitializeLEMForm(defaultSteps: Steps[], idLead: IdLead) {\n const dispatch = useDispatch();\n const [loading, setLoading] = useState(true);\n\n const [steps, setSteps] = useState(defaultSteps);\n const [firstStep, setFirstStep] = useState(defaultSteps[0]);\n const [lastStep, setLastStep] = useState(getLastItemOfSteps(defaultSteps));\n\n const removeModelFromSteps = async () => {\n return new Promise((resolve) => {\n let updatedSteps = [...steps];\n const indexOfModelo = updatedSteps.findIndex((step) => step.name === 'Modelo');\n updatedSteps.splice(indexOfModelo, 1); // Eliminado el step de Modelo.\n updatedSteps[0].hidePreviousStep = true;\n const updatedStepsWithIndex = updatedSteps.map((step, index) => {\n step.screenIndex = index;\n return step;\n });\n\n setSteps(updatedStepsWithIndex);\n setFirstStep(updatedStepsWithIndex[0]);\n setLastStep(getLastItemOfSteps(updatedStepsWithIndex));\n\n resolve(true);\n });\n };\n\n useEffect(() => {\n const remove = async () => {\n await removeModelFromSteps();\n setLoading(false);\n };\n\n const requestCarlines = async () => {\n const carlines = await getCarlines();\n\n dispatch({ type: 'SET_CARLINES', payload: carlines });\n setSteps(defaultSteps);\n setLoading(false);\n };\n\n if (checkIdLeadHasCarline(idLead)) {\n remove();\n } else {\n requestCarlines();\n }\n }, []);\n\n return { loading, steps, firstStep, lastStep };\n}\n","import { Spinner, Text, styled } from '@volkswagen-onehub/components-core';\nimport dayjs from 'dayjs';\nimport React, { useEffect, useRef, useState } from 'react';\nimport { useDispatch } from 'react-redux';\nimport { useFeatureServices, useTrackingManager } from 'src/feature-app';\nimport { DpsData, EsOneformCoreServiceV1 } from 'src/feature-service/es-oneform-core-feature-service/types';\nimport { CarlineBase, DealersData, IdLead, IdOrder, IdPerson } from 'src/types';\nimport { CEMOneShopForm } from './CEMOneShopForm';\nimport { GenericErrorLayer } from 'src/components/layers';\nimport { checkIdLeadHasCarline } from './use-initialize-lem-form';\nimport { createPincodeEntity } from '../../dps-utils';\nimport { LoadingEncuestas } from 'src/components';\n\nexport interface CEMOneShopFormProps {\n idLead: IdLead;\n idPerson: IdPerson;\n idOrder?: IdOrder;\n dpsData: DpsData;\n handleError: () => void;\n trackFormLoad: () => void;\n showPantallaModelo: boolean;\n}\n\nexport function CEMOneShopController() {\n const [loading, setLoading] = useState(true);\n const [error, setError] = useState(false);\n const [usado, setUsado] = useState(false);\n const [showPantallaModelo, setShowPantallaModelo] = useState(false);\n const [caducado, setCaducado] = useState(false);\n const today = dayjs(new Date());\n const trackingManager = useTrackingManager();\n const dpsDataRef = useRef(null);\n const idLeadRef = useRef(null);\n const idPersonRef = useRef(null);\n const idOrderRef = useRef(null);\n const dispatch = useDispatch();\n const oneFormService = useFeatureServices()['es:oneform-core'] as EsOneformCoreServiceV1;\n\n const handleNext = (value: any) => { };\n const handleComplete = () => {\n const dpsData = oneFormService.getDpsData();\n\n if (dpsData.pincode === null || dpsData.pincode.noPincodeFound || dpsData.pincode.pincodeError) {\n handleError();\n } else if (dpsData.pincode.pincodeUsed) {\n setUsado(true);\n setLoading(false);\n } else {\n const idLead = createPincodeEntity(dpsData, 'LEAD');\n const idPerson = createPincodeEntity(dpsData, 'PERSON');\n const idOrder = createPincodeEntity(dpsData, 'ORDER');\n const formDate = dayjs(dpsData.env);\n\n dpsDataRef.current = dpsData;\n idLeadRef.current = idLead;\n idPersonRef.current = idPerson;\n idOrderRef.current = idOrder;\n\n if (!dpsData.env || today.diff(formDate, 'day') > 5) {\n setCaducado(true);\n }\n\n setLoading(false);\n }\n };\n\n const handleError = () => {\n setError(true);\n setLoading(false);\n };\n\n const trackFormLoad = () => {\n if (idLeadRef.current) {\n const customDealer: DealersData = {\n kvps: idLeadRef.current.TXT_DESC_DEALER_CODE__c,\n name: idLeadRef.current.DESC_Dealer_Code__c,\n markerInfo: { dealerInfo: { zipCode: idLeadRef.current.TXT_Postal_Code__c } },\n };\n dispatch({ type: 'SET_SELECTED_DEALER', payload: customDealer });\n\n if (checkIdLeadHasCarline(idLeadRef.current)) {\n setShowPantallaModelo(true);\n\n const carline: Partial = {\n title: idLeadRef.current.DESC_Model__c,\n code: Number(idLeadRef.current.NUM_COD_INTEREST_CARLINE__c),\n };\n\n dispatch({ type: 'SET_SELECTED_CARLINE', payload: carline });\n }\n }\n\n trackingManager.trackFormLoad();\n };\n\n useEffect(() => {\n const oneFormCoreDpsIsLoaded = oneFormService.getLoadedState();\n\n oneFormCoreDpsIsLoaded.subscribe({\n next(value) {\n handleNext(value);\n },\n error(err) {\n console.error(err);\n handleError();\n },\n complete() {\n handleComplete();\n },\n });\n }, []);\n\n // función para layer de error\n const handleTryAgain = async () => {\n // oneFormService.\n setError(false);\n setLoading(true);\n await oneFormService.retryPincodeLoad();\n handleComplete();\n };\n\n if (loading) {\n return ;\n } else if (error) {\n return (\n <>\n \n \n );\n } else if (usado) {\n return (\n <>\n \n \n );\n } else if (caducado) {\n return (\n <>\n \n \n )\n }\n else {\n return (\n <>\n\n \n\n \n );\n }\n}\n","import React, { useState, useEffect} from 'react';\nimport { CTA, Text, TextAlignment, TokenTextAppearance, TokenTextColor } from '@volkswagen-onehub/components-core';\nimport styled from 'styled-components';\nimport { Controller, useFormContext } from 'react-hook-form';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { useTrackingManager } from 'src/feature-app/hooks';\nimport { OneElementTemplateFullScreen } from 'src/feature-app';\nimport { OneFormState } from 'src/types';\nimport {LastNavigationCEMOneShop} from '.';\n\nconst CTAWrapper = styled.div`\n text-align: left;\n margin: -10px;\n margin-top: 32px;\n & > button {\n margin: 12px;\n width: 81px;\n }\n`;\n\nconst ErrorMessage = styled.div`\n width: max-content;\n padding: 4px 8px;\n border-radius: 4px;\n background-color: #e4002c;\n color: #ffffff;\n`;\n\nfunction Fields() {\n const trackingManager = useTrackingManager();\n const dispatch = useDispatch();\n const [ selectedValue, setSelectedValue] = useState('');\n const { control, register, setValue } = useFormContext();\n const { fields } = useSelector((state: OneFormState) => state.formData);\n const [showError, setShowError] = useState(false);\n\n const CTAValues = ['Sí', 'No'];\n\n useEffect(() => {\n if (fields.enviarInformacion) setSelectedValue(fields.enviarInformacion);\n }, []);\n\n return (\n <>\n \n {CTAValues.map((el, i) => {\n return (\n {\n e.preventDefault();\n trackingManager.trackFormButtonClick({\n contentId: el,\n });\n dispatch({ type: 'UPDATE_FIELDS', payload: { enviarInformacion: el } });\n setValue('enviarInformacion', el);\n setSelectedValue(el);\n }}\n >\n {el}\n \n }\n key={i}\n name='enviarInformacion'\n control={control}\n />\n );\n })}\n \n {\n showError ? (\n \n \n Necesitamos esta información para seguir\n \n \n ) : null\n }\n \n \n );\n}\n\nexport function CEMOneShopLastScreenFields() {\n return (\n } />\n );\n}\n","import { Breakpoints, styled, Text, Layout, TokenTextAppearance } from '@volkswagen-onehub/components-core';\nimport React, { useEffect } from 'react';\nimport { LssiTkmQuestions, PoliticaPrivacidad, LastNavigation } from 'src/components';\nimport { useDispatch } from 'react-redux';\nimport { IdPerson } from 'src/types';\n\nconst GeneralconfirmacionWrapper = styled.div``;\n\ninterface ConfirmacionCEMOneShopProps {\n idPerson: IdPerson;\n}\nexport const ConfirmacionCEMOneShop = (props: ConfirmacionCEMOneShopProps) => {\n const dispatch = useDispatch();\n\n useEffect(() => {\n if (props.idPerson.LSSI__c === 'PERMITE') {\n dispatch({ type: 'UPDATE_FIELDS', payload: { lssi: 'NO INFORMADO', tkm: 'NO INFORMADO' } });\n }\n }, [props.idPerson]);\n\n return (\n \n \n {props.idPerson.LSSI__c === 'PERMITE' ? (\n
\n \n ¿Listo para enviar?\n \n
\n ) : (\n <>\n \n ¡Gracias! Unas últimas preguntas para tenerlo todo claro\n \n \n \n )}\n\n \n\n \n \n
\n );\n};\n","import React, { useEffect } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { useTrackingManager, getTrackingForm } from 'src/feature-app';\nimport { RenderController } from 'src/feature-app/Screen';\nimport { OneFormState, Steps } from 'src/types';\nimport { ThankYouTitle, ThankYouFields } from 'src/components';\n\nexport const ThankYouCEMOneShop = () => {\n const { formInfo } = useSelector((state: OneFormState) => state);\n const { formResponse } = formInfo;\n\n const trackingManager = useTrackingManager();\n const dispatch = useDispatch();\n\n useEffect(() => {\n // Thank you page no es gestionado como un step pero sí lo haremos en la analítica. Por eso Modificamos formInfo después del submit y antes del RESET\n const screenIndexThankyou = formInfo.numberOfScreens;\n\n dispatch({ type: 'SET_FORM_SUBMITTED', payload: true });\n dispatch({ type: 'SET_FORM_INFO', payload: { step: { screenIndex: screenIndexThankyou, name: \"ThankYou\" } } });\n\n trackingManager.trackFormSubmissionSuccessMessageLoad(\n {\n contentId: undefined,\n },\n getTrackingForm(formResponse)\n );\n }, []);\n\n const screen: Steps = {\n title: ,\n fields: ,\n };\n return (\n \n );\n};\n","import { Breakpoints, BreakpointWrapper, Container, ContainerPadding, styled, Text, TokenTextAppearance, } from '@volkswagen-onehub/components-core';\nimport React, { useEffect, useState } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { useWindowHeight } from '@react-hook/window-size';\nimport { OneFormState } from 'src/types';\nimport { getVilmaAssetsLegacy } from 'src/bff';\nimport { MultipleCTASelection, ImageCarNoColorBG } from 'src/components';\nimport { OneElementTemplateFullScreen, useFaContent, useGetIdVehicle } from 'src/feature-app';\nimport { CTAsSiNo } from 'src/feature-app/InputsValues/CTAsObjects';\nimport { strTitlelize } from 'src/helpers';\n\nconst LayoutWrapper = styled.div`\n @media all and (min-width: 960px) {\n display: flex;\n }\n`;\n\nconst InfoWrapper = styled.div`\n width: 100%;\n padding-left: var(--size-grid002);\n padding-right: var(--size-grid002);\n @media all and (min-width: 960px) {\n display: flex;\n justify-content: center;\n flex-direction: column;\n width: var(--size-grid012);\n padding-left: var(--size-grid002);\n padding-right: 0;\n padding-top: 0;\n }\n @media all and (min-width: 1280px) {\n padding-left: var(--size-grid003);\n }\n @media all and (min-width: 1600px) {\n padding-left: var(--size-grid002);\n }\n`;\n\nexport const FirstStepCEMVentaProducto = () => {\n const { formData } = useSelector((state: OneFormState) => state);\n const dispatch = useDispatch();\n const [model, setModel] = useState(null);\n const { concesion } = formData.fields;\n const [imageSrc, setImageSrc] = useState(null);\n const [dataVilma, setDataVilma] = useState(null);\n const idVehicle = useGetIdVehicle();\n const idVehicleModel = idVehicle.DESC_Model__c;\n //const isElectrico = idVehicle.DESC_Model__c.substring(0, 2) == 'ID';\n const frame = idVehicle.Frame__c.trim();\n const urlParams = new URLSearchParams(window.location.search);\n const modelUrl = urlParams.get('model');\n const faContent = useFaContent();\n const height = useWindowHeight();\n\n const dataVilmaRequest = async () => {\n const data = await getVilmaAssetsLegacy(frame);\n //Respuesta cuando el bastidor no es correcto {message: 'No image found for VIN [WVWZZZAUZLW025556]', context: 'the requested image is not available'}\n if(data && data.status === 200) {\n setDataVilma(data.data.content);\n }\n };\n\n useEffect(() => {\n if (!dataVilma || !dataVilma.assets) {\n setImageSrc(null);\n } else if (dataVilma) {\n const Front_Left = dataVilma.assets.find((e: any) => e.view === 'Front_Left');\n Front_Left === undefined ? setImageSrc(null) : setImageSrc(Front_Left.url);\n }\n }, [dataVilma]);\n\n useEffect(() => {\n if (idVehicleModel !== 'null') {\n setModel(idVehicleModel);\n dataVilmaRequest();\n } else if (modelUrl) {\n setModel(modelUrl);\n dispatch({ type: 'UPDATE_FIELDS', payload: { modelo: modelUrl } });\n } else {\n setModel(null);\n }\n }, []);\n\n\tconst BodyCopy = () => {\n\t\treturn (\n\t\t\t<>\n\t\t\t\t\n\t\t\t\t\t<>\n\t\t\t\t\t\tSegún nuestros registros compraste un nuevo {model} en nuestro punto de venta {strTitlelize(concesion)} hace 3 meses.\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t<>\n\t\t\t\t\t\t¿Puedes confirmar que estos datos son correctos?\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t);\n\t};\n\n return (\n dataVilma && imageSrc ? (\n \n {\n height <= 600 ? null : (\n \n \n \n )\n }\n\n \n \n \n \n \n \n \n \n \n ) : (\n \n \n
\n }\n />\n )\n );\n};\n","import { Breakpoints, Layout, LayoutRowGap, Text } from '@volkswagen-onehub/components-core';\nimport React from 'react';\nimport { CarlineSelect, PantallaNombreApellido, MultipleCTASelection, RatingStars, PantallaIntroduccionStars, DetalleMotivo, } from 'src/components';\nimport { Steps } from 'src/types';\nimport { CTAsSiNo } from 'src/feature-app/InputsValues/CTAsObjects';\nimport { ChecksEnvio, ctasCheckEnvio } from 'src/forms/Cem/ChecksEnvio';\nimport { ConfirmacionCem } from 'src/forms/Cem/ConfirmacionCem';\nimport { FirstStepCEMVentaProducto } from './FirstStepCEMVentaProducto';\n\nenum CemSteps {\n\tDatosCorrectos,\n\tDatosIncorrectos,\n\tModelo,\n\tConfirmacionConcesion,\n\tExplicacion,\n\n\t// begin random\n\tSatisfaccionDiseno, // Q1\n\tSatisfaccionDisenoMotivo,\n\tSatisfaccionUso, // Q2\n\tSatisfaccionUsoMotivo,\n\tSatisfaccionTecnologia, // Q3\n\tSatisfaccionTecnologiaMotivo,\n\tSatisfaccionCalidad, // Q4\n\tSatisfaccionCalidadMotivo,\n\tSatisfaccionConduccion, // Q5\n\tSatisfaccionConduccionMotivo,\n\t// end random\n\tSatisfaccionElectrico, // Q6\n\tSatisfaccionElectricoMotivo,\n\tSatisfaccionGeneral, // Q7\n\tSatisfaccionGeneralMotivo,\n\tSatisfaccionGeneralPlusMotivo,\n\tSatisfaccionSoporte, // Q8\n\n\tEnviarConcesion,\n\tDatosPersonales,\n\tPublicarRespuestas,\n\tConfirmacion,\n}\n\nfunction OneElementTemplateFullScreen(props: any) {\n\tconst { element, allowOverflowingContent } = props;\n\t\n\treturn (\n\t\t\n\t\t\t{element}\n\t\t\n\t);\n}\n\n\nexport const getStepsVentaProducto = (isElectrico?: boolean) => {\n\nconst ctaDatosIncorrectos = [\n { label: 'Marca incorrecta', value: 'Marca' },\n { label: 'Modelo incorrecto', value: 'Modelo' },\n { label: 'Punto de venta incorrecto', value: 'Instalación' },\n { label: 'Persona de contacto incorrecta', value: 'Contacto' },\n];\n\nconst firstStep = {\n\tfields: ,\n\tscreenIndex: CemSteps.DatosCorrectos,\n\tname: 'DatosCorrectos',\n\talternateTitle: ¿Puedes confirmar que estos datos son correctos?,\n\toutputs: ['datosCorrectos'],\n\toutputsText: ['datosCorrectos'],\n\ttrueOrFalseQuestion: true,\n};\n\nconst confirmacionDatos = {\n\ttitle: (\n\t\t<>\n\t\t\tPor favor, ¿puedes confirmarnos qué dato no es correcto?\n\t\t\n\t),\n\tfields: (\n\t\t}\n\t\t/>\n\t),\n\tscreenIndex: CemSteps.DatosIncorrectos,\n\tname: 'DatosIncorrectos',\n\toutputs: ['datosIncorrectos'],\n\toutputsText: ['datosIncorrectos'],\n};\n\nconst compraVehiculo = {\n\ttitle: ¿Has comprado tu nuevo coche en [Concesionario]?,\n\tfields: (\n\t\t}\n\t\t/>\n\t),\n\tscreenIndex: CemSteps.ConfirmacionConcesion,\n\tname: 'ConfirmacionConcesion',\n\toutputs: ['confirmacionConcesion'],\n\toutputsText: ['confirmacionConcesion'],\n};\n\nconst modeloCorrecto = {\n\ttitle: ¿Cuál es el modelo correcto?,\n\tfields: (\n\t\t\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t}\n\t\t/>\n\t),\n\tscreenIndex: CemSteps.Modelo,\n\tname: 'Modelo',\n\toutputs: ['modelo'],\n\toutputsText: ['modelo'],\n};\n\nconst inicio = {\n\ttitle: (\n\t\t<>\n\t\t\tA continuación, por favor,{' '}\n\t\t\t\n\t\t\t\tindica tu nivel de satisfacción con aspectos de tu nuevo coche.\n\t\t\t\n\t\t\n\t),\n\tfields: ,\n\tscreenIndex: CemSteps.Explicacion,\n\tname: 'Explicacion',\n};\n\nconst preguntaMotivo = ¿Cuál es la razón por la que has dado esta puntuación?;\nconst recomendacionMotivo = 'Por favor, no menciones nombres propios, direcciones, números de teléfono o descripciones que permitan identificarte a ti o a nuestros empleados.';\n\nconst Q1 = {\n\ttitle: ¿Qué puntuación le das al diseño, tanto interior como exterior?,\n\tfields: (\n\t\t\n\t\t\t}\n\t\t/>\n\t),\n\tscreenIndex: CemSteps.SatisfaccionDiseno,\n\tname: 'SatisfaccionDiseno',\n\toutputs: ['satisfaccionDiseno'],\n\toutputsText: ['satisfaccionDiseno'],\n\toutputsIsStars: true,\n};\n\nconst C1 = {\n\ttitle: preguntaMotivo,\n\tfields: (\n\t\t\n\t\t\t}\n\t\t/>\n\t),\n\tscreenIndex: CemSteps.SatisfaccionDisenoMotivo,\n\tname: 'SatisfaccionDisenoMotivo',\n\toutputs: ['satisfaccionDisenoMotivo'],\n\toutputsText: ['satisfaccionDisenoMotivo'],\n};\n\nconst Q2 = {\n\ttitle: ¿Te parece cómodo y fácil de conducir?,\n\tfields: (\n\t\t\n\t\t\t}\n\t\t/>\n\t),\n\tscreenIndex: CemSteps.SatisfaccionUso,\n\tname: 'SatisfaccionUso',\n\toutputs: ['satisfaccionUso'],\n\toutputsText: ['satisfaccionUso'],\n\toutputsIsStars: true,\n};\n\nconst C2 = {\n\ttitle: preguntaMotivo,\n\tfields: (\n\t\t\n\t\t\t}\n\t\t/>\n\t),\n\tscreenIndex: CemSteps.SatisfaccionUsoMotivo,\n\tname: 'SatisfaccionUsoMotivo',\n\toutputs: ['satisfaccionUsoMotivo'],\n\toutputsText: ['satisfaccionUsoMotivo'],\n};\n\nconst Q3 = {\n\ttitle: ¿Cómo valoras el software y funciones de conectividad de tu vehículo?,\n\tfields: (\n\t\t\n\t\t\t}\n\t\t/>\n\t),\n\tscreenIndex: CemSteps.SatisfaccionTecnologia,\n\tname: 'SatisfaccionTecnologia',\n\toutputs: ['satisfaccionTecnologia'],\n\toutputsText: ['satisfaccionTecnologia'],\n\toutputsIsStars: true,\n};\n\nconst C3 = {\n\ttitle: preguntaMotivo,\n\tfields: (\n\t\t\n\t\t\t}\n\t\t/>\n\t),\n\tscreenIndex: CemSteps.SatisfaccionTecnologiaMotivo,\n\tname: 'SatisfaccionTecnologiaMotivo',\n\toutputs: ['satisfaccionTecnologiaMotivo'],\n\toutputsText: ['satisfaccionTecnologiaMotivo'],\n};\n\nconst Q4 = {\n\ttitle: ¿Cómo de satisfecho estás con la calidad de tu Volkswagen?,\n\tfields: (\n\t\t\n\t\t\t}\n\t\t/>\n\t),\n\tscreenIndex: CemSteps.SatisfaccionCalidad,\n\tname: 'SatisfaccionCalidad',\n\toutputs: ['satisfaccionCalidad'],\n\toutputsText: ['satisfaccionCalidad'],\n\toutputsIsStars: true,\n};\n\nconst C4 = {\n\ttitle: preguntaMotivo,\n\tfields: (\n\t\t\n\t\t\t}\n\t\t/>\n\t),\n\tscreenIndex: CemSteps.SatisfaccionCalidadMotivo,\n\tname: 'SatisfaccionCalidadMotivo',\n\toutputs: ['satisfaccionCalidadMotivo'],\n\toutputsText: ['satisfaccionCalidadMotivo'],\n};\n\nconst Q5 = {\n\ttitle: ¿Qué puntuación le darías a la experiencia de conducción con tu nuevo coche?,\n\tfields: (\n\t\t\n\t\t\t}\n\t\t/>\n\t),\n\tscreenIndex: CemSteps.SatisfaccionConduccion,\n\tname: 'SatisfaccionConduccion',\n\toutputs: ['satisfaccionConduccion'],\n\toutputsText: ['satisfaccionConduccion'],\n\toutputsIsStars: true,\n};\n\nconst C5 = {\n\ttitle: preguntaMotivo,\n\tfields: (\n\t\t\n\t\t\t}\n\t\t/>\n\t),\n\tscreenIndex: CemSteps.SatisfaccionConduccionMotivo,\n\tname: 'SatisfaccionConduccionMotivo',\n\toutputs: ['satisfaccionConduccionMotivo'],\n\toutputsText: ['satisfaccionConduccionMotivo'],\n};\n\nconst Q6 = {\n\ttitle: ¿Cómo de satisfecho estás con el proceso de carga en casa y en lugares públicos?,\n\tfields: (\n\t\t\n\t\t\t}\n\t\t/>\n\t),\n\tscreenIndex: CemSteps.SatisfaccionElectrico,\n\tname: 'SatisfaccionElectrico',\n\toutputs: ['satisfaccionElectrico'],\n\toutputsText: ['satisfaccionElectrico'],\n\toutputsIsStars: true,\n};\n\nconst C6 = {\n\ttitle: preguntaMotivo,\n\tfields: (\n\t\t\n\t\t\t}\n\t\t/>\n\t),\n\tscreenIndex: CemSteps.SatisfaccionElectricoMotivo,\n\tname: 'SatisfaccionElectricoMotivo',\n\toutputs: ['satisfaccionElectricoMotivo'],\n\toutputsText: ['satisfaccionElectricoMotivo'],\n};\n\nconst Q7 = {\n\ttitle: ¿Y cómo de satisfecho estás con tu nuevo Volkswagen en general?,\n\tfields: (\n\t\t\n\t\t\t}\n\t\t/>\n\t),\n\tscreenIndex: CemSteps.SatisfaccionGeneral,\n\tname: 'SatisfaccionGeneral',\n\toutputs: ['satisfaccionGeneral'],\n\toutputsText: ['satisfaccionGeneral'],\n\toutputsIsStars: true,\n};\n\nconst C7 = {\n\ttitle: preguntaMotivo,\n\tfields: (\n\t\t\n\t\t\t}\n\t\t/>\n\t),\n\tscreenIndex: CemSteps.SatisfaccionGeneralMotivo,\n\tname: 'SatisfaccionGeneralMotivo',\n\toutputs: ['satisfaccionGeneralMotivo'],\n\toutputsText: ['satisfaccionGeneralMotivo'],\n};\n\nconst C7Plus = {\n\ttitle: ¿Hay algo más que te gustaría comentarnos sobre tu experiencia con tu Volkswagen?,\n\tfields: (\n\t\t\n\t\t\t}\n\t\t/>\n\t),\n\tscreenIndex: CemSteps.SatisfaccionGeneralPlusMotivo,\n\tname: 'SatisfaccionGeneralPlusMotivo',\n\toutputs: ['satisfaccionGeneralPlusMotivo'],\n\toutputsText: ['satisfaccionGeneralPlusMotivo'],\n};\n\nconst Q8 = {\n\ttitle: ¿Cuál es tu nivel de satisfacción con la ayuda que te hemos dado desde la entrega de tu vehículo?,\n\tfields: (\n\t\t\n\t\t\t}\n\t\t/>\n\t),\n\tscreenIndex: CemSteps.SatisfaccionSoporte,\n\tname: 'SatisfaccionSoporte',\n\toutputs: ['satisfaccionSoporte'],\n\toutputsText: ['satisfaccionSoporte'],\n\toutputsIsStars: true,\n};\n\nconst enviarConcesion = {\n\ttitle: (\n\t\t<>\n\t\t\tFinalmente nos gustaría saber si{' '}\n\t\t\t\n\t\t\t\tpodemos enviar tus respuestas junto con tu nombre\n\t\t\t\n\t\t\t{' '}al punto de venta [Concesionario] y el bastidor del vehículo, y puedan usarlos para análisis adicionales.\n\t\t\n\t),\n\tfields: } />,\n\tscreenIndex: CemSteps.EnviarConcesion,\n\tname: 'EnviarConcesion',\n\toutputs: ['enviarConcesion'],\n\toutputsText: ['enviarConcesion'],\n\tctas: ctasCheckEnvio(false, true)\n};\n\nconst datosPersonales = {\n\ttitle: (\n\t\t<>\n\t\t\tPor favor, introduce o comprueba tus datos:\n\t\t\n\t),\n\tfields: (\n\t\t\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t}\n\t\t/>\n\t),\n\tscreenIndex: CemSteps.DatosPersonales,\n\tname: 'DatosPersonales',\n\toutputs: ['name', 'surname', 'secondSurname'],\n\toutputsText: ['name', 'surname', 'secondSurname'],\n};\n\nconst confirmacion = {\n\tfields: ,\n\tscreenIndex: CemSteps.Confirmacion,\n\tname: 'Confirmacion',\n\toutputs: ['confirmacion'],\n\toutputsText: ['confirmacion'],\n};\n\nconst steps: Steps[] = [\n\tfirstStep,\n\tconfirmacionDatos,\n\tcompraVehiculo,\n\tmodeloCorrecto,\n\tinicio,\n\tQ1,\n\tC1,\n\tQ2,\n\tC2,\n\tQ3,\n\tC3,\n\tQ4,\n\tC4,\n\tQ5,\n\tC5,\n\t// position #15\n\tQ7,\n\tC7,\n\tC7Plus,\n\tQ8,\n\tenviarConcesion,\n\tdatosPersonales,\n\tconfirmacion,\n];\n\n\tif(isElectrico) {\n\t\tsteps.splice(15, 0, Q6, C6); // add electric question and comment\n\t}\n\nreturn steps;\n}","import React, { useEffect } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { useTrackingManager, getTrackingForm } from 'src/feature-app';\nimport { RenderController } from 'src/feature-app/Screen';\nimport { OneFormState, Steps, IdPerson } from 'src/types';\nimport { ThankYouTitle, ThankYouFields } from 'src/components';\n\ninterface ThankYouCemVentaProductoProps {\n idPerson: IdPerson;\n}\n\nexport function ThankYouCEMVentaProducto(props: ThankYouCemVentaProductoProps) {\n const { idPerson } = props;\n const {formResponse} = useSelector((state: OneFormState) => state.formInfo);\n const trackingManager = useTrackingManager();\n const dispatch = useDispatch();\n\n useEffect(() => {\n // Thank you page no es gestionado como un step pero sí lo haremos en la analítica. Por eso Modificamos formInfo después del submit y antes del RESET\n const screenIndexThankyou = formResponse.numberOfScreens; \n\n dispatch({ type: 'SET_FORM_SUBMITTED', payload: true });\n dispatch({ type: 'SET_FORM_INFO', payload: { step: { screenIndex: screenIndexThankyou, name: \"ThankYou\" } } });\n\n trackingManager.trackFormSubmissionSuccessMessageLoad(\n {\n contentId: undefined,\n },\n getTrackingForm(formResponse)\n );\n }, []);\n\n const title = '¡Muchas gracias por compartir tu experiencia' + (idPerson.Name ? ', ' + idPerson.Name : '') + '!';\n\n const screen: Steps = {\n title: ,\n fields: ,\n };\n return (\n \n );\n}\n","import React, { useEffect, useRef, useState } from 'react';\nimport { useDispatch, useSelector, useStore } from 'react-redux';\nimport { dpsSend } from 'src/bff';\nimport { FormController, useOneFormContext, isHighRating, isLowRating, isNoRating } from 'src/feature-app';\nimport { getParamsForm } from 'src/feature-app/get-params-form';\nimport { FormDataGroup, FormInfo, OneFormState, Steps } from 'src/types';\nimport { formatHeaders, formDataBuilder } from 'src/forms/format-fields';\nimport { addRemovedStep, getArrayOfStepsNames, getIndexInSteps, removeMultipleStepsAndResetScreenIndex, resetStepsScreenIndex, } from 'src/forms/helpers/add-remove-steps';\nimport { DpsData } from 'src/feature-service/es-oneform-core-feature-service/types';\nimport { IdOrder, IdPerson, IdVehicle, IdDealer } from 'src/types';\nimport { sanitizeKvps, checkUndefinedsInData, handleDescWrongData, formatSinRespuestaValue } from 'src/forms/Cem/helpers';\nimport { strTitlelize } from 'src/helpers';\nimport { LastQuestionFlow, LegalesCEM, LegalesSinConsentimientosCEM } from 'src/forms/Cem';\nimport { getStepsVentaProducto, ThankYouCEMVentaProducto } from 'src/forms/Cem/CEMVentaProducto/';\n\n\nexport interface CEMVentaProductoFormProps {\n idOrder?: IdOrder;\n idPerson: IdPerson;\n idVehicle: IdVehicle;\n idDealer?: IdDealer;\n dpsData: DpsData;\n installation?: IdDealer;\n}\n\nexport function CEMVentaProductoForm(props: CEMVentaProductoFormProps) {\n const { idOrder, idPerson, idVehicle, idDealer, dpsData, installation } = props;\n const { initializeForm, handleNextStep, handleShowFinalScreen, setShowPreviousStep, handleScreenChange } =\n useOneFormContext();\n const { formData } = useSelector((state: OneFormState) => state);\n const store = useStore();\n const dispatch = useDispatch();\n const [loading, setLoading] = useState(false);\n\n const urlParams = new URLSearchParams(window.location.search);\n const adviser = urlParams.get('adviser');\n const pincode = urlParams.get('pincode');\n const agency = urlParams.get('agency');\n\n const {\n datosCorrectos,\n datosIncorrectos,\n confirmacionConcesion,\n satisfaccionDiseno,\n satisfaccionUso,\n satisfaccionTecnologia,\n satisfaccionCalidad,\n satisfaccionConduccion,\n satisfaccionGeneral,\n satisfaccionElectrico,\n modelo,\n enviarConcesion,\n masPreguntas,\n } = formData.fields;\n\n const isElectrico = idVehicle.DESC_Model__c.substring(0, 2) == 'ID';\n\n const modeloRef = useRef(null); // Necesitamos almacenar el modelo ya que cada vez que el usuario selecciona un modelo se modifican los steps, por lo que necesitamos una referencia para saber que modelo hay que sustituir.\n\n const NuevoFormData: Partial = {\n headers: {\n DESC_BRAND: 'VW',\n DESC_CAMPAIGNBLOCK: 'B19',\n DESC_FORM_DETAIL: 'CEM Venta Producto',\n DESC_FORMOBJECTIVE: 'Encuesta',\n DESC_GDPR_ADAPTED: 'true',\n DESC_ID_CAMPAIGN: 'PENDIENTE',\n DESC_TOKEN: 'VW_DDB_FRM_CEM_PRODUCTO2024',\n DESC_WAID_LITERA: '',\n },\n fields: {\n name: idPerson.FirstName,\n surname: idPerson.LastName,\n secondSurname: idPerson.TXT_2_Surname__c,\n concesion: installation ? installation.TXT_V_Installation_Data_Name__c : idDealer ? idDealer.Name : '',\n lssiPincode: idPerson.LSSI__c,\n formName: 'cem-venta-producto',\n formType: 'otherform',\n pageCategory: 'Encuesta'\n }, // Analítica\n };\n\n const sendForm = (): Promise => {\n const { formData }: OneFormState = store.getState();\n\n const { fields, headers } = formData;\n\n return new Promise(async (resolve, reject) => {\n const { tc, today, url, device } = getParamsForm();\n\n const data = {\n ...formatHeaders(headers),\n 'headers[COD_FORM_ID]': `vw-oneform-${fields.formName}`,\n 'headers[DESC_DEVICETYPE]': device,\n 'headers[DESC_ID_CLIMAPRO]': idPerson.ID_Person_DIM_IMP__c,\n 'headers[DESC_ID_VEHICLE_CLIMAPRO]': idVehicle.IDClimapro__c,\n 'headers[DESC_URLORIGIN]': url,\n 'headers[FECHA_INSERTION_DATE]': today,\n 'headers[PINCODE]': pincode,\n 'headers[TC]': tc,\n\n 'flags[FLAG_CONF_DATA]': fields.datosCorrectos ? fields.datosCorrectos : fields.datosIncorrectos ? 'false' : 'true',\n 'flags[ES_AGENCIA]': agency ? agency == 'AGENCIA' ? 'true' : 'false' : null,\n\n 'fields[DESC_ANONYMOUS]': fields.enviarConcesion,\n 'fields[DESC_AUXFIELD1]': fields.confirmacionConcesion ? (fields.confirmacionConcesion == 'true' ? '1' : '2') : null,\n 'fields[DESC_AUXFIELD2]': fields.publicarRespuestas == '1' ? 'PERMITE' : 'NO PERMITE',\n\n 'fields[TRADICIONAL_AGENCIA]': agency,\n 'fields[DAT_REGISTRATION_DATE]': idOrder.DAT_delivery__c ? idOrder.DAT_delivery__c.substring(0, 10) + ' 12:00:00' : '',\n 'fields[DESC_ACTUAL_VEHICLE_MODEL]': fields.modelo ? fields.modelo : null,\n 'fields[COD_ACTUAL_VEHICLE_MODEL]': idVehicle.DESC_Model__c ? idVehicle.DESC_Model__c : dpsData.model ? dpsData.model : null,\n 'fields[DESC_ADDRESS]': idPerson.FORM_Full_Address__c,\n 'fields[DESC_DEALER_CODE_KVPS]': sanitizeKvps(installation.TXT_V_KVPS_code__c),\n 'fields[DESC_DEALER_CODE]': installation. TXT_Code_Concession__c,\n 'fields[DESC_DEALER]': installation.TXT_V_Installation_Data_Name__c,\n 'fields[DESC_EMAIL_ADDRESS]': idPerson.TXT_Email__c,\n 'fields[DESC_EMPLOYEE_ID]': adviser,\n 'fields[DESC_FORM_VERSION]': `vw-oneform-${fields.formName}-${process.env.VERSION}`,\n 'fields[DESC_FRAME]': idVehicle.Frame__c,\n 'fields[DESC_LOPD_GDPR_PERFILADO]': fields.tmk ? fields.tmk : 'NO INFORMADO',\n 'fields[DESC_LOPD]': 'PERMITE',\n 'fields[DESC_LSSI]': fields.lssi ? fields.lssi : 'NO INFORMADO',\n 'fields[DESC_NAME]': fields.name,\n 'fields[DESC_NUMBER_ORDER]': idOrder.IDClimapro__c,\n 'fields[DESC_POSTAL_CODE]': idPerson.TXT_Postal_Code__c,\n 'fields[DESC_PROVINCE]': idPerson.TXT_Province__c,\n 'fields[DESC_SURNAME_1]': fields.surname,\n 'fields[DESC_SURNAME_2]': fields.secondSurname,\n 'fields[DESC_TRANF_DATA_THIRD]': 'NO INFORMADO',\n 'fields[DESC_VEH_PLATE]': idVehicle.Registration__c,\n 'fields[DESC_WRONG_DATA]': handleDescWrongData(fields.datosIncorrectos),\n 'fields[NUM_PHONE]': idPerson.NUM_Phone_mobile__c,\n\n 'fields[DESC_AUXFIELD3]': formatSinRespuestaValue(fields.satisfaccionDiseno),\n 'fields[DESC_AUXFIELD4]': formatSinRespuestaValue(fields.satisfaccionDisenoMotivo),\n 'fields[DESC_AUXFIELD5]': formatSinRespuestaValue(fields.satisfaccionUso),\n 'fields[DESC_AUXFIELD6]': formatSinRespuestaValue(fields.satisfaccionUsoMotivo),\n 'fields[DESC_AUXFIELD7]': formatSinRespuestaValue(fields.satisfaccionTecnologia),\n 'fields[DESC_AUXFIELD8]': formatSinRespuestaValue(fields.satisfaccionTecnologiaMotivo),\n 'fields[DESC_AUXFIELD9]': formatSinRespuestaValue(fields.satisfaccionCalidad),\n 'fields[DESC_AUXFIELD10]': formatSinRespuestaValue(fields.satisfaccionCalidadMotivo),\n 'fields[DESC_AUXFIELD11]': formatSinRespuestaValue(fields.satisfaccionConduccion),\n 'fields[DESC_AUXFIELD12]': formatSinRespuestaValue(fields.satisfaccionConduccionMotivo),\n 'fields[DESC_AUXFIELD13]': formatSinRespuestaValue(fields.satisfaccionElectrico),\n 'fields[DESC_AUXFIELD14]': formatSinRespuestaValue(fields.satisfaccionElectricoMotivo),\n 'fields[CEM_Q06]': formatSinRespuestaValue(fields.satisfaccionGeneral),\n 'fields[CEM_C06]': formatSinRespuestaValue(fields.satisfaccionGeneralMotivo),\n 'fields[CEM_C05]': formatSinRespuestaValue(fields.satisfaccionGeneralPlusMotivo),\n 'fields[DESC_AUXFIELD15]': formatSinRespuestaValue(fields.satisfaccionSoporte),\n };\n\n if (!fields.datosIncorrectos || fields.datosCorrectos == \"true\") {\n delete data['fields[DESC_WRONG_DATA]'];\n }\n\n const dataStringified = JSON.stringify(data);\n const dataParsed = JSON.parse(dataStringified);\n\n const formData = formDataBuilder(dataParsed);\n\n checkUndefinedsInData(data, 'Venta');\n const response = await dpsSend(formData);\n\n if (response && response.data && response.data.content && response.data.content.code === '200') {\n dispatch({ type: 'SET_FORM_RESPONSE', payload: response.data });\n resolve(true);\n } else {\n resolve(false);\n }\n });\n };\n\n /**\n * Se extrae la lógica para poder utilizarla por separado sin tener que usar las funciones de loading o updateSteps\n * ya que hay una pregunta en la que podemos eliminar y añadir un step en el mismo paso.\n * @param stepsToAdd\n * @param alternativeSteps\n * @returns\n */\n const addingStepsLogic = (stepsToAdd: string[], alternativeSteps?: Steps[]) => {\n const { steps: actualSteps, screenIndex } = store.getState().formInfo;\n const stepsToUse = alternativeSteps ? alternativeSteps : actualSteps;\n // Hay que revertir los steps para que se añadan en el orden correcto\n const indexesInSteps = stepsToAdd.reverse().map((step) => getIndexInSteps(stepsToUse, step));\n let newSteps = [...stepsToUse];\n\n indexesInSteps.forEach((index, i) => {\n if (index === -1) {\n newSteps = addRemovedStep(getStepsVentaProducto(isElectrico), stepsToUse, stepsToAdd[i], screenIndex);\n }\n });\n const finalSteps = resetStepsScreenIndex(newSteps);\n return finalSteps;\n };\n\n const addSteps = (stepsToAdd: string[]) => {\n setLoading(true);\n\n const finalSteps = addingStepsLogic(stepsToAdd);\n updateSteps(finalSteps);\n handleNextStep();\n\n setLoading(false);\n };\n\n const removeSteps = (stepsToDelete: string[]) => {\n const { steps } = store.getState().formInfo;\n setLoading(true);\n const finalSteps = removeMultipleStepsAndResetScreenIndex(steps, stepsToDelete);\n updateSteps(finalSteps);\n setLoading(false);\n };\n\n const updateSteps = (steps: Steps[]) => {\n dispatch({ type: 'UPDATE_STEPS', payload: steps });\n dispatch({ type: 'UPDATE_LAST_STEP', payload: steps[steps.length - 1] });\n dispatch({ type: 'SET_NUMBER_OF_SCREENS', payload: steps.length });\n };\n\n const replaceWithLeadInfo = (string: string) => {\n return string\n .replace('[Modelo]', idVehicle.DESC_Model__c ? idVehicle.DESC_Model__c : dpsData.model ? dpsData.model : 'Volkswagen')\n .replace('[Marca]', idVehicle.PKL_order_brand__c)\n .replace('[Concesionario]', strTitlelize(installation ? installation.TXT_V_Installation_Data_Name__c : idDealer ? idDealer.Name : ''));\n };\n\n const replaceModelo = (string: string) => {\n if (modeloRef.current) {\n return string.replace(modeloRef.current, modelo);\n } else {\n return string.replace(idVehicle.DESC_Model__c, modelo);\n }\n };\n\n const modifyTitleSteps = (steps: Steps[], replaceCallback: (s: string) => string) => {\n return steps.map((step) => {\n if (!step.title) return step;\n if (Array.isArray(step.title.props.children)) {\n step.title.props.children = step.title.props.children.map((child: any) => {\n if (typeof child === 'object') {\n if (typeof child.props.children === 'object') {\n child.props.children.props.children = replaceCallback(child.props.children.props.children);\n } else {\n child.props.children = replaceCallback(child.props.children);\n }\n } else {\n child = replaceCallback(child);\n }\n return child;\n });\n } else if (typeof step.title.props.children === 'object') {\n step.title.props.children.props.children = replaceCallback(step.title.props.children.props.children);\n } else {\n step.title.props.children = replaceCallback(step.title.props.children);\n }\n return step;\n });\n };\n\n const getOrderStep = (order: number, Q1: number, Q2: number, Q3: number, Q4: number, Q5: number) => {\n if(order === 1) {\n return Q1;\n }\n if(order === 2) {\n return Q2;\n }\n if(order === 3) {\n return Q3;\n }\n if(order === 4) {\n return Q4;\n }\n if(order === 5) {\n return Q5;\n }\n return null;\n };\n\n const shuffle = (array: number[]): number[] => array.sort(() => Math.random() - 0.5);\n\n /**\n * El orden de los primeros rating tiene que ser aleatorio.\n * @param steps\n */\n const randomizeSteps = (steps: Steps[]): Steps[] => {\n const Q1 = getIndexInSteps(steps, 'SatisfaccionDiseno');\n const C1 = getIndexInSteps(steps, 'SatisfaccionDisenoMotivo');\n\n const Q2 = getIndexInSteps(steps, 'SatisfaccionUso');\n const C2 = getIndexInSteps(steps, 'SatisfaccionUsoMotivo');\n\n const Q3 = getIndexInSteps(steps, 'SatisfaccionTecnologia');\n const C3 = getIndexInSteps(steps, 'SatisfaccionTecnologiaMotivo');\n\n const Q4 = getIndexInSteps(steps, 'SatisfaccionCalidad');\n const C4 = getIndexInSteps(steps, 'SatisfaccionCalidadMotivo');\n\n const Q5 = getIndexInSteps(steps, 'SatisfaccionConduccion');\n const C5 = getIndexInSteps(steps, 'SatisfaccionConduccionMotivo');\n\n let newSteps = [...steps];\n const [random1, random2, random3, random4, random5] = shuffle([1, 2, 3, 4, 5]);\n const randomStep1 = getOrderStep(random1, Q1, Q2, Q3, Q4, Q5);\n const randomStep2 = getOrderStep(random2, Q1, Q2, Q3, Q4, Q5);\n const randomStep3 = getOrderStep(random3, Q1, Q2, Q3, Q4, Q5);\n const randomStep4 = getOrderStep(random4, Q1, Q2, Q3, Q4, Q5);\n const randomStep5 = getOrderStep(random5, Q1, Q2, Q3, Q4, Q5);\n newSteps[Q1] = steps[randomStep1];\n newSteps[C1] = steps[randomStep1 + 1];\n newSteps[Q2] = steps[randomStep2];\n newSteps[C2] = steps[randomStep2 + 1];\n newSteps[Q3] = steps[randomStep3];\n newSteps[C3] = steps[randomStep3 + 1];\n newSteps[Q4] = steps[randomStep4];\n newSteps[C4] = steps[randomStep4 + 1];\n newSteps[Q5] = steps[randomStep5];\n newSteps[C5] = steps[randomStep5 + 1];\n //console.log('orden', [random1, random2, random3, random4, random5]);\n return newSteps;\n };\n\n const getFormInfo = (steps: Steps[]) => {\n const newSteps = modifyTitleSteps(steps, replaceWithLeadInfo);\n const randomizedSteps = randomizeSteps(newSteps);\n\n return {\n firstStep: randomizedSteps[0],\n lastStep: randomizedSteps[randomizedSteps.length - 1],\n stepsHistory: [0],\n numberOfScreens: randomizedSteps.length,\n newSteps: randomizedSteps,\n };\n };\n\n //\n // Lógica para modificar el flujo del formulario\n //\n\n useEffect(() => {\n if (modelo) {\n const pastSteps = store.getState().formInfo.steps;\n const newSteps = modifyTitleSteps(pastSteps, replaceModelo);\n modeloRef.current = modelo;\n updateSteps(newSteps);\n }\n }, [modelo]);\n\n useEffect(() => {\n if (datosCorrectos === 'true') {\n const steps = store.getState().formInfo.steps;\n const modelo = getIndexInSteps(steps, 'Modelo');\n // En el caso de elegir que los datos son incorrectos, llegar a confirmación y volver atrás hay que regenerar todos los pasos.\n if (modelo === -1) {\n const initialSteps = store.getState().formInfo.initialSteps;\n const finalSteps = removeMultipleStepsAndResetScreenIndex(initialSteps, ['DatosIncorrectos', 'Modelo', 'ConfirmacionConcesion']);\n updateSteps(finalSteps);\n } else {\n removeSteps(['DatosIncorrectos', 'Modelo', 'ConfirmacionConcesion']);\n }\n } else if (datosCorrectos === 'false') {\n addSteps(['DatosIncorrectos', 'Modelo']);\n }\n }, [datosCorrectos]);\n\n useEffect(() => {\n if (datosIncorrectos === 'Marca' || datosIncorrectos === 'Contacto') {\n const pastSteps = store.getState().formInfo.steps;\n const newsteps = [pastSteps[0], pastSteps[1], pastSteps[pastSteps.length - 1]];\n const finalSteps = resetStepsScreenIndex(newsteps);\n updateSteps(finalSteps);\n }\n if (datosIncorrectos === 'Instalación') {\n const initialSteps = store.getState().formInfo.initialSteps;\n const finalSteps = removeMultipleStepsAndResetScreenIndex(initialSteps, ['Modelo']);\n updateSteps(finalSteps);\n }\n if (datosIncorrectos === 'Modelo') {\n const initialSteps = store.getState().formInfo.initialSteps;\n const finalSteps = removeMultipleStepsAndResetScreenIndex(initialSteps, ['ConfirmacionConcesion']);\n updateSteps(finalSteps);\n }\n }, [datosIncorrectos]);\n\n useEffect(() => {\n if (confirmacionConcesion === 'false') {\n const pastSteps = store.getState().formInfo.steps;\n const newsteps = [pastSteps[0], pastSteps[1], pastSteps[2], pastSteps[pastSteps.length - 1]];\n const finalSteps = resetStepsScreenIndex(newsteps);\n updateSteps(finalSteps);\n } else if (confirmacionConcesion === 'true') {\n const initialSteps = store.getState().formInfo.initialSteps;\n const finalSteps = removeMultipleStepsAndResetScreenIndex(initialSteps, ['Modelo']);\n updateSteps(finalSteps);\n }\n }, [confirmacionConcesion]);\n\n useEffect(() => {\n if (!enviarConcesion) {\n return;\n }\n if (enviarConcesion === '1') {\n addSteps(['DatosPersonales']);\n } else {\n removeSteps(['DatosPersonales']);\n }\n }, [enviarConcesion]);\n\n useEffect(() => {\n if (!masPreguntas) {\n return;\n }\n\n if (masPreguntas === 'true') {\n const stepNames = getArrayOfStepsNames(getStepsVentaProducto(isElectrico), 'MasPreguntas', 'EnviarConcesion');\n addSteps(stepNames);\n } else if (masPreguntas === 'false') {\n const { steps } = store.getState().formInfo;\n const stepNames = getArrayOfStepsNames(steps, 'MasPreguntas', 'EnviarConcesion');\n removeSteps(stepNames);\n }\n }, [masPreguntas]);\n\n /**\n * Se tiene que de manera consecutiva y no mediante las otras funciones porque si no, se actualizan los steps\n * dos veces y en el segundo paso (añadir o eliminar el otro step) se hace siempre sobre los steps antiguos y\n * no funciona de la manera esperada.\n *\n * @param stepToRemove\n * @param stepToAdd\n */\n const removeAndAddStepAtTheSameTime = (stepToRemove: string, stepToAdd: string) => {\n const { steps } = store.getState().formInfo;\n setLoading(true);\n const removedSteps = removeMultipleStepsAndResetScreenIndex(steps, [stepToRemove]);\n const addedSteps = addingStepsLogic([stepToAdd], removedSteps);\n const finalSteps = resetStepsScreenIndex(addedSteps);\n handleNextStep();\n updateSteps(finalSteps);\n setLoading(false);\n };\n\n const handleShowMotivo = (nameOfMotivoStep: string, value?: string, ) => {\n if(value) {\n if(Number(value) == -1) value = 'Sin respuesta';\n if (isLowRating(value)) {\n addSteps([nameOfMotivoStep]);\n } else if (isHighRating(value) || isNoRating(value)) {\n removeSteps([nameOfMotivoStep]);\n }\n }\n };\n\n useEffect(() => {\n handleShowMotivo('SatisfaccionDisenoMotivo', satisfaccionDiseno);\n handleShowMotivo('SatisfaccionUsoMotivo', satisfaccionUso);\n handleShowMotivo('SatisfaccionTecnologiaMotivo', satisfaccionTecnologia);\n handleShowMotivo('SatisfaccionCalidadMotivo', satisfaccionCalidad);\n handleShowMotivo('SatisfaccionConduccionMotivo', satisfaccionConduccion);\n\t\tif(isElectrico) {\n\t\t\thandleShowMotivo('SatisfaccionElectricoMotivo', satisfaccionElectrico);\n\t\t}\n\n\t\t// Verificamos que se han contestado todas y...\n if(!satisfaccionDiseno || !satisfaccionUso || !satisfaccionTecnologia || !satisfaccionCalidad || !satisfaccionConduccion) {\n return;\n }\n\n\t\t// ...verificamos que no estamos antes del step satisfaccionGeneral\n\t\tconst screenIndex = store.getState().formInfo.screenIndex;\n\t\tif( (isElectrico && screenIndex < 7) || (!isElectrico && screenIndex < 6) ) {\n\t\t\treturn;\n\t\t}\n\n const ratings = [satisfaccionDiseno, satisfaccionUso, satisfaccionTecnologia, satisfaccionCalidad, satisfaccionConduccion];\n if(isElectrico) ratings.push(satisfaccionElectrico);\n\n const { mostrarQlast1, mostrarQlast2 } = LastQuestionFlow(ratings, satisfaccionGeneral);\n\n if (mostrarQlast1 && mostrarQlast2){\n addSteps(['SatisfaccionGeneralMotivo', 'SatisfaccionGeneralPlusMotivo']);\n }\n if(!mostrarQlast1 && !mostrarQlast2) {\n removeSteps(['SatisfaccionGeneralMotivo', 'SatisfaccionGeneralPlusMotivo']);\n }\n if (!mostrarQlast1 && mostrarQlast2) {\n removeAndAddStepAtTheSameTime('SatisfaccionGeneralMotivo', 'SatisfaccionGeneralPlusMotivo');\n }\n if (mostrarQlast1 && !mostrarQlast2) {\n removeAndAddStepAtTheSameTime('SatisfaccionGeneralPlusMotivo', 'SatisfaccionGeneralMotivo');\n }\n\n }, [satisfaccionDiseno, satisfaccionUso, satisfaccionTecnologia, satisfaccionCalidad, satisfaccionConduccion, satisfaccionElectrico, satisfaccionGeneral]);\n\n\n useEffect(() => {\n if(!installation) return null;\n\n const { firstStep, lastStep, stepsHistory, numberOfScreens, newSteps } = getFormInfo(getStepsVentaProducto(isElectrico));\n\n const NuevoFormInfo: Partial = {\n formStarted: true,\n sendFormCallback: sendForm,\n fullScreen: firstStep.fullScreen ? true : false,\n lastStep,\n numberOfScreens,\n formTheme: 'main',\n notALayer: true,\n formType: 'inPage',\n screenIndex: firstStep.screenIndex,\n step: firstStep,\n steps: newSteps ? newSteps : getStepsVentaProducto(isElectrico),\n stepsHistory,\n thankYouComponent: ,\n hideLegal: idPerson.LSSI__c === 'PERMITE' ? true : false,\n };\n\n initializeForm(NuevoFormInfo, NuevoFormData);\n\n }, [installation]);\n\n return !loading ? : null;\n}\n","import React, { useEffect, useRef, useState } from 'react';\nimport { useDispatch } from 'react-redux';\nimport dayjs from 'dayjs';\nimport { DomainAttributesValues } from 'src';\nimport { getInstallations } from 'src/bff';\nimport { LoadingEncuestas } from 'src/components';\nimport { useFeatureServices, useFaContent, useTrackingManager } from 'src/feature-app';\nimport { DpsData, EsOneformCoreServiceV1 } from 'src/feature-service/es-oneform-core-feature-service/types';\nimport { GenericErrorLayer } from 'src/components/layers';\nimport { createPincodeEntity } from 'src/forms/dps-utils';\nimport { arrayToObject } from 'src/helpers';\nimport { sanitizeKvps } from 'src/forms/Cem/helpers';\nimport { CEMVentaProductoForm } from 'src/forms/Cem/CEMVentaProducto/CEMVentaProductoForm';\n\nexport function CEMVentaProductoController() {\n\tconst [loading, setLoading] = useState(true);\n\tconst [error, setError] = useState(false);\n\tconst [usado, setUsado] = useState(false);\n\tconst [caducado, setCaducado] = useState(false);\n\tconst today = dayjs(new Date());\n\n\tconst dpsDataRef = useRef(null);\n\tconst idPersonRef = useRef(null);\n\tconst idVehicleRef = useRef(null);\n\tconst idDealerRef = useRef(null);\n\tconst idOrderRef = useRef(null);\n\n\tconst [installation, setInstallation] = useState(null);\n\tconst [installations, setInstallations] = useState(null);\n\tconst [kvps, setKvps] = useState(null);\n\n\tconst oneFormService = useFeatureServices()['es:oneform-core'] as EsOneformCoreServiceV1;\n\tconst dispatch = useDispatch();\n\tconst faContent = useFaContent();\n\n\tconst handleNext = (value: any) => { };\n\tconst handleComplete = () => {\n\t\tconst dpsData = oneFormService.getDpsData();\n\n\t\tif (dpsData.pincode === null || dpsData.pincode.noPincodeFound || dpsData.pincode.pincodeError) {\n\t\t\thandleError();\n\t\t} else if (dpsData.pincode.pincodeUsed) {\n\t\t\tsetUsado(true);\n\t\t\tsetLoading(false);\n\t\t} else {\n\t\t\tconst idPerson = createPincodeEntity(dpsData, 'PERSON');\n\t\t\tconst idVehicle = createPincodeEntity(dpsData, 'VEHICLE');\n\t\t\tconst idDealer = createPincodeEntity(dpsData, 'DEALER');\n\t\t\tconst idOrder = createPincodeEntity(dpsData, 'ORDER');\n\n\t\t\tdpsDataRef.current = dpsData;\n\t\t\tidPersonRef.current = idPerson;\n\t\t\tidVehicleRef.current = idVehicle;\n\t\t\tidDealerRef.current = idDealer;\n\t\t\tidOrderRef.current = idOrder;\n\t\t\t\n\t\t\tconst envio = dpsData.env;\n\t\t\tif (!envio || today.diff(dayjs(envio), 'day') > 8) {\n\t\t\t\tsetCaducado(true);\n\t\t\t} else if(!installations) {\n\t\t\t\tgetInstallations('VW_DDB_FRM_LEM_REC_LEM', true).then((dealers) => {\n\t\t\t\t\tconst installationsDomainAtt = dealers.map((inst) => inst.attributes);\n\t\t\t\t\tsetInstallations(installationsDomainAtt);\n\n\t\t\t\t\tif(dpsData.kvps) {\n\t\t\t\t\t\tsetKvps(dpsData.kvps);\n\t\t\t\t\t}\n\t\t\t\t\telse if(typeof idDealer.TXT_V_KVPS_code__c != 'undefined'){\n\t\t\t\t\t\tsetKvps(idDealer.TXT_V_KVPS_code__c);\n\t\t\t\t\t}\n\t\t\t\t\telse if(typeof idDealer.TXT_V_KVPS_code__c != 'undefined') {\n\t\t\t\t\t\tsetKvps(sanitizeKvps(idDealer.TXT_V_KVPS_code__c))\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t\tsetLoading(false);\n\t\t}\n\t};\n\n\tuseEffect(() => {\n\t\tif (installations && kvps && !installation) {\n\t\t\tlet found = false;\n\t\t\tlet i = 0;\n\t\t\twhile (i < installations.length && found === false) {\n\t\t\t\tconst found = installations[i].find((ele: DomainAttributesValues) => {\n\t\t\t\t\tif (\n\t\t\t\t\t\ttypeof ele.value != 'undefined' && typeof ele.name != 'undefined' && \n\t\t\t\t\t\tele.name.includes('KVPS') && // TXT_V_KVPS_code__c or TXT_V_KVPS_code__c\n\t\t\t\t\t\tele.value.includes(kvps)\n\t\t\t\t\t) {\n\t\t\t\t\t\treturn ele;\n\t\t\t\t\t}\n\t\t\t\t\treturn false;\n\t\t\t\t});\n\t\t\t\tif (found) {\n\t\t\t\t\tlet installation = arrayToObject(installations[i]);\n\t\t\t\t\t// Parche para SAFA\n\t\t\t\t\tif (installation.TXT_V_KVPS_code__c == '00494' || installation.TXT_V_Installation_Data_Name__c == 'SAFA FUENGIROLA') {\n\t\t\t\t\t\tinstallation.TXT_V_Installation_Data_Name__c = 'SAFAMOTOR';\n\t\t\t\t\t}\n\t\t\t\t\tsetInstallation(installation);\n\t\t\t\t}\n\t\t\t\ti++;\n\t\t\t}\n\t\t}\n\t}, [installations, kvps]);\n\n\tconst handleError = () => {\n\t\tsetError(true);\n\t\tsetLoading(false);\n\t};\n\n\tuseEffect(() => {\n\t\tconst oneFormCoreDpsIsLoaded = oneFormService.getLoadedState();\n\n\t\toneFormCoreDpsIsLoaded.subscribe({\n\t\t\tnext(value) {\n\t\t\t\thandleNext(value);\n\t\t\t},\n\t\t\terror(err) {\n\t\t\t\tconsole.error(err);\n\t\t\t\thandleError();\n\t\t\t},\n\t\t\tcomplete() {\n\t\t\t\thandleComplete();\n\t\t\t},\n\t\t});\n\t}, []);\n\n\tif (loading) {\n\t\treturn ;\n\t} else if (error) {\n\t\treturn (\n\t\t\t<>\n\t\t\t\t\n\t\t\t\n\t\t);\n\t} else if (caducado) {\n\t\treturn (\n\t\t\t<>\n\t\t\t\t\n\t\t\t\n\t\t);\n\t} else if (usado) {\n\t\treturn (\n\t\t\t<>\n\t\t\t\t\n\t\t\t\n\t\t);\n\t} else {\n\t\treturn (\n\t\t\t\n\t\t);\n\t}\n}\n","import React, { useEffect, useRef, useState } from 'react';\nimport { useFeatureServices, useFaContent, useTrackingManager } from 'src/feature-app';\nimport { DpsData, EsOneformCoreServiceV1 } from 'src/feature-service/es-oneform-core-feature-service/types';\nimport { CEMSegundaEntregaForm, NoMeInteresaCEMSegundaEntrega } from 'src/forms/Cem/CEMSegundaEntrega';\nimport { GenericErrorLayer } from 'src/components/layers';\nimport { createPincodeEntity } from 'src/forms/dps-utils';\nimport { getInstallationsLegacy } from 'src/bff';\nimport { DomainAttributesValues } from 'src';\nimport { LoadingEncuestas } from 'src/components';\nimport { arrayToObject } from 'src/helpers';\n\n\nexport function CEMSegundaEntregaController() {\n\tconst [loading, setLoading] = useState(true);\n\tconst [error, setError] = useState(false);\n\tconst [usado, setUsado] = useState(false);\n\tconst [interes, setInteres] = useState(false);\n\n\tconst [idPerson, setIdPerson] = useState(null);\n\tconst [idVehicle, setIdVehicle] = useState(null);\n\tconst [idDealer, setIdDealer] = useState(null);\n\tconst [idOrder, setIdOrder] = useState(null);\n\n\tconst [installationCode, setInstallationCode] = useState(null);\n\tconst [dealer, setDealer] = useState(null);\n\tconst [dealers, setDealers] = useState(null);\n\tconst [allDealers, setAllDealers] = useState(null);\n\n\tconst oneFormService = useFeatureServices()['es:oneform-core'] as EsOneformCoreServiceV1;\n\n\tconst handleNext = (value: any) => { };\n\tconst handleComplete = () => {\n\t\tconst dpsData = oneFormService.getDpsData();\n\n\t\tif (dpsData.pincode === null || dpsData.pincode.noPincodeFound || dpsData.pincode.pincodeError) {\n\t\t\thandleError();\n\t\t} else if (dpsData.pincode.pincodeUsed) {\n\t\t\tsetUsado(true);\n\t\t\tsetLoading(false);\n\t\t} else {\n\t\t\tsetIdPerson(createPincodeEntity(dpsData, 'PERSON'));\n\t\t\tsetIdVehicle(createPincodeEntity(dpsData, 'VEHICLE'));\n\t\t\tsetIdDealer(createPincodeEntity(dpsData, 'DEALER'));\n\t\t\tsetIdOrder(createPincodeEntity(dpsData, 'ORDER'));\n\n\t\t\tsetInteres(dpsData.interes === 'true');\n\n\t\t\tif(dpsData.dealer) {\n\t\t\t\tsetInstallationCode(dpsData.dealer);\n\t\t\t}\n\t\t\telse if(typeof idDealer.TXT_V_Installation_Code__c != 'undefined'){\n\t\t\t\tsetInstallationCode(idDealer.TXT_V_Installation_Code__c);\n\t\t\t}\n\t\t\telse if(typeof idDealer.TXT_Code_Concession__c != 'undefined') {\n\t\t\t\tsetInstallationCode(idDealer.TXT_Code_Concession__c)\n\t\t\t}\n\n\t\t\tsetLoading(false);\n\t\t}\n\t};\n\n\t// Obtenemos todas las instalaciones\n\tuseEffect(() => {\n\t\tif (installationCode && !allDealers) {\n\t\t\tgetInstallationsLegacy().then((dealers) => {\n\t\t\t\tconst allDealers = dealers.map((inst) => inst.attributes);\n\t\t\t\tsetAllDealers(allDealers);\n\t\t\t});\n\t\t} \n\t}, [installationCode]);\n\n\t// Guardamos la instalacion por codigo de instalacion\n\tuseEffect(() => {\n\t\tif (allDealers && !dealer) {\n\t\t\tfor (const d of allDealers) {\n\t\t\t\td.find((ele: DomainAttributesValues) => {\n\t\t\t\t\tif (\n\t\t\t\t\t\ttypeof ele.value != 'undefined' && typeof ele.name != 'undefined' &&\n\t\t\t\t\t\t(ele.name.includes('Installation_Code') || ele.name.includes('DealerCode')) && // TXT_V_Installation_Code__c or TXT_Code_Concession__c\n\t\t\t\t\t\tele.value.includes(installationCode)\n\t\t\t\t\t) {\n\t\t\t\t\t\tsetDealer(arrayToObject(d));\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t};\n\t\t}\n\t}, [allDealers]);\n\n\t// Guardamos grupo de instalaciones por nombre concesion\n\tuseEffect(() => {\n\t\tif (dealer && !dealers) {\n\t\t\tconst dealers = [];\n\t\t\tfor (const d of allDealers) {\n\t\t\t\td.find((ele: DomainAttributesValues) => {\n\t\t\t\t\tif (\n\t\t\t\t\t\ttypeof ele.value != 'undefined' && \n\t\t\t\t\t\ttypeof ele.name != 'undefined' &&\n\t\t\t\t\t\tele.name == 'TXT_V_Installation_Data_Name__c' && \n\t\t\t\t\t\tele.value == dealer.TXT_V_Installation_Data_Name__c\n\t\t\t\t\t) {\n\t\t\t\t\t\tdealers.push(arrayToObject(d));\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t};\n\t\t\tsetDealers(dealers);\n\t\t}\n\t}, [dealer]);\n\n\tconst handleError = () => {\n\t\tsetError(true);\n\t\tsetLoading(false);\n\t};\n\n\tuseEffect(() => {\n\t\tconst oneFormCoreDpsIsLoaded = oneFormService.getLoadedState();\n\n\t\toneFormCoreDpsIsLoaded.subscribe({\n\t\t\tnext(value) {\n\t\t\t\thandleNext(value);\n\t\t\t},\n\t\t\terror(err) {\n\t\t\t\tconsole.error(err);\n\t\t\t\thandleError();\n\t\t\t},\n\t\t\tcomplete() {\n\t\t\t\thandleComplete();\n\t\t\t},\n\t\t});\n\t}, []);\n\n\tif (loading) {\n\t\treturn ;\n\t} else if (error) {\n\t\treturn (\n\t\t\t<>\n\t\t\t\t\n\t\t\t\n\t\t);\n\t} else if (usado) {\n\t\treturn (\n\t\t\t<>\n\t\t\t\t\n\t\t\t\n\t\t);\n\t}\n\telse {\n\t\treturn (\n\t\t\t<>\n\t\t\t\t{interes ? (\n\t\t\t\t\t\n\t\t\t\t) : (\n\t\t\t\t\t\n\t\t\t\t)}\n\t\t\t\n\t\t);\n\t}\n}\n","import { Text } from '@volkswagen-onehub/components-core';\nimport React, { useEffect } from 'react';\nimport { useDispatch, useSelector, useStore } from 'react-redux';\nimport { yumiwiSend } from 'src/bff';\nimport { IdPerson, IdVehicle, IdDealer, IdOrder } from 'src/types';\nimport { DetalleMotivo, MultipleOptionCTAs, MultipleCTASelection, ContactInfoWrapper, Telefono } from 'src/components';\nimport { FormController, useOneFormContext } from 'src/feature-app';\nimport { OneElementTemplateFullScreen } from 'src/feature-app/Screen';\nimport { FormDataGroup, FormInfo, OneFormState, Steps } from 'src/types';\nimport { formDataBuilder } from '../../format-fields';\nimport { DealerCEMSegundaEntrega, CitaCEMSegundaEntrega, ThankYouCEMSegundaEntrega, ConfirmacionCEMSegundaEntrega, getData } from 'src/forms/Cem/CEMSegundaEntrega';\nimport { sanitizeKvps } from 'src/forms/Cem/helpers';\nimport { addRemovedStep, getIndexInSteps, removeStep, resetStepsScreenIndex } from '../../helpers/add-remove-steps';\n\nexport interface CEMSegundaEntregaFormProps {\n\tgetDealer: IdDealer;\n\tdealers?: [IdDealer];\n\tidPerson: IdPerson;\n\tidVehicle: IdVehicle;\n\tidDealer: IdDealer;\n\tidOrder: IdOrder;\n}\n\nexport enum CEMSegundaEntregaSteps {\n\tTipoConsulta,\n\tDetalleConsulta,\n\tTipoContacto,\n\tConfirmacionTelefono,\n\tSeleccionDealer,\n\tCalendario,\n\tConfirmacion,\n}\n\nexport function CEMSegundaEntregaForm(props: CEMSegundaEntregaFormProps) {\n\tconst {\n\t\tgetDealer,\n\t\tdealers,\n\t\tidPerson,\n\t\tidVehicle,\n\t\tidDealer,\n\t\tidOrder\n\t} = props;\n\tconst { initializeForm, handleNextStep } = useOneFormContext();\n\tconst { formData } = useSelector((state: OneFormState) => state);\n\tconst store = useStore();\n\tconst dispatch = useDispatch();\n\n\t// Definición de steps\n\n\tconst isElectrico = idVehicle.DESC_Model__c.substring(0, 2) == 'ID';\n\n\tconst CTAsTipoConsulta = [\n\t\t{ label: 'Acabados y funcionalidades', value: 'Acabados y funcionalidades' },\n\t\t{ label: 'Ayuda a la conducción', value: 'Ayuda a la conducción' },\n\t\t{ label: isElectrico? 'Carga y autonomía' : 'Consumo de combustible', value: isElectrico? 'Carga y autonomía' : 'Consumo de combustible' },\n\t\t{ label: 'Conexión a internet y apps', value: 'Conexión a internet y apps' },\n\t\t{ label: 'Garantía y mantenimiento', value: 'Garantía y mantenimiento' },\n\t\t{ label: 'Otros', value: 'Otros' },\n\t];\n\n\tconst CTAsTipoContacto = [\n\t\t{ label: 'Llamada', value: 'Teléfono' },\n\t\t{ label: 'Videollamada', value: 'Videollamada' },\n\t\t{ label: 'Visita en el punto de venta', value: 'Visita' },\n\t];\n\n\tconst steps: Steps[] = [\n\t\t{\n\t\t\ttitle: (\n\t\t\t\t<>\n\t\t\t\t\t¿Sobre qué \n\t\t\t\t\tquieres hablar con tu experto?\n\t\t\t\t\n\t\t\t),\n\t\t\tfields: (\n\t\t\t\t}\n\t\t\t\t/>\n\t\t\t),\n\t\t\tscreenIndex: CEMSegundaEntregaSteps.TipoConsulta,\n\t\t\tname: 'TipoConsulta',\n\t\t\toutputs: ['tipoConsulta'],\n\t\t\toutputsText: ['tipoConsulta'],\n\t\t},\n\t\t{\n\t\t\ttitle: (\n\t\t\t\t<>\n\t\t\t\t\t¿Nos das \n\t\t\t\t\tmás detalles?\n\t\t\t\t\t\n\t\t\t\t\t\t*\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t),\n\t\t\tfields: } />,\n\t\t\tscreenIndex: CEMSegundaEntregaSteps.DetalleConsulta,\n\t\t\tname: 'DetalleConsulta',\n\t\t\toutputs: ['detalleConsulta'],\n\t\t\toutputsText: ['detalleConsulta'],\n\t\t},\n\t\t{\n\t\t\ttitle: (\n\t\t\t\t<>\n\t\t\t\t\t¿Cómo \n\t\t\t\t\tprefieres que sea la cita?\n\t\t\t\t\n\t\t\t),\n\t\t\tfields: (\n\t\t\t\t}\n\t\t\t\t/>\n\t\t\t),\n\t\t\tscreenIndex: CEMSegundaEntregaSteps.TipoContacto,\n\t\t\tname: 'TipoContacto',\n\t\t\toutputs: ['tipoContacto'],\n\t\t\toutputsText: ['tipoContacto'],\n\t\t\tctas: CTAsTipoContacto,\n\t\t},\n\t\t{\n\t\t\ttitle: (\n\t\t\t\t<>\n\t\t\t\t\t{idPerson.FirstName}, ¿nos podrías confirmar tus datos de contacto?\n\t\t\t\t\n\t\t\t),\n\t\t\tfields: (\n\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t),\n\t\t\tscreenIndex: CEMSegundaEntregaSteps.ConfirmacionTelefono,\n\t\t\tname: 'ConfirmacionTelefono',\n\t\t\toutputs: ['cellphone'],\n\t\t\toutputsText: ['cellphone'],\n\t\t},\n\t\t{\n\t\t\ttitle: (\n\t\t\t\t<>\n\t\t\t\t\t¿A qué punto de venta quieres ir?\n\t\t\t\t\n\t\t\t),\n\t\t\tfields: (\n\t\t\t\t\n\t\t\t),\n\t\t\tscreenIndex: CEMSegundaEntregaSteps.SeleccionDealer,\n\t\t\tname: 'SeleccionDealer',\n\t\t\toutputs: ['installation-complete'],\n\t\t\toutputsText: ['installation-complete'],\n\t\t},\n\t\t{\n\t\t\ttitle: (\n\t\t\t\t<>\n\t\t\t\t\t¿Y cuándo \n\t\t\t\t\tte va mejor?\n\t\t\t\t\n\t\t\t),\n\t\t\tfields: (\n\t\t\t\t\n\t\t\t),\n\t\t\tscreenIndex: CEMSegundaEntregaSteps.Calendario,\n\t\t\tname: 'Calendario',\n\t\t\toutputs: ['fechaCita', 'horaCita'],\n\t\t\toutputsText: ['fechaCita', 'horaCita'],\n\t\t},\n\t\t{\n\t\t\tfields: ,\n\t\t\tscreenIndex: CEMSegundaEntregaSteps.Confirmacion,\n\t\t\tname: 'Confirmacion',\n\t\t\toutputs: ['confirmacion'],\n\t\t\toutputsText: ['confirmacion'],\n\t\t},\n\t];\n\n\n\t// Lógica para:\n\t// añadir DetalleConsulta si TipoConsulta contiene Otros\n\t// añadir ConfirmacionTelefono si TipoContacto es Teléfono o Videollamada o SeleccionDealer si es Visita\n\n\tconst { tipoConsulta, tipoContacto } = formData.fields;\n\n\tuseEffect(() => {\n\t\tif (tipoConsulta) {\n\t\t\tupdateSteps('DetalleConsulta', tipoConsulta.includes(\"Otros\"));\n\t\t};\n\t\tif (tipoContacto) {\n\t\t\tupdateSteps('ConfirmacionTelefono', tipoContacto == \"Teléfono\" || tipoContacto == \"Videollamada\");\n\t\t\tupdateSteps('SeleccionDealer', tipoContacto == \"Visita\");\n\t\t};\n\t}, [tipoConsulta, tipoContacto]);\n\n\n\tconst updateSteps = (stepName: string, conditional: boolean) => {\n\t\tconst { steps: actualSteps, screenIndex } = store.getState().formInfo;\n\t\tlet newSteps = [...actualSteps];\n\t\tif (conditional) {\n\t\t\tconst stepIndex = getIndexInSteps(newSteps, stepName);\n\n\t\t\tif (stepIndex === -1) {\n\t\t\t\tnewSteps = addRemovedStep(steps, actualSteps, stepName, screenIndex);\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\thandleNextStep();\n\t\t\t\t}, 0);\n\t\t\t}\n\t\t} else {\n\t\t\tnewSteps = removeStep(newSteps, stepName);\n\t\t}\n\n\t\tconst newStepsWithIndex = resetStepsScreenIndex(newSteps);\n\n\t\tdispatch({ type: 'UPDATE_STEPS', payload: newStepsWithIndex });\n\t\tdispatch({ type: 'UPDATE_LAST_STEP', payload: newStepsWithIndex[newStepsWithIndex.length - 1] });\n\t\tdispatch({ type: 'SET_NUMBER_OF_SCREENS', payload: newStepsWithIndex.length });\n\t};\n\n\n\t// Datos de envío\n\n\tconst CEMSegundaEntregaData: Partial = {\n\t\theaders: {},\n\t\tfields: {\n\t\t\tname: idPerson.FirstName,\n\t\t\tsurname: idPerson.LastName,\n\t\t\tsecondSurname: idPerson.TXT_2_Surname__c,\n\t\t\temail: idPerson.TXT_Email__c,\n\t\t\tcellphone: idPerson.NUM_Phone_mobile__c,\n\t\t\tformName: 'cem-segunda_entrega-invitacion',\n\t\t\tformType: 'otherform',\n\t\t\tpageCategory: 'Encuesta',\n\t\t}, // Analítica\n\t};\n\n\tconst sendForm = (): Promise => {\n\t\tconst { formData }: OneFormState = store.getState();\n\t\tconst { fields } = formData;\n\n\t\treturn new Promise(async (resolve, reject) => {\n\n\t\t\tconst sendData = getData(idPerson, idVehicle, idDealer, idOrder, getDealer);\n\n\t\t\tif (fields.cellphone) sendData['fields[NUM_PHONE]'] = fields.cellphone;\n\t\t\tif (fields.seleccionDealer) {\n\t\t\t\tfor (const dealer of dealers) {\n\t\t\t\t\tif (dealer.TXT_Code_Concession__c == fields.seleccionDealer) {\n\t\t\t\t\t\tsendData['fields[DESC_DEALER]'] = dealer.TXT_V_Installation_Data_Name__c;\n\t\t\t\t\t\tsendData['fields[DESC_DEALER_CODE]'] = dealer.TXT_Code_Concession__c;\n\t\t\t\t\t\tsendData['fields[DESC_DEALER_CODE_KVPS]'] = sanitizeKvps(dealer.TXT_V_KVPS_code__c);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tsendData['fields[DESC_AUXFIELD1]'] = true;\n\t\t\tsendData['fields[DESC_AUXFIELD2]'] = fields.tipoConsulta;\n\t\t\tsendData['fields[DESC_AUXFIELD3]'] = fields.detalleConsulta ? fields.detalleConsulta : '';\n\t\t\tsendData['fields[DESC_AUXFIELD4]'] = fields.tipoContacto;\n\t\t\tsendData['fields[CITA_PREVIA_DATE]'] = fields.fechaCita + ' ' + fields.horaCita;\n\t\t\tsendData['fields[CITA_PREVIA_PREFERRED_SCHEDULE]'] = fields.franjaHoraria;\n\t\t\tsendData['fields[DESC_LOPD_GDPR_PERFILADO]'] = fields.tmk ? fields.tmk : 'NO INFORMADO';\n\t\t\tsendData['fields[DESC_LSSI]'] = fields.lssi ? fields.lssi : 'NO INFORMADO';\n\n\t\t\tconst dataStringified = JSON.stringify(sendData);\n\t\t\tconst dataParsed = JSON.parse(dataStringified);\n\t\t\tconst formData = formDataBuilder(dataParsed);\n\t\t\tconst response = await yumiwiSend(formData);\n\n\t\t\tif (response && response.data && response.data.content && response.data.content.code === '200') {\n\t\t\t\tdispatch({ type: 'SET_FORM_RESPONSE', payload: response.data });\n\t\t\t\tresolve(true);\n\t\t\t} else {\n\t\t\t\tresolve(false);\n\t\t\t}\n\t\t});\n\t};\n\n\n\t// Inicialización del form\n\n\tconst getFormInfo = (): {\n\t\tfirstStep: Steps;\n\t\tlastStep: Steps;\n\t\tstepsHistory: number[];\n\t\tnumberOfScreens: number;\n\t\tnewSteps?: Steps[];\n\t} => {\n\t\treturn {\n\t\t\tfirstStep: steps[0],\n\t\t\tlastStep: steps[steps.length - 1],\n\t\t\tstepsHistory: [0],\n\t\t\tnumberOfScreens: steps.length,\n\t\t\tnewSteps: null,\n\t\t};\n\t};\n\n\tuseEffect(() => {\n\t\tconst { firstStep, lastStep, stepsHistory, numberOfScreens, newSteps } = getFormInfo();\n\n\t\tconst CEMSegundaEntregaInfo: Partial = {\n\t\t\tformStarted: true,\n\t\t\tsendFormCallback: sendForm,\n\t\t\tfullScreen: firstStep.fullScreen ? true : false,\n\t\t\tlastStep,\n\t\t\tnumberOfScreens,\n\t\t\tscreenIndex: firstStep.screenIndex,\n\t\t\tformTheme: 'main',\n\t\t\tnotALayer: true,\n\t\t\tformType: 'inPage',\n\t\t\tstep: firstStep,\n\t\t\tsteps: newSteps ? newSteps : steps,\n\t\t\tstepsHistory,\n\t\t\tthankYouComponent: ,\n\t\t};\n\t\tinitializeForm(CEMSegundaEntregaInfo, CEMSegundaEntregaData);\n\t}, [dealers]);\n\n\treturn steps ? : null;\n}","import React, { useEffect } from 'react';\nimport { useStore, useSelector, useDispatch } from 'react-redux';\nimport { OneFormState, IdDealer } from 'src/types';\nimport { Breakpoints, Text, Layout, Fieldset, RadioButton, Container, ContainerPadding } from '@volkswagen-onehub/components-core';\nimport { useOneFormContext } from 'src/feature-app/OneForm';\nimport { strTitlelize } from 'src/helpers';\n\ninterface DealerCEMSegundaEntregaProps {\n\tname: string;\n\tchecked: string;\n\tdealers?: [IdDealer];\n}\n\nexport const DealerCEMSegundaEntrega = (props: DealerCEMSegundaEntregaProps) => {\n\tconst {\n\t\tname,\n\t\tdealers,\n\t\tchecked\n\t} = props;\n\tconst dispatch = useDispatch();\n\tconst { handleNextStep } = useOneFormContext();\n\tconst { formData } = useSelector((state: OneFormState) => state);\n\tconst { fields } = formData;\n\n\tconst handleOnClick = (e: any, dealer: any) => {\n\t\tdispatch({ type: 'UPDATE_FIELDS', payload: { [name]: e.currentTarget.value } });\n\t\t//dispatch({ type: 'SET_DEALERS', payload: [dealer] });\n\t\t//dispatch({ type: 'SET_SELECTED_DEALER', payload: dealer });\n\t\t//dispatch({ type: 'SET_SELECTED_', payload: dealer });\n\t\t//dispatch({ type: 'SET_URL_DEALER', payload: dealer });\n\t\t//dispatch({ type: 'UPDATE_SUGGESTION', payload: dealer });\n\t\tdispatch({ type: 'SET_SELECTED_INSTALLATION', payload: dealer });\n\t\tdispatch({ type: 'DEALERS_OR_INSTALLATIONS_MODE', payload: 'installations' });\n\t\thandleNextStep(e);\n\t};\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t
\n\t\t\t\t\t{dealers ? dealers.map((dealer: IdDealer) => {\n\t\t\t\t\t\tconst value = strTitlelize(dealer.TXT_Code_Concession__c);\n\t\t\t\t\t\tconst label = <>\n\t\t\t\t\t\t\t{strTitlelize(dealer.TXT_V_Installation_Data_Name__c)}{' '}\n\t\t\t\t\t\t\t{strTitlelize(dealer.TXT_V_Address__c)}\n\t\t\t\t\t\t\t{dealer.TXT_V_Postal_Code__c} {strTitlelize(dealer.TXT_V_Location__c)}\n\t\t\t\t\t\t;\n\t\t\t\t\t\treturn ( {\n\t\t\t\t\t\t\t\thandleOnClick(e, dealer);\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tvalue={value}\n\t\t\t\t\t\t\tlabel={label}\n\t\t\t\t\t\t\tname={name}\n\t\t\t\t\t\t\tdefaultChecked={fields[name] ? fields[name] == value : checked == value}\n\t\t\t\t\t\t/>)\n\t\t\t\t\t}) : null}\n\t\t\t\t
\n\t\t\t
\n\t\t
\n\t);\n};","import { styled } from '@volkswagen-onehub/components-core';\n\nexport const GoBackWrapper = styled.div`\n padding-left: 20px;\n padding-top: 24px;\n padding-bottom: 3px;\n background-color: #ffffff;\n`;\nexport const GreyText = styled.span`\n color: '#6A767D';\n`;\nexport const CalendarHandlerWrapper = styled.div`\n width: 100%;\n display: flex;\n padding: 0 44px 5% 32px;\n justify-content: space-between;\n align-items: center;\n @media screen and (min-width: 560px) {\n padding: 44px 11% 32px;\n }\n @media screen and (min-width: 960px) {\n padding: 44px 11% 32px;\n }\n`;\nexport const AllDaysWrapper = styled.div`\n width: 100%;\n margin: auto;\n align-self: center;\n justify-self: center;\n margin-bottom: 44px;\n @media screen and (min-width: 560px) {\n width: 89%;\n }\n @media screen and (min-width: 960px) {\n width: 96%;\n margin-left: 32px;\n margin-rigth: 0;\n }\n`;\nexport const TabsWitdh = styled.div`\n width: 83vw;\n @media all and (min-width: 960px) {\n width: 660px;\n }\n`;\nexport const DividerC = styled.div`\n height: 1px;\n width: 100%;\n background-color: #dfe4e8;\n`;\nexport const DayPositionWrapper = styled.div`\n display: flex;\n justify-content: center;\n align-items: center;\n width: 100%;\n`;\ninterface DayWrapperProps {\n active?: any;\n presentDay?: any;\n disabled?: boolean;\n}\nexport const DayWrapper = styled.div`\n display: flex;\n justify-content: center;\n align-items: center;\n color: ${(props) => (props.active ? '#FFFFFF' : props.disabled ? '#dfe4e8' : '#001E50')};\n font-size: ${(props) => (props.presentDay ? '700' : null)};\n background-color: ${(props) => (props.active ? '#001E50' : null)};\n width: 40px;\n height: 40px;\n border-radius: 50%;\n cursor: ${(props) => (props.disabled ? 'default' : 'pointer')};\n\n @media screen and (min-width: 960px) {\n width: 44px;\n height: 44px;\n }\n`;\n\ninterface CapitalizeWrapperProps {\n hasTitle?: boolean;\n isDisabled: boolean;\n}\nexport const Capitalize = styled.span`\n text-transform: capitalize;\n color: ${(props) => (props.isDisabled ? '#E8DFE4' : '#001e50')};\n padding: ${(props) => (props.hasTitle ? null : '0 32px')};\n padding-top: ${(props) => (props.hasTitle ? null : '2px')};\n cursor: ${(props) => (props.isDisabled ? 'default' : 'pointer')};\n`;\n","import {\n\tBreakpoints,\n\tBreakpointWrapper,\n\tCTA,\n\tLayout,\n\tLayoutRowGap,\n\tText,\n\tTokenTextAppearance,\n\tTokenTextColor\n} from '@volkswagen-onehub/components-core';\nimport dayjs, { Dayjs } from 'dayjs';\nimport React, { useEffect, useRef, useState } from 'react';\nimport { OneFormState } from 'src/types';\nimport { useSelector, useDispatch } from 'react-redux';\nimport { ChevronLeft, ChevronRight } from 'src/icons-core-imports';\nimport { Day } from 'src/types';\nimport {\n\tAllDaysWrapper,\n\tCalendarHandlerWrapper,\n\tCapitalize,\n\tDayPositionWrapper,\n\tDayWrapper,\n\tGreyText\n} from './CalendarioCEMStyles';\n\ninterface CalendarioProps {\n\tname: string;\n\tpreselectedDay?: Dayjs;\n\tfromDate?: Dayjs;\n\ttoDate?: Dayjs;\n\toffsetStart?: number;\n\toffsetIgnoreDisables?: boolean;\n\tsaturdayDisabled?: boolean;\n\tsundayDisabled?: boolean;\n}\n\nexport function CalendarioCEM(props: CalendarioProps) {\n\tconst dispatch = useDispatch();\n\tconst today = dayjs(new Date());\n\tconst {\n\t\tname,\n\t\tpreselectedDay = today,\n\t\tfromDate = today, // primer dia seleccionable\n\t\ttoDate = dayjs().add(1, 'month').endOf('month'), // ultimo dia seleccionable\n\t\toffsetStart = 1, // incremento de dias desde fromDate\n\t\toffsetIgnoreDisables = false, // ignoramos incremento en los dias deshabilitados\n\t\tsaturdayDisabled = true, // deshabilitamos los sabados\n\t\tsundayDisabled = true // deshabilitamos los domingos\n\t} = props;\n\tconst { formData } = useSelector((state: OneFormState) => state);\n\tconst { fields } = formData;\n\tconst fieldDay = fields[name] ? dayjs(fields[name], 'YYYY-MM-DD') : null;\n\n\tconst weekDays = ['Lun', 'Mar', 'Mié', 'Jue', 'Vie', 'Sáb', 'Dom'];\n\tconst [monthDays, setMonthDays] = useState(null);\n\tconst [initDate, setInitDate] = useState(fromDate);\n\tconst [showMonth, setShowMonth] = useState(initDate);\n\tconst [selectedDay, setSelectedDay] = useState(preselectedDay);\n\tconst tabsRef = useRef(null);\n\n\n\tconst handleOffsetDays = () => {\n\t\tvar date = initDate;\n\t\t// Marcamos fecha inicial con offsetStart (e ignoramos disabled?)\n\t\tvar i = offsetStart;\n\t\twhile (i > 0) {\n\t\t\tif (offsetIgnoreDisables) i--;\n\t\t\telse if (saturdayDisabled && date.day() === 6 || sundayDisabled && date.day() === 0) {\n\t\t\t\t// no offset decrement\n\t\t\t}\n\t\t\telse i--;\n\t\t\t// Arrastramos preselectedDay un dia más\n\t\t\tif (preselectedDay && preselectedDay.isSameOrBefore(date, 'day')) {\n\t\t\t\tsetSelectedDay(date.add(1, 'day'));\n\t\t\t\tsetShowMonth(date);\n\t\t\t}\n\t\t\tdate = date.add(1, 'day');\n\t\t}\n\t\tsetInitDate(date);\n\n\t\tif (fieldDay && !fieldDay.isSame(selectedDay, 'day')) {\n\t\t\tsetSelectedDay(fieldDay);\n\t\t}\n\t};\n\n\tconst addOneDay = () => {\n\t\t// Arrastramos initDate y si hace falta preselectedDay un dia más\n\t\tif (preselectedDay && preselectedDay.isSameOrBefore(initDate, 'day')) {\n\t\t\tsetSelectedDay(initDate.add(1, 'day'));\n\t\t}\n\t\tsetInitDate(initDate.add(1, 'day'));\n\t\tsetShowMonth(initDate);\n\t}\n\n\tconst handleBuildCalendar = () => {\n\n\t\t// Si la fecha inicial es sabado y estas disabled, saltamos día\n\t\tif (saturdayDisabled && initDate.day() === 6) {\n\t\t\taddOneDay();\n\t\t\treturn;\n\t\t}\n\t\t// Si la fecha inicial es domingo y estas disabled, saltamos día\n\t\tif (sundayDisabled && initDate.day() === 0) {\n\t\t\taddOneDay();\n\t\t\treturn;\n\t\t}\n\n\t\tlet year = Number(showMonth.format('YYYY'));\n\t\tlet month = Number(showMonth.format('M')) - 1;\n\n\t\tconst firstDayOfMonth = dayjs().year(year).month(month).date(1);\n\t\tconst firstDayInweek = firstDayOfMonth.format('d'); // The day of the week, with Sunday as 0\n\t\tconst daysInMonth = dayjs().year(year).month(month).daysInMonth();\n\n\t\tlet days: Day[] = [];\n\n\t\t// Se genera una array con espacios vacios para rellenar la primera fila del calendario y sincronizarla con la columna del dia de la semana\n\t\tif (firstDayInweek === '0') {\n\t\t\tdays = new Array(6).fill('');\n\t\t} else {\n\t\t\tdays = new Array(parseInt(firstDayInweek) - 1).fill('');\n\t\t}\n\n\t\tlet date = firstDayOfMonth;\n\n\t\tfor (let i = 1; i <= daysInMonth; i++) {\n\t\t\tconst isActive = selectedDay ? selectedDay.isSame(date, 'day') : false;\n\t\t\tdays.push(createDay(date, isActive));\n\t\t\t// Increment 1 day\n\t\t\tdate = date.add(1, 'day');\n\t\t}\n\n\t\tsetMonthDays(days);\n\t};\n\n\tconst createDay = (date: Dayjs, active = false) => {\n\t\tconst day: Day = {\n\t\t\tdayNumber: date.format('D'), // 1 - 31\n\t\t\tdayOfTheWeek: date.format('d'), // 0 - 6\n\t\t\tdate: date.format('YYYY-MM-DD'),\n\t\t\tdisabled: isDateDisabled(date),\n\t\t\tactive: active,\n\t\t}\n\t\treturn day;\n\t}\n\n\tconst isDateDisabled = (date: any) => {\n\t\tif (sundayDisabled && date.day() === 0) {\n\t\t\treturn true;\n\t\t}\n\t\tif (saturdayDisabled && date.day() === 6) {\n\t\t\treturn true;\n\t\t}\n\t\tif (toDate && date.isAfter(toDate, 'day')) {\n\t\t\treturn true;\n\t\t}\n\t\tif (isLast4Day(date)) {\n\t\t\treturn true;\n\t\t}\n\n\t\treturn date.isBefore(initDate, 'day');\n\t};\n\n\tconst isLaborable = (date: any) => {\n\t\treturn date.day() >= 1 && date.day() <= 5;\n\t};\n\n\tconst isLast4Day = (date: any) => {\n\t\t// Cerrar calendario 4 dias laborables antes de terminar el mes\n\t\tlet lastDays = [];\n\t\tlet day;\n\t\tlet offset = 0;\n\t\twhile (lastDays.length < 4) {\n\t\t\tday = showMonth.endOf('month').subtract(offset, 'day');\n\t\t\tif (isLaborable(day)) {\n\t\t\t\tlastDays.push(day);\n\t\t\t}\n\t\t\toffset++;\n\t\t}\n\n\t\treturn lastDays.some(day => date.isSame(day, 'day'));\n\t};\n\n\tconst getOffsetMonth = (n: number) => {\n\t\tif (n > 0) {\n\t\t\treturn showMonth.locale('es').add(n, 'month');\n\t\t}\n\t\telse if (n < 0) {\n\t\t\treturn showMonth.locale('es').subtract(n * (-1), 'month');\n\t\t}\n\t\telse {\n\t\t\treturn showMonth.locale('es');\n\t\t}\n\t}\n\n\tuseEffect(() => { // Al inicio, realizar offsetDays\n\t\thandleOffsetDays();\n\t}, []);\n\n\tuseEffect(() => { // Build calendar\n\t\thandleBuildCalendar();\n\t}, [initDate, selectedDay, showMonth]);\n\n\tconst handleNextMonth = (e: any) => { // Carga del siguiente mes\n\t\te.preventDefault();\n\t\tsetShowMonth(getOffsetMonth(1));\n\t};\n\n\tconst handlePreviousMonth = (e: any) => { // Carga del anterior mes\n\t\te.preventDefault();\n\t\tsetShowMonth(getOffsetMonth(-1));\n\t};\n\n\tconst handleSelectDay = (day: Day) => {\n\t\tsetSelectedDay(dayjs(day.date, 'YYYY-MM-DD')); // dayjs object\n\t};\n\n\tuseEffect(() => {\n\t\tif (selectedDay) {\n\t\t\tdispatch({ type: 'UPDATE_FIELDS', payload: { [name]: selectedDay.format('YYYY-MM-DD') } });\n\t\t}\n\t}, [selectedDay]);\n\n\tconst previousMonthDisabled = showMonth.isBefore(initDate, 'day') || showMonth.isSame(initDate, 'month');\n\tconst nextMonthDisabled = toDate && showMonth.isAfter(toDate, 'day');\n\n\treturn (\n\t\t<>\n\t\t\t\n\t\t\t\t}\n\t\t\t\t/>\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{getOffsetMonth(-1).format('MMMM')}\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{showMonth.format('MMMM')} {showMonth.format('YYYY')}\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{getOffsetMonth(1).format('MMMM')}\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t}\n\t\t\t\t/>\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t{weekDays.map((day, index) => {\n\t\t\t\t\t\tif (index > 4) {\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t{day}\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t{day}\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t})}\n\t\t\t\t\t{monthDays ? (monthDays.map((day, index) => {\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\te.preventDefault();\n\n\t\t\t\t\t\t\t\t\t\tif (!day.disabled) {\n\t\t\t\t\t\t\t\t\t\t\tif (tabsRef && tabsRef.current) {\n\t\t\t\t\t\t\t\t\t\t\t\ttabsRef.current.scrollIntoView({ behavior: 'smooth' });\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\thandleSelectDay(day);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\tactive={day.active}\n\t\t\t\t\t\t\t\t\tdisabled={day.disabled}\n\t\t\t\t\t\t\t\t\tclassName=\"day-wrapper\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t{day.dayNumber}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t);\n\t\t\t\t\t})\n\t\t\t\t\t) : null}\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n}\n","import React from 'react';\nimport { Breakpoints, styled, Text, TextAlignment, Layout, Tabs, TokenTextAppearance } from '@volkswagen-onehub/components-core';\nimport { MultipleCTASelection } from 'src/components';\nimport { OneElementTemplateFullScreen } from 'src/feature-app/Screen';\nimport { Info } from '@volkswagen-onehub/icons-core';\nimport { CalendarioCEM } from 'src/forms/Cem/CEMSegundaEntrega/Calendario';\n\ninterface CitaCEMSegundaEntregaProps {\n\tfechaName: string;\n\thoraName: string;\n}\n\nexport const CitaCEMSegundaEntrega = (props: CitaCEMSegundaEntregaProps) => {\n\tconst {\n\t\tfechaName,\n\t\thoraName\n\t} = props;\n\n\tconst CalendarioContainer = styled.div`\n\t\tmargin-top: 50px;\n\t`;\n\tconst FranjaContainer = styled.div`\n\t\tmargin-top: 100px;\n\t`;\n\tconst HorasContainer = styled.div`\n\t\tmargin: 30px 0;\n\t`;\n\n\tconst CTAsHorasManana = [\n\t\t{ label: '10:00', value: '10:00' },\n\t\t{ label: '10:30', value: '10:30' },\n\t\t{ label: '11:00', value: '11:00' },\n\t\t{ label: '11:30', value: '11:30' },\n\t\t{ label: '12:00', value: '12:00' },\n\t\t{ label: '12:30', value: '12:30' },\n\t\t{ label: '13:00', value: '13:00' },\n\t];\n\n\tconst CTAsHorasTarde = [\n\t\t{ label: '16:00', value: '16:00' },\n\t\t{ label: '16:30', value: '16:30' },\n\t\t{ label: '17:00', value: '17:00' },\n\t\t{ label: '17:30', value: '17:30' },\n\t\t{ label: '18:00', value: '18:00' },\n\t\t{ label: '18:30', value: '18:30' },\n\t\t{ label: '19:00', value: '19:00' },\n\t];\n\n\tconst handleChangeFranja = (i) => {\n\t\tconst input1 = document.querySelectorAll(`input[name=${horaName}`)[i ? 0 : 1] as HTMLInputElement;\n\t\tinput1.disabled = true;\n\n\t\tconst input2 = document.querySelectorAll(`input[name=${horaName}`)[i] as HTMLInputElement;\n\t\tinput2.disabled = false;\n\t};\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\tSelecciona la franja horaria\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\thandleChangeFranja(index)\n\t\t\t\t\t}}>\n\t\t\t\t\t\t{{\n\t\t\t\t\t\t\ttitle: Mañana,\n\t\t\t\t\t\t\tcontent: } />,\n\t\t\t\t\t\t\tkey: 'MANANA'\n\t\t\t\t\t\t}}\n\t\t\t\t\t\t{{\n\t\t\t\t\t\t\ttitle: Tarde,\n\t\t\t\t\t\t\tcontent: } />,\n\t\t\t\t\t\t\tkey: 'TARDE'\n\t\t\t\t\t\t}}\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t La duración de la cita será de una hora aproximadamente.\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n};","import { getParamsForm } from 'src/feature-app/get-params-form';\nimport { sanitizeKvps } from 'src/forms/Cem/helpers';\nimport dayjs from 'dayjs';\n\nconst today = dayjs();\n\nconst urlParams = new URLSearchParams(window.location.search);\nconst adviser = urlParams.get('adviser');\nconst kvps = urlParams.get('kvps');\nconst pincode = urlParams.get('pincode');\n\nconst { tc, url, device } = getParamsForm();\n\nexport const getData = (idPerson, idVehicle, idDealer, idOrder, getDealer) => {\n\treturn {\n\t\t'headers[DESC_BRAND]': 'VW',\n\t\t'headers[DESC_CAMPAIGNBLOCK]': '1. VW On boarding',\n\t\t'headers[DESC_FORM_DETAIL]': 'CEM Segunda entrega',\n\t\t'headers[DESC_FORMOBJECTIVE]': 'Encuesta',\n\t\t'headers[DESC_GDPR_ADAPTED]': true,\n\t\t'headers[DESC_ID_CAMPAIGN]': '7017Q000000DYTfQAO',\n\t\t'headers[DESC_TOKEN]': 'VW_DDB_FRM_CEM_SEGUNDA_ENTREGA_INVITACION',\n\t\t'headers[DESC_WAID_LITERA]': '',\n\t\t'headers[COD_FORM_ID]': 'vw-oneform-cem-segunda_entrega-invitacion',\n\t\t'headers[DESC_DEVICETYPE]': device,\n\t\t'headers[DESC_ID_CLIMAPRO]': idPerson ? idPerson.ID_Person_DIM_IMP__c : '',\n\t\t'headers[DESC_ID_VEHICLE_CLIMAPRO]': idVehicle ? idVehicle.IDClimapro__c : '',\n\t\t'headers[DESC_URLORIGIN]': url,\n\t\t'headers[FECHA_INSERTION_DATE]': today,\n\t\t'headers[PINCODE]': pincode,\n\t\t'headers[TC]': tc,\n\n\t\t'fields[DESC_FORM_VERSION]': 'vw-oneform-cem-segunda_entrega-invitacion-' + process.env.VERSION,\n\t\t'fields[DESC_NUMBER_ORDER]': idOrder ? idOrder.IDClimapro__c : '',\n\t\t'fields[DAT_REGISTRATION_DATE]': idOrder ? idOrder.DAT_delivery__c.substring(0, 10) : '',\n\t\t'fields[DESC_ACTUAL_VEHICLE_MODEL]': idVehicle ? idVehicle.DESC_Model__c : '',\n\t\t'fields[DESC_VEH_PLATE]': idVehicle ? idVehicle.Registration__c : '',\n\t\t'fields[DESC_ADDRESS]': idPerson ? idPerson.FORM_Full_Address__c : '',\n\t\t'fields[DESC_DEALER]': getDealer ? getDealer.TXT_V_Installation_Data_Name__c : '',\n\t\t'fields[DESC_DEALER_CODE_KVPS]': getDealer ? sanitizeKvps(getDealer.TXT_V_KVPS_code__c) : '',\n\t\t'fields[DESC_DEALER_CODE]': getDealer ? getDealer.TXT_Code_Concession__c : '',\n\t\t'fields[DESC_EMPLOYEE_ID]': adviser,\n\t\t'fields[DESC_EMAIL_ADDRESS]': idPerson ? idPerson.TXT_Email__c : '',\n\t\t'fields[NUM_PHONE]': idPerson ? idPerson.NUM_Phone_mobile__c : '',\n\t\t'fields[DESC_FRAME]': idVehicle ? idVehicle.Frame__c : '',\n\t\t'fields[DESC_NAME]': idPerson ? idPerson.FirstName : '',\n\t\t'fields[DESC_SURNAME_1]': idPerson ? idPerson.LastName : '',\n\t\t'fields[DESC_SURNAME_2]': idPerson ? idPerson.TXT_2_Surname__c : '',\n\t\t'fields[DESC_PROVINCE]': idPerson ? idPerson.TXT_Province__c : '',\n\t\t'fields[DESC_POSTAL_CODE]': idPerson ? idPerson.TXT_Postal_Code__c : '',\n\t\t'fields[DESC_LOPD]': 'PERMITE',\n\t}\n};","import React, { useEffect, useState } from 'react';\nimport { CTA } from '@volkswagen-onehub/components-core';\nimport { useDispatch, useSelector, useStore } from 'react-redux';\nimport { RenderController } from 'src/feature-app/Screen';\nimport { OneFormState, Steps } from 'src/types';\nimport { ThankYouTitle, ThankYouFields } from 'src/components';\nimport { formDataBuilder } from '../../format-fields';\nimport { IdPerson, IdVehicle, IdDealer, IdOrder } from 'src/types';\nimport { dpsSend } from 'src/bff';\nimport { getData } from 'src/forms/Cem/CEMSegundaEntrega';\n\nexport interface NoInteresaCEMSegundaEntregaFormProps {\n\thandleError: () => void,\n\tgetDealer?: IdDealer;\n\tidPerson: IdPerson;\n\tidVehicle: IdVehicle;\n\tidDealer: IdDealer;\n\tidOrder: IdOrder;\n}\n\nexport function NoMeInteresaCEMSegundaEntrega (props: NoInteresaCEMSegundaEntregaFormProps) {\n\tconst { \n\t\thandleError, \n\t\tgetDealer,\n\t\tidPerson, \n\t\tidVehicle, \n\t\tidDealer, \n\t\tidOrder \n\t} = props;\n\tconst dispatch = useDispatch();\n\tconst { formData } = useSelector((state: OneFormState) => state);\n\tconst { fields } = formData;\n\tconst [ send, setSend ] = useState(false);\n\tconst [ sent, setSent ] = useState(false);\n\n\tconst sendForm = (): Promise => {\n\t\tsetSend(true);\n\t\treturn new Promise(async (resolve, reject) => {\n\n\t\t\tconst sendData = getData(idPerson, idVehicle, idDealer, idOrder, getDealer);\n\n\t\t\tsendData['fields[DESC_AUXFIELD1]'] = false;\n\t\t\tsendData['fields[DESC_LOPD_GDPR_PERFILADO]'] = fields.tmk ? fields.tmk : 'NO INFORMADO';\n\t\t\tsendData['fields[DESC_LSSI]'] = fields.lssi ? fields.lssi : 'NO INFORMADO';\n\t\t\n\t\t\tconst dataStringified = JSON.stringify(sendData);\n\t\t\tconst dataParsed = JSON.parse(dataStringified);\n\t\t\tconst formData = formDataBuilder(dataParsed);\n\t\t\tconst response = await dpsSend(formData);\n\n\t\t\tif (response && response.data && response.data.content && response.data.content.code === '200') {\n\t\t\t\tsetSent(true);\n\t\t\t} else {\n\t\t\t\thandleError();\n\t\t\t}\n\t\t});\n\t};\n\n\tuseEffect(() => {\n\t\tif(getDealer && !send) sendForm();\n\t}, [getDealer]);\n\n\tconst copyBook = <>\n\tSeguro que terminas conociendo tu Volkswagen como la palma de tu mano. Y siempre puedes contactarnos si tienes alguna duda.\n\t;\n\t\n\tconst screen: Steps = {\n\t\ttitle: ,\n\t\tfields: ,\n\t};\n\n\treturn (\n\t\tsent ? : null\n\t);\n};","import { Breakpoints, styled, Text, Layout, TokenTextAppearance } from '@volkswagen-onehub/components-core';\nimport React, { useEffect } from 'react';\nimport { LssiTkmQuestions, PoliticaPrivacidad, LastNavigation } from 'src/components';\nimport { useDispatch } from 'react-redux';\nimport { IdPerson } from 'src/types';\n\nconst GeneralconfirmacionWrapper = styled.div``;\n\ninterface ConfirmacionCEMSegundaEntregaProps {\n idPerson: IdPerson;\n}\nexport const ConfirmacionCEMSegundaEntrega = (props: ConfirmacionCEMSegundaEntregaProps) => {\n const dispatch = useDispatch();\n\n useEffect(() => {\n if (props.idPerson.LSSI__c === 'PERMITE') {\n dispatch({ type: 'UPDATE_FIELDS', payload: { lssi: 'NO INFORMADO', tkm: 'NO INFORMADO' } });\n }\n }, [props.idPerson]);\n\n return (\n \n \n {props.idPerson.LSSI__c === 'PERMITE' ? (\n
\n \n ¿Listo para enviar?\n \n
\n ) : (\n <>\n \n ¡Gracias! Unas últimas preguntas para tenerlo todo claro\n \n \n \n )}\n\n \n\n \n \n
\n );\n};","import React, { useEffect } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport dayjs from 'dayjs';\nimport { useTrackingManager, getTrackingForm } from 'src/feature-app';\nimport { RenderController } from 'src/feature-app/Screen';\nimport { OneFormState, Steps } from 'src/types';\nimport { ThankYouTitle, ThankYouFields } from 'src/components';\nimport { IdVehicle} from 'src/types';\n\ninterface ThankYouCEMSegundaEntregaProps {\n idVehicle?: IdVehicle;\n};\n\nexport const ThankYouCEMSegundaEntrega = (props: ThankYouCEMSegundaEntregaProps) => {\n const { idVehicle } = props;\n const { formInfo, formData } = useSelector((state: OneFormState) => state);\n const { formResponse } = formInfo;\n const { fields } = formData;\n\n const trackingManager = useTrackingManager();\n const dispatch = useDispatch();\n\n useEffect(() => {\n // Thank you page no es gestionado como un step pero sí lo haremos en la analítica. Por eso Modificamos formInfo después del submit y antes del RESET\n const screenIndexThankyou = formInfo.numberOfScreens;\n\n dispatch({ type: 'SET_FORM_SUBMITTED', payload: true });\n dispatch({ type: 'SET_FORM_INFO', payload: { step: { screenIndex: screenIndexThankyou, name: \"ThankYou\" } } });\n\n trackingManager.trackFormSubmissionSuccessMessageLoad(\n {\n contentId: undefined,\n },\n getTrackingForm(formResponse)\n );\n }, []);\n\n const fechaCita = dayjs(fields.fechaCita, 'YYYY-MM-DD').format('DD/MM/YYYY');\n const copyTitle = '¡Te esperamos el ' + fechaCita + ' a las ' + fields.horaCita + '!';\n const copyBook = <>\n Muy pronto te contactará tu experto Volkswagen para cerrar vuestra cita{ idVehicle ? ' y darte hasta el último detalle sobre tu ' + idVehicle.DESC_Model__c : '' }.\n ;\n\n const screen: Steps = {\n title: ,\n fields: ,\n };\n return (\n \n );\n};","import React, { useEffect, useRef, useState } from 'react';\nimport { useDispatch } from 'react-redux';\nimport { useFeatureServices, useFaContent, useTrackingManager } from 'src/feature-app';\nimport { DpsData, EsOneformCoreServiceV1 } from 'src/feature-service/es-oneform-core-feature-service/types';\nimport { getParamsForm } from 'src/feature-app/get-params-form';\nimport { CEMSegundaEntregaValoracionForm } from 'src/forms/Cem/CEMSegundaEntrega';\nimport { GenericErrorLayer } from 'src/components/layers';\nimport { createPincodeEntity } from 'src/forms/dps-utils';\nimport { getInstallationsLegacy } from 'src/bff';\nimport { DomainAttributesValues } from 'src';\nimport { LoadingEncuestas } from 'src/components';\nimport { arrayToObject } from 'src/helpers';\n\n\nexport function CEMSegundaEntregaValoracionController() {\n\tconst [loading, setLoading] = useState(true);\n\tconst [error, setError] = useState(false);\n\tconst [usado, setUsado] = useState(false);\n\tconst [caducado, setCaducado] = useState(false);\n\n\tconst [idPerson, setIdPerson] = useState(null);\n\tconst [idVehicle, setIdVehicle] = useState(null);\n\tconst [idDealer, setIdDealer] = useState(null);\n\tconst [idOrder, setIdOrder] = useState(null);\n\t\n\tconst [installations, setInstallations] = useState(null);\n\tconst [installationCode, setInstallationCode] = useState(null);\n\tconst [dealer, setDealer] = useState(null);\n\tconst [allDealers, setAllDealers] = useState(null);\n\tconst [dealerName, setDealerName] = useState(null);\n\n\tconst oneFormService = useFeatureServices()['es:oneform-core'] as EsOneformCoreServiceV1;\n\tconst dispatch = useDispatch();\n\tconst faContent = useFaContent();\n\tconst { tc, url, device } = getParamsForm();\n\n\tconst handleNext = (value: any) => { };\n\tconst handleComplete = () => {\n\t\tconst dpsData = oneFormService.getDpsData();\n\n\t\tif (dpsData.pincode === null || dpsData.pincode.noPincodeFound || dpsData.pincode.pincodeError) {\n\t\t\thandleError();\n\t\t} else if (dpsData.pincode.pincodeUsed) {\n\t\t\tsetUsado(true);\n\t\t\tsetLoading(false);\n\t\t} else {\n\t\t\tsetIdPerson(createPincodeEntity(dpsData, 'PERSON'));\n\t\t\tsetIdVehicle(createPincodeEntity(dpsData, 'VEHICLE'));\n\t\t\tsetIdDealer(createPincodeEntity(dpsData, 'DEALER'));\n\t\t\tsetIdOrder(createPincodeEntity(dpsData, 'ORDER'));\n\n\t\t\tif(dpsData.dealer) {\n\t\t\t\tsetInstallationCode(dpsData.dealer);\n\t\t\t}\n\t\t\telse if(typeof idDealer.TXT_V_Installation_Code__c != 'undefined'){\n\t\t\t\tsetInstallationCode(idDealer.TXT_V_Installation_Code__c);\n\t\t\t}\n\t\t\telse if(typeof idDealer.TXT_Code_Concession__c != 'undefined') {\n\t\t\t\tsetInstallationCode(idDealer.TXT_Code_Concession__c)\n\t\t\t}\n\t\t\tsetLoading(false);\n\t\t}\n\t};\n\n\t// Obtenemos todas las instalaciones\n\tuseEffect(() => {\n\t\tif (installationCode && !allDealers) {\n\t\t\tgetInstallationsLegacy().then((dealers) => {\n\t\t\t\tconst allDealers = dealers.map((inst) => inst.attributes);\n\t\t\t\tsetAllDealers(allDealers);\n\t\t\t});\n\t\t} \n\t}, [installationCode]);\n\n\t// Guardamos la instalacion por codigo de instalacion\n\tuseEffect(() => {\n\t\tif (allDealers && !dealer) {\n\t\t\tfor (const d of allDealers) {\n\t\t\t\td.find((ele: DomainAttributesValues) => {\n\t\t\t\t\tif (\n\t\t\t\t\t\ttypeof ele.value != 'undefined' && typeof ele.name != 'undefined' &&\n\t\t\t\t\t\t(ele.name.includes('Installation_Code') || ele.name.includes('DealerCode')) && // TXT_V_Installation_Code__c or TXT_Code_Concession__c\n\t\t\t\t\t\tele.value.includes(installationCode)\n\t\t\t\t\t) {\n\t\t\t\t\t\tsetDealer(arrayToObject(d));\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t};\n\t\t}\n\t}, [allDealers]);\n\n\tconst handleError = () => {\n\t\tsetError(true);\n\t\tsetLoading(false);\n\t};\n\n\tuseEffect(() => {\n\t\tconst oneFormCoreDpsIsLoaded = oneFormService.getLoadedState();\n\n\t\toneFormCoreDpsIsLoaded.subscribe({\n\t\t\tnext(value) {\n\t\t\t\thandleNext(value);\n\t\t\t},\n\t\t\terror(err) {\n\t\t\t\tconsole.error(err);\n\t\t\t\thandleError();\n\t\t\t},\n\t\t\tcomplete() {\n\t\t\t\thandleComplete();\n\t\t\t},\n\t\t});\n\t}, []);\n\n\tif (loading) {\n\t\treturn ;\n\t} else if (error) {\n\t\treturn (\n\t\t\t<>\n\t\t\t\t\n\t\t\t\n\t\t);\n\t} else if (usado) {\n\t\treturn (\n\t\t\t<>\n\t\t\t\t\n\t\t\t\n\t\t);\n\t} else if (caducado) {\n\t\treturn (\n\t\t\t<>\n\t\t\t\t\n\t\t\t\n\t\t)\n\t}\n\telse {\n\t\treturn (\n\t\t\t\n\t\t);\n\t}\n}\n","import { Text } from '@volkswagen-onehub/components-core';\nimport React, { useEffect, useState } from 'react';\nimport { useDispatch, useSelector, useStore } from 'react-redux';\nimport { dpsSend } from 'src/bff';\nimport { IdPerson, IdVehicle, IdDealer, IdOrder } from 'src/types';\nimport { DetalleMotivo } from 'src/components';\nimport { FormController, useOneFormContext } from 'src/feature-app';\nimport { getParamsForm } from 'src/feature-app/get-params-form';\nimport { OneElementTemplateFullScreen } from 'src/feature-app/Screen';\nimport { FormDataGroup, FormInfo, OneFormState, Steps } from 'src/types';\nimport { formDataBuilder } from '../../../format-fields';\nimport { sanitizeKvps } from 'src/forms/Cem/helpers';\nimport { ThankYouCEMSegundaEntregaValoracion, ConfirmacionCEMSegundaEntrega } from 'src/forms/Cem/CEMSegundaEntrega';\n\nexport interface CEMSegundaEntregaValoracionFormProps {\n\thandleError: () => void,\n\tgetDealer: IdDealer;\n\tidPerson: IdPerson;\n\tidVehicle: IdVehicle;\n\tidDealer: IdDealer;\n\tidOrder: IdOrder;\n}\n\nexport enum CEMSegundaEntregaValoracionSteps {\n\tDetalles,\n\tConfirmacion,\n}\n\nexport function CEMSegundaEntregaValoracionForm(props: CEMSegundaEntregaValoracionFormProps) {\n\tconst {\n\t\thandleError,\n\t\tgetDealer,\n\t\tidPerson,\n\t\tidVehicle,\n\t\tidDealer,\n\t\tidOrder,\n\t} = props;\n\tconst { initializeForm } = useOneFormContext();\n\tconst { formData } = useSelector((state: OneFormState) => state);\n\tconst store = useStore();\n\tconst dispatch = useDispatch();\n\tconst [loadingPresubmit, setLoadingPresubmit] = useState(true);\n\n\tconst urlParams = new URLSearchParams(window.location.search);\n\tconst adviser = urlParams.get('adviser');\n\tconst pincode = urlParams.get('pincode');\n\tconst rating = urlParams.get('rating');\n const agency = urlParams.get('agency');\n\n\t// Presubmit\n\n\tuseEffect(() => {\n\t\tconst sendPresubmit = async () => {\n\t\t const result = await sendForm(true);\n\t\n\t\t if (!result) {\n\t\t\thandleError();\n\t\t }\n\t\t setLoadingPresubmit(false);\n\t\t};\n\t\n\t\tif(getDealer) sendPresubmit();\n\t }, [getDealer]);\n\n\t \n\t// Definición de steps\n\n\tconst steps: Steps[] = [\n\t\t{\n\t\t\ttitle: (\n\t\t\t\t<>\n\t\t\t\t\tRecibido. \n\t\t\t\t\t¿Te gustaría compartirnos algo más?\n\t\t\t\t\n\t\t\t),\n\t\t\tfields: } />,\n\t\t\tscreenIndex: CEMSegundaEntregaValoracionSteps.Detalles,\n\t\t\tname: 'Detalles',\n\t\t\toutputs: ['detalles'],\n\t\t\toutputsText: ['detalles'],\n\t\t},\n\t\t{\n\t\t\tfields: ,\n\t\t\tscreenIndex: CEMSegundaEntregaValoracionSteps.Confirmacion,\n\t\t\tname: 'Confirmacion',\n\t\t\toutputs: ['confirmacion'],\n\t\t\toutputsText: ['confirmacion'],\n\t\t},\n\t];\n\n\n\t// Datos de envío\n\n\tconst CEMSegundaEntregaValoracionData: Partial = {\n\t\theaders: {},\n\t\tfields: {\n\t\t\tformName: 'cem-segunda_entrega-valoracion',\n\t\t\tformType: 'otherform',\n\t\t\tpageCategory: 'Encuesta',\n\t\t}, // Analítica\n\t};\n\n\tconst sendForm = (isPresubmit?: boolean): Promise => {\n\t\tconst { formData }: OneFormState = store.getState();\n\t\tconst { fields } = formData;\n\n\t\treturn new Promise(async (resolve, reject) => {\n\t\t\tconst { tc, today, url, device, location } = getParamsForm();\n\n\t\t\tconst sendData = {\n\t\t\t\t'headers[DESC_BRAND]': 'VW',\n\t\t\t\t'headers[DESC_CAMPAIGNBLOCK]': '1. VW On boarding',\n\t\t\t\t'headers[DESC_FORM_DETAIL]': 'CEM Segunda entrega valoración',\n\t\t\t\t'headers[DESC_FORMOBJECTIVE]': 'Encuesta',\n\t\t\t\t'headers[DESC_GDPR_ADAPTED]': true,\n\t\t\t\t'headers[DESC_ID_CAMPAIGN]': '7017Q0000001RqVQAU',\n\t\t\t\t'headers[DESC_TOKEN]': 'VW_DDB_FRM_CEM_SEGUNDA_ENTREGA_VALORACION',\n\t\t\t\t'headers[DESC_WAID_LITERA]': '',\n\t\t\t\t'headers[COD_FORM_ID]': 'vw-oneform-cem-segunda_entrega-valoracion',\n\t\t\t\t'headers[DESC_DEVICETYPE]': device,\n\t\t\t\t'headers[DESC_ID_CLIMAPRO]': idPerson ? idPerson.ID_Person_DIM_IMP__c : '',\n\t\t\t\t'headers[DESC_ID_VEHICLE_CLIMAPRO]': idVehicle ? idVehicle.IDClimapro__c : '',\n\t\t\t\t'headers[DESC_URLORIGIN]': url,\n\t\t\t\t'headers[FECHA_INSERTION_DATE]': today,\n\t\t\t\t'headers[TC]': tc,\n\n\t\t\t\t'fields[DESC_FORM_VERSION]': 'vw-oneform-cem-segunda_entrega-valoracion-' + process.env.VERSION,\n\t\t\t\t'fields[DESC_NUMBER_ORDER]': idOrder ? idOrder.IDClimapro__c : '',\n\t\t\t\t'fields[DAT_REGISTRATION_DATE]': idOrder.DAT_delivery__c ? idOrder.DAT_delivery__c.substring(0, 10) : '',\n\t\t\t\t'fields[DESC_ACTUAL_VEHICLE_MODEL]': idVehicle ? idVehicle.DESC_Model__c : '',\n\t\t\t\t'fields[DESC_VEH_PLATE]': idVehicle ? idVehicle.Registration__c : '',\n\t\t\t\t'fields[DESC_ADDRESS]': idPerson ? idPerson.FORM_Full_Address__c : '',\n\t\t\t\t'fields[DESC_DEALER]': getDealer ? getDealer.TXT_V_Installation_Data_Name__c : '',\n\t\t\t\t'fields[DESC_DEALER_CODE_KVPS]': getDealer ? sanitizeKvps(getDealer.TXT_V_KVPS_code__c) : '',\n\t\t\t\t'fields[DESC_DEALER_CODE]': getDealer ? getDealer.TXT_Code_Concession__c : '',\n\t\t\t\t'fields[DESC_EMPLOYEE_ID]': adviser,\n\t\t\t\t'fields[DESC_EMAIL_ADDRESS]': idPerson ? idPerson.TXT_Email__c : '',\n\t\t\t\t'fields[NUM_PHONE]': idPerson ? idPerson.NUM_Phone_mobile__c : '',\n\t\t\t\t'fields[DESC_FRAME]': idVehicle ? idVehicle.Frame__c : '',\n\t\t\t\t'fields[DESC_NAME]': idPerson ? idPerson.FirstName : '',\n\t\t\t\t'fields[DESC_SURNAME_1]': idPerson ? idPerson.LastName : '',\n\t\t\t\t'fields[DESC_SURNAME_2]': idPerson ? idPerson.TXT_2_Surname__c : '',\n\t\t\t\t'fields[DESC_PROVINCE]': idPerson ? idPerson.TXT_Province__c : '',\n\t\t\t\t'fields[DESC_POSTAL_CODE]': idPerson ? idPerson.TXT_Postal_Code__c : '',\n\t\t\t\t'fields[DESC_LOPD]': 'PERMITE',\n\t\t\t\t'fields[DESC_LOPD_GDPR_PERFILADO]': fields.tmk ? fields.tmk : 'NO INFORMADO',\n\t\t\t\t'fields[DESC_LSSI]': fields.lssi ? fields.lssi : 'NO INFORMADO',\n\t\t\t\t'fields[DESC_AUXFIELD1]': rating,\n\t\t\t\t'fields[TRADICIONAL_AGENCIA]': agency,\n\n\t\t\t\t'flags[ES_AGENCIA]': agency ? agency == 'AGENCIA' ? 'true' : 'false' : null,\n\t\t\t};\n\n\t\t\tif(!isPresubmit) {\n\t\t\t\tsendData['headers[PINCODE]]'] = pincode;\n\t\t\t\tsendData['headers[DESC_TOKEN]]'] = 'VW_DDB_FRM_CEM_SEGUNDA_ENTREGA_VALORACION_CONTESTADO';\n\t\t\t\tsendData['fields[DESC_AUXFIELD2]'] = fields.detalles;\n\t\t\t}\t\t\t\n\t\t\tconst dataStringified = JSON.stringify(sendData);\n\t\t\tconst dataParsed = JSON.parse(dataStringified);\n\t\t\tconst formData = formDataBuilder(dataParsed);\n\n\t\t\tconst response = await dpsSend(formData, isPresubmit);\n\n\t\t\tif (response && response.data && response.data.content && response.data.content.code === '200') {\n\t\t\t\tdispatch({ type: 'SET_FORM_RESPONSE', payload: response.data });\n\t\t\t\tresolve(true);\n\t\t\t} else {\n\t\t\t\tresolve(false);\n\t\t\t}\n\t\t});\n\t};\n\n\n\t// Inicialización del form\n\n\tconst getFormInfo = (): {\n\t\tfirstStep: Steps;\n\t\tlastStep: Steps;\n\t\tstepsHistory: number[];\n\t\tnumberOfScreens: number;\n\t\tnewSteps?: Steps[];\n\t} => {\n\t\treturn {\n\t\t\tfirstStep: steps[0],\n\t\t\tlastStep: steps[steps.length - 1],\n\t\t\tstepsHistory: [0],\n\t\t\tnumberOfScreens: steps.length,\n\t\t\tnewSteps: null,\n\t\t};\n\t};\n\n\tuseEffect(() => {\n\t\tconst { firstStep, lastStep, stepsHistory, numberOfScreens, newSteps } = getFormInfo();\n\n\t\tconst CEMSegundaEntregaValoracionInfo: Partial = {\n\t\t\tformStarted: true,\n\t\t\tsendFormCallback: sendForm,\n\t\t\tfullScreen: firstStep.fullScreen ? true : false,\n\t\t\tlastStep,\n\t\t\tnumberOfScreens,\n\t\t\tscreenIndex: firstStep.screenIndex,\n\t\t\tformTheme: 'main',\n\t\t\tnotALayer: true,\n\t\t\tformType: 'inPage',\n\t\t\tstep: firstStep,\n\t\t\tsteps: newSteps ? newSteps : steps,\n\t\t\tstepsHistory,\n\t\t\tthankYouComponent: ,\n\t\t};\n\t\tinitializeForm(CEMSegundaEntregaValoracionInfo, CEMSegundaEntregaValoracionData);\n\t}, [getDealer]);\n\n\treturn steps && !loadingPresubmit ? : null;\n}","import React, { useEffect } from 'react';\nimport { CTA } from '@volkswagen-onehub/components-core';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { useTrackingManager, getTrackingForm } from 'src/feature-app';\nimport { RenderController } from 'src/feature-app/Screen';\nimport { OneFormState, Steps } from 'src/types';\nimport { ThankYouTitle, ThankYouFields } from 'src/components';\n\nexport const ThankYouCEMSegundaEntregaValoracion = () => {\n const { formInfo } = useSelector((state: OneFormState) => state);\n const { formResponse } = formInfo;\n\n const trackingManager = useTrackingManager();\n const dispatch = useDispatch();\n\n useEffect(() => {\n // Thank you page no es gestionado como un step pero sí lo haremos en la analítica. Por eso Modificamos formInfo después del submit y antes del RESET\n const screenIndexThankyou = formInfo.numberOfScreens;\n\n dispatch({ type: 'SET_FORM_SUBMITTED', payload: true });\n dispatch({ type: 'SET_FORM_INFO', payload: { step: { screenIndex: screenIndexThankyou, name: \"ThankYou\" } } });\n\n trackingManager.trackFormSubmissionSuccessMessageLoad(\n {\n contentId: undefined,\n },\n getTrackingForm(formResponse)\n );\n }, []);\n\n const copyBook = <>\n\tNos encantaría devolverte el favor recordándote todas las ventajas de ser de Volkswagen.\n\t;\n\n const screen: Steps = {\n title: ,\n fields: ,\n };\n return (\n \n );\n};","import React from 'react';\nimport { ScreenController, useFaContent } from 'src/feature-app';\nimport { CemController, LEMController, NoCompraController, NoRenovacionController } from 'src/forms';\nimport { CEMOneShopController } from \"src/forms/Cem/CEM OneShop\";\nimport { CEMVentaProductoController } from \"src/forms/Cem/CEMVentaProducto/CEMVentaProductoController\";\nimport { CEMSegundaEntregaController, CEMSegundaEntregaValoracionController } from \"src/forms/Cem/CEMSegundaEntrega\";\n\nexport function EncuestasTrigger() {\n const faContent = useFaContent();\n\n const renderTrigger = (Controller: JSX.Element) => {\n return (\n <>\n null}\n formType = 'inPage'\n />\n \n );\n };\n\n switch (faContent?.encuesta) {\n case 'CEM - POSVENTA':\n case 'CEM - VENTA':\n return renderTrigger();\n\tcase 'CEM - VENTA PRODUCTO':\n\t\treturn renderTrigger();\n case 'CEM - ONESHOP':\n return renderTrigger();\n\tcase 'CEM - SEGUNDA ENTREGA - INVITACION':\n\t\treturn renderTrigger();\n\tcase 'CEM - SEGUNDA ENTREGA - VALORACION':\n\t\treturn renderTrigger();\n case 'LEM':\n return renderTrigger();\n case 'NO COMPRA':\n return renderTrigger();\n case 'NO RENOVACIÓN':\n return renderTrigger();\n\n default:\n throw new Error('No property encuesta in FA Content.');\n }\n}\n","import React from 'react';\nimport { TriggerProps, useInitiateBonosTriggers } from 'src/feature-app';\nimport { PresupuestoForm } from 'src/forms';\nimport { FormDataGroup } from 'src/types';\n\nconst leadBonoPartialData: Partial = {\n headers: { FORM_OBJECTIVE: 'Presupuesto' },\n fields: {\n formFields: {},\n formularioFlag: 'presupuesto',\n formName: 'lead-presupuesto-bono',\n formType: 'quote',\n pageCategory: 'Presupuesto',\n },\n};\n\nexport function LeadBonoTrigger({ setSelectedJourney }: TriggerProps): JSX.Element {\n useInitiateBonosTriggers(\n setSelectedJourney,\n \n );\n\n return null;\n}\n","import React, { useEffect, useState } from 'react';\nimport {\n Breakpoints,\n Container,\n ContainerGutter,\n ContainerPadding,\n CTA,\n Layout,\n LayoutRowGap,\n Spinner,\n Text,\n TextAlignment,\n ThemeProvider,\n TokenTextAppearance,\n} from '@volkswagen-onehub/components-core';\nimport { Calc, Calendar, Info, Interior } from 'src/icons-core-imports';\nimport {\n LayerManagerWrapper,\n OneFormContent,\n TriggerProps,\n useFaContent,\n useFeatureAppEnvironment,\n useFeatureServices,\n useGetInstalaciones,\n useNavigate,\n} from 'src/feature-app';\nimport { MapGeneralController, NewMap } from 'src/feature-app/NewMap';\nimport { useSelector, useStore, useDispatch } from 'react-redux';\nimport { Installation, OneFormState } from 'src/types';\nimport { GenericErrorLayer } from 'src/components/layers';\nimport { FocusLayerSizeV2 } from '@volkswagen-onehub/layer-manager';\nimport { useGetInstalacion } from 'src/feature-app/hooks/use-get-instalacion';\nimport { CitaVentaForm, MasInformacionForm, PresupuestoForm, TestDriveForm } from 'src/forms';\n\nexport const LeadDealerTrigger = (props: TriggerProps) => {\n\n const installations = useGetInstalaciones('VW_DDB_FRM_LEM_REC_LEM');\n const { selectedDealer, loading } = useGetInstalacion();\n const { setSelectedJourney, setCTALabel } = props;\n const { points } = useSelector((state: OneFormState) => state.dealersInfo);\n const layerManager = useFeatureServices()['layer-manager'];\n const { navigateToCita } = useNavigate();\n\n const faContent = useFaContent();\n const [error, setError] = useState(false);\n const [dealerInfo, setDealerInfo] = useState(null);\n const [pointsLodaded, setPointsLoaded] = useState(false);\n\n const store = useStore();\n const env = useFeatureAppEnvironment();\n const dispatch = useDispatch();\n\n\n const handleLayerOpen = (journey: JSX.Element, label: string) => {\n dispatch({ type: 'RESET_STATE' });\n setCTALabel(label);\n setSelectedJourney(journey);\n };\n\n const openPresupuestoLayer = () => {\n handleLayerOpen(, 'Pide presupuesto');\n };\n const openMasInformacionLayer = () => {\n handleLayerOpen(, 'Pide más información');\n };\n const openTestDriveLayer = () => {\n handleLayerOpen(, 'Pruébalo');\n };\n const openCitaVentaLayer = () => {\n handleLayerOpen(, 'Pide cita');\n };\n\n const renderErrorScreen = () => {\n return (\n \n {\n navigateToCita();\n }}\n />\n \n );\n };\n\n const handleErrorLayer = () => {\n const layer = layerManager.openFocusLayer(renderErrorScreen, {}, { size: FocusLayerSizeV2.A });\n\n return layer;\n };\n\n const thereIsOnlyOneForm = (faContent: OneFormContent) => faContent && faContent.forms && faContent.forms.length === 1;\n\n\n // la altura del mapa en 375 debe ser = al width, mientras que en 560 tiene que ser 50% del width\n\n const initializeState = (selectedDealer: Installation) => {\n if (selectedDealer) {\n setDealerInfo(selectedDealer);\n } else {\n setError(true);\n handleErrorLayer();\n }\n };\n\n useEffect(() => {\n if (points) {\n setPointsLoaded(true);\n }\n }, [points]);\n\n useEffect(() => {\n if (!loading) {\n initializeState(selectedDealer);\n }\n }, [loading]);\n\n\n const renderTitle = (mobile: boolean) => {\n return (\n \n ¿Quieres contactar con este punto de venta?\n \n )\n }\n\n const renderTestDriveCta = (strechContent?: boolean) => {\n let icon = ;\n\n if (thereIsOnlyOneForm(faContent)) {\n icon = null;\n }\n\n return (\n openTestDriveLayer()} stretchContent={strechContent}>\n Pruébalo\n \n );\n };\n\n const renderMasInformacionCta = (strechContent?: boolean) => {\n let icon = ;\n\n if (thereIsOnlyOneForm(faContent)) {\n icon = null;\n }\n\n return (\n openMasInformacionLayer()} stretchContent={strechContent}>\n Pide más información\n \n );\n };\n\n const renderPidePresupuestoCta = (strechContent?: boolean) => {\n let icon = ;\n\n if (thereIsOnlyOneForm(faContent)) {\n icon = null;\n }\n\n return (\n {\n e.preventDefault();\n\n openPresupuestoLayer()\n }\n } stretchContent={strechContent} >\n Pide presupuesto\n \n );\n };\n\n const renderPideCitaCta = (strechContent?: boolean) => {\n let icon = ;\n\n if (thereIsOnlyOneForm(faContent)) {\n icon = null;\n }\n\n return (\n openCitaVentaLayer()} stretchContent={strechContent}>\n Pide cita en tu punto de venta\n \n );\n };\n\n\n return error ? null : (\n \n \n \n {renderTitle(window.innerWidth < 590)}\n \n \n {dealerInfo && pointsLodaded ? (\n \n
\n \n \n \n {dealerInfo.VGED_CommercialName__c}\n \n \n \n \n {renderPidePresupuestoCta()}\n {renderMasInformacionCta()}\n {renderTestDriveCta()}\n {renderPideCitaCta()}\n \n \n \n Dirección\n \n \n {dealerInfo.BillingStreet}, {dealerInfo.BillingPostalCode} {dealerInfo.BillingCity}\n \n \n \n \n
\n \n \n \n \n ) : (\n \n
\n \n Cargando los datos de la instalación\n
\n \n )}\n
\n );\n};\n","import { useEffect, useState } from \"react\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { OneFormState } from \"src/types\";\n\n\nexport function useGetInstalacion() {\n const dispatch = useDispatch();\n const [loading, setLoading] = useState(true);\n const [selectedDealer, setSelectedDealer] = useState(null);\n const { installations } = useSelector((state: OneFormState) => state.dealersInfo);\n const urlParams = new URLSearchParams(window.location.search);\n const dealer = urlParams.get('dealer');\n\n useEffect(() => {\n if (!window.location) {\n setLoading(false);\n }\n if (!dealer) {\n setLoading(false);\n return;\n }\n if (installations) {\n let filteredInstallation = installations.find((installation) => {\n return installation.KVPSCode__c == dealer\n });\n if (filteredInstallation === undefined) {\n filteredInstallation = installations.find((installation) => {\n return installation.VGED_DealerCode__c == dealer\n });\n }\n if (filteredInstallation === undefined) {\n filteredInstallation = installations.find((installation) => {\n return installation.VGED_CommercialName__c == dealer;\n });\n }\n if (filteredInstallation === undefined) {\n setLoading(false);\n setSelectedDealer(null);\n }\n else {\n setSelectedDealer(filteredInstallation);\n dispatch({ type: 'SET_SELECTED_INSTALLATION', payload: filteredInstallation });\n dispatch({ type: 'SET_SELECTED_DEALER', payload: filteredInstallation });\n dispatch({ type: 'SET_SELECTED_', payload: filteredInstallation });\n dispatch({ type: 'SET_URL_DEALER', payload: filteredInstallation });\n dispatch({ type: 'UPDATE_SUGGESTION', payload: filteredInstallation });\n dispatch({ type: 'DEALERS_OR_INSTALLATIONS_MODE', payload: 'installations' });\n setLoading(false);\n }\n\n }\n\n }, [installations])\n\n return { selectedDealer, loading }\n}\n","import React from 'react';\nimport { TriggerProps, useInitiateMatchTriggers } from 'src/feature-app';\nimport { PresupuestoForm } from 'src/forms';\nimport { FormDataGroup } from 'src/types';\n\nconst leadMatchPartialData: Partial = {\n headers: { FORM_OBJECTIVE: 'Presupuesto' },\n fields: {\n formFields: {},\n formularioFlag: 'presupuesto',\n formName: 'lead-match',\n formType: 'quote',\n pageCategory: 'Presupuesto',\n },\n};\n\nexport function LeadMatchTrigger({ setSelectedJourney }: TriggerProps): JSX.Element {\n useInitiateMatchTriggers(\n setSelectedJourney,\n \n );\n\n return null;\n}\n","import React, { useEffect } from 'react';\nimport { TriggerProps } from 'src/feature-app';\nimport { OfertaForm } from 'src/forms';\n\nexport function LeadOfertasTrigger({ setSelectedJourney }: TriggerProps): JSX.Element {\n\n useEffect(() => {\n setSelectedJourney(, true);\n }, []);\n\n return null;\n}\n","import React, { useEffect } from 'react';\nimport { TriggerProps, useFaContent } from 'src/feature-app';\nimport { StockForm } from 'src/forms/Leads/Stock/StockForm';\n\nexport function LeadStockTrigger({ setSelectedJourney }: TriggerProps): JSX.Element {\n const faContent = useFaContent();\n\n useEffect(() => {\n setSelectedJourney(, true);\n }, []);\n\n return null;\n}\n","import React from 'react';\nimport { EmbeddedFeatureApp, TriggerProps, useFaContent } from 'src/feature-app';\nimport { LeadBonoTrigger } from './LeadBonoTrigger';\nimport { LeadMatchTrigger } from './LeadMatchTrigger';\nimport { LeadOfertasTrigger } from './LeadOfertasTrigger';\nimport { LeadStockTrigger } from './LeadStockTrigger';\n\nconst renderTrigger = (featureApp: EmbeddedFeatureApp, props: TriggerProps) => {\n if (featureApp === 'es-ofertas') {\n return ;\n } else if (featureApp === 'es-stock-teaser') {\n return ;\n } else if (featureApp === 'es-match') {\n return ;\n }else if (featureApp === 'es-bono') {\n return ;\n }\n\n return null;\n};\n\nexport function LeadEmbededTrigger(props: TriggerProps) {\n const faContent = useFaContent();\n\n return renderTrigger(faContent.featureApp, props);\n}\n","import React from 'react';\nimport { ScreenController, useFaContent } from 'src/feature-app';\nimport { TestDriveForm, CitaVentaForm, MasInformacionForm, PresupuestoForm, leadsStockInPagePartialData } from 'src/forms/Leads';\n\n//marketing code para development marketingCode=V57K29A5 \n\nexport function LeadInPageTrigger() {\n const faContent = useFaContent();\n\n const renderTrigger = (Controller: JSX.Element) => {\n return (\n <>\n null}\n notALayer\n formType = 'inPage'\n />\n \n );\n };\n\n const isConfigurador = faContent?.featureApp == 'Configure' ? true : false;\n\n switch (faContent?.lead_type) {\n case 'test-drive':\n return renderTrigger();\n case 'presupuesto':\n return renderTrigger();\n case 'mas-informacion':\n return renderTrigger();\n case 'cita':\n return renderTrigger();\n case 'stock':\n return renderTrigger();\n\n default:\n throw new Error('No property lead_type in FA Content.');\n }\n}\n","import {\n Breakpoints,\n BreakpointWrapper,\n Container,\n ContainerGutter,\n ContainerPadding,\n CTA,\n Layout,\n styled,\n Text,\n TextAlignment,\n ThemeProvider,\n TokenTextAppearance,\n} from '@volkswagen-onehub/components-core';\nimport React, { useEffect, useState } from 'react';\nimport { useDispatch } from 'react-redux';\nimport { TriggerProps, useTransformToHtml, useFeatureServices } from 'src/feature-app';\nimport { useFaContent, OneFormContent } from 'src/feature-app/hooks';\nimport { CitaVentaForm, MasInformacionForm, PresupuestoForm, TestDriveForm, StockForm } from 'src/forms';\nimport { Calc, Calendar, Info, Interior } from 'src/icons-core-imports';\ninterface ContentProps {\n centerGradient?: boolean;\n themeColor: 'main' | 'inverted' | 'image';\n}\n\nconst Content = styled.div`\n overflow: hidden;\n display: flex;\n justify-content: center;\n align-items: center;\n & > div {\n width: 100%;\n }\n\n background: ${(props) =>\n props.themeColor === 'main'\n ? '#ffffff'\n : `radial-gradient(circle at bottom, #00437A 0%, ${props.theme.global.backgroundColor} 100%)`};\n\n @media all and (min-width: 960px) {\n background: ${(props) =>\n props.themeColor === 'main'\n ? '#ffffff'\n : props.centerGradient\n ? `radial-gradient(circle at bottom, #00437A 0%, ${props.theme.global.backgroundColor} 100%)`\n : `radial-gradient(circle at right, #00437A 0%, ${props.theme.global.backgroundColor} 100%)`};\n }\n`;\nconst TextWrapper = styled.div`\n padding-bottom: 44px;\n\n @media all and (min-width: 960px) {\n padding-bottom: 0;\n padding-right: var(--size-grid002);\n width: var(--size-grid012);\n }\n @media all and (min-width: 1280px) {\n padding-right: var(--size-grid002);\n width: var(--size-grid013);\n }\n @media all and (min-width: 1600px) {\n padding-right: var(--size-grid003);\n width: var(--size-grid013);\n }\n @media all and (min-width: 1920px) {\n padding-right: var(--size-grid002);\n width: var(--size-grid013);\n }\n @media all and (min-width: 2560px) {\n padding-right: var(--size-grid002);\n width: var(--size-grid014);\n }\n`;\nconst Box = styled.div`\n margin: 44px 0;\n padding: var(--size-grid001);\n border: ${(props) => (props.theme.global.backgroundColor === '#ffffff' ? '2px solid #001e50' : '2px solid white')};\n width: 100%;\n display: flex;\n flex-direction: column;\n\n @media all and (min-width: 560px) {\n margin: 68px 0;\n padding: var(--size-grid002);\n }\n @media all and (min-width: 960px) {\n flex-direction: row;\n padding: var(--size-grid001);\n }\n @media all and (min-width: 1600px) {\n margin: 84px 0;\n padding: var(--size-grid001);\n }\n`;\n\nconst CenterCTA = styled.div`\n text-align: center;\n`;\n\nconst thereIsOnlyOneForm = (faContent: OneFormContent) => faContent && faContent.forms && faContent.forms.length === 1;\n\nexport function LeadTrigger({ setSelectedJourney, setCTALabel }: TriggerProps) {\n const faContent = useFaContent();\n const dispatch = useDispatch();\n const userInteractionService = useFeatureServices()['user-interaction-service'];\n\n const [firstCta, setFirstCta] = useState(null);\n const [secondCta, setSecondCta] = useState(null);\n const [thirdCta, setThirdCta] = useState(null);\n const [fourthCta, setFourthCta] = useState(null);\n const [fiveCta, setFiveCta] = useState(null);\n\n const [theme, setTheme] = useState<'main' | 'inverted' | 'image'>('inverted');\n\n const openTestDriveLayer = () => {\n handleLayerOpen(, 'Pruébalo');\n };\n const openPresupuestoLayer = () => {\n handleLayerOpen(, 'Pide presupuesto');\n };\n const openMasInformacionLayer = () => {\n handleLayerOpen(, 'Pide más información');\n };\n const openCitaVentaLayer = () => {\n handleLayerOpen(, 'Pide cita');\n };\n const openStockLayer = () => {\n handleLayerOpen(, 'Stock');\n };\n\n useEffect(() => {\n if (faContent?.modo === 'Light') {\n setTheme('main');\n }\n\n if (faContent?.userInteraction === 'true') {\n userInteractionService.register('es-oneform::lead-test_drive', {\n action: () => {\n openTestDriveLayer();\n },\n });\n userInteractionService.register('es-oneform::lead-presupuesto', {\n action: () => {\n openPresupuestoLayer();\n },\n });\n userInteractionService.register('es-oneform::lead-mas_informacion', {\n action: () => {\n openMasInformacionLayer();\n },\n });\n userInteractionService.register('es-oneform::lead-cita', {\n action: () => {\n openCitaVentaLayer();\n },\n });\n userInteractionService.register('es-oneform::lead-stock', {\n action: () => {\n openStockLayer();\n },\n });\n }\n }, []);\n\n const renderTestDriveCta = (strechContent?: boolean) => {\n let icon = ;\n\n if (thereIsOnlyOneForm(faContent)) {\n icon = null;\n }\n\n return (\n openTestDriveLayer()} stretchContent={strechContent}>\n Pruébalo\n \n );\n };\n\n const renderMasInformacionCta = (strechContent?: boolean) => {\n let icon = ;\n\n if (thereIsOnlyOneForm(faContent)) {\n icon = null;\n }\n\n return (\n openMasInformacionLayer()} stretchContent={strechContent}>\n Pide más información\n \n );\n };\n\n const renderPidePresupuestoCta = (strechContent?: boolean) => {\n let icon = ;\n\n if (thereIsOnlyOneForm(faContent)) {\n icon = null;\n }\n\n return (\n openPresupuestoLayer()} stretchContent={strechContent}>\n Pide presupuesto\n \n );\n };\n\n const renderPideCitaCta = (strechContent?: boolean) => {\n let icon = ;\n\n if (thereIsOnlyOneForm(faContent)) {\n icon = null;\n }\n\n return (\n openCitaVentaLayer()} stretchContent={strechContent}>\n Pide cita con un asesor\n \n );\n };\n\n const renderStockCta = (strechContent?: boolean) => {\n let icon = ;\n\n if (thereIsOnlyOneForm(faContent)) {\n icon = null;\n }\n\n return (\n openStockLayer()} stretchContent={strechContent}>\n Pide información del stock\n \n );\n };\n\n const handleLayerOpen = (journey: JSX.Element, label: string) => {\n dispatch({ type: 'RESET_STATE' });\n setCTALabel(label);\n setSelectedJourney(journey);\n };\n\n const handleFaContent = () => {\n const width = window.innerWidth;\n let strechContent = false;\n\n if (width < 560 && thereIsOnlyOneForm(faContent)) {\n strechContent = true;\n }\n\n if (faContent?.forms) {\n const renderOrder = faContent.forms.map((form) => {\n switch (form) {\n case 'lead-cita':\n return renderPideCitaCta(strechContent);\n case 'lead-mas_informacion':\n return renderMasInformacionCta(strechContent);\n case 'lead-test_drive':\n return renderTestDriveCta(strechContent);\n case 'lead-presupuesto':\n return renderPidePresupuestoCta(strechContent);\n case 'lead-stock':\n return renderStockCta(strechContent);\n default:\n return null;\n }\n });\n if (renderOrder.length <= 5) {\n if (renderOrder[0]) {\n setFirstCta(renderOrder[0]);\n }\n if (renderOrder[0]) {\n setSecondCta(renderOrder[1]);\n }\n if (renderOrder[2]) {\n setThirdCta(renderOrder[2]);\n }\n if (renderOrder[3]) {\n setFourthCta(renderOrder[3]);\n }\n if (renderOrder[4]) {\n setFiveCta(renderOrder[4]);\n }\n }\n }\n };\n\n useEffect(() => {\n // getCarlines();\n handleFaContent();\n }, []);\n\n const alternativeHeadline = '¿Qué te gustaría hacer ahora?';\n const getTriggerHeadline = () =>\n faContent?.headline ? useTransformToHtml(faContent.headline) : useTransformToHtml(alternativeHeadline);\n\n const alternativeBodyCopy =\n 'Estás un paso más cerca de disfrutar del Volkswagen que te gusta. Solo dinos cómo podemos acompañarte para terminar de resolver tus dudas.';\n const getTriggerbodycopy = () =>\n faContent?.bodycopy ? useTransformToHtml(faContent.bodycopy) : useTransformToHtml(alternativeBodyCopy);\n\n return (\n // Dinamizar el theme a través de la config de la feature-app\n <>\n {thereIsOnlyOneForm(faContent) ? (\n \n \n \n \n \n \n
\n \n\n \n
\n \n \n \n \n \n {firstCta ? firstCta : null}\n {secondCta ? secondCta : null}\n {thirdCta ? thirdCta : null}\n {fourthCta ? fourthCta : null}\n {fiveCta ? fiveCta : null}\n \n\n \n {firstCta ? firstCta : null}\n {secondCta ? secondCta : null}\n {thirdCta ? thirdCta : null}\n {fourthCta ? fourthCta : null}\n {fiveCta ? fiveCta : null}\n \n \n \n \n \n \n \n ) : (\n \n \n \n \n \n \n \n \n {faContent?.headline ? faContent.headline : '¿Qué te gustaría hacer ahora?'}\n \n \n \n \n {faContent?.headline ? faContent.headline : '¿Qué te gustaría hacer ahora?'}\n \n \n \n \n {faContent?.headline ? faContent.headline : '¿Qué te gustaría hacer ahora?'}\n \n \n \n \n \n {faContent?.bodycopy\n ? faContent.bodycopy\n : 'Estás un paso más cerca de disfrutar del Volkswagen que te gusta. Solo dinos cómo podemos acompañarte para terminar de resolver tus dudas.'}\n \n \n \n \n \n \n {firstCta ? firstCta : null}\n {secondCta ? secondCta : null}\n {thirdCta ? thirdCta : null}\n {fourthCta ? fourthCta : null}\n {fiveCta ? fiveCta : null}\n \n \n \n \n \n )}\n \n );\n}\n","import React from 'react';\nimport { ScreenController, TriggerProps, useFaContent } from 'src/feature-app';\nimport { MGMController } from 'src/forms/MGM';\n\nexport function MGMTrigger(props: TriggerProps) {\n\n\n return (\n
\n }\n closeLayerCallback={close}\n handleAreYouSureLayer={() => null}\n notALayer={true}\n formType = 'inPage'\n />\n
\n );\n}\n","import {\n Breakpoints,\n BreakpointWrapper,\n Container,\n ContainerGutter,\n ContainerPadding,\n CTA,\n Layout,\n styled,\n Text,\n TextAlignment,\n ThemeProvider,\n TokenTextAppearance,\n} from '@volkswagen-onehub/components-core';\nimport React from 'react';\nimport { TriggerProps, useFaContent, useTransformToHtml } from 'src/feature-app';\nimport { NewsletterForm } from '../forms/Newsletter/NewsletterForm';\nimport { useDispatch } from 'react-redux';\n\nconst Content = styled.div`\n overflow: hidden;\n display: flex;\n justify-content: center;\n align-items: center;\n background: radial-gradient(circle at bottom, #00437a 0%, #001e50 100%);\n\n & > div {\n width: 100%;\n }\n`;\n\nconst CenterCTA = styled.div`\n text-align: center;\n`;\n\nexport function NewsletterTrigger(props: TriggerProps) {\n const { setSelectedJourney, setCTALabel } = props;\n\n const faContent = useFaContent();\n const dispatch = useDispatch();\n\n const getCtaLabel = () => (faContent?.cta ? faContent.cta : 'Suscríbete');\n\n const alternativeHeadline = '¿Quieres estar al día?';\n const getTriggerHeadline = () =>\n faContent?.headline ? useTransformToHtml(faContent.headline) : useTransformToHtml(alternativeHeadline);\n\n const alternativeBodyCopy =\n 'Suscríbete a la newsletter y adelántate a las novedades sobre movilidad eléctrica y la familia ID.';\n const getTriggerbodycopy = () =>\n faContent?.bodycopy ? useTransformToHtml(faContent.bodycopy) : useTransformToHtml(alternativeBodyCopy);\n\n return (\n \n \n \n \n \n \n
\n \n\n \n
\n \n \n \n \n \n {\n dispatch({ type: 'RESET_STATE' });\n setCTALabel(getCtaLabel());\n setSelectedJourney();\n }}\n stretchContent\n >\n {getCtaLabel()}\n \n \n\n \n {\n dispatch({ type: 'RESET_STATE' });\n setCTALabel(getCtaLabel());\n setSelectedJourney();\n }}\n >\n {getCtaLabel()}\n \n \n \n \n \n \n \n \n );\n}\n","import { styled } from '@volkswagen-onehub/components-core';\nimport {\n CloseHandleV2,\n FocusLayerSizeV2,\n InteractionLayerSizeV2,\n LayerHandleV2,\n LayerManagerV2,\n} from '@volkswagen-onehub/layer-manager';\nimport React, { useEffect, useRef, useState } from 'react';\nimport { useSelector, useStore } from 'react-redux';\nimport { AreYouSureLayer, GenericErrorLayer } from 'src/components';\nimport {\n getTrigger,\n LayerManagerWrapper,\n useFeatureAppConfig,\n useFeatureAppEnvironment,\n useFeatureServices,\n useTrackingManager,\n useIsDevStage,\n} from 'src/feature-app';\nimport { ScreenController } from 'src/feature-app/Screen';\nimport { getSentryHub, setSentryTag } from 'src/feature-app/sentry';\nimport { OneFormState } from 'src/types';\n\nconst basis = 24;\n\nfunction assertCountGridColumn(count: number): void {\n if (process.env.NODE_ENV !== 'production') {\n if (Math.floor(count) !== count) {\n throw new Error('count has to be an integer.');\n }\n\n if (count < 0 || count > basis) {\n throw new Error(`count has to be between 0 and ${basis}.`);\n }\n }\n}\n\nexport function getGridColumn(count: number): string {\n assertCountGridColumn(count);\n\n // Round down to two decimal places\n // two decimal places because Edge has issues with too many decimal places\n // round down, so (positive) rounding errors do not add up\n return `${Math.floor((100 / basis) * count * 100) / 100}vw`;\n}\n\nexport function getColumnsWidthForBreakpoint(columns: number, breakpoint: number): string {\n assertCountGridColumn(columns);\n\n // Round down to two decimal places\n // two decimal places because Edge has issues with too many decimal places\n // round down, so (positive) rounding errors do not add up\n return `${Math.floor((breakpoint / basis) * columns * 100) / 100}px`;\n}\n\n// Background determina el color del background, y la altura mínima que debe ocupar este color.\n// Por los errores del layer también determina el width.\n\nexport const BackgroundOneForm = styled.div`\n background-color: ${(props) => props.theme.global.backgroundColor};\n min-height: 100vh;\n width: 100vw;\n @media all and (min-width: 960px) {\n width: 960px;\n }\n`;\n\nconst getConfigFormattedName = (name: string) =>\n name\n .replace('_', '-')\n .split('-')\n .map((word) => word.charAt(0).toUpperCase() + word.slice(1))\n .join(' ');\n\nexport function OneFormTrigger() {\n const layerManager = useFeatureServices()['layer-manager'] as LayerManagerV2;\n const { formTheme, genericError } = useSelector(\n (state: OneFormState) => state.formInfo,\n (prev, next) => prev.formTheme === next.formTheme && prev.genericError === next.genericError\n );\n const formName = useSelector((state: OneFormState) => state.formData.fields.formName);\n const oneFormLayer = useRef>(null);\n const oneFormLayerFocus = useRef>(null);\n const genericErrorLayer = useRef>(null);\n const [selectedJourneyElement, setSelectedJourneyElement] = useState(null);\n const [selectedFocusJourney, setSelectedFocusJourney] = useState(null);\n const [CTALabel, setCTALabel] = useState(null);\n const [skipTrackButtonClick, setSkipTrackButtonClick] = useState(false);\n const trackingManager = useTrackingManager();\n const store = useStore();\n const env = useFeatureAppEnvironment();\n const config = useFeatureAppConfig();\n const triggerLoaded = useRef(null);\n const isDevStage = useIsDevStage();\n const sentryHub = getSentryHub();\n\n useEffect(() => {\n if (selectedJourneyElement) {\n handleOneFormLayer();\n // sentryHub.setTag('Form', 'Test');\n }\n\n if (selectedFocusJourney) {\n handleOneFormFocusLayer();\n }\n }, [selectedJourneyElement, selectedFocusJourney]);\n\n useEffect(() => {\n if (genericError) {\n handleGenericErrorLayer();\n }\n }, [genericError]);\n\n useEffect(() => {\n if (triggerLoaded.current && isDevStage) {\n setSentryTag('oneform.trigger', triggerLoaded.current);\n const name = getConfigFormattedName(triggerLoaded.current);\n console.log('%cOneform Loading Trigger:', 'font-weight: 700', name);\n }\n }, [triggerLoaded]);\n\n useEffect(() => {\n if (formName) {\n setSentryTag('oneform.form', formName);\n }\n }, [formName]);\n\n const setSelectedJourney = (selectedJourney: JSX.Element, skipTrackButtonClick?: boolean) => {\n if (skipTrackButtonClick) {\n setSkipTrackButtonClick(skipTrackButtonClick);\n }\n setSelectedJourneyElement(selectedJourney);\n };\n\n const renderOneForm = (state: any, close: CloseHandleV2): JSX.Element => {\n return (\n \n \n \n \n \n );\n };\n\n const renderOneFormFocus = (state: any, close: CloseHandleV2): JSX.Element => {\n return (\n \n \n \n );\n };\n\n const renderGenericErrorLayer = (state: any, close: CloseHandleV2) => {\n return (\n \n \n \n );\n };\n\n const renderAreYouSureLayer = (state: any, close: CloseHandleV2) => {\n return (\n \n {}}\n />\n \n );\n };\n\n const handleOneFormLayer = () => {\n if (!skipTrackButtonClick) {\n trackingManager.trackButtonClick({ contentId: CTALabel });\n }\n const layer = layerManager.openInteractionLayer(renderOneForm, {}, { size: InteractionLayerSizeV2.D });\n oneFormLayer.current = layer;\n };\n\n const handleOneFormFocusLayer = () => {\n if (!skipTrackButtonClick) {\n trackingManager.trackButtonClick({ contentId: CTALabel });\n }\n\n const layer = layerManager.openFocusLayer(\n renderOneFormFocus,\n {},\n { size: FocusLayerSizeV2.A, onClose: () => setSelectedFocusJourney(null) }\n );\n oneFormLayerFocus.current = layer;\n };\n\n const handleGenericErrorLayer = () => {\n const layer = layerManager.openFocusLayer(renderGenericErrorLayer, {}, { size: FocusLayerSizeV2.A });\n genericErrorLayer.current = layer;\n };\n\n const handleAreYouSureLayer = () => {\n const layer = layerManager.openFocusLayer(renderAreYouSureLayer, {}, { size: FocusLayerSizeV2.A });\n return layer;\n };\n\n return React.useMemo(\n () =>\n getTrigger(\n config,\n setSelectedJourney,\n setCTALabel,\n selectedJourneyElement,\n setSelectedFocusJourney,\n selectedFocusJourney,\n triggerLoaded\n ),\n []\n );\n}\n\n// export const OneFormTrigger = React.memo(OneFormTriggerComp);\n","import React from 'react';\nimport { TriggerProps, useInitiateMatchTriggers } from 'src/feature-app';\nimport { MatchProspectForm } from 'src/forms';\n\nexport function ProspectEmbeddedTrigger({ setSelectedJourney }: TriggerProps): JSX.Element {\n useInitiateMatchTriggers(setSelectedJourney, );\n\n return null;\n}\n","import React, { useEffect } from 'react';\nimport { getDealerKvps } from 'src/bff';\nimport { TriggerProps, useFaContent } from 'src/feature-app';\nimport { ProspectsPosventaForm, transformMillage } from 'src/forms';\nimport { FormDataFields } from 'src/types';\n\nexport function ProspectPosventaEmbedded({ setSelectedJourney }: TriggerProps) {\n const faContent = useFaContent();\n if (faContent.featureApp === 'es-calculadora') {\n return ;\n }\n return null;\n}\n\nexport function ProspectPosventaCalculadora({ setSelectedJourney }: TriggerProps) {\n const faContent = useFaContent();\n const renderForm = (fields: FormDataFields) => {\n setSelectedJourney(\n ,\n true\n );\n };\n useEffect(() => {\n const fields = {\n motivo: 'MANTENIMIENTO',\n formName: 'prospect-posventa-calculadora',\n matricula: faContent?.vehicle[0]?.plate,\n kilometros: transformMillage(faContent?.vehicle[0]?.mileage),\n anoMatriculacion: faContent?.vehicle[0]?.plateDate,\n modelo: faContent?.vehicle[0]?.familyDesc,\n budget: { pvp: faContent?.quotePvp, operations: [...faContent?.quoteOperations] },\n deepLink: faContent?.deepLink,\n };\n const kvps = faContent?.dealer;\n\n getDealerKvps(kvps)\n .then((dealer) => {\n renderForm({ ...fields, dealer });\n })\n .catch((err) => {\n console.error(err);\n renderForm({ ...fields, dealer: {} }); // Hay que ver que hacer en estos casos.\n });\n }, []);\n\n return <>;\n}\n","import {\n Breakpoints,\n Container,\n ContainerGutter,\n CTA,\n Layout,\n LayoutRowGap,\n styled,\n Text,\n TokenTextAppearance,\n} from '@volkswagen-onehub/components-core';\nimport React from 'react';\nimport { TriggerProps } from 'src/feature-app';\nimport { ProspectsVentaForm } from '../forms/Prospects/ProspectsVentaForm';\nimport { useDispatch } from 'react-redux';\n\nconst taigoImage = 'https://cdn.volkswagen.es/repository/app/vw-oneform/assets/images/taigo.png';\n\nconst ImageWrapper = styled.div`\n img {\n width: 100%;\n }\n`;\n\nexport function ProspectsTrigger(props: TriggerProps) {\n const { setSelectedJourney } = props;\n\n const dispatch = useDispatch();\n\n return (\n \n \n \n Nuevo Taigo\n \n \n \n Nuevo Taigo\n \n \n Carácter{' '}todos los días\n \n \n El Nuevo Taigo es para aquellos que marcan sus propias tendencias. Que no solo tienen estilo, sino también\n carácter. Y que cada día encuentran lo extraordinario en lo cotidiano. ¿Será también para ti?\n \n {\n dispatch({ type: 'RESET_STATE' });\n e.preventDefault();\n setSelectedJourney();\n }}\n emphasis='primary'\n >\n Pide más información\n \n \n \n );\n}\n\n","import {\n Breakpoints,\n BreakpointWrapper,\n Container,\n ContainerGutter,\n ContainerPadding,\n CTA,\n Layout,\n styled,\n Text,\n TextAlignment,\n ThemeProvider,\n TokenTextAppearance,\n} from '@volkswagen-onehub/components-core';\nimport React from 'react';\nimport { TriggerProps, useFaContent, useTransformToHtml, ScreenController } from 'src/feature-app';\nimport { SACForm } from '../forms/SAC';\nimport { SACOneShopController } from '../forms/SAC/SACOneShop';\nimport { useDispatch } from 'react-redux';\n\n\nconst Content = styled.div`\n overflow: hidden;\n display: flex;\n justify-content: center;\n align-items: center;\n background: radial-gradient(circle at bottom, #00437a 0%, #001e50 100%);\n\n & > div {\n width: 100%;\n }\n`;\n\nconst CenterCTA = styled.div`\n text-align: center;\n`;\n\nexport function SACTrigger(props: TriggerProps) {\n const { setSelectedJourney, setCTALabel } = props;\n const dispatch = useDispatch();\n\n const faContent = useFaContent();\n\n const getCtaLabel = () => (faContent?.cta ? faContent.cta : 'Contáctanos');\n\n const alternativeHeadline = '¿Quieres hablar con nosotros?';\n const getTriggerHeadline = () =>\n faContent?.headline ? useTransformToHtml(faContent.headline) : useTransformToHtml(alternativeHeadline);\n\n const alternativeBodyCopy = 'Explícanos cómo podemos ayudarte y te responderemos muy pronto.';\n const getTriggerbodycopy = () =>\n faContent?.bodycopy ? useTransformToHtml(faContent.bodycopy) : useTransformToHtml(alternativeBodyCopy);\n\n return (\n \n faContent.triggerCase === 'Generico'?\n \n\n \n \n \n \n \n
\n \n\n \n
\n \n \n \n \n \n {\n dispatch({ type: 'RESET_STATE' });\n setCTALabel(getCtaLabel());\n setSelectedJourney();\n }}\n stretchContent\n >\n {getCtaLabel()}\n \n \n\n \n {\n dispatch({ type: 'RESET_STATE' });\n setCTALabel(getCtaLabel());\n setSelectedJourney();\n }}\n >\n {getCtaLabel()}\n \n \n \n \n \n \n \n \n :\n <>\n }\n closeLayerCallback={close}\n handleAreYouSureLayer={() => null}\n notALayer={true}\n formType = 'inPage'\n />\n \n \n );\n}\n","import {\n CTA\n} from '@volkswagen-onehub/components-core';\nimport React from 'react';\nimport { Magnifier, Reload } from 'src/icons-core-imports';\n\nexport interface CTAMapaProps {\n mapHasMoved: boolean;\n handleSearchArea: () => void\n handleSearchAgain: () => void \n}\n\nexport function CTAMapa({ mapHasMoved, handleSearchArea, handleSearchAgain }: CTAMapaProps) {\n return (\n
\n {mapHasMoved ? (\n {\n e.preventDefault();\n handleSearchArea();\n e.stopPropagation();\n }}\n ariaLabel=\"aria label\"\n icon={}\n >\n Buscar en esta zona\n \n ) : null}\n {\n e.preventDefault();\n handleSearchAgain();\n }}\n ariaLabel=\"aria label\"\n icon={}\n >\n Buscar de nuevo\n \n
\n );\n}\n","import {\n Container,\n ContainerGutter,\n ContainerPadding,\n CTA,\n styled,\n} from '@volkswagen-onehub/components-core';\nimport React, { useRef } from 'react';\nimport { CarPickupService, FleetServicePrivate } from 'src/icons-core-imports';\n\nconst SmallerSVG = styled.div`\n svg {\n height: 12px;\n width: 12px;\n }\n button {\n height: 24px;\n min-height: 24px;\n }\n div {\n font-size: 12px;\n }\n`;\n\nexport interface CTAServicesProps {\n handleClickCarPickup: () => void;\n handleClickReplacementCar: () => void;\n carPickupSelected: boolean;\n replacementCarSelected: boolean;\n}\n\nexport function CTAServices({\n handleClickCarPickup,\n carPickupSelected,\n replacementCarSelected,\n handleClickReplacementCar,\n}: CTAServicesProps) {\n\n\n const sustitucionRef = useRef(null);\n const recogidaRef = useRef(null);\n\n return (\n \n \n {\n e.preventDefault();\n handleClickReplacementCar();\n sustitucionRef.current.blur();\n }}\n ariaLabel=\"aria label\"\n icon={}\n >\n Coche de sustitución\n \n \n \n {\n e.preventDefault();\n handleClickCarPickup();\n recogidaRef.current.blur();\n }}\n ariaLabel=\"aria label\"\n icon={}\n >\n Servicio de recogida\n \n \n \n );\n}\n","import { styled } from '@volkswagen-onehub/components-core';\nimport React, { ReactElement, useEffect, useRef } from 'react';\nimport Slider from 'react-slick';\nimport { NewDealerCard, getDistanceFromLatLngCenter, useMapGeneralController } from 'src/feature-app';\nimport { Points } from 'src/types';\nimport { DealerCardWidget } from 'src/widgets';\n\nconst CSSDiv = styled.div`\n /* Slider */\n .slick-slider {\n position: relative;\n\n display: block;\n box-sizing: border-box;\n\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n\n -webkit-touch-callout: none;\n -khtml-user-select: none;\n -ms-touch-action: pan-y;\n touch-action: pan-y;\n -webkit-tap-highlight-color: transparent;\n }\n\n .slick-list {\n position: relative;\n\n display: block;\n overflow: hidden;\n\n margin: 0;\n padding: 0;\n }\n .slick-list:focus {\n outline: none;\n }\n .slick-list.dragging {\n cursor: pointer;\n cursor: hand;\n }\n\n .slick-slider .slick-track,\n .slick-slider .slick-list {\n -webkit-transform: translate3d(0, 0, 0);\n -moz-transform: translate3d(0, 0, 0);\n -ms-transform: translate3d(0, 0, 0);\n -o-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n\n .slick-track {\n position: relative;\n top: 0;\n left: 0;\n\n display: block;\n }\n .slick-track:before,\n .slick-track:after {\n display: table;\n\n content: '';\n }\n .slick-track:after {\n clear: both;\n }\n .slick-loading .slick-track {\n visibility: hidden;\n }\n\n .slick-slide {\n display: none;\n float: left;\n\n height: 100%;\n min-height: 1px;\n }\n [dir='rtl'] .slick-slide {\n float: right;\n }\n .slick-slide img {\n display: block;\n }\n .slick-slide.slick-loading img {\n display: none;\n }\n .slick-slide.dragging img {\n pointer-events: none;\n }\n .slick-initialized .slick-slide {\n display: block;\n }\n .slick-loading .slick-slide {\n visibility: hidden;\n }\n .slick-vertical .slick-slide {\n display: block;\n\n height: auto;\n\n border: 1px solid transparent;\n }\n .slick-arrow.slick-hidden {\n display: none;\n }\n\n /* Slider */\n .slick-slider {\n position: relative;\n\n display: block;\n box-sizing: border-box;\n\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n\n -webkit-touch-callout: none;\n -khtml-user-select: none;\n -ms-touch-action: pan-y;\n touch-action: pan-y;\n -webkit-tap-highlight-color: transparent;\n }\n\n .slick-list {\n position: relative;\n\n display: block;\n overflow: hidden;\n\n margin: 0;\n padding: 0;\n }\n .slick-list:focus {\n outline: none;\n }\n .slick-list.dragging {\n cursor: pointer;\n cursor: hand;\n }\n\n .slick-slider .slick-track,\n .slick-slider .slick-list {\n -webkit-transform: translate3d(0, 0, 0);\n -moz-transform: translate3d(0, 0, 0);\n -ms-transform: translate3d(0, 0, 0);\n -o-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n\n .slick-track {\n position: relative;\n top: 0;\n left: 0;\n\n display: block;\n }\n .slick-track:before,\n .slick-track:after {\n display: table;\n\n content: '';\n }\n .slick-track:after {\n clear: both;\n }\n .slick-loading .slick-track {\n visibility: hidden;\n }\n\n .slick-slide {\n display: none;\n float: left;\n\n height: 100%;\n min-height: 1px;\n }\n [dir='rtl'] .slick-slide {\n float: right;\n }\n .slick-slide img {\n display: block;\n }\n .slick-slide.slick-loading img {\n display: none;\n }\n .slick-slide.dragging img {\n pointer-events: none;\n }\n .slick-initialized .slick-slide {\n display: block;\n }\n .slick-loading .slick-slide {\n visibility: hidden;\n }\n .slick-vertical .slick-slide {\n display: block;\n\n height: auto;\n\n border: 1px solid transparent;\n }\n .slick-arrow.slick-hidden {\n display: none;\n }\n`;\n\nconst BackgroundCard = styled.div`\n background-color: #ffffff;\n margin: 0 4px;\n`;\n\ninterface CarouselCardsProps {\n handleShowCalendarOnClick?: any;\n handleSeleccionarOnClick: any;\n handleShowSlots?: (point: Points) => string | null;\n pointsToList: Points[];\n isCitaPosventa?: boolean;\n replacementCarSelected?: boolean;\n carPickupSelected?: boolean;\n}\n\nexport const CarouselWidget = (props: CarouselCardsProps) => {\n const {\n clusters,\n handlePointClickAndCarouselMove,\n centerToCalculateDistance,\n handleSelectedPoint,\n handleClusterClick,\n selectedPoint,\n } = useMapGeneralController();\n const {\n handleSeleccionarOnClick,\n handleShowCalendarOnClick,\n handleShowSlots,\n pointsToList,\n isCitaPosventa,\n carPickupSelected,\n replacementCarSelected,\n } = props;\n const sliderRef = useRef(null);\n const childrenRef = useRef(null);\n\n useEffect(() => {\n if (pointsToList.length) {\n const firstPoint = selectedPoint ? selectedPoint : pointsToList[0];\n // handleCarouselMovement(firstPoint);\n handleSelectedPoint(firstPoint);\n // handleSelectedCard(firstPoint);\n }\n }, [pointsToList]);\n\n useEffect(() => {\n // Movimiento del carousel en caso de que se haga click en un Dealer Marker.\n if (selectedPoint) {\n // handleSelectedCard(selectedPoint);\n handleCarouselMovement(selectedPoint);\n }\n }, [selectedPoint, pointsToList]);\n\n const handleSelectedCard = (point: Points) => {\n if (!point.properties.cluster) {\n const { kvps } = point.properties.dealer;\n\n const index = pointsToList.findIndex((dealer) => {\n if (dealer.properties.dealer.kvps === kvps) {\n return true;\n }\n });\n sliderRef.current.slickGoTo(index);\n }\n };\n\n const handleCarouselMovement = (point: Points) => {\n if (point.properties.parent_cluster_id) {\n const parentCluster = clusters.find(\n (cluster) => cluster.properties.cluster && cluster.id === point.properties.parent_cluster_id\n );\n if (parentCluster) {\n // En caso de que el dealer esté dentro de un cluster dentro de otro fijamos el valor de isCluster como true para que llegue hasta el final\n // y no rompa únicamente el primer cluster.\n // handleClusterClick(point, true);\n handleSelectedPoint(point);\n } else {\n handlePointClickAndCarouselMove(point, false);\n handleSelectedCard(point);\n }\n } else {\n handlePointClickAndCarouselMove(point, false);\n handleSelectedCard(point);\n }\n };\n\n const settings = {\n className: 'center',\n infinite: false,\n centerMode: true,\n centerPadding: '60px',\n slidesToShow: 1,\n swipe: true,\n speed: 500,\n arrows: false,\n beforeChange: (current: number, next: number) => {\n const point: Points = pointsToList.find((point) => {\n if (!point.properties.cluster) {\n if (point.properties.dealer.kvps === childrenRef.current[next].key) {\n return point;\n }\n }\n });\n\n handleCarouselMovement(point);\n },\n };\n return (\n \n {\n sliderRef.current = el;\n if (el && el.props && el.props.children) {\n childrenRef.current = el.props.children.filter((c: any) => c !== null);\n }\n }}\n >\n {pointsToList\n ? pointsToList.map((point: Points, i) => {\n const distanceFromCenter = getDistanceFromLatLngCenter(centerToCalculateDistance.current, point);\n\n return !point.properties.cluster ? (\n
\n {/* este div es necesario para el funcionamiento de la libreria */}\n \n \n \n
\n ) : null;\n })\n : null}\n
\n \n );\n};\n","import {\n Breakpoints,\n Container,\n ContainerPadding,\n Layout,\n styled,\n Text,\n TextAlignment,\n TokenTextAppearance,\n TokenTextColor,\n} from '@volkswagen-onehub/components-core';\nimport { FleetServicePrivate, CarPickupService } from 'src/icons-core-imports';\nimport React, { useEffect, useState } from 'react';\nimport { useSelector } from 'react-redux';\nimport { useMapGeneralController, getDistanceFromLatLngCenter, usePinState } from 'src/feature-app';\nimport { Points } from 'src/types';\nimport { OneFormState } from 'src/types';\nimport {} from 'src/feature-app';\nimport { useTrackingManager } from 'src/feature-app/hooks/use-tracking-manager';\n\ninterface BoxCardProps {\n selected?: boolean;\n isCarousel: boolean;\n isHover?: boolean;\n isFirstDesktop?: boolean;\n greyCard?: boolean;\n isInverted?: boolean;\n}\n\nconst BoxCard = styled.div`\n width: 100%;\n margin-bottom: ${(props) => (props.isCarousel || props.isFirstDesktop ? '0' : '20px')};\n padding: ${(props) => (props.isCarousel ? '12px' : '20px')};\n border: ${(props) =>\n props.selected && props.greyCard && !props.isCarousel\n ? '2px solid #6A767D'\n : props.selected && props.isInverted && !props.isCarousel\n ? '2px solid #001E50'\n : props.greyCard && !props.isCarousel\n ? '1px solid #6A767D'\n : props.isInverted\n ? '1px solid #C2CACF'\n : props.selected && !props.isCarousel\n ? '2px solid #FFFFFF'\n : props.isCarousel\n ? 'none'\n : '1px solid rgba(255,255,255,0.44)'};\n :hover {\n border: ${(props) =>\n props.isCarousel\n ? 'none'\n : props.selected && props.greyCard\n ? '2px solid #6A767D'\n : props.selected && props.isInverted\n ? '2px solid #001E50'\n : props.greyCard\n ? '1px solid #6A767D'\n : props.selected\n ? '2px solid #FFFFFF'\n : '1px solid #4cc7f4'};\n }\n\n @media all and (min-width: 560px) {\n margin-bottom: ${(props) => (props.isCarousel || props.isFirstDesktop ? '0' : '24px')};\n padding: 20px;\n }\n @media screen and (min-width: 960px) {\n .main {\n border: ${(props) =>\n props.isCarousel\n ? 'none'\n : props.selected\n ? '2px solid #001e50;'\n : props.isHover\n ? '1px solid #0040C5'\n : '1px solid #DFE4E8'};\n }\n .inverted {\n border: ${(props) =>\n props.isCarousel\n ? 'none'\n : props.selected\n ? '2px solid #FFFFFF'\n : props.isHover\n ? '1px solid #4cc7f4'\n : '1px solid rgba(255,255,255,0.44)'};\n }\n }\n @media all and (min-width: 1600px) {\n margin-top: ${(props) => (props.isCarousel || props.isFirstDesktop ? '0' : '28px')};\n }\n`;\n\ninterface isCarouselProps {\n isCarousel: boolean;\n}\n\nconst EllipsisTextWrapper = styled.p<{ greyCard?: boolean }>`\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n margin-top: 0px;\n margin-bottom: 0px;\n color: ${(props) => (props.greyCard ? '#6A767D' : '#000000')};\n`;\nconst GreyText = styled.span<{ greyCard?: boolean }>`\n color: ${(props) => (props.greyCard ? '#6A767D' : '#000000')};\n`;\nconst SVGSize = styled.div<{ greyCard: boolean }>`\n padding-left: 16px;\n svg {\n height: 20px;\n width: auto;\n color: ${(props) => (props.greyCard ? '#6A767D' : '#000000')};\n }\n`;\n\nconst CustomCTA = styled.button<{ greyCard?: boolean }>`\n height: 32px;\n width: max-content;\n padding: 8px 16px;\n border: none;\n cursor: pointer;\n border-radius: 22px;\n display: flex;\n align-items: center;\n background-color: ${(props) => (props.greyCard ? '#6A767D' : '#001E50')};\n color: ${(props) => (props.greyCard ? '#DFE4E8' : '#FFFFFF')};\n\n :hover {\n background-color: ${(props) => (props.greyCard ? '#6A767D' : '#001E50')};\n }\n`;\n\ninterface DealerCardProps {\n distanceFromCenter: string;\n handleSeleccionarOnClick?: any;\n handleShowCalendarOnClick?: any;\n // center?: Center,\n isCarousel: boolean;\n dealerInfo: any;\n point: Points;\n slots: any;\n handleShowSlots?: (point: Points) => string | null;\n isCitaPosventa?: boolean;\n isFirstDesktop?: boolean;\n carPickupSelected?: boolean;\n replacementCarSelected?: boolean;\n isInverted?: boolean;\n}\n\nexport const DealerCardWidget = React.memo((props: DealerCardProps) => {\n const {\n distanceFromCenter,\n isCarousel,\n dealerInfo,\n point,\n isFirstDesktop,\n carPickupSelected,\n replacementCarSelected,\n isInverted,\n } = props;\n const { suggestionIsAddress } = useSelector((state: OneFormState) => state.formInfo);\n const dealerCompletAdress = `${dealerInfo.markerInfo.dealerInfo.address}, ${dealerInfo.markerInfo.dealerInfo.zipCode} ${dealerInfo.markerInfo.dealerInfo.city}`;\n const {\n centerToCalculateDistance,\n handlePointClickAndCarouselMove,\n handleHoverPoint,\n hoverPoint,\n selectedPoint,\n userIsGeoLocated,\n handleClusterClick,\n } = useMapGeneralController();\n\n const { isActive, isHover } = usePinState(selectedPoint, hoverPoint, point);\n\n const [greyCard, setGreyCard] = useState(false);\n\n useEffect(() => {\n if (point) {\n if (carPickupSelected && !point.properties.dealer.dmsInfo.pickupCarServiceAvailabe) {\n setGreyCard(true);\n } else if (replacementCarSelected && !point.properties.dealer.dmsInfo.replacementCarServiceAvailable) {\n setGreyCard(true);\n } else {\n setGreyCard(false);\n }\n }\n }, [carPickupSelected, replacementCarSelected, point]);\n\n return (\n {\n e.preventDefault();\n if (point.properties.parent_cluster_id) {\n if (window.innerWidth <= 959) {\n handleClusterClick(point, true, true);\n } else {\n handleClusterClick(point, true);\n }\n } else {\n handlePointClickAndCarouselMove(point);\n }\n }}\n onMouseEnter={(e) => {\n if (!isCarousel) {\n e.preventDefault();\n handleHoverPoint(point);\n }\n }}\n onMouseLeave={(e) => {\n if (!isCarousel) {\n e.preventDefault();\n handleHoverPoint(null);\n }\n }}\n >\n
\n {isCarousel ? (\n <>\n {/*card para el carousel*/}\n \n
\n {userIsGeoLocated || suggestionIsAddress ? (\n \n \n \n {dealerInfo.name ? dealerInfo.name : null}\n \n \n\n \n \n {userIsGeoLocated || suggestionIsAddress\n ? distanceFromCenter\n ? `${distanceFromCenter}km`\n : `${getDistanceFromLatLngCenter(centerToCalculateDistance.current, point)}km`\n : null}\n \n \n \n ) : (\n \n \n {dealerInfo.name ? dealerInfo.name : null}\n \n \n )}\n
\n \n {!point.properties.dealer.dmsInfo || !point.properties.dealer.dmsInfo.dmsAvailable ? (\n

\n {dealerCompletAdress}\n

\n ) : (\n {dealerCompletAdress}\n )}\n
\n
\n <>\n {(point?.properties?.dealer?.dmsInfo &&\n point?.properties?.dealer?.dmsInfo?.replacementCarServiceAvailable) ||\n (point?.properties?.dealer?.dmsInfo && point?.properties?.dealer?.dmsInfo?.pickupCarServiceAvailabe) ? (\n \n
\n {point.properties.dealer.dmsInfo.replacementCarServiceAvailable ? (\n \n \n \n ) : null}\n {point.properties.dealer.dmsInfo.pickupCarServiceAvailabe ? (\n \n \n \n ) : null}\n
\n \n \n ) : (\n \n )}\n \n \n ) : (\n <>\n {/*card para los tabs, cualquier breakpoint*/}\n \n
\n {userIsGeoLocated || suggestionIsAddress ? (\n \n \n {dealerInfo.name ? dealerInfo.name : null}\n \n \n \n {userIsGeoLocated || suggestionIsAddress\n ? distanceFromCenter\n ? `${distanceFromCenter}km`\n : `${getDistanceFromLatLngCenter(centerToCalculateDistance.current, point)}km`\n : null}\n \n \n \n ) : (\n \n {dealerInfo.name ? dealerInfo.name : null}\n \n )}\n
\n \n

\n {dealerCompletAdress}\n

\n
\n
\n <>\n {(point.properties.dealer.dmsInfo && point.properties.dealer.dmsInfo.replacementCarServiceAvailable) ||\n (point.properties.dealer.dmsInfo && point.properties.dealer.dmsInfo.pickupCarServiceAvailabe) ? (\n \n
\n \n
\n
\n {point.properties.dealer.dmsInfo.replacementCarServiceAvailable ? (\n \n \n \n ) : null}\n {point.properties.dealer.dmsInfo.pickupCarServiceAvailabe ? (\n \n \n \n ) : null}\n
\n \n ) : (\n \n )}\n \n \n )}\n {/* */}\n
\n \n );\n});\n\nconst LeadsCTAs = (props: DealerCardProps) => {\n const { handleSeleccionarOnClick, dealerInfo, point, carPickupSelected, replacementCarSelected } = props;\n const [greyCard, setGreyCard] = useState(false);\n\n const trackingManager = useTrackingManager();\n\n useEffect(() => {\n if (point) {\n if (carPickupSelected && !point.properties.dealer.dmsInfo.pickupCarServiceAvailabe) {\n setGreyCard(true);\n } else if (replacementCarSelected && !point.properties.dealer.dmsInfo.replacementCarServiceAvailable) {\n setGreyCard(true);\n } else {\n setGreyCard(false);\n }\n }\n }, [carPickupSelected, replacementCarSelected, point]);\n\n return (\n \n {/* {\n e.preventDefault();\n trackingManager.trackFormButtonClick(\n {\n contentId: 'Seleccionar',\n },\n dealerInfo\n );\n\n handleSeleccionarOnClick(point);\n }}\n >\n Seleccionar\n */}\n {\n e.preventDefault();\n trackingManager.trackFormButtonClick(\n {\n contentId: 'Seleccionar',\n },\n dealerInfo\n );\n\n handleSeleccionarOnClick(point);\n }}\n >\n \n Seleccionar\n \n \n \n );\n};\n","import { Breakpoints, BreakpointWrapper, styled } from '@volkswagen-onehub/components-core';\nimport React, { useEffect, useRef, useState } from 'react';\nimport { Points } from 'src';\nimport { sortPointsByDistance, useTrackingManager, useFeatureServices } from 'src/feature-app';\nimport { getDistanceFromLatLngCenter, useMapGeneralController } from 'src/feature-app/NewMap';\nimport { CTAServicesProps, DealerCardWidget, ViewDesktopWidgetMapa, ViewMobileWidgetMapa } from 'src/widgets';\nimport { CTAMapaProps } from './CTAMapa';\n\nconst ContentWrapper = styled.div`\n width: 100%;\n /* height: 100%; */\n overflow: visible;\n height: 85vh;\n\n @media all and (min-width: 560px) {\n height: 82vh;\n }\n\n @media all and (min-width: 560px) {\n height: 85vh;\n }\n @media all and (min-width: 960px) {\n height: 60vh;\n }\n @media all and (min-width: 1600px) {\n height: 70vh;\n }\n`;\n\nexport interface ViewWidgetMapaProps {\n handleSeleccionarOnClick: (point: Points) => void;\n renderPoints(\n points: any,\n carPickupSelected?: boolean,\n replacementCarSelected?: boolean,\n isCarousel?: boolean\n ): JSX.Element[];\n pointsToList: Points[];\n CTAServicesProps: CTAServicesProps;\n CTAMapaProps: CTAMapaProps;\n}\n\ninterface MapaScreenProps {\n setShowMap: React.Dispatch>;\n}\n\nexport const MapaScreen = ({ setShowMap }: MapaScreenProps) => {\n const {\n clusters,\n centerToCalculateDistance,\n superClusterRef,\n cardsDistanceRef,\n getNewClusters,\n mapHasMoved,\n resetMap,\n } = useMapGeneralController();\n const trackingManager = useTrackingManager();\n\n const calculadoraFeatureService = useFeatureServices()['calculator-feature-service'];\n\n const [pointsToList, setPointsToList] = useState(null);\n const [carPickupSelected, setCarPickupSelected] = useState(false);\n const [replacementCarSelected, setReplacementCarSelected] = useState(false);\n\n const handleClickCarPickup = () => {\n if (!carPickupSelected) {\n setCarPickupSelected(true);\n } else {\n setCarPickupSelected(false);\n }\n };\n\n const handleClickReplacementCar = () => {\n if (!replacementCarSelected) {\n setReplacementCarSelected(true);\n } else {\n setReplacementCarSelected(false);\n }\n };\n\n const handleSeleccionarOnClick = (point: Points) => {\n if (calculadoraFeatureService) {\n const dealer = point?.properties?.dealer;\n calculadoraFeatureService.setInstallation({ name: dealer.name, code: dealer.kvps });\n } else {\n console.error('calculator-feature-service is not registered');\n }\n };\n\n useEffect(() => {\n if (clusters && superClusterRef.current) {\n const pointsByDistance = sortPointsByDistance(\n clusters,\n centerToCalculateDistance.current,\n superClusterRef.current\n );\n setPointsToList(pointsByDistance);\n }\n }, [clusters, superClusterRef.current]);\n\n const handleSearchArea = () => {\n trackingManager.trackFormButtonClick({\n contentId: 'Buscar en esta zona',\n });\n getNewClusters();\n {\n /*if (setTranslateCarousel) {\n setTranslateCarousel(false);\n }*/\n }\n };\n\n const handleSearchAgain = () => {\n setShowMap(false);\n resetMap();\n };\n\n const renderPoints = (\n points: Points[],\n carPickupSelected?: boolean,\n replacementCarSelected?: boolean,\n isCarousel?: boolean\n ): JSX.Element[] => {\n return points\n ? points.map((point: Points, index: number) => {\n if (!point.properties.cluster) {\n const { dealer } = point.properties;\n const distanceFromCenter = getDistanceFromLatLngCenter(centerToCalculateDistance.current, point);\n\n return (\n {\n cardsDistanceRef.current[index] = el;\n }}\n >\n \n
\n );\n }\n return null;\n })\n : null;\n };\n // De momento la versión mobile no se ve bien ya que están los paddings de la feature app insertados y descuadra el 100vh del content wrapper.\n return (\n <>\n \n \n \n \n \n \n \n \n \n \n \n );\n};\n","import {\n Container,\n ContainerGutter,\n ContainerPadding,\n CTA,\n styled,\n Text,\n TextAlignment,\n TokenTextAppearance\n} from '@volkswagen-onehub/components-core';\nimport React, { useEffect, useState } from 'react';\nimport { useDispatch } from 'react-redux';\nimport { Suggestion } from 'src';\nimport { Suggest, updateMapVariables, useLocateUser } from 'src/feature-app';\nimport LoadScriptInstance from 'src/feature-app/NewMap/Loadscript';\n\ninterface SuggestionScreenProps {\n setShowMap: React.Dispatch>;\n}\n\nconst LocateWrapper = styled.div`\n overflow: visible;\n padding-top: 44px;\n padding-bottom: 15vh;\n \n @media all and (min-width: 1600px) {\n padding-bottom: 20vh;\n }\n`;\n\nexport const SuggestionScreen = ({ setShowMap }: SuggestionScreenProps) => {\n const dispatch = useDispatch();\n const {\n value,\n setValue,\n suggestion,\n setSuggestion,\n icon,\n locationSuccess,\n setLocationSuccess,\n handleLocate,\n isLocating,\n loading,\n locationDisabled,\n } = useLocateUser();\n const [searchDisabled, setSearchDisabled] = useState(true);\n\n const onSuggestionSelectedFn = (suggestion: Suggestion) => {\n updateMapVariables(dispatch, suggestion).then(() => {\n setShowMap(true);\n });\n };\n\n useEffect(() => {\n if (suggestion) {\n updateMapVariables(dispatch, suggestion).then(() => {\n setSearchDisabled(false);\n });\n }\n }, [suggestion]);\n\n return (\n {}}>\n \n \n \n ¿Qué taller quieres que se{' '}\n \n encargue?*\n \n \n \n \n
\n \n
\n \n
\n {\n e.preventDefault();\n if (!locationSuccess) handleLocate();\n }}\n disabled={loading ? true : false}\n size=\"small\"\n >\n Localiza mi posición actual\n \n {locationDisabled ? (\n
\n \n Tu localización está deshabilitada\n \n
\n ) : null}\n
\n {\n setShowMap(true);\n }}\n disabled={loading || searchDisabled ? true : false}\n >\n Buscar\n \n
\n
\n
\n
\n );\n};\n","import {\n Container,\n CTA,\n styled,\n ThemeProvider,\n} from '@volkswagen-onehub/components-core';\nimport React, { useState } from 'react';\nimport { CSSTransition } from 'react-transition-group';\nimport { Filtros, NewMap, useMapGeneralController } from 'src/feature-app';\nimport { ArrowLeft } from 'src/icons-core-imports';\nimport { CTAMapa, CTAServices, ViewWidgetMapaProps } from 'src/widgets';\n\nconst MapAndTabsWrapper = styled.div<{ showFilters: boolean }>`\n display: flex;\n\n .wrapper {\n width: 50%;\n height: 100vh;\n &--tabs {\n max-width: 441px;\n overflow-y: hidden;\n }\n &--map {\n position: relative;\n width: 100%;\n z-index: 4;\n height: 100%;\n background-color: grey;\n }\n }\n .opacity-layer {\n position: absolute;\n width: 50%;\n height: 100%;\n left: 0;\n background: rgba(0, 0, 0, 0.4);\n z-index: ${(props) => (props.showFilters ? 6 : -1)};\n opacity: ${(props) => (props.showFilters ? 1 : 0)};\n transition: opacity 0.4s;\n }\n`;\n\nconst ListWrapper = styled.div`\n overflow-y: auto;\n padding-right: 40px;\n // 36px es la medida de los ctas de coche de sustitución y servicio de recogida\n height: calc(85vh - 36px);\n\n @media all and (min-width: 560px) {\n height: calc(82vh - 36px);\n }\n @media all and (min-width: 768px) {\n height: calc(85vh - 36px);\n }\n @media all and (min-width: 960px) {\n height: calc(60vh - 36px);\n }\n @media all and (min-width: 1600px) {\n height: calc(70vh - 36px);\n}\n`;\n\nconst FilterButton = styled.div`\n position: absolute;\n width: 100%;\n top: 24px;\n /* right: 24px; */\n button {\n background: #ffffff;\n }\n`;\n\nconst FiltrosWrapper = styled.div`\n min-height: 100vh;\n width: 50%;\n background-color: white;\n position: absolute;\n top: 0;\n right: 0;\n z-index: 5;\n transform: translate3d(100%, 0, 0);\n display: none;\n .back-btn {\n position: absolute;\n z-index: 4;\n top: 20px;\n left: 24px;\n @media screen and (min-width: 1600px) {\n top: 24px;\n }\n /* style={{ paddingTop: '12px', paddingLeft: '24px' }} */\n }\n .filtros-component {\n padding-bottom: 0;\n min-height: calc(100vh - 44px);\n }\n &.filtros-enter {\n display: block;\n transform: translate3d(100%, 0, 0);\n }\n &.filtros-enter-active {\n display: block;\n transform: translate3d(0, 0, 0);\n transition: all 0.4s;\n }\n &.filtros-enter-done {\n display: block;\n transform: translate3d(0, 0, 0);\n }\n &.filtros-exit {\n display: block;\n transform: translate3d(0, 0, 0);\n }\n &.filtros-exit-active {\n display: block;\n transform: translate3d(100%, 0, 0);\n transition: all 0.4s;\n }\n &.filtros-exit-done {\n display: none;\n transform: translate3d(100%, 0, 0);\n }\n`;\n\nexport const ViewDesktopWidgetMapa = (props: ViewWidgetMapaProps) => {\n const { renderPoints, pointsToList, CTAServicesProps, CTAMapaProps } = props;\n const { carPickupSelected, replacementCarSelected } = CTAServicesProps;\n const [showFiltros, setShowFiltros] = useState(false);\n\n const { searchIsDealer } = useMapGeneralController();\n\n const handleShowFiltros = () => {\n setShowFiltros(!showFiltros);\n };\n\n return (\n <>\n \n
\n {/* */}\n \n \n
\n {pointsToList ? (\n \n
\n {renderPoints(pointsToList, carPickupSelected, replacementCarSelected, false)}\n
\n
\n ) : null}\n
\n
\n
\n
\n \n {/* Problemas con el scroll */}\n \n \n \n \n \n
\n
setShowFiltros(false)} />\n \n {/* {showFiltros ? ( */}\n\n \n {/* provar primer així i després amb render condicional .\n si es passa a condicional reisar front, probablement s'hauran de treure les css asignades a la clase\n filtros-component del component filtros-wrapper.\n */}\n \n \n
\n {\n e.preventDefault();\n handleShowFiltros();\n }}\n ariaLabel=\"aria label\"\n icon={}\n />\n
\n handleShowFiltros()}\n showFiltros={showFiltros}\n setShowFiltros={setShowFiltros}\n onlySuggest={true}\n concesionario={true}\n />\n
\n
\n
\n {/* ) : null}*/}\n \n );\n};\n","import {\n Container,\n ContainerPadding,\n CTA,\n styled,\n Text,\n ThemeProvider,\n TokenTextAppearance,\n} from '@volkswagen-onehub/components-core';\nimport React, { useEffect, useState } from 'react';\nimport { Filtros, NewMap, useMapGeneralController, useOneFormContext } from 'src/feature-app';\nimport { Close, Locate } from 'src/icons-core-imports';\nimport { CarouselWidget, CTAMapa, CTAServices, ViewWidgetMapaProps } from 'src/widgets';\n\n//Mobile styled components\n\nconst Wrapper = styled.div`\n display: flex;\n position: relative;\n`;\n\nconst WrapperCTAMapa = styled.div`\n z-index: 20;\n width: 100%;\n padding-top: 12px;\n position: absolute;\n\n & button {\n background: #ffffff;\n }\n`;\n\nconst FilterMobileNavbar = styled.div`\n position: relative;\n top: 0;\n width: 100vw;\n padding: 0px 20px;\n z-index: 20;\n background-color: #ffffff;\n display: flex;\n justify-content: space-between;\n`;\n\ninterface VerMasYCarouselPositionProps {\n translateCarousel: boolean;\n userIsGeoLocated: boolean;\n}\n\nconst VerMasYCarouselPosition = styled.div`\n position: absolute;\n bottom: 38px;\n height: ${(props) => (props.userIsGeoLocated ? '216px' : '160px')};\n width: 100%;\n transform: ${(props) => (props.translateCarousel ? 'translateY(116px)' : null)};\n @media all and (min-width: 560px) {\n height: ${(props) => (props.userIsGeoLocated ? '244px' : '184px')};\n }\n`;\nconst SoloCardWrapper = styled.div`\n background-color: #ffffff;\n bottom: 8px;\n height: fit-content;\n position: absolute;\n margin: 0 var(--size-grid002);\n width: var(--size-grid020);\n\n .box-card-wrapper {\n border: none;\n margin-top: 0;\n }\n`;\nconst CTASwrapper = styled.div`\n padding-right: 20px;\n padding-bottom: 12px;\n display: flex;\n flex-direction: column;\n align-items: flex-end;\n`;\nconst VerMasTalleresCTA = styled.div`\n height: 32px;\n padding-right: 16px;\n padding-left: 16px;\n background-color: #ffffff;\n border: 1px solid #001e50;\n border-radius: 500px;\n color: #001e50;\n display: flex;\n align-items: center;\n width: 100px;\n`;\nconst ControllerBackground = styled.div`\n border-radius: 100%;\n background-color: #ffffff;\n height: 44px;\n width: 44px;\n margin-bottom: 12px;\n button {\n border: 1px solid #001e50;\n }\n`;\n\ninterface CloseButtonProps {\n isTabsClose?: boolean;\n}\nconst CloseButtonWrapper = styled.div`\n position: absolute;\n padding-bottom: ${(props) => (props.isTabsClose ? '12px' : null)};\n /* background-color: ${(props) => (props.isTabsClose ? '#FFFFFF' : '#FFFFFF')}; */\n background-color: #ffffff;\n width: 100%;\n padding-top: 12px;\n padding-left: 12px;\n z-index: 4;\n @media screen and (min-width: 560px) {\n left: 20px;\n }\n button {\n color: ${(props) => (props.isTabsClose ? '#001E50' : null)};\n }\n`;\nconst listIcon = require('../../feature-app/NewMap/assets/filter-ic_list.svg');\n\nexport const ViewMobileWidgetMapa = (props: ViewWidgetMapaProps) => {\n const { handleSeleccionarOnClick, renderPoints, pointsToList, CTAServicesProps, CTAMapaProps } = props;\n const { carPickupSelected, replacementCarSelected } = CTAServicesProps;\n\n const { handlePreviousStep } = useOneFormContext();\n\n const { centerInGeoLocatedCenter, userIsGeoLocated, searchIsDealer } = useMapGeneralController();\n\n //controladores de vista\n\n const [showFiltros, setShowFiltros] = useState(false);\n const [showTalleres, setShowTalleres] = useState(false);\n const [showMap, setShowMap] = useState(true);\n const [translateCarousel, setTranselateCarousel] = useState(false);\n\n //otros\n const [gelocalizationActive, setGelocalizationActive] = useState(false);\n\n useEffect(() => {\n if (userIsGeoLocated) {\n setGelocalizationActive(true);\n }\n }, [userIsGeoLocated]);\n\n const handleShowFiltros = () => {\n setShowFiltros(!showFiltros);\n setShowTalleres(false);\n };\n const handleShowTalleres = () => {\n setShowTalleres(!showTalleres);\n setShowFiltros(false);\n };\n\n useEffect(() => {\n if (showFiltros === false && showTalleres === false) {\n setShowMap(true);\n } else {\n setShowMap(false);\n }\n }, [showFiltros, showTalleres]);\n\n return (\n
\n {showMap ? (\n <>\n \n {\n e.preventDefault();\n setTranselateCarousel(false);\n }}\n onTouchStart={(e) => {\n setTranselateCarousel(false);\n }}\n >\n \n \n \n \n \n \n \n \n \n
\n \n\n {pointsToList ? (\n searchIsDealer ? (\n \n {renderPoints(pointsToList, carPickupSelected, replacementCarSelected, true)}\n \n ) : (\n {\n e.preventDefault();\n setTranselateCarousel(false);\n }}\n onTouchStart={(e) => {\n e.preventDefault();\n setTranselateCarousel(false);\n }}\n userIsGeoLocated={userIsGeoLocated}\n >\n \n \n {gelocalizationActive ? (\n {\n e.preventDefault();\n centerInGeoLocatedCenter();\n e.stopPropagation();\n }}\n >\n {\n e.preventDefault();\n centerInGeoLocatedCenter();\n e.stopPropagation();\n }}\n ariaLabel=\"aria label\"\n icon={}\n />\n \n ) : null}\n {\n e.preventDefault();\n e.stopPropagation();\n }}\n onClick={(e) => {\n e.preventDefault();\n e.stopPropagation();\n handleShowTalleres();\n setTranselateCarousel(false);\n }}\n >\n \n \n Ver lista\n \n \n \n \n\n {/* Aunque en principio no debería devolver nunca sólo un resultado, dejo el siguiente\n render condicional por is acaso */}\n {pointsToList.length === 1 ? (\n \n {renderPoints(pointsToList, carPickupSelected, replacementCarSelected, true)}\n \n ) : (\n \n )}\n \n )\n ) : null}\n \n ) : (\n <>\n {showTalleres ? (\n \n \n {\n e.preventDefault();\n handleShowTalleres();\n }}\n ariaLabel=\"aria label\"\n icon={}\n />\n \n \n \n\n {renderPoints(pointsToList, carPickupSelected, replacementCarSelected, false)}\n \n
\n ) : showFiltros ? (\n \n \n \n {\n e.preventDefault();\n handleShowFiltros();\n }}\n ariaLabel=\"aria label\"\n icon={}\n />\n \n handleShowFiltros()}\n showFiltros={showFiltros}\n setShowFiltros={setShowFiltros}\n onlySuggest={true}\n concesionario={true}\n />\n
\n
\n ) : null}\n \n )}\n
\n );\n};\n","import React, { useEffect, useRef, useState } from 'react';\nimport { useDispatch, useStore } from 'react-redux';\nimport { DealersData, Suggestion } from 'src';\nimport {\n useGetDealers,\n useFeatureAppEnvironment,\n FullScreen,\n ScreenController,\n updateMapVariables,\n LayerManagerWrapper,\n useFeatureServices,\n} from 'src/feature-app';\nimport { LoadingLayer } from 'src/forms';\nimport { MapGeneralController } from 'src/feature-app/NewMap';\nimport { MapaScreen } from './MapaScreen';\nimport { SuggestionScreen } from './SuggestionScreen';\nimport { FocusLayerSizeV2, LayerManagerV2 } from '@volkswagen-onehub/layer-manager';\n\nexport function WidgetMapa() {\n const { selectedDealer, dealers, loading } = useGetDealers();\n const [showMap, setShowMap] = useState(false);\n const store = useStore();\n const dispatch = useDispatch();\n const env = useFeatureAppEnvironment();\n const onSuggestionSelectedFn = (suggestion: Suggestion) => {\n updateMapVariables(dispatch, suggestion).then(() => {\n setShowMap(true);\n closeLoadingLayer();\n });\n };\n const loadingLayer = useRef(null);\n const calculadoraFeatureService = useFeatureServices()['calculator-feature-service'];\n const layerManager = useFeatureServices()['layer-manager'] as LayerManagerV2;\n\n const renderLoadingLayer = () => {\n return (\n \n \n \n );\n };\n\n const openLoadingLayer = () => {\n if (!loadingLayer.current) {\n const layer = layerManager.openFocusLayer(renderLoadingLayer, {}, { size: FocusLayerSizeV2.A });\n loadingLayer.current = layer;\n }\n };\n\n const closeLoadingLayer = () => {\n if (loadingLayer.current) {\n loadingLayer.current.close();\n loadingLayer.current = null;\n }\n };\n\n useEffect(() => {\n const kvps = calculadoraFeatureService?.getCalculatorData()?.installation?.code;\n dispatch({ type: 'DISABLE_TRACKING' });\n if (!kvps) {\n return;\n }\n openLoadingLayer();\n\n if (dealers) {\n const dealer: DealersData = dealers?.find((dealer) => dealer.kvps === kvps);\n if (dealer) {\n onSuggestionSelectedFn(dealer);\n }\n }\n }, [dealers, loading]);\n\n return (\n \n null}\n selectedJourney={\n showMap ? : \n }\n />\n \n );\n}\n","import React from 'react';\nimport { TriggerProps, useFaContent } from 'src/feature-app';\nimport { WidgetMapa } from 'src/widgets';\n\nexport function WidgetTrigger({ setSelectedJourney }: TriggerProps) {\n const faContent = useFaContent();\n\n if (faContent.widget === 'Mapa') {\n return ;\n }\n return null;\n }\n","import { Suggestion } from './feature-app';\n\nexport interface OneFormState {\n formData: FormDataGroup;\n formInfo: FormInfo;\n dealersInfo: DealersInfo;\n vehiclesInfo: VehiclesInfo;\n}\n\nexport interface Preconfiguration {\n activo: number;\n activoMatch: number;\n activoOffers: boolean;\n capacidadMaletero: number[];\n carline:{\n code: number;\n name: string;\n text: string;\n title: string;\n };\n colores: {\n interior: string;\n exterior: {\n nombre: string;\n codigo: string;\n hexadecimal: string;\n invertido: number;\n atrevido: number;\n elegante: number;\n };\n };\n configToken: string;\n etiquetaDGT: string;\n conduccion: any;\n descripcion: string;\n descuentos: { [index: string]: number };\n destacados: any;\n equipamiento: string;\n id: number;\n marketingCode: string;\n llantas: string;\n marketingLongText: string;\n marketingShortText: string;\n espacio: any;\n motorizacion: string;\n pasajeros: any;\n plazas: number;\n precio: number;\n presupuesto: any;\n prioridad: number;\n tapiceria: string;\n titular: string;\n url: string;\n visible: boolean;\n title: string;\n}\nexport interface RankedPreconfiguration extends Preconfiguration {\n operaciones?: any[];\n puntuacion?: number;\n puntuaciones?: number[];\n sumHighlights?: number;\n totalStyle?: number;\n affinity?: number;\n budgetOffset?: number;\n}\n\nexport const isDealerData = (suggestion: Suggestion): suggestion is DealersData => {\n if (!suggestion) return null;\n return (suggestion as DealersData).dmsInfo !== undefined;\n};\nexport interface DealersInfo {\n carlines: CarlineBase[];\n /**\n * Al momento de enviar una cita, necesitamos esta información para mapear correctamente el modelo, por lo que lo tenemos que cargar desde el principio para que esté disponible en el momento del envio.\n */\n citaCarlines: CarlineBase[];\n dealers: DealersData[];\n selectedCarline: CarlineBase;\n installations: Installation[];\n points: Points[];\n favouriteDealer: DealersData;\n /**\n * Lo necesitamos en el caso de Cita Posventa Dealer, si el usuario tiene una concesión favorita la puede sobreescribir y debe tener prioridad la que viene por la url;\n */\n urlDealer: DealersData;\n selectedDealer: DealersData;\n selectedInstallation: Installation;\n dealersOrInstallationsMode: DealersOrInstallationsMode;\n oferta: Offer;\n salesGroup: SalesGroupInfo;\n match: RankedPreconfiguration;\n}\n\nexport type DealersOrInstallationsMode = 'dealers' | 'installations';\nexport interface InstallationResponse {\n content: { attributes: DomainAttributesValues[] }[];\n}\n\nexport interface VehiclesInfo {\n brands: [];\n models: [];\n brandSelected: string,\n modelSelected: string,\n}\n\nexport interface FormDataGroup {\n fields: FormDataFields;\n headers: FormDataHeaders;\n flags?: FormDataFlags;\n}\n\nexport type Horario = 'before' | 'morning' | 'evening' | 'afternon';\nexport interface FormDataFields {\n name?: string;\n horario?: Horario;\n slot?: Slot;\n [key: string]: any;\n dealer?: any;\n}\n\nexport interface FormDataHeaders {\n [key: string]: any;\n}\nexport interface FormDataFlags {\n [key: string]: string;\n}\n\nexport interface FormInfo {\n /**\n * Flag necesario para que se dispare el journey con un dealer preseleccionado desde la url. En la primera carga omitimos la localización y el horario, pero en caso de que el\n * usuario vuelva hacia atrás el journey debe seguir siendo siempre el mismo.\n */\n firstMapLoad?: boolean;\n /**\n * Flag que se activa cuando se produce el primer dispatch al crear el formulario, para no mostrar el form hasta que no se inicie el mismo.\n */\n formStarted: boolean;\n /**\n * Flag que se activa al llegar al final del formulario. Es necesario en caso de edición de la cita para pasar del paso a editar a la confirmación de la cita sin volver a hacer todo el journey.\n */\n formEnded: boolean;\n /**\n * Flag en caso de que uno de los steps necesite mostrarse en fullscreen sin los botones de navegación.\n */\n formResponse?: any;\n\n /**\n * Flag para determinar el tema de color del form\n */\n formTheme?: 'main' | 'inverted';\n /**\n * Flag para determinar si el form se despliega en un layer o no\n */\n notALayer?: boolean;\n /**\n * Flag para determinar el tipo de front de un formulario: layer, encuesta o module\n */\n formType?: 'layer' | 'inPage' | 'module';\n\n /**\n * Flag para determinar si hay que alinear al centro, para forms formato full screen cuando solo hay una pantalla\n */\n alingItemsCenter?: boolean;\n /**\n * Flag que indica que el formulario ya ha terminado y se ha enviado.\n */\n formSubmitted: boolean;\n fullScreen: boolean;\n /**\n * Objeto con los parámetros necesarios para inicializar el mapa a partir de la búsqueda del suggest\n */\n geometry?: Geometry;\n /**\n * Flag para controlar si hay un error que impide que se pueda seguir avanzando y se tenga que cerrar el layer.\n */\n genericError: boolean;\n /**\n * En caso de que haya un paso final común se puede especificar para en el caso de que haya que volver hacia atrás, al usar el CTA de siguiente te rediriga a la última página.\n */\n initialZoom?: number;\n initialSteps?: Steps[];\n\n /**\n * Componente que se mostrará después de realizar el envío del formulario.\n */\n thankYouComponent: JSX.Element;\n lastStep?: Steps;\n multiSteps?: Steps[];\n multiStepScreenIndex?: number;\n /**\n * Flag para detectar si se está avanzando hacia adelante o hacia atrás (principalmente útil en los multisteps).\n */\n navigationMovingForward?: boolean;\n nextNumber?: number;\n nextStepCallback?: () => number;\n numberOfScreens: number;\n previousStepCallback?: () => void;\n screenIndex: number;\n /**\n * Flag que se activa en caso de que haya un problema con la DMS a la hora de grabar la cita.\n */\n sendDmsFailed?: boolean;\n sendFormCallback?: () => Promise;\n showFinalScreen: boolean;\n /**\n * Flag para mostrar el calendario o no al volver hacia atrás en cita posventa.\n */\n showCalendarOnLoad?: boolean;\n step: Steps;\n steps: Steps[];\n stepsHistory: number[];\n stepsLiteralFields: [];\n /**\n * Flag para controlar en el mapa si el usuario ha seleccionado una concesión, para mostrar directamente el calendario.\n */\n suggestionIsDealer?: boolean;\n /**\n * Flag para impedir avanzar al usuario en caso de que seleccione un resultado en las islas canarias para poder redirigir.\n */\n suggestionIsInCanaryIslands?: boolean;\n /**\n * Flag que indica si la sugerencia seleccionada es una dirección o no, para mostrar el marker de geolocalización.\n */\n suggestionIsAddress?: boolean;\n /**\n * Desactivamos el tracking en algunos journeys\n */\n trackingIsDisabled?: boolean;\n /**\n * Flag para ocultar el legal que se muestra por defecto en la pantalla de confirmación.\n */\n hideLegal?: boolean;\n /**\n * Elemento para mostrar un legal custom en la pantalla de legales.\n */\n customLegal?: JSX.Element;\n triggerExitAnimation: boolean;\n userCenter?: Center;\n userIsAuthenticated?: boolean;\n userSuggestion?: Suggestion;\n userGeoLocation?: Suggestion;\n waitForNextStep: boolean;\n\n //ocultar el close component y el previous step en steps configurados especialmente\n deleteCloseAndPrevious?: boolean;\n}\n\nexport interface Points {\n id?: number;\n type?: string;\n properties?: {\n parent_cluster_id?: number;\n cluster: boolean;\n concesionId?: string | number;\n dealer?: DealersData;\n installation?: Installation;\n cluster_id?: number;\n distanceFromCenter?: string;\n earliestSlot?: number;\n point_count?: number;\n selected?: boolean;\n };\n geometry?: {\n type?: string;\n coordinates?: [number, number];\n };\n}\n\nexport interface Center {\n lat: number;\n lng: number;\n}\n\nexport interface Steps {\n name?: string;\n component?: JSX.Element;\n fields?: JSX.Element;\n fullScreen?: boolean;\n multiStep?: boolean;\n multiStepLastScreen?: boolean;\n outputs?: string[];\n outputsText?: string[];\n ctas?: any[];\n outputsIsStars?: boolean;\n trueOrFalseQuestion?: boolean;\n screenIndex?: number;\n alternateTitle?: JSX.Element;\n title?: JSX.Element;\n isLastStep?: boolean;\n /**\n * Flag para controlar que se dispare el evento correcto de analítica en la primera carga del layer.\n */\n isFirstStep?: boolean;\n /**\n * Flag para ocultar si es necesario que se muestre el componente PreviousStep en el step.\n */\n hidePreviousStep?: boolean;\n /**\n * Flag para determinar si el step contiene un select con dropdown NO nativo\n */\n showOverflow?: boolean;\n}\n\nexport interface MolecularResponse {\n content: {\n status: string;\n code: string;\n message: string;\n data: object;\n };\n params: {\n fields: {\n COD_LEAD_ID: string;\n };\n headers: object;\n };\n status: {\n code: number;\n result: string;\n route: string;\n time: number;\n };\n success: boolean;\n}\n\nexport interface OneformBFFResponse {\n content: {\n headers: {\n FK_SYSTEM: string;\n }\n };\n status: {\n code: number;\n duration: number;\n message: string;\n result: string;\n timestamp: string;\n };\n}\n\nexport interface SalesGroupInfo {\n salesGroupId: string;\n salesGroupName: string;\n}\n\nexport interface AppadapResponse extends MolecularResponse {\n contentNDPS: { status: string; code: string; message: string; data: object };\n}\nexport interface DomainAttributesValues {\n name: DomainAttributesName;\n value?: string;\n}\n\ntype DomainAttributesName =\n | 'Id'\n | 'VGED_CommercialName__c'\n | 'BillingStreet'\n | 'BillingPostalCode'\n | 'BillingCity'\n | 'BillingLatitude'\n | 'BillingLongitude'\n | 'VGED_DealerCode__c'\n | 'BillingStateCode'\n | 'KVPSCode__c';\n\nexport interface DomainAttributes {\n attributes: DomainAttributesValues[];\n}\n\nexport interface DomainResponse {\n content: DomainAttributes[];\n params: {\n token: string;\n domain: string;\n };\n status: {\n code: string;\n result: string;\n route: string;\n time: number;\n };\n}\n\nexport interface VicciResponse {\n expandedConfiguration: {\n salesgroupKey: string;\n };\n}\n\nexport interface DealersData {\n id?: number | string;\n name?: string;\n kvps?: string;\n codInstalacion?: string;\n slots?: Slots;\n markerInfo?: {\n dealerInfo?: DealerInfo;\n svcLocation?: SvcLocation;\n id?: string;\n };\n dmsInfo?: DmsInfo;\n availabilityInfo?: null;\n}\nexport interface Slots {\n morning: Slot;\n afternon: Slot;\n evening: Slot;\n}\nexport interface Installation {\n Id: string;\n VGED_CommercialName__c: string;\n BillingStreet: string;\n BillingPostalCode: string;\n BillingCity: string;\n BillingLatitude: string;\n BillingLongitude: string;\n VGED_DealerCode__c: string;\n BillingStateCode: string;\n KVPSCode__c: string;\n Province: string;\n}\nexport interface Slots {\n morning: Slot;\n afternon: Slot;\n evening: Slot;\n}\n\nexport type SlotsTime = 'morning' | 'afternon' | 'evening';\n\nexport interface SvcLocation {\n latitude: number;\n longitude: number;\n}\n\nexport interface Slot {\n from: number;\n to: number;\n replacementCarServiceAvailable: boolean;\n dayMoment: { code: string; name: string };\n assessorCode: string;\n}\n\nexport interface DmsInfo {\n name?: string;\n phone?: string;\n email?: string;\n dmsAvailable: boolean;\n dealerId: {\n kvps: string;\n codInstalacion: string;\n brand: string;\n };\n replacementCarServiceAvailable: boolean;\n pickupCarServiceAvailabe: boolean;\n overhaulingServiceAvialable: boolean;\n assessors: Assessors[];\n reference: string;\n}\n\nexport interface Assessors {\n code: string;\n name: string;\n}\nexport interface DealerInfo {\n dealerId?: {\n kvps?: string;\n codInstalacion?: string;\n brand?: string;\n };\n name?: string;\n phone?: string;\n departmentCode?: string;\n contactName?: string;\n mail?: string;\n city?: string;\n province?: string;\n country?: string;\n address?: string;\n zipCode?: string;\n urls?: string[];\n}\n\nexport interface Availability {\n status: {\n route: string;\n code: number;\n result: string;\n time: number;\n };\n content: {\n dealer: DmsInfo;\n calendar: Calendar[];\n };\n}\n\nexport interface Calendar {\n date: string;\n slots: CalendarSlot[];\n}\n\nexport interface Day {\n dayNumber: string;\n dayOfTheWeek: string;\n date: string;\n disabled: boolean;\n active: boolean;\n}\n\nexport interface CalendarSlot {\n hour: string;\n assessor: string;\n from: number;\n to: number;\n replacementCarServiceAvailable: boolean;\n dayMoment: { code: string; name: string };\n assessorCode: string;\n GMT: string;\n}\n\nexport interface Survey {\n dealer?: {\n markerInfo: {};\n dmsInfo: {};\n };\n tc?: string;\n deviceType: string;\n urlOrigin: string;\n url: string;\n formId: string;\n formVersion: string;\n deepLink?: string;\n budget?: string;\n waid?: string;\n}\n\nexport interface Campaign {\n activo: number;\n salesforce: string;\n dfo: {\n ofertas: string;\n };\n}\n\nexport interface CarlineBase {\n activo: boolean;\n activoMatch: boolean;\n activoMeasurements: boolean;\n activoOffers: boolean;\n campaign: Campaign;\n capacidadMaletero: number[];\n categorias: Object;\n code: number;\n id: number;\n legalConsumos: string;\n medidas: Object;\n name: string;\n nuevo: boolean;\n precioMinimo?: number;\n precioMinimoModalidad?: string;\n precioMinimoText?: string;\n showroomURL: string;\n text: string;\n title: string;\n plazas: number;\n formularios: {\n testDrive: FormulariosFlagValue;\n presupuesto: FormulariosFlagValue;\n masInformacion: FormulariosFlagValue;\n prospect: FormulariosFlagValue;\n };\n}\n\nexport interface CarlinesWithSalesgroups extends CarlineBase {\n salesGroups?: Salesgroup[];\n}\n\nexport interface Salesgroup {\n id: number;\n code: number;\n name: string;\n year: number;\n}\n\nexport interface Offer {\n anchor: string;\n activo: number;\n carline: {\n id: number;\n nuevo: number;\n code: number;\n name: string;\n title: string;\n text: string;\n salesgroup: {\n id: number;\n code: number;\n name: string;\n year: number;\n model: {\n id: number;\n code: string;\n name: string;\n descripcion: string;\n };\n };\n }\n colores: {\n exterior: ExteriorColors;\n };\n cuota: number;\n cuotaInfo: string;\n cuotaText: string;\n cuotaTipo: string;\n cuotaFinal: string;\n dco: number;\n descripcion: string;\n equipamientos?: OfferEquipments;\n cuotaEntrada: string;\n financiacionName: string;\n financiacionText: string;\n id: number;\n legal: string;\n marketingCode: string;\n mediaAssets: OfferMediaAssets;\n modalidad: string;\n motorizacion: string;\n motor: {\n combustible: string;\n dsg: number;\n fourMotion: number;\n tiptronic: number;\n cambio: string;\n };\n myRenting: boolean;\n plazos: number;\n next: boolean;\n ourRenting: boolean;\n precio: number;\n precioText: string;\n prioridad: number;\n promociones: Promociones[];\n tin: string;\n tae: string;\n}\n\nexport interface Promociones {\n name: string;\n text: string;\n descripcion: string;\n}\n\nexport interface ExteriorColors {\n nombre: string;\n codigo: string;\n hexadecimal: string;\n invertido: boolean;\n atrevido: boolean;\n elegante: boolean;\n}\nexport interface OfferEquipments {\n serie: OfferEquipment[];\n promocional: OfferEquipment[];\n destacados: OfferEquipment[];\n}\nexport interface OfferEquipment {\n equipamiento: {\n titulo: string;\n descripcion: string;\n icono: string;\n };\n}\n\nexport interface OfferMediaAssets {\n CarSideview: string;\n 'CarStage3-4': string;\n}\n\nexport type FormularioFlagType = 'testDrive' | 'presupuesto' | 'masInformacion' | 'prospect';\nexport type FormulariosFlagValue = 0 | 1;\n\nexport interface Geometry {\n lat: number;\n lng: number;\n bounds?: google.maps.LatLngBounds;\n viewport?: google.maps.LatLngBounds;\n}\n\nexport type SelectedTab = 'ubicacion' | 'horario';\n\nexport interface IdLead {\n ID?: string;\n attributes?: string;\n Id?: string;\n OwnerId?: string;\n IsDeleted?: string;\n Name?: string;\n CreatedDate?: string;\n CreatedById?: string;\n LastModifiedDate?: string;\n LastModifiedById?: string;\n SystemModstamp?: string;\n LastViewedDate?: string;\n LastReferencedDate?: string;\n Brand__c?: string;\n DESC_Dealer_Code__c?: string;\n DESC_Model__c?: string;\n ID_Person_DIM_IMP__c?: string;\n IS_Prospect__c?: string;\n Is_AfterSales__c?: string;\n Is_Company__c?: string;\n Is_lead__c?: string;\n LSSI__c?: string;\n LastCreatedDate__c?: string;\n TXT_Email__c?: string;\n TXT_Postal_Code__c?: string;\n TXT_Province__c?: string;\n Token__c?: string;\n Total__c?: string;\n Total_last_1_year__c?: string;\n Total_last_2_year__c?: string;\n Total_last_3_year__c?: string;\n Total_last_4_year__c?: string;\n VN_VO__c?: string;\n LKP_PersonAccount__c?: string;\n External_Id_Climapro__c?: string;\n NUM_COD_INTEREST_CARLINE__c?: string;\n TXT_DESC_DEALER_CODE__c?: string;\n IsQualified__c?: string;\n\n FirstName?: string;\n LastName?: string;\n MiddleName?: string;\n Email?: string;\n MobilePhone?: string;\n VGED_CodeOfInterestCarline__c?: string;\n VGED_ModelOfInterest__c?: string;\n Dealership__c?: string;\n}\n\nexport interface IdPerson {\n Id?: string;\n IsDeleted?: string;\n Name?: string;\n TXT_2_Surname__c?: string;\n LastName?: string;\n FirstName?: string;\n Salutation?: string;\n RecordTypeId?: string;\n BillingAddress?: string;\n ShippingAddress?: string;\n PhotoUrl?: string;\n OwnerId?: string;\n CreatedDate?: string;\n CreatedById?: string;\n LastModifiedDate?: string;\n LastModifiedById?: string;\n SystemModstamp?: string;\n LastViewedDate?: string;\n LastReferencedDate?: string;\n IsPartner?: string;\n PersonContactId?: string;\n IsPersonAccount?: string;\n PersonMailingAddress?: string;\n PersonOtherAddress?: string;\n PersonHasOptedOutOfEmail?: string;\n PersonHasOptedOutOfFax?: string;\n PersonDoNotCall?: string;\n Audi__c?: string;\n Instalacion__c?: string;\n Skoda__c?: string;\n Volkswagen__c?: string;\n COD_Gender__c?: string;\n ID_Person_DIM_IMP__c?: string;\n LCV__c?: string;\n LSSI__c?: string;\n NUM_Phone_mobile__c?: string;\n Robinson__c?: string;\n TXT_Country__c?: string;\n TXT_Email__c?: string;\n TXT_Location__c?: string;\n TXT_NIF_CIF__c?: string;\n TXT_Postal_Code__c?: string;\n TXT_Province__c?: string;\n TXT_natural_legal_person__c?: string;\n FORM_Full_Address__c?: string;\n Dealership__c?: string;\n}\nexport interface IdVehicle {\n ID?: string;\n attributes?: string;\n Id?: string;\n OwnerId?: string;\n IsDeleted?: string;\n Name?: string;\n CreatedDate?: string;\n CreatedById?: string;\n LastModifiedDate?: string;\n LastModifiedById?: string;\n SystemModstamp?: string;\n LastViewedDate?: string;\n LastReferencedDate?: string;\n Affected_EA_189__c?: string;\n COD_comision__c?: string;\n CarNet__c?: string;\n TMAIMG__c?: string;\n Warranty_extension__c?: string;\n Included_mainetance__c?: string;\n DESC_car_model_salesgroup__c?: string;\n PKL_order_brand__c?: string;\n Frame__c?: string;\n Fuel__c?: string;\n Gear_type__c?: string;\n Installed_PR_packages__c?: string;\n KM_cobertura_garantia__c?: string;\n Assistance_years__c?: string;\n DESC_Model__c?: string;\n Registration__c?: string;\n Repaired_EA_189__c?: string;\n TrimLevel_Model__c?: string;\n VW_Connect__c?: string;\n Vehicle_age_yearly_reg__c?: string;\n Audi_Connect__c?: string;\n Car_power__c?: string;\n Carline_Code__c?: string;\n DAT_registration__c?: string;\n DESC_model_group__c?: string;\n IDClimapro__c?: string;\n Long_full_drive__c?: string;\n PersonAccount__c?: string;\n Salesgroup_Code__c?: string;\n Vehicle_age_monthly_reg__c?: string;\n years_warranty_coverage__c?: string;\n years_warranty_extension__c?: string;\n Dealership__c?: string;\n}\n\nexport interface IdOrder {\n ID?: string;\n attributes?: string;\n Id?: string;\n OwnerId?: string;\n IsDeleted?: string;\n Name?: string;\n CreatedDate?: string;\n CreatedById?: string;\n LastModifiedDate?: string;\n LastModifiedById?: string;\n SystemModstamp?: string;\n LastViewedDate?: string;\n LastReferencedDate?: string;\n CHK_excessive_waiting_Audi__c?: string;\n CHK_excessive_waiting_Audi_theoric__c?: string;\n CHK_excessive_waiting_LCV__c?: string;\n CHK_excessive_waiting_Skoda__c?: string;\n CHK_excessive_waiting_VW__c?: string;\n COD_Carline__c?: string;\n Instalacion_Audi__c?: string;\n Instalacion_LCV__c?: string;\n Instalacion_SK__c?: string;\n COD_comision__c?: string;\n COD_sales_type__c?: string;\n COD_salesgroup__c?: string;\n Customer_change_order__c?: string;\n VipEnviado__c?: string;\n DemoraTipo__c?: string;\n ConfirmacionRegaloEnviado__c?: string;\n EmailFollowUpEnviado__c?: string;\n CHK_contactable_universe__c?: string;\n Contactable_universe_vehicle__c?: string;\n DESC_Model__c?: string;\n DESC_Sales_VN_Type__c?: string;\n DESC_TrimLevel__c?: string;\n DESC_car_model_salesgroup__c?: string;\n DESC_excessive_waiting_Audi__c?: string;\n DESC_model_group__c?: string;\n EmailBienvenidaEnviado__c?: string;\n EmailDemoraEnviado__c?: string;\n EmailEstadoEnviado__c?: string;\n Factory__c?: string;\n Not_lineal_order__c?: string;\n Order_frame_FK__c?: string;\n PKL_order_VN_VO__c?: string;\n PKL_order_brand__c?: string;\n SLI_State__c?: string;\n Vehicle_age_monthly_ord__c?: string;\n Vehicle_age_yearly_ord__c?: string;\n COD_Customer_renting__c?: string;\n COD_Customer_type__c?: string;\n COD_Driver__c?: string;\n COD_Vehicle_climapro__c?: string;\n COD_owner_climapro__c?: string;\n Concesion__c?: string;\n Customer_type__c?: string;\n DAT_Customers_order__c?: string;\n DAT_Order__c?: string;\n DAT_delivery__c?: string;\n DAT_order_state_10__c?: string;\n DAT_order_state_20__c?: string;\n DAT_order_state_30__c?: string;\n DAT_order_state_40__c?: string;\n DAT_order_state_50__c?: string;\n DAT_order_state_60__c?: string;\n DAT_order_state_70__c?: string;\n DAT_order_state_80__c?: string;\n IDClimapro__c?: string;\n Instalacion__c?: string;\n Dealership__c?: string;\n}\n\nexport interface IdDealer {\n ID: string;\n attributes: string;\n Id: string;\n IsDeleted: string;\n MasterRecordId: string;\n Name: string;\n LastName: string;\n FirstName: string;\n Salutation: string;\n MiddleName: string;\n Suffix: string;\n Type: string;\n RecordTypeId: string;\n ParentId: string;\n BillingStreet: string;\n BillingCity: string;\n BillingState: string;\n BillingStateCode: string;\n BillingPostalCode: string;\n BillingCountry: string;\n BillingLatitude: string;\n BillingLongitude: string;\n BillingGeocodeAccuracy: string;\n BillingAddress: string;\n ShippingStreet: string;\n ShippingCity: string;\n ShippingState: string;\n ShippingPostalCode: string;\n ShippingCountry: string;\n ShippingLatitude: string;\n ShippingLongitude: string;\n ShippingGeocodeAccuracy: string;\n ShippingAddress: string;\n Phone: string;\n Fax: string;\n AccountNumber: string;\n Website: string;\n PhotoUrl: string;\n Sic: string;\n Industry: string;\n AnnualRevenue: string;\n NumberOfEmployees: string;\n Ownership: string;\n TickerSymbol: string;\n Description: string;\n Rating: string;\n Site: string;\n OwnerId: string;\n CreatedDate: string;\n CreatedById: string;\n LastModifiedDate: string;\n LastModifiedById: string;\n SystemModstamp: string;\n LastActivityDate: string;\n LastViewedDate: string;\n LastReferencedDate: string;\n IsPartner: string;\n PersonContactId: string;\n IsPersonAccount: string;\n PersonMailingStreet: string;\n PersonMailingCity: string;\n PersonMailingState: string;\n PersonMailingPostalCode: string;\n PersonMailingCountry: string;\n PersonMailingLatitude: string;\n PersonMailingLongitude: string;\n PersonMailingGeocodeAccuracy: string;\n PersonMailingAddress: string;\n PersonMobilePhone: string;\n PersonEmail: string;\n PersonTitle: string;\n PersonDepartment: string;\n PersonHasOptedOutOfEmail: string;\n PersonLastCURequestDate: string;\n PersonLastCUUpdateDate: string;\n PersonEmailBouncedReason: string;\n PersonEmailBouncedDate: string;\n Jigsaw: string;\n JigsawCompanyId: string;\n AccountSource: string;\n SicDesc: string;\n SalesforceCustomer: string;\n Active__c: string;\n Audi__c: string;\n Customer_Priority__c: string;\n Instalacion__c: string;\n NumberofLocations__c: string;\n SLAExpirationDate__c: string;\n SLASerialNumber__c: string;\n SLA__c: string;\n Skoda__c: string;\n UpsellOpportunity__c: string;\n Volkswagen__c: string;\n Dealer_Code_Vaesa__c: string;\n COD_Gender__c: string;\n ID_Person_DIM_IMP__c: string;\n LCV__c: string;\n LSSI__c: string;\n NUM_Phone_mobile__c: string;\n NUM_landline__c: string;\n PCK_Brand__c: string;\n Robinson__c: string;\n TXT_Country__c: string;\n TXT_Email__c: string;\n TXT_Location__c: string;\n TXT_NIF_CIF__c: string;\n TXT_Postal_Code__c: string;\n TXT_Province__c: string;\n TXT_natural_legal_person__c: string;\n Address_extra__c: string;\n Address_name__c: string;\n Address_number__c: string;\n Address_type__c: string;\n FORM_Full_Address__c: string;\n TXT_Code_Concession__c: string;\n TXT_Installation_Code__c: string;\n TXT_V_Code_Concession__c: string;\n TXT_V_Installation_Code__c: string;\n CHK_Lead_VN_Audi__c: string;\n CHK_Lead_VN_LCV__c: string;\n CHK_Lead_VN_SK__c: string;\n CHK_Lead_VN_VW__c: string;\n CHK_Lead_VO_Audi__c: string;\n CHK_Lead_VO_LCV__c: string;\n CHK_Lead_VO_SK__c: string;\n CHK_Lead_VO_VW__c: string;\n CHK_Prospect_VN_Audi__c: string;\n CHK_Prospect_VN_LCV__c: string;\n CHK_Prospect_VN_SK__c: string;\n CHK_Prospect_VN_VW__c: string;\n CHK_Prospect_VO_Audi__c: string;\n CHK_Prospect_VO_LCV__c: string;\n CHK_Prospect_VO_SK__c: string;\n CHK_Prospect_VO_VW__c: string;\n DAT_last_received_com_LCV__c: string;\n DAT_last_received_com_SK__c: string;\n DAT_last_received_com_VW__c: string;\n DAT_last_received_com__c: string;\n DAT_lead_vn_LCV__c: string;\n DAT_lead_vn_SK__c: string;\n DAT_lead_vn_VW__c: string;\n DAT_lead_vn__c: string;\n DAT_lead_vo_LCV__c: string;\n DAT_lead_vo_SK__c: string;\n DAT_lead_vo_VW__c: string;\n DAT_lead_vo__c: string;\n Desired_model_1_LCV__c: string;\n Desired_model_1_Skoda__c: string;\n Desired_model_1_VW__c: string;\n Desired_model_1__c: string;\n Desired_model_2_LCV__c: string;\n Desired_model_2_Skoda__c: string;\n Desired_model_2_VW__c: string;\n Desired_model_2__c: string;\n Last_comunication_campaign_LCV__c: string;\n Last_comunication_campaign_SK__c: string;\n Last_comunication_campaign_VW__c: string;\n Last_comunication_campaign__c: string;\n N_hits_last_14_days_LCV__c: string;\n N_hits_last_14_days_SK__c: string;\n N_hits_last_14_days_VW__c: string;\n N_hits_last_14_days__c: string;\n N_hits_last_21_days_LCV__c: string;\n N_hits_last_21_days_SK__c: string;\n N_hits_last_21_days_VW__c: string;\n N_hits_last_21_days__c: string;\n N_hits_last_30_days_LCV__c: string;\n N_hits_last_30_days_SK__c: string;\n N_hits_last_30_days_VW__c: string;\n N_hits_last_30_days__c: string;\n N_hits_last_7_days_LCV__c: string;\n N_hits_last_7_days_SK__c: string;\n N_hits_last_7_days_VW__c: string;\n N_hits_last_7_days__c: string;\n N_hits_last_90_days_LCV__c: string;\n N_hits_last_90_days_SK__c: string;\n N_hits_last_90_days_VW__c: string;\n N_hits_last_90_days__c: string;\n N_hits_last_year_LCV__c: string;\n N_hits_last_year_SK__c: string;\n N_hits_last_year_VW__c: string;\n N_hits_last_year__c: string;\n Pissed_off_client_LCV__c: string;\n Pissed_off_client_Skoda__c: string;\n Pissed_off_client_VW__c: string;\n Pissed_off_client__c: string;\n driver_is_official_dealer_LCV__c: string;\n driver_is_official_dealer_SK__c: string;\n driver_is_official_dealer_VW__c: string;\n driver_is_official_dealer__c: string;\n driver_vn_act_SK__c: string;\n driver_vn_act_LCV__c: string;\n driver_vn_act_VW__c: string;\n driver_vn_act__c: string;\n driver_vn_nact_LCV__c: string;\n driver_vn_nact_Sk__c: string;\n driver_vn_nact_VW__c: string;\n driver_vn_nact__c: string;\n driver_vo_act_LCV__c: string;\n driver_vo_act_SK__c: string;\n driver_vo_act_VW__c: string;\n driver_vo_act__c: string;\n driver_vo_nact_LCV__c: string;\n driver_vo_nact_SK__c: string;\n driver_vo_nact_VW__c: string;\n driver_vo_nact__c: string;\n owner_is_offical_dealer_LCV__c: string;\n owner_is_offical_dealer_SK__c: string;\n owner_is_offical_dealer_VW__c: string;\n owner_is_offical_dealer__c: string;\n owner_vn_act_LCV__c: string;\n owner_vn_act_SK__c: string;\n owner_vn_act_VW__c: string;\n owner_vn_act__c: string;\n owner_vn_nact_LCV__c: string;\n owner_vn_nact_SK__c: string;\n owner_vn_nact_VW__c: string;\n owner_vn_nact__c: string;\n owner_vo_act_LCV__c: string;\n owner_vo_act_SK__c: string;\n owner_vo_act_VW__c: string;\n owner_vo_act__c: string;\n owner_vo_nact_LCV__c: string;\n owner_vo_nact_SK__c: string;\n owner_vo_nact_VW__c: string;\n owner_vo_nact__c: string;\n COD_province__c: string;\n Manual_marker__c: string;\n TXT_V_Address__c: string;\n Afected_EA_189__c: string;\n DAT_prospect_vn_LCV__c: string;\n DAT_prospect_vn_SK__c: string;\n DAT_prospect_vn_VW__c: string;\n DAT_prospect_vn__c: string;\n DAT_prospect_vo_LCV__c: string;\n DAT_prospect_vo_SK__c: string;\n DAT_prospect_vo_VW__c: string;\n DAT_prospect_vo__c: string;\n Legal_risk_EA_189__c: string;\n Age__c: string;\n CHK_Current_Afected_EA_189__c: string;\n Document_type__c: string;\n Repaired_EA_189__c: string;\n LKP_After_Sales_manager__c: string;\n LKP_Sales_manager__c: string;\n Dealer_Code_Imaweb__c: string;\n ID_Climapro_Installation_Audi__c: string;\n ID_Climapro_Installation_LCV__c: string;\n ID_Climapro_Installation_SK__c: string;\n ID_Climapro_Installation_VW__c: string;\n Latitude__c: string;\n Longitude__c: string;\n NUM_V_Phone__c: string;\n Preferred_Installation_Aftersale_Audi__c: string;\n Preferred_Installation_Aftersale_LCV__c: string;\n Preferred_Installation_Aftersale_SK__c: string;\n Preferred_Installation_Aftersale_VW__c: string;\n Preferred_Installation_Sale_Audi__c: string;\n Preferred_Installation_Sale_LCV__c: string;\n Preferred_Installation_Sale_SK__c: string;\n Preferred_Installation_Sale_VW__c: string;\n TXT_KVPS_code__c: string;\n TXT_PV_Address__c: string;\n TXT_V_KVPS_code__c: string;\n KVPSCode__c: string;\n VGED_DealerCode__c: string;\n TXT_V_Postal_Code__c: string;\n Cod_installation_Imaweb__c: string;\n FLAG_Baja__c: string;\n COD_Brand_Imaweb__c: string;\n NORM_Address_name__c: string;\n NORM_Address_number__c: string;\n NORM_Location__c: string;\n NORM_Postal_Code__c: string;\n TXT_Business_Group_CIF__c: string;\n TXT_Description_Concession__c: string;\n TXT_Email_Contact_Concession__c: string;\n TXT_Type_Concession__c: string;\n ID_Climapro_Concession__c: string;\n TXT_V_Email__c: string;\n Latitude_V__c: string;\n Longitude_V__c: string;\n TXT_V_Location__c: string;\n COD_V_province__c: string;\n Cod_V_installation_Imaweb__c: string;\n FLAG_V_Baja__c: string;\n Dealer_V_Code_Vaesa__c: string;\n ID_V_Climapro_Installation_Audi__c: string;\n ID_V_Climapro_Installation_LCV__c: string;\n ID_V_Climapro_Installation_SK__c: string;\n ID_V_Climapro_Installation_VW__c: string;\n Dealer_V_Code_Imaweb__c: string;\n TXT_Area_Manager_V__c: string;\n TXT_Email_Zone_Manager__c: string;\n External_ID_Otros__c: string;\n TXT_Activity__c: string;\n TXT_Last_Name_1_Manager__c: string;\n TXT_Surname_2_Manager__c: string;\n TXT_Area_code__c: string;\n TXT_Description_Installation__c: string;\n TXT_prior_appointment__c: string;\n TXT_Email_After_Sales_PV__c: string;\n TXT_Email_Manager__c: string;\n TXT_V_Email_more_info__c: string;\n TXT_Email_Sender__c: string;\n DATE_Home__c: string;\n DATE_Date_Last_Updated__c: string;\n CHK_Replacement_fleet__c: string;\n TXT_V_Installation_Data_Name__c: string;\n TXT_Installation_Data_Name__c: string;\n VGED_CommercialName__c: string;\n TXT_Manager_Name__c: string;\n TXT_Observations_Schedule__c: string;\n TXT_V_Observations_Schedule__c: string;\n CHK_V_Parking__c: string;\n TXT_business_name__c: string;\n TXT_V_business_name__c: string;\n Adblue_price__c: string;\n Anyo_matriculacion_otro_vehiculo__c: string;\n CHK_Audi_CAM__c: string;\n CHK_Audi_Lounge__c: string;\n CHK_Audi_Sport_Exclusive_Service__c: string;\n CHK_Audi_Sport__c: string;\n CHK_California_roof_repairing__c: string;\n CHK_Children_zone__c: string;\n CHK_Client_Shutle__c: string;\n CHK_Compressed_Natural_Gas_Charger__c: string;\n CHK_Crafter_Elevator__c: string;\n CHK_DRM__c: string;\n CHK_Delivery_Service__c: string;\n CHK_Do_Not_Contact_AU__c: string;\n CHK_Do_Not_Contact__c: string;\n CHK_Dont_send_Com__c: string;\n CHK_Elite_Body__c: string;\n CHK_Email_OFF__c: string;\n CHK_Exclusive_Service_VW__c: string;\n CHK_Exclusive_Service__c: string;\n CHK_Fast_Service__c: string;\n CHK_Free_Wifi__c: string;\n CHK_HVT_repairs__c: string;\n CHK_Handicapped__c: string;\n CHK_Integral_Body_Program__c: string;\n CHK_Is_Closed_Days__c: string;\n CHK_Oficial_Audi_Prestige_Service__c: string;\n CHK_PCI__c: string;\n CHK_Parking__c: string;\n CHK_SUM_Diff_Schedule_Vehicle_Recep__c: string;\n CHK_Service_Plus_Installation__c: string;\n CHK_TLMK__c: string;\n CHK_V_Children_zone__c: string;\n CHK_V_Exclusive_Service_VW__c: string;\n CHK_V_Free_Wifi__c: string;\n CHK_V_Handicapped__c: string;\n CHK_V_Waiting_zone__c: string;\n CHK_Waiting_zone__c: string;\n CHK_Working_Zone_Waiting_Clients__c: string;\n CHK_e_Hibrids__c: string;\n CHK_e_dealers__c: string;\n CHK_e_loaders__c: string;\n CampaignID__c: string;\n Contactable_after_sales__c: string;\n Contactable_sales__c: string;\n Customer_type__c: string;\n DATE_Date_Photo__c: string;\n DATE_End_Date_SUM__c: string;\n DATE_End_Date_Valid__c: string;\n DATE_Entry_Date__c: string;\n DATE_Ini_Date_SUM__c: string;\n DATE_Termination_Date__c: string;\n DATE_View_End_Period__c: string;\n DATE_View_Start_Period__c: string;\n DAT_Customer_registration_SLI__c: string;\n DAT_last_vehicle__c: string;\n Email_Business_Group__c: string;\n Es_Autonomo_VN__c: string;\n Es_Gran_empresa_propiedad_VN__c: string;\n Es_Pymes_propiedad_VN__c: string;\n Es_Pymes_renting_VN__c: string;\n Es_RaC_VN__c: string;\n Es_VO_no_particular__c: string;\n Es_gran_empresa_renting_VN__c: string;\n Es_indefinido_VN__c: string;\n Es_no_identificado_VN__c: string;\n Es_particular_VN__c: string;\n Es_resto_VN__c: string;\n Excesive_waiting__c: string;\n FRML_TXT_DPV__c: string;\n FRML_TXT_Image_Sign__c: string;\n Family_unit__c: string;\n FormID__c: string;\n Home_another_vehicle_brand__c: string;\n ID_External_ID__c: string;\n ID_Vehicle_EID__c: string;\n Id_Instalacion__c: string;\n Id_Propietario_PV_AU__c: string;\n Id_Propietario_PV_LCV__c: string;\n Id_Propietario_PV_SK__c: string;\n Id_Propietario_PV_VW__c: string;\n Id_Propietario_V_AU__c: string;\n Id_Propietario_V_LCV__c: string;\n Id_Propietario_V_SK__c: string;\n Id_Propietario_V_VW__c: string;\n Informat_cession_aceptance__c: string;\n Lead_vn_act__c: string;\n Lead_vn_nact__c: string;\n Lead_vo_act__c: string;\n Lead_vo_nact__c: string;\n Multivehicle__c: string;\n NUM_Bodywork_Price_Hour__c: string;\n NUM_Business_Group_Id__c: string;\n NUM_Fax_Business_Group__c: string;\n NUM_Id_Operation__c: string;\n NUM_Mechanical_Price_Hour__c: string;\n NUM_Number_Photo__c: string;\n NUM_Oil_Liter_Price__c: string;\n NUM_Phone_Business_Group__c: string;\n NUM_Substitution_vehicle__c: string;\n NUM_Work_Price__c: string;\n NUM_chassis_number__c: string;\n PCK_SUM_TIME_FRI_AFT_END__c: string;\n PCK_SUM_TIME_FRI_AFT_STA__c: string;\n PCK_SUM_TIME_FRI_MOR_END__c: string;\n PCK_SUM_TIME_FRI_MOR_STA__c: string;\n PCK_SUM_TIME_MON_THUR_AFT_END__c: string;\n PCK_SUM_TIME_MON_THUR_AFT_STA__c: string;\n PCK_SUM_TIME_MON_THUR_MOR_END__c: string;\n PCK_SUM_TIME_MON_THUR_MOR_STA__c: string;\n PCK_SUM_TIME_SAT_AFT_END__c: string;\n PCK_SUM_TIME_SAT_AFT_STA__c: string;\n PCK_SUM_TIME_SAT_MOR_END__c: string;\n PCK_SUM_TIME_SAT_MOR_STA__c: string;\n PCK_SUM_TIME_SUN_AFT_END__c: string;\n PCK_SUM_TIME_SUN_AFT_STA__c: string;\n PCK_SUM_TIME_SUN_MOR_END__c: string;\n PCK_SUM_TIME_SUN_MOR_STA__c: string;\n PCK_Social_Network__c: string;\n PCK_V_SUM_TIME_FRI_AFT_END__c: string;\n PCK_V_SUM_TIME_FRI_AFT_STA__c: string;\n PCK_V_SUM_TIME_FRI_MOR_END__c: string;\n PCK_V_SUM_TIME_FRI_MOR_STA__c: string;\n PCK_V_SUM_TIME_MON_THUR_AFT_END__c: string;\n PCK_V_SUM_TIME_MON_THUR_AFT_STA__c: string;\n PCK_V_SUM_TIME_MON_THUR_MOR_END__c: string;\n PCK_V_SUM_TIME_MON_THUR_MOR_STA__c: string;\n PCK_V_SUM_TIME_SAT_AFT_END__c: string;\n PCK_V_SUM_TIME_SAT_AFT_STA__c: string;\n PCK_V_SUM_TIME_SAT_MOR_END__c: string;\n PCK_V_SUM_TIME_SAT_MOR_STA__c: string;\n PCK_V_SUM_TIME_SUN_AFT_END__c: string;\n PCK_V_SUM_TIME_SUN_AFT_STA__c: string;\n PCK_V_SUM_TIME_SUN_MOR_END__c: string;\n PCK_V_SUM_TIME_SUN_MOR_STA__c: string;\n PCK_V_Social_Network__c: string;\n PCK_V_WIN_TIME_FRI_AFT_END__c: string;\n PCK_V_WIN_TIME_FRI_AFT_STA__c: string;\n PCK_V_WIN_TIME_FRI_MOR_END__c: string;\n PCK_V_WIN_TIME_FRI_MOR_STA__c: string;\n PCK_V_WIN_TIME_MON_THUR_AFT_END__c: string;\n PCK_V_WIN_TIME_MON_THUR_AFT_STA__c: string;\n PCK_V_WIN_TIME_MON_THUR_MOR_END__c: string;\n PCK_V_WIN_TIME_MON_THUR_MOR_STA__c: string;\n PCK_V_WIN_TIME_SAT_AFT_END__c: string;\n PCK_V_WIN_TIME_SAT_AFT_STA__c: string;\n PCK_V_WIN_TIME_SAT_MOR_END__c: string;\n PCK_V_WIN_TIME_SAT_MOR_STA__c: string;\n PCK_V_WIN_TIME_SUN_AFT_END__c: string;\n PCK_V_WIN_TIME_SUN_AFT_STA__c: string;\n PCK_V_WIN_TIME_SUN_MOR_END__c: string;\n PCK_V_WIN_TIME_SUN_MOR_STA__c: string;\n PCK_WIN_TIME_FRI_AFT_END__c: string;\n PCK_WIN_TIME_FRI_AFT_STA__c: string;\n PCK_WIN_TIME_FRI_MOR_END__c: string;\n PCK_WIN_TIME_FRI_MOR_STA__c: string;\n PCK_WIN_TIME_MON_THUR_AFT_END__c: string;\n PCK_WIN_TIME_MON_THUR_AFT_STA__c: string;\n PCK_WIN_TIME_MON_THUR_MOR_END__c: string;\n PCK_WIN_TIME_MON_THUR_MOR_STA__c: string;\n PCK_WIN_TIME_SAT_AFT_END__c: string;\n PCK_WIN_TIME_SAT_AFT_STA__c: string;\n PCK_WIN_TIME_SAT_MOR_END__c: string;\n PCK_WIN_TIME_SAT_MOR_STA__c: string;\n PCK_WIN_TIME_SUN_AFT_END__c: string;\n PCK_WIN_TIME_SUN_AFT_STA__c: string;\n PCK_WIN_TIME_SUN_MOR_END__c: string;\n PCK_WIN_TIME_SUN_MOR_STA__c: string;\n PKL_Exclusion_Motive_PV_AU__c: string;\n PKL_Exclusion_Motive_PersonAccount__c: string;\n Profession__c: string;\n Standard_contactable_universe_LCV__c: string;\n Standard_contactable_universe_Skoda__c: string;\n Standard_contactable_universe_VW__c: string;\n Standard_contactable_universe__c: string;\n TXT_Accept_Bases__c: string;\n TXT_Area_Manager_PV__c: string;\n TXT_Business_Group_Name__c: string;\n TXT_BussinesGroup__c: string;\n TXT_Comments_Exclusion__c: string;\n TXT_Context_ID__c: string;\n TXT_Contract_brand__c: string;\n TXT_DPV_Name__c: string;\n TXT_DPV_gender__c: string;\n TXT_DPV_treatment__c: string;\n TXT_Description_Validity__c: string;\n TXT_Email_Area_Manager__c: string;\n TXT_Email_CCDPV__c: string;\n TXT_Email_DPV__c: string;\n TXT_Email_DV__c: string;\n TXT_Email_Online_Appointment_PV__c: string;\n TXT_Email_Online_Appointment_V__c: string;\n TXT_Email_Zone_Manager_V__c: string;\n TXT_Facebook__c: string;\n TXT_Instagram__c: string;\n TXT_Last_Name_1_Area_Manager_PV__c: string;\n TXT_Last_Name_1_DPV__c: string;\n TXT_Last_Name_1_V__c: string;\n TXT_Last_name_2_DPV__c: string;\n TXT_Last_name_2_V__c: string;\n TXT_Manager_Name_PV__c: string;\n TXT_Name__c: string;\n TXT_Observations__c: string;\n TXT_Official_Web_PV__c: string;\n TXT_Official_Web_V__c: string;\n TXT_Position__c: string;\n TXT_Profile__c: string;\n TXT_Surname_2_Area_Manager_PV__c: string;\n TXT_Tradename_BusinessGroup__c: string;\n TXT_Tradename__c: string;\n TXT_Twitter__c: string;\n TXT_V_Facebook__c: string;\n TXT_V_Instagram__c: string;\n TXT_V_Name__c: string;\n TXT_V_Tradename__c: string;\n TXT_V_Twitter__c: string;\n TXT_V_Web__c: string;\n TXT_V_gender__c: string;\n TXT_Web__c: string;\n TXT_number_plate__c: string;\n URL_Business_Group_Website__c: string;\n Unsuscribed__c: string;\n Use_type__c: string;\n cond_is_official_dealer_LCV__c: string;\n cond_is_official_dealer_SK__c: string;\n cond_is_official_dealer_VW__c: string;\n cond_is_official_dealer__c: string;\n cond_vn_act_SK__c: string;\n prospect_vn_act__c: string;\n prospect_vn_nact__c: string;\n prospect_vo_act__c: string;\n prospect_vo_nact__c: string;\n et4ae5__HasOptedOutOfMobile__pc: string;\n et4ae5__Mobile_Country_Code__pc: string;\n IDClimapro__pc: string;\n}\n\nexport interface modelCar {\n id: number;\n name: string;\n title: string;\n brand: string;\n model: string;\n}\n\nexport type PassengersTypes = [number, number];\nexport type FuelTypes = 'Combustible' | 'EléctricoHibrido';\nexport type LuggageReturn = 'unaMaleta' | 'escapada' | 'unaSemana' | 'unMes' | 'mascota' | 'bici' | 'surf' | 'snow';\nexport type UsageReturn = 'urban' | 'interurban' | 'long' | 'allterrain';\nexport type HighlightsReturn =\n | 'atrevido'\n | 'comodo'\n | 'deportivo'\n | 'sostenible'\n | 'elegante'\n | 'seguro'\n | 'sonido'\n | 'tecnologico';\n\n// Necesario para el envío de los formularios de Match\nexport interface MatchSelectedOptions {\n budget: number;\n passengers: [number, number];\n luggage: number[];\n usage: number[];\n highlights: number[];\n fuel: FuelTypes;\n}\n\nexport interface ArgumentativeBlock {\n key: string;\n icon?: JSX.Element;\n title?: string;\n boldTitle?: string;\n bodycopy?: string;\n titleRevers?: boolean;\n}\nexport interface Color {\n 'id': number;\n 'title': string;\n 'code': string;\n 'hex': string;\n 'inverted': number;\n 'interior': number;\n 'elegante': number;\n 'atrevido': number;\n}\n\nexport interface CarlineWithOffers extends Preconfiguration {\n ofertas: Offer[];\n}\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","'use strict';\n\n// do not edit .js files directly - edit src/index.jst\n\n\n\nmodule.exports = function equal(a, b) {\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n\n var length, i, keys;\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n\n for (i = length; i-- !== 0;) {\n var key = keys[i];\n\n if (!equal(a[key], b[key])) return false;\n }\n\n return true;\n }\n\n // true if both NaN, false otherwise\n return a!==a && b!==b;\n};\n",null,"'use strict';\n\nmodule.exports = Point;\n\n/**\n * A standalone point geometry with useful accessor, comparison, and\n * modification methods.\n *\n * @class Point\n * @param {Number} x the x-coordinate. this could be longitude or screen\n * pixels, or any other sort of unit.\n * @param {Number} y the y-coordinate. this could be latitude or screen\n * pixels, or any other sort of unit.\n * @example\n * var point = new Point(-77, 38);\n */\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n}\n\nPoint.prototype = {\n\n /**\n * Clone this point, returning a new point that can be modified\n * without affecting the old one.\n * @return {Point} the clone\n */\n clone: function() { return new Point(this.x, this.y); },\n\n /**\n * Add this point's x & y coordinates to another point,\n * yielding a new point.\n * @param {Point} p the other point\n * @return {Point} output point\n */\n add: function(p) { return this.clone()._add(p); },\n\n /**\n * Subtract this point's x & y coordinates to from point,\n * yielding a new point.\n * @param {Point} p the other point\n * @return {Point} output point\n */\n sub: function(p) { return this.clone()._sub(p); },\n\n /**\n * Multiply this point's x & y coordinates by point,\n * yielding a new point.\n * @param {Point} p the other point\n * @return {Point} output point\n */\n multByPoint: function(p) { return this.clone()._multByPoint(p); },\n\n /**\n * Divide this point's x & y coordinates by point,\n * yielding a new point.\n * @param {Point} p the other point\n * @return {Point} output point\n */\n divByPoint: function(p) { return this.clone()._divByPoint(p); },\n\n /**\n * Multiply this point's x & y coordinates by a factor,\n * yielding a new point.\n * @param {Point} k factor\n * @return {Point} output point\n */\n mult: function(k) { return this.clone()._mult(k); },\n\n /**\n * Divide this point's x & y coordinates by a factor,\n * yielding a new point.\n * @param {Point} k factor\n * @return {Point} output point\n */\n div: function(k) { return this.clone()._div(k); },\n\n /**\n * Rotate this point around the 0, 0 origin by an angle a,\n * given in radians\n * @param {Number} a angle to rotate around, in radians\n * @return {Point} output point\n */\n rotate: function(a) { return this.clone()._rotate(a); },\n\n /**\n * Rotate this point around p point by an angle a,\n * given in radians\n * @param {Number} a angle to rotate around, in radians\n * @param {Point} p Point to rotate around\n * @return {Point} output point\n */\n rotateAround: function(a,p) { return this.clone()._rotateAround(a,p); },\n\n /**\n * Multiply this point by a 4x1 transformation matrix\n * @param {Array} m transformation matrix\n * @return {Point} output point\n */\n matMult: function(m) { return this.clone()._matMult(m); },\n\n /**\n * Calculate this point but as a unit vector from 0, 0, meaning\n * that the distance from the resulting point to the 0, 0\n * coordinate will be equal to 1 and the angle from the resulting\n * point to the 0, 0 coordinate will be the same as before.\n * @return {Point} unit vector point\n */\n unit: function() { return this.clone()._unit(); },\n\n /**\n * Compute a perpendicular point, where the new y coordinate\n * is the old x coordinate and the new x coordinate is the old y\n * coordinate multiplied by -1\n * @return {Point} perpendicular point\n */\n perp: function() { return this.clone()._perp(); },\n\n /**\n * Return a version of this point with the x & y coordinates\n * rounded to integers.\n * @return {Point} rounded point\n */\n round: function() { return this.clone()._round(); },\n\n /**\n * Return the magitude of this point: this is the Euclidean\n * distance from the 0, 0 coordinate to this point's x and y\n * coordinates.\n * @return {Number} magnitude\n */\n mag: function() {\n return Math.sqrt(this.x * this.x + this.y * this.y);\n },\n\n /**\n * Judge whether this point is equal to another point, returning\n * true or false.\n * @param {Point} other the other point\n * @return {boolean} whether the points are equal\n */\n equals: function(other) {\n return this.x === other.x &&\n this.y === other.y;\n },\n\n /**\n * Calculate the distance from this point to another point\n * @param {Point} p the other point\n * @return {Number} distance\n */\n dist: function(p) {\n return Math.sqrt(this.distSqr(p));\n },\n\n /**\n * Calculate the distance from this point to another point,\n * without the square root step. Useful if you're comparing\n * relative distances.\n * @param {Point} p the other point\n * @return {Number} distance\n */\n distSqr: function(p) {\n var dx = p.x - this.x,\n dy = p.y - this.y;\n return dx * dx + dy * dy;\n },\n\n /**\n * Get the angle from the 0, 0 coordinate to this point, in radians\n * coordinates.\n * @return {Number} angle\n */\n angle: function() {\n return Math.atan2(this.y, this.x);\n },\n\n /**\n * Get the angle from this point to another point, in radians\n * @param {Point} b the other point\n * @return {Number} angle\n */\n angleTo: function(b) {\n return Math.atan2(this.y - b.y, this.x - b.x);\n },\n\n /**\n * Get the angle between this point and another point, in radians\n * @param {Point} b the other point\n * @return {Number} angle\n */\n angleWith: function(b) {\n return this.angleWithSep(b.x, b.y);\n },\n\n /*\n * Find the angle of the two vectors, solving the formula for\n * the cross product a x b = |a||b|sin(θ) for θ.\n * @param {Number} x the x-coordinate\n * @param {Number} y the y-coordinate\n * @return {Number} the angle in radians\n */\n angleWithSep: function(x, y) {\n return Math.atan2(\n this.x * y - this.y * x,\n this.x * x + this.y * y);\n },\n\n _matMult: function(m) {\n var x = m[0] * this.x + m[1] * this.y,\n y = m[2] * this.x + m[3] * this.y;\n this.x = x;\n this.y = y;\n return this;\n },\n\n _add: function(p) {\n this.x += p.x;\n this.y += p.y;\n return this;\n },\n\n _sub: function(p) {\n this.x -= p.x;\n this.y -= p.y;\n return this;\n },\n\n _mult: function(k) {\n this.x *= k;\n this.y *= k;\n return this;\n },\n\n _div: function(k) {\n this.x /= k;\n this.y /= k;\n return this;\n },\n\n _multByPoint: function(p) {\n this.x *= p.x;\n this.y *= p.y;\n return this;\n },\n\n _divByPoint: function(p) {\n this.x /= p.x;\n this.y /= p.y;\n return this;\n },\n\n _unit: function() {\n this._div(this.mag());\n return this;\n },\n\n _perp: function() {\n var y = this.y;\n this.y = this.x;\n this.x = -y;\n return this;\n },\n\n _rotate: function(angle) {\n var cos = Math.cos(angle),\n sin = Math.sin(angle),\n x = cos * this.x - sin * this.y,\n y = sin * this.x + cos * this.y;\n this.x = x;\n this.y = y;\n return this;\n },\n\n _rotateAround: function(angle, p) {\n var cos = Math.cos(angle),\n sin = Math.sin(angle),\n x = p.x + cos * (this.x - p.x) - sin * (this.y - p.y),\n y = p.y + sin * (this.x - p.x) + cos * (this.y - p.y);\n this.x = x;\n this.y = y;\n return this;\n },\n\n _round: function() {\n this.x = Math.round(this.x);\n this.y = Math.round(this.y);\n return this;\n }\n};\n\n/**\n * Construct a point from an array if necessary, otherwise if the input\n * is already a Point, or an unknown type, return it unchanged\n * @param {Array|Point|*} a any kind of input value\n * @return {Point} constructed point, or passed-through value.\n * @example\n * // this\n * var point = Point.convert([0, 1]);\n * // is equivalent to\n * var point = new Point(0, 1);\n */\nPoint.convert = function (a) {\n if (a instanceof Point) {\n return a;\n }\n if (Array.isArray(a)) {\n return new Point(a[0], a[1]);\n }\n return a;\n};\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar useScrollPosition_1 = require(\"./useScrollPosition\");\r\nObject.defineProperty(exports, \"useScrollPosition\", { enumerable: true, get: function () { return useScrollPosition_1.useScrollPosition; } });\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.useIsomorphicLayoutEffect = void 0;\r\nconst react_1 = require(\"react\");\r\nexports.useIsomorphicLayoutEffect = typeof window !== 'undefined' ? react_1.useLayoutEffect : react_1.useEffect;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.useScrollPosition = void 0;\r\nconst react_1 = require(\"react\");\r\nconst useIsomorphicLayoutEffect_1 = require(\"./useIsomorphicLayoutEffect\");\r\nconst isBrowser = typeof window !== `undefined`;\r\nconst zeroPosition = { x: 0, y: 0 };\r\nconst getClientRect = (element) => element === null || element === void 0 ? void 0 : element.getBoundingClientRect();\r\nconst getScrollPosition = ({ element, useWindow, boundingElement, }) => {\r\n if (!isBrowser) {\r\n return zeroPosition;\r\n }\r\n if (useWindow) {\r\n return { x: window.scrollX, y: window.scrollY };\r\n }\r\n const targetPosition = getClientRect((element === null || element === void 0 ? void 0 : element.current) || document.body);\r\n const containerPosition = getClientRect(boundingElement === null || boundingElement === void 0 ? void 0 : boundingElement.current);\r\n if (!targetPosition) {\r\n return zeroPosition;\r\n }\r\n return containerPosition\r\n ? {\r\n x: (containerPosition.x || 0) - (targetPosition.x || 0),\r\n y: (containerPosition.y || 0) - (targetPosition.y || 0),\r\n }\r\n : { x: targetPosition.left, y: targetPosition.top };\r\n};\r\nexports.useScrollPosition = (effect, deps, element, useWindow, wait, boundingElement) => {\r\n const position = react_1.useRef(getScrollPosition({ useWindow, boundingElement }));\r\n let throttleTimeout = null;\r\n const callBack = () => {\r\n const currPos = getScrollPosition({ element, useWindow, boundingElement });\r\n effect({ prevPos: position.current, currPos });\r\n position.current = currPos;\r\n throttleTimeout = null;\r\n };\r\n useIsomorphicLayoutEffect_1.useIsomorphicLayoutEffect(() => {\r\n var _a;\r\n if (!isBrowser) {\r\n return undefined;\r\n }\r\n const handleScroll = () => {\r\n if (wait) {\r\n if (throttleTimeout === null) {\r\n throttleTimeout = setTimeout(callBack, wait);\r\n }\r\n }\r\n else {\r\n callBack();\r\n }\r\n };\r\n if (boundingElement) {\r\n (_a = boundingElement.current) === null || _a === void 0 ? void 0 : _a.addEventListener('scroll', handleScroll, { passive: true });\r\n }\r\n else {\r\n window.addEventListener('scroll', handleScroll, { passive: true });\r\n }\r\n return () => {\r\n var _a;\r\n if (boundingElement) {\r\n (_a = boundingElement.current) === null || _a === void 0 ? void 0 : _a.removeEventListener('scroll', handleScroll);\r\n }\r\n else {\r\n window.removeEventListener('scroll', handleScroll);\r\n }\r\n if (throttleTimeout) {\r\n clearTimeout(throttleTimeout);\r\n }\r\n };\r\n }, deps);\r\n};\r\nexports.useScrollPosition.defaultProps = {\r\n deps: [],\r\n element: false,\r\n useWindow: false,\r\n wait: null,\r\n boundingElement: false,\r\n};\r\n","import * as React from 'react';\n\nconst useLatest = current => {\n const storedValue = React.useRef(current);\n React.useEffect(() => {\n storedValue.current = current;\n });\n return storedValue;\n};\n\nexport default useLatest;","import * as React from 'react';\nimport useLatest from '@react-hook/latest';\nconst perf = typeof performance !== 'undefined' ? performance : Date;\n\nconst now = () => perf.now();\n\nexport function useThrottleCallback(callback, fps = 30, leading = false) {\n const storedCallback = useLatest(callback);\n const ms = 1000 / fps;\n const prev = React.useRef(0);\n const trailingTimeout = React.useRef();\n\n const clearTrailing = () => trailingTimeout.current && clearTimeout(trailingTimeout.current);\n\n const deps = [fps, leading, storedCallback]; // Reset any time the deps change\n\n function _ref() {\n prev.current = 0;\n clearTrailing();\n }\n\n React.useEffect(() => _ref, deps);\n return React.useCallback(function () {\n // eslint-disable-next-line prefer-rest-params\n const args = arguments;\n const rightNow = now();\n\n const call = () => {\n prev.current = rightNow;\n clearTrailing();\n storedCallback.current.apply(null, args);\n };\n\n const current = prev.current; // leading\n\n if (leading && current === 0) return call(); // body\n\n if (rightNow - current > ms) {\n if (current > 0) return call();\n prev.current = rightNow;\n } // trailing\n\n\n clearTrailing();\n trailingTimeout.current = setTimeout(() => {\n call();\n prev.current = 0;\n }, ms);\n }, deps);\n}\nexport function useThrottle(initialState, fps, leading) {\n const state = React.useState(initialState);\n return [state[0], useThrottleCallback(state[1], fps, leading)];\n}","import * as React from 'react';\nimport useLatest from '@react-hook/latest';\nexport const useDebounceCallback = (callback, wait = 100, leading = false) => {\n const storedCallback = useLatest(callback);\n const timeout = React.useRef();\n const deps = [wait, leading, storedCallback]; // Cleans up pending timeouts when the deps change\n\n function _ref() {\n timeout.current && clearTimeout(timeout.current);\n timeout.current = void 0;\n }\n\n React.useEffect(() => _ref, deps);\n\n function _ref2() {\n timeout.current = void 0;\n }\n\n return React.useCallback(function () {\n // eslint-disable-next-line prefer-rest-params\n const args = arguments;\n const {\n current\n } = timeout; // Calls on leading edge\n\n if (current === void 0 && leading) {\n timeout.current = setTimeout(_ref2, wait); // eslint-disable-next-line prefer-spread\n\n return storedCallback.current.apply(null, args);\n } // Clear the timeout every call and start waiting again\n\n\n current && clearTimeout(current); // Waits for `wait` before invoking the callback\n\n timeout.current = setTimeout(() => {\n timeout.current = void 0;\n storedCallback.current.apply(null, args);\n }, wait);\n }, deps);\n};\nexport const useDebounce = (initialState, wait, leading) => {\n const state = React.useState(initialState);\n return [state[0], useDebounceCallback(state[1], wait, leading)];\n};","import * as React from 'react';\n\nfunction useEvent(target, type, listener, cleanup) {\n const storedListener = React.useRef(listener);\n const storedCleanup = React.useRef(cleanup);\n React.useEffect(() => {\n storedListener.current = listener;\n storedCleanup.current = cleanup;\n });\n React.useEffect(() => {\n const targetEl = target && 'current' in target ? target.current : target;\n if (!targetEl) return;\n let didUnsubscribe = 0;\n\n function listener(...args) {\n if (didUnsubscribe) return;\n storedListener.current.apply(this, args);\n }\n\n targetEl.addEventListener(type, listener);\n const cleanup = storedCleanup.current;\n return () => {\n didUnsubscribe = 1;\n targetEl.removeEventListener(type, listener);\n cleanup && cleanup();\n }; // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [target, type]);\n}\n\nexport default useEvent;","import { useDebounce } from '@react-hook/debounce';\nimport useEvent from '@react-hook/event';\nconst emptyObj = {};\nconst win = typeof window === 'undefined' ? null : window;\nconst wv = win && typeof win.visualViewport !== 'undefined' ? win.visualViewport : null;\n\nconst getSize = () => [document.documentElement.clientWidth, document.documentElement.clientHeight];\n\nexport const useWindowSize = function (options) {\n if (options === void 0) {\n options = emptyObj;\n }\n\n const {\n wait,\n leading,\n initialWidth = 0,\n initialHeight = 0\n } = options;\n const [size, setDebouncedSize] = useDebounce(\n /* istanbul ignore next */\n typeof document === 'undefined' ? [initialWidth, initialHeight] : getSize, wait, leading);\n\n const setSize = () => setDebouncedSize(getSize);\n\n useEvent(win, 'resize', setSize); // @ts-expect-error\n\n useEvent(wv, 'resize', setSize);\n useEvent(win, 'orientationchange', setSize);\n return size;\n};\nexport const useWindowHeight = options => useWindowSize(options)[1];\nexport const useWindowWidth = options => useWindowSize(options)[0];","/**\n * NOTE: In order to avoid circular dependencies, if you add a function to this module and it needs to print something,\n * you must either a) use `console.log` rather than the logger, or b) put your function elsewhere.\n */\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\n\nimport { Integration } from '@sentry/types';\n\nimport { isNodeEnv } from './node';\n\n/** Internal */\ninterface SentryGlobal {\n Sentry?: {\n Integrations?: Integration[];\n };\n SENTRY_ENVIRONMENT?: string;\n SENTRY_DSN?: string;\n SENTRY_RELEASE?: {\n id?: string;\n };\n __SENTRY__: {\n globalEventProcessors: any;\n hub: any;\n logger: any;\n };\n}\n\nconst fallbackGlobalObject = {};\n\n/**\n * Safely get global scope object\n *\n * @returns Global scope object\n */\nexport function getGlobalObject(): T & SentryGlobal {\n return (\n isNodeEnv()\n ? global\n : typeof window !== 'undefined' // eslint-disable-line no-restricted-globals\n ? window // eslint-disable-line no-restricted-globals\n : typeof self !== 'undefined'\n ? self\n : fallbackGlobalObject\n ) as T & SentryGlobal;\n}\n\n/**\n * Returns a global singleton contained in the global `__SENTRY__` object.\n *\n * If the singleton doesn't already exist in `__SENTRY__`, it will be created using the given factory\n * function and added to the `__SENTRY__` object.\n *\n * @param name name of the global singleton on __SENTRY__\n * @param creator creator Factory function to create the singleton if it doesn't already exist on `__SENTRY__`\n * @param obj (Optional) The global object on which to look for `__SENTRY__`, if not `getGlobalObject`'s return value\n * @returns the singleton\n */\nexport function getGlobalSingleton(name: keyof SentryGlobal['__SENTRY__'], creator: () => T, obj?: unknown): T {\n const global = (obj || getGlobalObject()) as SentryGlobal;\n const __SENTRY__ = (global.__SENTRY__ = global.__SENTRY__ || {});\n const singleton = __SENTRY__[name] || (__SENTRY__[name] = creator());\n return singleton;\n}\n","/**\n * NOTE: In order to avoid circular dependencies, if you add a function to this module and it needs to print something,\n * you must either a) use `console.log` rather than the logger, or b) put your function elsewhere.\n */\n\nimport { isBrowserBundle } from './env';\n\n/**\n * Checks whether we're in the Node.js or Browser environment\n *\n * @returns Answer to given question\n */\nexport function isNodeEnv(): boolean {\n // explicitly check for browser bundles as those can be optimized statically\n // by terser/rollup.\n return (\n !isBrowserBundle() &&\n Object.prototype.toString.call(typeof process !== 'undefined' ? process : 0) === '[object process]'\n );\n}\n\n/**\n * Requires a module which is protected against bundler minification.\n *\n * @param request The module path to resolve\n */\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\nexport function dynamicRequire(mod: any, request: string): any {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n return mod.require(request);\n}\n\n/**\n * Helper for dynamically loading module that should work with linked dependencies.\n * The problem is that we _should_ be using `require(require.resolve(moduleName, { paths: [cwd()] }))`\n * However it's _not possible_ to do that with Webpack, as it has to know all the dependencies during\n * build time. `require.resolve` is also not available in any other way, so we cannot create,\n * a fake helper like we do with `dynamicRequire`.\n *\n * We always prefer to use local package, thus the value is not returned early from each `try/catch` block.\n * That is to mimic the behavior of `require.resolve` exactly.\n *\n * @param moduleName module name to require\n * @returns possibly required module\n */\nexport function loadModule(moduleName: string): T | undefined {\n let mod: T | undefined;\n\n try {\n mod = dynamicRequire(module, moduleName);\n } catch (e) {\n // no-empty\n }\n\n try {\n const { cwd } = dynamicRequire(module, 'process');\n mod = dynamicRequire(module, `${cwd()}/node_modules/${moduleName}`) as T;\n } catch (e) {\n // no-empty\n }\n\n return mod;\n}\n","/*\n * This module exists for optimizations in the build process through rollup and terser. We define some global\n * constants, which can be overridden during build. By guarding certain pieces of code with functions that return these\n * constants, we can control whether or not they appear in the final bundle. (Any code guarded by a false condition will\n * never run, and will hence be dropped during treeshaking.) The two primary uses for this are stripping out calls to\n * `logger` and preventing node-related code from appearing in browser bundles.\n *\n * Attention:\n * This file should not be used to define constants/flags that are intended to be used for tree-shaking conducted by\n * users. These fags should live in their respective packages, as we identified user tooling (specifically webpack)\n * having issues tree-shaking these constants across package boundaries.\n * An example for this is the __SENTRY_DEBUG__ constant. It is declared in each package individually because we want\n * users to be able to shake away expressions that it guards.\n */\n\ndeclare const __SENTRY_BROWSER_BUNDLE__: boolean | undefined;\n\n/**\n * Figures out if we're building a browser bundle.\n *\n * @returns true if this is a browser bundle build.\n */\nexport function isBrowserBundle(): boolean {\n return typeof __SENTRY_BROWSER_BUNDLE__ !== 'undefined' && !!__SENTRY_BROWSER_BUNDLE__;\n}\n","import { getGlobalObject } from './global';\nimport { dynamicRequire, isNodeEnv } from './node';\n\n/**\n * An object that can return the current timestamp in seconds since the UNIX epoch.\n */\ninterface TimestampSource {\n nowSeconds(): number;\n}\n\n/**\n * A TimestampSource implementation for environments that do not support the Performance Web API natively.\n *\n * Note that this TimestampSource does not use a monotonic clock. A call to `nowSeconds` may return a timestamp earlier\n * than a previously returned value. We do not try to emulate a monotonic behavior in order to facilitate debugging. It\n * is more obvious to explain \"why does my span have negative duration\" than \"why my spans have zero duration\".\n */\nconst dateTimestampSource: TimestampSource = {\n nowSeconds: () => Date.now() / 1000,\n};\n\n/**\n * A partial definition of the [Performance Web API]{@link https://developer.mozilla.org/en-US/docs/Web/API/Performance}\n * for accessing a high-resolution monotonic clock.\n */\ninterface Performance {\n /**\n * The millisecond timestamp at which measurement began, measured in Unix time.\n */\n timeOrigin: number;\n /**\n * Returns the current millisecond timestamp, where 0 represents the start of measurement.\n */\n now(): number;\n}\n\n/**\n * Returns a wrapper around the native Performance API browser implementation, or undefined for browsers that do not\n * support the API.\n *\n * Wrapping the native API works around differences in behavior from different browsers.\n */\nfunction getBrowserPerformance(): Performance | undefined {\n const { performance } = getGlobalObject();\n if (!performance || !performance.now) {\n return undefined;\n }\n\n // Replace performance.timeOrigin with our own timeOrigin based on Date.now().\n //\n // This is a partial workaround for browsers reporting performance.timeOrigin such that performance.timeOrigin +\n // performance.now() gives a date arbitrarily in the past.\n //\n // Additionally, computing timeOrigin in this way fills the gap for browsers where performance.timeOrigin is\n // undefined.\n //\n // The assumption that performance.timeOrigin + performance.now() ~= Date.now() is flawed, but we depend on it to\n // interact with data coming out of performance entries.\n //\n // Note that despite recommendations against it in the spec, browsers implement the Performance API with a clock that\n // might stop when the computer is asleep (and perhaps under other circumstances). Such behavior causes\n // performance.timeOrigin + performance.now() to have an arbitrary skew over Date.now(). In laptop computers, we have\n // observed skews that can be as long as days, weeks or months.\n //\n // See https://github.com/getsentry/sentry-javascript/issues/2590.\n //\n // BUG: despite our best intentions, this workaround has its limitations. It mostly addresses timings of pageload\n // transactions, but ignores the skew built up over time that can aversely affect timestamps of navigation\n // transactions of long-lived web pages.\n const timeOrigin = Date.now() - performance.now();\n\n return {\n now: () => performance.now(),\n timeOrigin,\n };\n}\n\n/**\n * Returns the native Performance API implementation from Node.js. Returns undefined in old Node.js versions that don't\n * implement the API.\n */\nfunction getNodePerformance(): Performance | undefined {\n try {\n const perfHooks = dynamicRequire(module, 'perf_hooks') as { performance: Performance };\n return perfHooks.performance;\n } catch (_) {\n return undefined;\n }\n}\n\n/**\n * The Performance API implementation for the current platform, if available.\n */\nconst platformPerformance: Performance | undefined = isNodeEnv() ? getNodePerformance() : getBrowserPerformance();\n\nconst timestampSource: TimestampSource =\n platformPerformance === undefined\n ? dateTimestampSource\n : {\n nowSeconds: () => (platformPerformance.timeOrigin + platformPerformance.now()) / 1000,\n };\n\n/**\n * Returns a timestamp in seconds since the UNIX epoch using the Date API.\n */\nexport const dateTimestampInSeconds: () => number = dateTimestampSource.nowSeconds.bind(dateTimestampSource);\n\n/**\n * Returns a timestamp in seconds since the UNIX epoch using either the Performance or Date APIs, depending on the\n * availability of the Performance API.\n *\n * See `usingPerformanceAPI` to test whether the Performance API is used.\n *\n * BUG: Note that because of how browsers implement the Performance API, the clock might stop when the computer is\n * asleep. This creates a skew between `dateTimestampInSeconds` and `timestampInSeconds`. The\n * skew can grow to arbitrary amounts like days, weeks or months.\n * See https://github.com/getsentry/sentry-javascript/issues/2590.\n */\nexport const timestampInSeconds: () => number = timestampSource.nowSeconds.bind(timestampSource);\n\n// Re-exported with an old name for backwards-compatibility.\nexport const timestampWithMs = timestampInSeconds;\n\n/**\n * A boolean that is true when timestampInSeconds uses the Performance API to produce monotonic timestamps.\n */\nexport const usingPerformanceAPI = platformPerformance !== undefined;\n\n/**\n * Internal helper to store what is the source of browserPerformanceTimeOrigin below. For debugging only.\n */\nexport let _browserPerformanceTimeOriginMode: string;\n\n/**\n * The number of milliseconds since the UNIX epoch. This value is only usable in a browser, and only when the\n * performance API is available.\n */\nexport const browserPerformanceTimeOrigin = ((): number | undefined => {\n // Unfortunately browsers may report an inaccurate time origin data, through either performance.timeOrigin or\n // performance.timing.navigationStart, which results in poor results in performance data. We only treat time origin\n // data as reliable if they are within a reasonable threshold of the current time.\n\n const { performance } = getGlobalObject();\n if (!performance || !performance.now) {\n _browserPerformanceTimeOriginMode = 'none';\n return undefined;\n }\n\n const threshold = 3600 * 1000;\n const performanceNow = performance.now();\n const dateNow = Date.now();\n\n // if timeOrigin isn't available set delta to threshold so it isn't used\n const timeOriginDelta = performance.timeOrigin\n ? Math.abs(performance.timeOrigin + performanceNow - dateNow)\n : threshold;\n const timeOriginIsReliable = timeOriginDelta < threshold;\n\n // While performance.timing.navigationStart is deprecated in favor of performance.timeOrigin, performance.timeOrigin\n // is not as widely supported. Namely, performance.timeOrigin is undefined in Safari as of writing.\n // Also as of writing, performance.timing is not available in Web Workers in mainstream browsers, so it is not always\n // a valid fallback. In the absence of an initial time provided by the browser, fallback to the current time from the\n // Date API.\n // eslint-disable-next-line deprecation/deprecation\n const navigationStart = performance.timing && performance.timing.navigationStart;\n const hasNavigationStart = typeof navigationStart === 'number';\n // if navigationStart isn't available set delta to threshold so it isn't used\n const navigationStartDelta = hasNavigationStart ? Math.abs(navigationStart + performanceNow - dateNow) : threshold;\n const navigationStartIsReliable = navigationStartDelta < threshold;\n\n if (timeOriginIsReliable || navigationStartIsReliable) {\n // Use the more reliable time origin\n if (timeOriginDelta <= navigationStartDelta) {\n _browserPerformanceTimeOriginMode = 'timeOrigin';\n return performance.timeOrigin;\n } else {\n _browserPerformanceTimeOriginMode = 'navigationStart';\n return navigationStart;\n }\n }\n\n // Either both timeOrigin and navigationStart are skewed or neither is available, fallback to Date.\n _browserPerformanceTimeOriginMode = 'dateNow';\n return dateNow;\n})();\n","import * as React from 'react';\nimport { styled } from '../theme-provider';\nimport { Breakpoints } from '../helpers/breakpoint';\nimport { getCommonProps } from '../helpers/common-props';\nconst BreakpointWrapperRenderingContext = React.createContext({});\nexport const BreakpointWrapperRenderingConfig = ({ notHydrating, ssrViewportWidth, children, }) => {\n const outerContextValue = React.useContext(BreakpointWrapperRenderingContext);\n const value = React.useMemo(() => ({\n notHydrating: notHydrating !== null && notHydrating !== void 0 ? notHydrating : outerContextValue.notHydrating,\n ssrViewportWidth: ssrViewportWidth !== null && ssrViewportWidth !== void 0 ? ssrViewportWidth : outerContextValue.ssrViewportWidth,\n }), [notHydrating, ssrViewportWidth, outerContextValue]);\n return (React.createElement(BreakpointWrapperRenderingContext.Provider, { value: value }, children));\n};\nconst combinedMediaQuery = (props) => {\n const minQuery = `(min-width: ${Math.max(0, props.minSize)}px)`;\n const maxQuery = Number.isFinite(props.maxSize) && `(max-width: ${props.maxSize - 1}px)`;\n return [minQuery, maxQuery].filter(Boolean).join(' and ');\n};\nconst StyledBreakpointWrapper = styled.div.withConfig({ displayName: \"StyledBreakpointWrapper\", componentId: \"sc-1jaqtkh\" }) `display:none;@media ${combinedMediaQuery}{display:contents;}`;\nexport function BreakpointWrapper(props) {\n const { min = Breakpoints.default, max = Breakpoints.never, children } = props;\n const commonProps = getCommonProps(props);\n const { ssrViewportWidth: contextSsrViewportWidth } = React.useContext(BreakpointWrapperRenderingContext);\n const ssrViewportWidth = contextSsrViewportWidth;\n const isRenderedInClient = useIsRenderedInClient();\n const { notHydrating } = React.useContext(BreakpointWrapperRenderingContext);\n const breakpointMatches = useBreakpointRangeReachedListener(min, max);\n const breakpointMatchesForSsr = isBreakpointRangeReached(min, max, ssrViewportWidth);\n // SSR\n if (!isRenderedInClient && !breakpointMatchesForSsr) {\n return null;\n }\n // client, but not hydrating, so act as if it was SSR\n if (isRenderedInClient && notHydrating && !breakpointMatchesForSsr) {\n return null;\n }\n // client, but hydrating\n if (isRenderedInClient && !notHydrating && !breakpointMatches) {\n return null;\n }\n return (React.createElement(StyledBreakpointWrapper, Object.assign({ minSize: min, maxSize: max }, commonProps), children));\n}\nfunction useMediaQueryListener(query) {\n const mql = React.useMemo(() => typeof window !== 'undefined' && query && window.matchMedia(query), [query]);\n const [matches, setMatches] = React.useState(mql ? mql.matches : false);\n React.useEffect(() => {\n if (!mql) {\n return;\n }\n setMatches(mql.matches);\n const handleMediaQueryListener = (event) => {\n setMatches(event.matches);\n };\n mql.addEventListener('change', handleMediaQueryListener);\n return () => {\n mql.removeEventListener('change', handleMediaQueryListener);\n };\n }, [mql]);\n return matches;\n}\nfunction isBreakpointRangeReached(minSize, maxSize, viewportWidth) {\n // if there is no given viewportWidth, we should always render the wrapped content\n // (it will be hidden by the css anyway)\n return viewportWidth !== undefined\n ? viewportWidth >= minSize && viewportWidth < maxSize\n : true;\n}\nfunction useBreakpointRangeReachedListener(minSize, maxSize) {\n const query = React.useMemo(() => combinedMediaQuery({ minSize, maxSize }), [minSize, maxSize]);\n return useMediaQueryListener(query);\n}\nfunction useIsRenderedInClient() {\n const [isRenderedInClient, setIsRenderedInClient] = React.useState(false);\n // useEffect only happens when we are in the browser not on the server\n // (except when testing with react-test-renderer)\n React.useEffect(() => {\n if (!isRenderedInClient) {\n // we need to check if we are really in the browser here\n // because of react-test-renderer\n setIsRenderedInClient(typeof window !== 'undefined');\n }\n }, [isRenderedInClient]);\n return isRenderedInClient;\n}\n","var __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport { css, styled } from '../theme-provider';\nimport { Text, TokenTextAppearance, TokenTextColor, TextTag } from '../text';\nimport { createStylesForBreakpoints, } from '../helpers/breakpoint';\nimport { createA11yOutlineStyles } from '../helpers/a11y';\nconst isLink = (props) => Boolean(props.tag === 'a');\nconst isAccentButton = (props) => props.emphasis === 'offer' ||\n props.emphasis === 'nbab';\nconst getTokenColors = (theme, disabled, isIconOnly) => {\n return {\n primary: `\n\t\t\tcolor: ${theme.colors.content[disabled ? 'tertiary' : 'inverted']};\n\t\t\tbackground: ${theme.colors.button.primary[disabled ? 'disabled' : 'default']};\n\t\t\tborder:none;\n\n\t\t\t:hover:not(:disabled), :active:not(:disabled),:focus:not(:disabled):not(:focus-visible) {\n\t\t\t\tbackground: ${theme.colors.button.primary.active};\n\t\t\t}\n\n\t\t\t:focus-visible {\n\t\t\t\t${createA11yOutlineStyles(theme, 'solid')};\n\t\t\t\toutline-offset: unset;\n\t\t\t}\n\t\t`,\n secondary: `\n\n\t\t\tcolor: ${theme.colors.button.secondary[disabled ? 'disabled' : 'default']};\n\t\t\tbackground: transparent;\n\t\t\tborder: 1px solid ${theme.colors.button.secondary[disabled ? 'disabled' : 'default']};\n\n\t\t\t:hover:not(:disabled), :active:not(:disabled),:focus:not(:disabled):not(:focus-visible) {\n\t\t\t\tcolor: ${theme.colors.content.inverted};\n\t\t\t\tbackground: ${theme.colors.button.secondary.active};\n\t\t\t\tborder: 1px solid ${theme.colors.button.primary.active};\n\t\t\t}\n\n\t\t\t:focus-visible {\n\t\t\t\t${createA11yOutlineStyles(theme, 'solid')};\n\t\t\t\toutline-offset: unset;\n\t\t\t}\n\t\t\t`,\n tertiary: `\n\t\t\tcolor: ${theme.colors.button.tertiary[disabled ? 'disabled' : 'default']};\n\t\t\tbackground: transparent;\n\t\t\tborder: none;\n\n\t\t\t:hover:not(:disabled), :active:not(:disabled),:focus:not(:disabled):not(:focus-visible) {\n\t\t\t\tcolor: ${theme.colors.button.tertiary.active};\n\t\t\t\tbackground: transparent;\n\t\t\t\tborder-radius: ${theme.size.border.heavy};\n\n\t\t\t\tspan {\n\t\t\t\t\ttext-decoration-thickness: ${theme.size.border.heavy};\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t:focus-visible {\n\t\t\t\t${createA11yOutlineStyles(theme, 'solid')};\n\t\t\t\toutline-offset: ${isIconOnly ? 'unset' : '1px'};\n\t\t\t\tborder-radius: ${theme.size.border.heavy};\n\t\t\t}\n\t\t\t`,\n offer: `\n\t\t\tcolor: ${theme.colors.content.invertedOnSurface};\n\t\t\tbackground: ${theme.colors.accent.offer.default};\n\t\t\t`,\n nbab: `\n\t\t\tcolor: ${theme.colors.content.invertedOnSurface};\n\t\t\tbackground: ${theme.colors.accent.nbab.default};\n\t\t\t`,\n };\n};\n// styled component for icons in links\nconst StyledLinkIcon = styled.span.withConfig({ displayName: \"StyledLinkIcon\", componentId: \"sc-wjrax8\" }) `border-radius:50%;line-height:0;position:relative;order:${(props) => (props.iconPosition === 'end' ? 1 : 'initial')};${({ iconPosition, theme }) => iconPosition === 'top' &&\n css `\n\t\t\tdisplay: flex;\n\t\t\tjustify-content: center;\n\t\t\talign-items: center;\n\t\t\twidth: 44px;\n\t\t\theight: 44px;\n\t\t\tborder-radius: 50%;\n\t\t\tborder: ${theme.size.border.heavy} solid currentColor;\n\t\t\tmargin-bottom: ${theme.size.static100};\n\t\t`}`;\n// styled component for icons in buttons\nconst StyledButtonIcon = styled.span.withConfig({ displayName: \"StyledButtonIcon\", componentId: \"sc-bk7es1\" }) `line-height:0;order:${(props) => (props.iconPosition === 'end' ? 1 : 'initial')};`;\n// styled component for (text-) children in links\nconst StyledLinkText = styled.span.withConfig({ displayName: \"StyledLinkText\", componentId: \"sc-12fkfup\" }) `position:relative;text-decoration:underline;text-underline-offset:0.2em;text-decoration-thickness:1px;${(props) => props.emphasis === 'none' && 'text-decoration: none;'} ${(props) => props.disabled\n ? css `\n\t\t\t\t\tpointer-events: none;\n\t\t\t\t\tcursor: not-allowed;\n\t\t\t\t`\n : css `\n\t\t\t\t\tcursor: pointer;\n\t\t\t\t`}`;\n// styled component for arranging icons and children in buttons (emphasis primary and secondary, size small and large)\nconst StyledButtonWrapper = styled.div.withConfig({ displayName: \"StyledButtonWrapper\", componentId: \"sc-grwi6b\" }) `align-items:center;${(props) => {\n if (props.iconPosition === 'top') {\n return css `\n\t\t\t\tdisplay: flex;\n\t\t\t\tflex-direction: column;\n\t\t\t`;\n }\n const templateColumns = props.iconPosition === 'end'\n ? `repeat(\n\t\t\t\t\t${React.Children.count(props.children) - 1},\n\t\t\t\t\tauto\n\t\t\t\t) max-content`\n : `max-content repeat(\n\t\t\t\t\t${React.Children.count(props.children) - 1},\n\t\t\t\t\tauto\n\t\t\t\t)`;\n return css `\n\t\t\tdisplay: inline-grid;\n\t\t\tgrid-template-columns: ${templateColumns};\n\t\t\tgrid-column-gap: ${props.theme.size.static150};\n\t\t`;\n}}`;\n// styled component for arranging icons and children in links (emphasis tertiary)\nconst StyledLinkWrapper = styled.div.withConfig({ displayName: \"StyledLinkWrapper\", componentId: \"sc-x60dy3\" }) `align-items:center;${(props) => {\n if (props.iconPosition === 'top') {\n return css `\n\t\t\t\tdisplay: flex;\n\t\t\t\tflex-direction: column;\n\t\t\t`;\n }\n return css `\n\t\t\tdisplay: inline-grid;\n\t\t\tgrid-template-columns: max-content auto;\n\t\t\tgrid-column-gap: ${(props) => props.theme.size.static150};\n\t\t\talign-items: center;\n\t\t`;\n}}`;\nconst createStretchContentForBreakpoints = (props) => {\n if (!props.stretchContent) {\n return '';\n }\n return createStylesForBreakpoints(props.stretchContent, (stretchContent) => (stretchContent ? 'width: 100%;' : 'width: initial;'));\n};\n// styled component for large buttons (without icon, emphasis primary and secondary, offer and nbab)\nconst StyledButton = styled.button.withConfig({ displayName: \"StyledButton\", componentId: \"sc-1208ax7\" }) `position:relative;${createStretchContentForBreakpoints} display:inline-flex;text-align:center;justify-content:center;align-items:center;${(props) => {\n const width = props.size === 'small' ? props.theme.size.static400 : '44px';\n const padding = props.size === 'small'\n ? `${props.theme.size.static100} ${props.theme.size.static250}`\n : `0 ${props.theme.size.static400}`;\n const border = props.size === 'small'\n ? `${props.theme.size.border.light}`\n : `${props.theme.size.border.heavy}`;\n return css `\n\t\t\tmin-height: ${width};\n\t\t\tmin-width: ${width};\n\t\t\t${props.circular\n ? css `\n\t\t\t\t\t\twidth: ${width};\n\t\t\t\t\t\tpadding: 0;\n\t\t\t\t\t`\n : css `\n\t\t\t\t\t\tpadding: ${padding};\n\t\t\t\t\t`}\n\t\t\tborder: ${border} solid;\n\t\t`;\n}} margin:0;border-radius:500px;transition:all 0.2s ease-in-out;text-decoration:none;cursor:${(props) => (props.disabled ? 'not-allowed' : 'pointer')};-webkit-tap-highlight-color:transparent;${({ theme, disabled, emphasis, isIconOnly }) => emphasis &&\n getTokenColors(theme, disabled, isIconOnly)[emphasis === 'none' ? 'tertiary' : emphasis]} ${({ theme, emphasis }) => (emphasis === 'nbab' || emphasis === 'offer') &&\n css `\n\t\t\tborder: none;\n\n\t\t\t:hover {\n\t\t\t\tcolor: ${theme.colors.content.inverted};\n\t\t\t\tbackground: ${theme.colors.accent.offer.hover};\n\t\t\t}\n\n\t\t\t:active,\n\t\t\t:focus:not(:focus-visible) {\n\t\t\t\tcolor: ${theme.colors.content.inverted};\n\t\t\t\tbackground: ${theme.colors.accent.offer.active};\n\t\t\t}\n\n\t\t\t:focus-visible {\n\t\t\t\toutline: 3px solid ${theme.colors.focus.accent};\n\t\t\t\toutline-offset: unset;\n\t\t\t}\n\t\t`}`;\n// styled component for links (with or without icons, emphasis tertiary)\nconst StyledLink = styled.a.withConfig({ displayName: \"StyledLink\", componentId: \"sc-afbv6g\" }) `font-weight:inherit;display:inline-grid;${createStretchContentForBreakpoints} border:none;position:relative;text-decoration:none;cursor:${(props) => (props.disabled ? 'not-allowed' : 'pointer')};padding:0;text-align:inherit;${(props) => props.circular &&\n css `\n\t\t\tdisplay: inline-flex;\n\t\t\talign-items: center;\n\t\t\ttext-align: center;\n\t\t\tjustify-content: center;\n\t\t\twidth: ${props.size === 'small' ? props.theme.size.static400 : '44px'};\n\t\t\theight: ${props.size === 'small' ? props.theme.size.static400 : '44px'};\n\t\t\tborder: ${props.size === 'small'\n ? props.theme.size.border.light\n : props.theme.size.border.heavy}\n\t\t\t\tsolid transparent;\n\t\t\tborder-radius: 50%;\n\t\t`} ${({ theme, disabled, emphasis, isIconOnly }) => emphasis &&\n getTokenColors(theme, disabled, isIconOnly)[emphasis === 'none' ? 'tertiary' : emphasis]} -webkit-tap-highlight-color:transparent;`;\n// Component for a CTA that looks like a link. Please note that it could either be a 'button' or an anchor link ('a') depending on its props.\nconst CTALink = (props) => {\n const { ariaLabel, children, disabled, emphasis, forwardRef, icon, iconPosition, size, tag, onClick } = props, rest = __rest(props, [\"ariaLabel\", \"children\", \"disabled\", \"emphasis\", \"forwardRef\", \"icon\", \"iconPosition\", \"size\", \"tag\", \"onClick\"]);\n const hasChildren = React.Children.count(children) > 0;\n // depending on the tag we need different props and different types for these props\n const additionalProps = isLink(props) && !disabled ? { href: props.href } : {};\n // eslint-disable-next-line @typescript-eslint/no-explicit-any -- there is no sane type for the ref of both StyledLink and StyledButton using \"as\" that works with both components and both tags, so we have to use \"any\" instead\n const ref = forwardRef;\n return (React.createElement(StyledLink, Object.assign({ as: tag, \"aria-label\": ariaLabel, disabled: disabled }, rest, additionalProps, { ref: ref, emphasis: emphasis, circular: icon && !hasChildren, isIconOnly: icon && !hasChildren, size: size, onClick: onClick, iconPosition: iconPosition }),\n icon && hasChildren && (React.createElement(StyledLinkWrapper, { iconPosition: iconPosition },\n React.createElement(StyledLinkIcon, { iconPosition: iconPosition }, icon),\n React.createElement(\"span\", null,\n React.createElement(StyledLinkText, { emphasis: emphasis, disabled: disabled }, children)))),\n !hasChildren && icon,\n hasChildren && !icon && (React.createElement(StyledLinkText, { emphasis: emphasis, disabled: disabled }, children))));\n};\n// Component for a CTA that looks like a button. Please note that it could either be a 'button' or an anchor link ('a') depending on its props.\nconst CTAButton = (props) => {\n const { ariaLabel, children, forwardRef, icon, iconPosition, size = 'large', tag, onClick } = props, rest = __rest(props, [\"ariaLabel\", \"children\", \"forwardRef\", \"icon\", \"iconPosition\", \"size\", \"tag\", \"onClick\"]);\n const hasChildren = React.Children.count(children) > 0;\n // depending on the tag we need different props and different types for these props\n let additionalProps = {};\n if (isLink(props) && !props.disabled) {\n additionalProps = Object.assign(Object.assign({}, additionalProps), { href: props.href });\n }\n if (!isAccentButton(props)) {\n additionalProps = Object.assign(Object.assign({}, additionalProps), { disabled: props.disabled });\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any -- there is no sane type for the ref of both StyledLink and StyledButton using \"as\" that works with both components and both tags, so we have to use \"any\" instead\n const ref = forwardRef;\n const appearance = {\n small: TokenTextAppearance.label100,\n large: TokenTextAppearance.label200,\n }[size];\n const color = TokenTextColor.inherit;\n return (React.createElement(StyledButton, Object.assign({ as: tag, \"aria-label\": ariaLabel }, rest, additionalProps, { ref: ref, circular: icon && !hasChildren, isIconOnly: icon && !hasChildren, size: size, onClick: onClick }),\n icon && !hasChildren && icon,\n icon && hasChildren && (React.createElement(StyledButtonWrapper, { iconPosition: iconPosition },\n React.createElement(StyledButtonIcon, { iconPosition: iconPosition }, icon),\n React.createElement(Text, { appearance: appearance, color: color, staticSize: true, tag: TextTag.span }, children))),\n hasChildren && !icon && (React.createElement(Text, { appearance: appearance, color: color, tag: TextTag.span, staticSize: true }, children))));\n};\nexport const CTA = React.forwardRef((props, forwardRef) => {\n var _a, _b, _c, _d, _e;\n if (isAccentButton(props)) {\n return (React.createElement(CTAButton, Object.assign({}, props, { emphasis: props.emphasis, size: (_a = props.size) !== null && _a !== void 0 ? _a : 'large', forwardRef: forwardRef })));\n }\n if (props.emphasis === 'tertiary' || props.emphasis === 'none') {\n return (React.createElement(CTALink, Object.assign({}, props, { emphasis: (_b = props.emphasis) !== null && _b !== void 0 ? _b : 'primary', size: (_c = props.size) !== null && _c !== void 0 ? _c : 'large', forwardRef: forwardRef })));\n }\n return (React.createElement(CTAButton, Object.assign({}, props, { emphasis: (_d = props.emphasis) !== null && _d !== void 0 ? _d : 'primary', size: (_e = props.size) !== null && _e !== void 0 ? _e : 'large', forwardRef: forwardRef })));\n});\nCTA.displayName = 'CTA';\n","import * as React from 'react';\nimport { styled } from '../theme-provider';\nimport { Text, TokenTextAppearance, TokenTextColor, TextTag, WhiteSpace, } from '../text';\nimport { getCommonProps } from '../helpers/common-props';\nconst StyledCharacterCounter = styled.span.withConfig({ displayName: \"StyledCharacterCounter\", componentId: \"sc-omfthb\" }) `margin-inline-start:auto;color:${({ theme }) => theme.colors.content.tertiary};`;\nexport const CharacterCounter = (props) => {\n const { limit, value = 0 } = props;\n const commonProps = getCommonProps(props);\n return (React.createElement(StyledCharacterCounter, Object.assign({ \"aria-hidden\": true }, commonProps),\n React.createElement(Text, { tag: TextTag.span, color: TokenTextColor.inherit, appearance: TokenTextAppearance.label100, whiteSpace: WhiteSpace.nowrap },\n value,\n \" / \",\n limit)));\n};\n","import * as React from 'react';\nexport var CheckboxBorder = React.forwardRef(Object.assign(function (props, forwardRef) {\n var variant = props.variant || \"default\";\n if (variant === \"small\") {\n return React.createElement(\"svg\", { className: props.className, \"aria-hidden\": props.ariaHidden, role: props.ariaHidden ? undefined : \"img\", tabIndex: props.tabIndex, \"aria-label\": props.ariaLabel, ref: forwardRef, xmlns: \"http://www.w3.org/2000/svg\", width: \"12\", height: \"12\", viewBox: \"0 0 12 12\", fill: \"currentColor\" },\n props.title && React.createElement(\"title\", null, props.title),\n React.createElement(\"path\", { d: \"M10.67 1.33v9.34H1.33V1.33zM12 0H0v12h12z\" }));\n }\n if (variant === \"default\") {\n return React.createElement(\"svg\", { className: props.className, \"aria-hidden\": props.ariaHidden, role: props.ariaHidden ? undefined : \"img\", tabIndex: props.tabIndex, \"aria-label\": props.ariaLabel, ref: forwardRef, xmlns: \"http://www.w3.org/2000/svg\", width: \"24\", height: \"24\", viewBox: \"0 0 24 24\", fill: \"currentColor\" },\n props.title && React.createElement(\"title\", null, props.title),\n React.createElement(\"path\", { d: \"M2 0a2 2 0 0 0-2 2v20a2 2 0 0 0 2 2h20a2 2 0 0 0 2-2V2a2 2 0 0 0-2-2zm0 1.33h20c.37 0 .67.3.67.67v20c0 .37-.3.67-.67.67H2a.67.67 0 0 1-.67-.67V2c0-.37.3-.67.67-.67\" }));\n }\n return null;\n}, { displayName: 'CheckboxBorder' }));\n","import * as React from 'react';\nimport { CheckboxBorder, CheckboxCheckmark } from '@volkswagen-onehub/icons-core';\nimport { Text, TokenTextAppearance, TokenTextColor } from '../text';\nimport { css, styled } from '../theme-provider';\nimport { InputAppearance } from '../helpers/input';\nimport { getCommonProps } from '../helpers/common-props';\nimport { createA11yOutlineStyles } from '../helpers/a11y';\nconst noop = () => undefined;\nconst StyledLabel = styled.label.withConfig({ displayName: \"StyledLabel\", componentId: \"sc-tap8jg\" }) `position:relative;color:${({ theme }) => theme.colors.content.primary};cursor:pointer;`;\nconst transition = css `transition:background ${({ theme }) => theme.animation.duration.color} ease,color ${({ theme }) => theme.animation.duration.color} ease;`;\nconst StyledCheckboxWrapper = styled.span.withConfig({ displayName: \"StyledCheckboxWrapper\", componentId: \"sc-1gajbzj\" }) `position:relative;display:flex;align-items:center;${transition};`;\nconst StyledCheckboxCheckmark = styled(CheckboxCheckmark).withConfig({ displayName: \"StyledCheckboxCheckmark\", componentId: \"sc-nf8hca\" }) `position:absolute;opacity:0;display:flex;align-items:center;`;\nconst StyledFocusWrapper = styled.span.withConfig({ displayName: \"StyledFocusWrapper\", componentId: \"sc-1oeagwv\" }) `position:relative;display:grid;grid-column-gap:${({ theme }) => theme.size.static200};grid-template-columns:max-content auto;align-items:flex-start;:hover{${({ disabled }) => !disabled &&\n css `\n\t\t\t\tcolor: ${({ theme }) => theme.colors.controllers.off.hover};\n\t\t\t`}}`;\nconst StyledErrorText = styled.span.withConfig({ displayName: \"StyledErrorText\", componentId: \"sc-uiyaus\" }) `display:block;color:${({ theme }) => theme.colors.signal.error};font-size:${({ theme }) => theme.fonts.label[100].fontSize};`;\nconst StyledInput = styled.input.withConfig({ displayName: \"StyledInput\", componentId: \"sc-h9lzej\" }) `position:absolute;opacity:0;outline:0;user-select:none;pointer-events:none;:focus-visible{+ ${StyledFocusWrapper}{${StyledCheckboxWrapper}{${({ theme }) => createA11yOutlineStyles(theme)};border-radius:${({ theme }) => theme.size.line.active};}}}:checked{+ ${StyledFocusWrapper}{${StyledCheckboxCheckmark}{${transition};opacity:1;border-radius:${({ theme }) => theme.size.line.active};background:${({ theme, disabled }) => disabled\n ? theme.colors.controllers.on.disabled\n : theme.colors.controllers.on.default};color:${({ theme }) => theme.colors.content.inverted};&:hover{${({ theme, disabled }) => !disabled &&\n css `\n\t\t\t\t\t\t\tbackground: ${theme.colors.controllers.on.hover};\n\t\t\t\t\t\t`}}}}}:disabled{+ ${StyledFocusWrapper}{cursor:not-allowed;color:${({ theme }) => theme.colors.content.disabled};}}`;\nconst CheckboxInner = (props) => {\n const { checked, defaultChecked, disabled, label = '', name, value, required, appearance, message, tabIndex, textAppearance = TokenTextAppearance.copy200, innerRef, results, onLabelMouseDown = noop, } = props;\n const handleLabelMouseDown = React.useCallback((e) => {\n if (!disabled)\n onLabelMouseDown(e);\n }, [disabled, onLabelMouseDown]);\n const handleChange = React.useCallback((e) => {\n const { onChange = noop } = props;\n onChange(e, props);\n }, [props]);\n const handleBlur = React.useCallback((e) => {\n const { onBlur = noop } = props;\n onBlur(e, props);\n }, [props]);\n const handleFocus = React.useCallback((e) => {\n const { onFocus = noop } = props;\n onFocus(e, props);\n }, [props]);\n const handleClick = React.useCallback((e) => {\n const { onClick = noop } = props;\n onClick(e, props);\n }, [props]);\n const sharedProps = getCommonProps(props);\n return (React.createElement(StyledLabel, Object.assign({ onMouseDown: handleLabelMouseDown }, sharedProps),\n React.createElement(StyledInput, { checked: checked, defaultChecked: defaultChecked, disabled: disabled, name: name, onBlur: handleBlur, onChange: handleChange, onClick: handleClick, onFocus: handleFocus, type: \"checkbox\", value: value, required: required, tabIndex: tabIndex, ref: innerRef }),\n React.createElement(StyledFocusWrapper, { disabled: disabled },\n React.createElement(StyledCheckboxWrapper, { textAppearance: textAppearance, \"aria-hidden\": true },\n React.createElement(CheckboxBorder, { variant: \"default\" }),\n React.createElement(StyledCheckboxCheckmark, { variant: \"default\" })),\n React.createElement(\"span\", null,\n label &&\n (typeof label === 'string' ? (React.createElement(Text, { color: TokenTextColor.inherit, appearance: textAppearance },\n label,\n \" \",\n results && `(${results})`)) : (label)),\n React.createElement(StyledErrorText, { \"aria-live\": \"assertive\", \"aria-relevant\": \"all\" }, appearance === InputAppearance.Error && message)))));\n};\nexport const Checkbox = React.forwardRef((props, ref) => React.createElement(CheckboxInner, Object.assign({}, props, { innerRef: ref })));\nCheckbox.displayName = 'Checkbox';\n","import { css } from 'styled-components';\nimport { createStylesForBreakpoints, isBreakpointConfig, } from '../helpers/breakpoint';\nimport { createCSSVarName } from '../theme-provider/create-css-var-name';\nconst directions = [\n 'top',\n 'right',\n 'bottom',\n 'left',\n 'inlineStart',\n 'inlineEnd',\n];\nfunction isDirectionalConfig(prop) {\n return (typeof prop === 'object' &&\n Object.keys(prop).every((key) => directions.includes(key)));\n}\n// create CSS variables for all dynamic sizes for a given configuration (e.g. container gutter or padding)\nexport function createCSSVariablesForSizes(configOrSize, theme) {\n if (!configOrSize) {\n return '';\n }\n if (isDirectionalConfig(configOrSize)) {\n return directions\n .map((key) => {\n const directionalConfigOrSize = configOrSize[key];\n return createCSSVariablesForSizes(directionalConfigOrSize, theme);\n })\n .join('');\n }\n if (isBreakpointConfig(configOrSize)) {\n const cssVar = createCSSVarName(configOrSize, 'container');\n return createStylesForBreakpoints(configOrSize, (size) => {\n const value = theme.size[size];\n return `${cssVar}: ${value};`;\n });\n }\n return '';\n}\nfunction createSpacing(gutter, theme) {\n if (isBreakpointConfig(gutter)) {\n const cssVar = createCSSVarName(gutter, 'container');\n return `var(${cssVar})`;\n }\n return theme.size[gutter];\n}\nexport function createHorizontalAlignmentStyles(horizontalAlign) {\n return createStylesForBreakpoints(horizontalAlign, (horizontalAlign) => `justify-content: ${horizontalAlign};`);\n}\nfunction wrapStyles(wrap, theme, gutter) {\n const spacing = (gutter && createSpacing(gutter, theme)) || '0px';\n switch (wrap) {\n case 'never':\n return `\n\t\t\t\tdisplay: flex;\n\t\t\t\tflex-wrap: nowrap;\n\t\t\t\tmargin: 0;\n\t\t\t`;\n case 'always':\n return `\n\t\t\t\tdisplay: block;\n\t\t\t\tflex-wrap: unset;\n\t\t\t\tmargin: 0;\n\t\t\t`;\n default: {\n return `\n\t\t\t\tdisplay: flex;\n\t\t\t\tflex-wrap: wrap;\n\t\t\t\tmargin: 0 calc(-0.5 * ${spacing}) calc(-1 * ${spacing});\n\t\t\t`;\n }\n }\n}\nexport function createWrapStyles(theme, gutter, wrap = 'auto') {\n return css `${createStylesForBreakpoints(wrap, (wrap) => wrapStyles(wrap, theme, gutter))}`;\n}\nfunction spacingBetweenElementsStyles(wrap, theme, gutter, direction) {\n const spacing = (gutter && createSpacing(gutter, theme)) || '0px';\n switch (wrap) {\n case 'never':\n return `\n\t\t\t\tmargin: 0 calc(${spacing} / 2);\n\t\t\t\t:first-child {\n\t\t\t\t\t${(theme.direction || direction) === 'rtl'\n ? `margin: 0 0 0 calc(${spacing} / 2);`\n : `margin: 0 calc(${spacing} / 2) 0 0;`}\n\t\t\t\t}\n\t\t\t\t:last-child {\n\t\t\t\t\t${(theme.direction || direction) === 'rtl'\n ? `margin: 0 calc(${spacing} / 2) 0 0;`\n : `margin: 0 0 0 calc(${spacing} / 2);`}\n\t\t\t\t}\n\t\t\t`;\n case 'always':\n return `\n\t\t\t\tmargin: 0 0 ${spacing};\n\t\t\t\t:last-child {\n\t\t\t\t\tmargin: 0;\n\t\t\t\t}\n\t\t\t`;\n default:\n return `\n\t\t\t\tmargin: 0 calc(${spacing} / 2) ${spacing};\n\t\t\t\t:last-child {\n\t\t\t\t\tmargin: 0 calc(${spacing} / 2) ${spacing};\n\t\t\t\t}\n\t\t\t`;\n }\n}\nexport function createSpacingBetweenElementsStyles(props) {\n const { wrapped = 'auto', theme, gutter, direction } = props;\n return css `${createStylesForBreakpoints(wrapped, (wrap) => spacingBetweenElementsStyles(wrap, theme, gutter, direction))}`;\n}\nfunction createPaddings(value, key) {\n switch (key) {\n case 'inlineStart':\n return `\n\t\t\t\tpadding-inline-start: ${value};\n\t\t\t`;\n case 'inlineEnd':\n return `\n\t\t\t\tpadding-inline-end: ${value};\n\t\t\t`;\n default:\n return `padding-${key}: ${value};`;\n }\n}\nfunction createDirectionalSpacings(key, padding, theme) {\n const directionalPadding = padding[key];\n if (isBreakpointConfig(directionalPadding)) {\n const cssVar = createCSSVarName(directionalPadding, 'container');\n return createPaddings(`var(${cssVar})`, key);\n }\n if (typeof directionalPadding === 'string' && theme) {\n return createPaddings(theme.size[directionalPadding], key);\n }\n return '';\n}\nexport function createSpacingAroundElementsStyles(padding, theme) {\n if (typeof padding === 'string' && theme) {\n return css `padding:${theme.size[padding]};`;\n }\n if (isDirectionalConfig(padding)) {\n return css `padding:0;${directions.reduce((acc, key) => {\n return `\n\t\t\t\t\t\t${acc}\n\t\t\t\t\t\t${createDirectionalSpacings(key, padding, theme)}\n\t\t\t\t\t`;\n }, '')};`;\n }\n if (isBreakpointConfig(padding)) {\n const cssVar = createCSSVarName(padding, 'container');\n return css `padding:var(${cssVar});`;\n }\n return css `padding:0;`;\n}\n","import * as React from 'react';\nimport { styled } from '../theme-provider';\nimport { createCSSVariablesForSizes, createHorizontalAlignmentStyles, createSpacingAroundElementsStyles, createSpacingBetweenElementsStyles, createWrapStyles, } from './helpers';\nimport { createElectricTransition } from '../helpers/animation';\nimport { createStylesForBreakpoints, } from '../helpers/breakpoint';\nimport { getCommonProps } from '../helpers/common-props';\nconst createStretchContentForBreakpoints = (props) => {\n if (!props.stretchContent) {\n return '';\n }\n return createStylesForBreakpoints(props.stretchContent, (stretchContent) => stretchContent ? 'flex-grow: 1;' : 'flex-grow: initial;');\n};\nconst createShrinkContentForBreakpoints = (props) => {\n if (!props.shrinkContent) {\n return '';\n }\n return createStylesForBreakpoints(props.shrinkContent, (shrinkContent) => shrinkContent ? 'flex-shrink: 1;' : 'flex-shrink: initial;');\n};\nconst StyledChildWrapper = styled.div.withConfig({ displayName: \"StyledChildWrapper\", componentId: \"sc-1d21nde\" }) `flex-shrink:0;max-width:100%;${createStretchContentForBreakpoints};${createShrinkContentForBreakpoints};${createSpacingBetweenElementsStyles};:empty{display:none;}`;\nStyledChildWrapper.displayName = 'StyledChildWrapper';\nconst StyledOverflowWrapper = styled.div.withConfig({ displayName: \"StyledOverflowWrapper\", componentId: \"sc-mfnmbg\" }) `overflow:${(props) => (props.wrapChildren ? '' : 'hidden')};`;\nStyledOverflowWrapper.displayName = 'StyledOverflowWrapper';\n// `flex-grow: 1;` for stretchContent is needed for cases where the content does not bring its own width and instead relies on the width\n// of the container. Combined with the container being inside a different flex element.\n// Example: \n// Also see \"components-cms/mood-gallery\"\n//\n// To use transition for some properties:\n// animateChange={['padding', 'opacity']}\nconst StyledContainer = styled.div.withConfig({ displayName: \"StyledContainer\", componentId: \"sc-18harj2\" }) `${(props) => props.gutter && createCSSVariablesForSizes(props.gutter, props.theme)} ${(props) => props.padding && createCSSVariablesForSizes(props.padding, props.theme)} ${(props) => createWrapStyles(props.theme, props.gutter, props.wrapChildren)} align-items:${(props) => props.verticalAlign};${(props) => props.horizontalAlign &&\n createHorizontalAlignmentStyles(props.horizontalAlign)} ${(props) => props.padding &&\n createSpacingAroundElementsStyles(props.padding, props.theme)};${(props) => props.animateChange && createElectricTransition(...props.animateChange)};`;\nStyledContainer.displayName = 'StyledContainer';\nconst ContainerInner = (props) => {\n const { children, gutter, padding, wrap, stretchContent, shrinkContent, verticalAlign, horizontalAlign, animateChange, innerRef, } = props;\n const commonProps = getCommonProps(props);\n const childElements = React.Children.toArray(children).filter(React.isValidElement);\n if (childElements.length === 0) {\n return null;\n }\n return (React.createElement(StyledOverflowWrapper, Object.assign({ ref: innerRef, wrapChildren: wrap }, commonProps),\n React.createElement(StyledContainer, { gutter: gutter, padding: padding, wrapChildren: wrap, verticalAlign: verticalAlign, horizontalAlign: horizontalAlign, animateChange: animateChange }, childElements.map((child) => {\n const key = child.key === null ? undefined : child.key;\n return (React.createElement(StyledChildWrapper, { key: key, gutter: gutter, wrapped: wrap, stretchContent: stretchContent, shrinkContent: shrinkContent }, child));\n }))));\n};\nexport const Container = React.forwardRef((props, ref) => React.createElement(ContainerInner, Object.assign({}, props, { innerRef: ref })));\nContainer.displayName = 'Container';\n","import { DesignTokenSizeEnum } from '../theme-provider';\nexport { DesignTokenSizeEnum as ContainerGutter };\n/**\n * @deprecated The ContainerWrap enum is deprecated. Please use the string values instead.\n */\nexport var ContainerWrap;\n(function (ContainerWrap) {\n ContainerWrap[\"never\"] = \"never\";\n ContainerWrap[\"always\"] = \"always\";\n ContainerWrap[\"auto\"] = \"auto\";\n})(ContainerWrap || (ContainerWrap = {}));\nexport { DesignTokenSizeEnum as ContainerPadding };\n/**\n * @deprecated The ContainerHorizontalAlignment enum is deprecated. Please use the string values instead.\n */\nexport var ContainerHorizontalAlignment;\n(function (ContainerHorizontalAlignment) {\n ContainerHorizontalAlignment[\"flexStart\"] = \"flex-start\";\n ContainerHorizontalAlignment[\"center\"] = \"center\";\n ContainerHorizontalAlignment[\"flexEnd\"] = \"flex-end\";\n ContainerHorizontalAlignment[\"spaceBetween\"] = \"space-between\";\n})(ContainerHorizontalAlignment || (ContainerHorizontalAlignment = {}));\n/**\n * @deprecated The ContainerVerticalAlignment enum is deprecated. Please use the string values instead.\n */\nexport var ContainerVerticalAlignment;\n(function (ContainerVerticalAlignment) {\n ContainerVerticalAlignment[\"flexStart\"] = \"flex-start\";\n ContainerVerticalAlignment[\"center\"] = \"center\";\n ContainerVerticalAlignment[\"flexEnd\"] = \"flex-end\";\n})(ContainerVerticalAlignment || (ContainerVerticalAlignment = {}));\n","import * as React from 'react';\nexport var StarOutline = React.forwardRef(Object.assign(function (props, forwardRef) {\n var variant = props.variant || \"default\";\n if (variant === \"small\") {\n return React.createElement(\"svg\", { className: props.className, \"aria-hidden\": props.ariaHidden, role: props.ariaHidden ? undefined : \"img\", tabIndex: props.tabIndex, \"aria-label\": props.ariaLabel, ref: forwardRef, xmlns: \"http://www.w3.org/2000/svg\", width: \"12\", height: \"12\", viewBox: \"0 0 12 12\", fill: \"currentColor\" },\n props.title && React.createElement(\"title\", null, props.title),\n React.createElement(\"path\", { d: \"m9 11.51-3-2.1-3 2.1-1-.74 1.05-3.51L.12 5l.39-1.2 3.68-.07L5.4.3h1.25l1.21 3.47 3.68.07.39 1.16L9 7.26l1.06 3.51zM5.64 8.06h.76l1.83 1.27-.64-2.13.23-.72L9.6 5.13H7.37l-.61-.45L6 2.54l-.73 2.1-.61.45H2.43l1.8 1.39.23.72-.64 2.13z\" }));\n }\n if (variant === \"large\") {\n return React.createElement(\"svg\", { className: props.className, \"aria-hidden\": props.ariaHidden, role: props.ariaHidden ? undefined : \"img\", tabIndex: props.tabIndex, \"aria-label\": props.ariaLabel, ref: forwardRef, xmlns: \"http://www.w3.org/2000/svg\", width: \"48\", height: \"48\", viewBox: \"0 0 48 48\", fill: \"currentColor\" },\n props.title && React.createElement(\"title\", null, props.title),\n React.createElement(\"path\", { d: \"m45.94 19.82-1.1-3.36-13.38-.3a1.4 1.4 0 0 1-1.3-.95L25.67 2h-3.34l-4.5 13.23a1.41 1.41 0 0 1-1.3 1l-13.76.28-1 3.13 11 8.59a1.39 1.39 0 0 1 .48 1.5l-3.82 13 3 2.15 11.21-8a.72.72 0 0 1 .84 0l11.2 8 3-2.15-3.82-13a1.41 1.41 0 0 1 .49-1.51zm-9.82 21.52-.94.68-10-7.14-.4-.28a1.31 1.31 0 0 0-1.53 0l-.39.28L12.84 42l-.94-.68 3.54-12a2 2 0 0 0-.69-2.14l-10.23-8 .25-.78 12.78-.26a2 2 0 0 0 1.85-1.36l4.18-12.25h.84l4.16 12.25a2 2 0 0 0 1.85 1.36l12.44.28.3 1-9.9 7.68a2 2 0 0 0-.69 2.14z\" }));\n }\n if (variant === \"default\") {\n return React.createElement(\"svg\", { className: props.className, \"aria-hidden\": props.ariaHidden, role: props.ariaHidden ? undefined : \"img\", tabIndex: props.tabIndex, \"aria-label\": props.ariaLabel, ref: forwardRef, xmlns: \"http://www.w3.org/2000/svg\", width: \"24\", height: \"24\", viewBox: \"0 0 24 24\", fill: \"currentColor\" },\n props.title && React.createElement(\"title\", null, props.title),\n React.createElement(\"path\", { d: \"M18.42 23.12 12 18.62l-6.38 4.5-1-.74 2.28-7.53-6.3-4.68L1 9l7.87-.16 2.51-7.39h1.26l2.58 7.43L23 9l.39 1.19-6.27 4.76 2.31 7.45zM2.93 10.27l4.74 3.6a1.25 1.25 0 0 1 .45 1.36l-1.73 5.7 4.89-3.4a1.26 1.26 0 0 1 1.44 0l4.89 3.4-1.73-5.7a1.25 1.25 0 0 1 .45-1.36l4.74-3.6-6-.12A1.26 1.26 0 0 1 14 9.3l-2-5.63-2 5.63a1.26 1.26 0 0 1-1.16.85z\" }));\n }\n return null;\n}, { displayName: 'StarOutline' }));\n","import * as React from 'react';\nexport var Offers = React.forwardRef(Object.assign(function (props, forwardRef) {\n var variant = props.variant || \"default\";\n if (variant === \"small\") {\n return React.createElement(\"svg\", { className: props.className, \"aria-hidden\": props.ariaHidden, role: props.ariaHidden ? undefined : \"img\", tabIndex: props.tabIndex, \"aria-label\": props.ariaLabel, ref: forwardRef, xmlns: \"http://www.w3.org/2000/svg\", width: \"12\", height: \"12\", viewBox: \"0 0 12 12\", fill: \"currentColor\" },\n props.title && React.createElement(\"title\", null, props.title),\n React.createElement(\"path\", { d: \"M8.688 1.336c1.127 0 1.505.29 1.594.378.586.586.395 2.757.128 3.604l-5.286 5.287L1.39 6.871l5.262-5.261a8 8 0 0 1 2.035-.275M8.687.006c-1.354 0-2.671.36-2.791.48l-5.52 5.52c-.478.479-.502 1.229-.055 1.678l3.992 3.99c.214.215.497.32.787.32.316 0 .64-.126.89-.375l5.535-5.535c.215-.215 1.103-3.904-.303-5.31C10.637.19 9.652.007 8.687.007\" }),\n React.createElement(\"path\", { d: \"M2.824 6.952 5.46 4.311l.941.94-2.635 2.64zM4.228 8.356l1.64-1.64.941.942-1.64 1.64zM8.204 3.135c.147 0 .293.115.39.211.206.206.349.445 0 .794-.14.14-.286.22-.404.22-.142 0-.291-.12-.39-.22-.104-.103-.225-.257-.218-.403.005-.116.085-.257.218-.39.135-.137.279-.212.404-.212m-.001-1c-.402 0-.792.186-1.11.504-.611.61-.75 1.46 0 2.208.355.355.733.512 1.097.512.404 0 .79-.192 1.11-.512.61-.609.73-1.478 0-2.208-.348-.349-.728-.504-1.097-.504\" }));\n }\n if (variant === \"large\") {\n return React.createElement(\"svg\", { className: props.className, \"aria-hidden\": props.ariaHidden, role: props.ariaHidden ? undefined : \"img\", tabIndex: props.tabIndex, \"aria-label\": props.ariaLabel, ref: forwardRef, xmlns: \"http://www.w3.org/2000/svg\", width: \"48\", height: \"48\", viewBox: \"0 0 48 48\", fill: \"currentColor\" },\n props.title && React.createElement(\"title\", null, props.title),\n React.createElement(\"path\", { d: \"m12.382 29.905 14.043-14.043 1.414 1.414L13.796 31.32zM17.194 34.715l10.43-10.43 1.414 1.414-10.43 10.43z\" }),\n React.createElement(\"path\", { d: \"M48 0h-1.89l-3.47 3.46a11.43 11.43 0 0 0-14-.16 1.87 1.87 0 0 1-2.44-.18 1.87 1.87 0 0 0-2.65 0L2.26 24.45a4.32 4.32 0 0 0 0 6.1l15.19 15.19a4.32 4.32 0 0 0 6.1 0l21.33-21.33a1.88 1.88 0 0 0 0-2.65 1.87 1.87 0 0 1-.17-2.44 11.45 11.45 0 0 0-.6-14.48L48 .94zm-4.89 18.12a3.86 3.86 0 0 0 .27 5l-21.24 21.2a2.32 2.32 0 0 1-3.28 0L3.68 29.14a2.32 2.32 0 0 1 0-3.28L24.92 4.62a3.8 3.8 0 0 0 2.64 1 3.8 3.8 0 0 0 2.32-.78 9.43 9.43 0 0 1 11.33 0l-3.73 3.78a3.8 3.8 0 0 0-1.66-.38A3.94 3.94 0 1 0 39 9.91l3.66-3.66a9.48 9.48 0 0 1 .45 11.87m-5.37-6a1.92 1.92 0 1 1-1.92-1.92 1.92 1.92 0 0 1 1.92 1.96z\" }));\n }\n if (variant === \"default\") {\n return React.createElement(\"svg\", { className: props.className, \"aria-hidden\": props.ariaHidden, role: props.ariaHidden ? undefined : \"img\", tabIndex: props.tabIndex, \"aria-label\": props.ariaLabel, ref: forwardRef, xmlns: \"http://www.w3.org/2000/svg\", width: \"24\", height: \"24\", viewBox: \"0 0 24 24\", fill: \"currentColor\" },\n props.title && React.createElement(\"title\", null, props.title),\n React.createElement(\"path\", { d: \"m14.1 8.59-7.32 7.33-.94-.92 7.32-7.33zm-5.75 8.9.94.94L14.73 13l-.94-.94zM22.8 9.56a1 1 0 0 0 .09 1.27 1 1 0 0 1 0 1.39L11.77 23.34a2.26 2.26 0 0 1-3.19 0L.66 15.42a2.26 2.26 0 0 1 0-3.19L11.78 1.11a1 1 0 0 1 .7-.29 1 1 0 0 1 .69.29 1 1 0 0 0 .69.28 1 1 0 0 0 .58-.19 5.91 5.91 0 0 1 7.23.07L22.94 0H24v.82L22.63 2.2a6 6 0 0 1 .17 7.36m-1.11-6.42-1.52 1.51a2.32 2.32 0 1 1-2-1.16 2.4 2.4 0 0 1 1 .25l1.53-1.53a4.62 4.62 0 0 0-5.49 0 2.3 2.3 0 0 1-1.38.46 2.26 2.26 0 0 1-1.36-.44L1.6 13.17a.93.93 0 0 0 0 1.31l7.92 7.92a.93.93 0 0 0 1.31 0l10.89-10.9a2.3 2.3 0 0 1 0-2.74 4.66 4.66 0 0 0-.03-5.62m-3.52 1.68a1 1 0 1 0 1 1 1 1 0 0 0-1-1\" }));\n }\n return null;\n}, { displayName: 'Offers' }));\n","import * as React from 'react';\nexport var Bookmark = React.forwardRef(Object.assign(function (props, forwardRef) {\n var variant = props.variant || \"default\";\n if (variant === \"small\") {\n return React.createElement(\"svg\", { className: props.className, \"aria-hidden\": props.ariaHidden, role: props.ariaHidden ? undefined : \"img\", tabIndex: props.tabIndex, \"aria-label\": props.ariaLabel, ref: forwardRef, xmlns: \"http://www.w3.org/2000/svg\", width: \"12\", height: \"12\", viewBox: \"0 0 12 12\", fill: \"currentColor\" },\n props.title && React.createElement(\"title\", null, props.title),\n React.createElement(\"path\", { d: \"m9.324 11.145-3.32-1.953-3.34 1.95.014-9.224A1.246 1.246 0 0 1 3.922.675h4.185a1.23 1.23 0 0 1 1.231 1.23zm-5.316-9.14-.01 6.819L6.005 7.65l1.993 1.171.01-6.816z\" }));\n }\n if (variant === \"large\") {\n return React.createElement(\"svg\", { className: props.className, \"aria-hidden\": props.ariaHidden, role: props.ariaHidden ? undefined : \"img\", tabIndex: props.tabIndex, \"aria-label\": props.ariaLabel, ref: forwardRef, xmlns: \"http://www.w3.org/2000/svg\", width: \"48\", height: \"48\", viewBox: \"0 0 48 48\", fill: \"currentColor\" },\n props.title && React.createElement(\"title\", null, props.title),\n React.createElement(\"path\", { d: \"m38 44.666-14-7.457-14 7.457V7.568A3.623 3.623 0 0 1 13.668 4l20.728.004A3.56 3.56 0 0 1 38 7.512zm-14-9.723 12 6.391V7.512a1.56 1.56 0 0 0-1.604-1.508L13.667 6A1.62 1.62 0 0 0 12 7.568v33.766z\" }));\n }\n if (variant === \"default\") {\n return React.createElement(\"svg\", { className: props.className, \"aria-hidden\": props.ariaHidden, role: props.ariaHidden ? undefined : \"img\", tabIndex: props.tabIndex, \"aria-label\": props.ariaLabel, ref: forwardRef, xmlns: \"http://www.w3.org/2000/svg\", width: \"24\", height: \"24\", viewBox: \"0 0 24 24\", fill: \"currentColor\" },\n props.title && React.createElement(\"title\", null, props.title),\n React.createElement(\"path\", { d: \"m18.996 22.67-6.992-3.867-6.991 3.868V3.974A1.966 1.966 0 0 1 6.976 2.01l10.087.002a1.935 1.935 0 0 1 1.933 1.934zm-6.992-5.387 5.662 3.132V3.945a.604.604 0 0 0-.603-.603L6.976 3.34a.634.634 0 0 0-.633.634v16.441z\" }));\n }\n return null;\n}, { displayName: 'Bookmark' }));\n","import * as React from 'react';\nexport var AirConditioning = React.forwardRef(Object.assign(function (props, forwardRef) {\n var variant = props.variant || \"default\";\n if (variant === \"small\") {\n return React.createElement(\"svg\", { className: props.className, \"aria-hidden\": props.ariaHidden, role: props.ariaHidden ? undefined : \"img\", tabIndex: props.tabIndex, \"aria-label\": props.ariaLabel, ref: forwardRef, xmlns: \"http://www.w3.org/2000/svg\", width: \"12\", height: \"12\", viewBox: \"0 0 12 12\", fill: \"currentColor\" },\n props.title && React.createElement(\"title\", null, props.title),\n React.createElement(\"path\", { d: \"M6.441 1.76a1.91 1.91 0 0 1 2.16-.367L6.074 3.919a1.89 1.89 0 0 1 .367-2.159M6 5.607l3.49-3.489A1.058 1.058 0 0 0 9.254.448a3.032 3.032 0 0 0-3.62 4.792zm-.444 4.633c-.57.563-1.43.71-2.155.367l2.526-2.525c.347.725.198 1.59-.371 2.158m.441-3.845L2.508 9.882a1.058 1.058 0 0 0 .235 1.669 3.032 3.032 0 0 0 3.619-4.792zM10.24 6.443a1.91 1.91 0 0 1 .367 2.159L8.081 6.076a1.89 1.89 0 0 1 2.158.367M6.393 6l3.489 3.49a1.058 1.058 0 0 0 1.669-.235A3.032 3.032 0 0 0 6.76 5.637zm-4.633-.444a1.91 1.91 0 0 1-.367-2.155l2.525 2.526a1.89 1.89 0 0 1-2.158-.37M5.606 6l-3.488-3.49a1.058 1.058 0 0 0-1.669.235 3.032 3.032 0 0 0 4.792 3.619z\" }));\n }\n if (variant === \"default\") {\n return React.createElement(\"svg\", { className: props.className, \"aria-hidden\": props.ariaHidden, role: props.ariaHidden ? undefined : \"img\", tabIndex: props.tabIndex, \"aria-label\": props.ariaLabel, ref: forwardRef, xmlns: \"http://www.w3.org/2000/svg\", width: \"24\", height: \"24\", viewBox: \"0 0 24 24\", fill: \"currentColor\" },\n props.title && React.createElement(\"title\", null, props.title),\n React.createElement(\"path\", { d: \"M12.268 3.6c.81-.8 1.902-1.25 3.041-1.25.725 0 1.438.184 2.072.534a.62.62 0 0 1 .318.465.61.61 0 0 1-.175.523l-5.509 5.506a4.28 4.28 0 0 1 .253-5.778m-.267 7.67 6.46-6.46a1.956 1.956 0 0 0-.435-3.09 5.614 5.614 0 0 0-6.7 8.875zm-.267 9.13c-.81.801-1.902 1.25-3.04 1.25a4.3 4.3 0 0 1-2.073-.534.62.62 0 0 1-.318-.464.61.61 0 0 1 .175-.524l5.509-5.507a4.29 4.29 0 0 1-.253 5.78m.267-7.67-6.463 6.459a1.958 1.958 0 0 0 .436 3.09 5.614 5.614 0 0 0 6.7-8.873zM20.4 12.268c.8.81 1.25 1.902 1.25 3.041 0 .725-.184 1.438-.534 2.072a.62.62 0 0 1-.464.318.61.61 0 0 1-.524-.175l-5.505-5.509a4.28 4.28 0 0 1 5.777.253m-7.67-.267 6.46 6.46a1.956 1.956 0 0 0 3.09-.435 5.614 5.614 0 0 0-8.875-6.7zm-9.13-.267a4.32 4.32 0 0 1-1.25-3.04c-.001-.725.183-1.439.534-2.073a.62.62 0 0 1 .464-.318.61.61 0 0 1 .524.175l5.507 5.509a4.29 4.29 0 0 1-5.78-.253m7.67.267L4.811 5.538a1.958 1.958 0 0 0-3.09.436 5.614 5.614 0 0 0 8.874 6.7z\" }));\n }\n return null;\n}, { displayName: 'AirConditioning' }));\n","import * as React from 'react';\nimport { styled, ThemeProvider } from '../theme-provider';\nimport { getCommonProps } from '../helpers/common-props';\nimport { Text, TextTag, TokenTextAppearance, TokenTextColor } from '../text';\nimport { AirConditioning, StarOutline, Offers, Bookmark, Checkmark, Alert, } from '@volkswagen-onehub/icons-core';\nconst getBackgroundColorByAppearance = (props) => {\n const { theme, appearance } = props;\n const tokensColorsObj = Object.assign(Object.assign({}, theme.colors.signal), { new: theme.colors.signal.promo, alert: theme.colors.signal.neutral });\n return tokensColorsObj[appearance];\n};\nconst getColorByAppearance = (props) => {\n const { theme, appearance } = props;\n if (['success', 'alert', 'error', 'bookmark'].includes(appearance)) {\n return theme.colors.content.inverted;\n }\n return theme.colors.content.tertiary;\n};\nconst getIconByAppearance = (appearance) => {\n switch (appearance) {\n case 'new':\n return React.createElement(StarOutline, { variant: \"small\", ariaHidden: true });\n case 'offer':\n return React.createElement(Offers, { variant: \"small\", ariaHidden: true });\n case 'bookmark':\n return React.createElement(Bookmark, { variant: \"small\", ariaHidden: true });\n case 'success':\n return React.createElement(Checkmark, { variant: \"small\", ariaHidden: true });\n case 'error':\n case 'alert':\n return React.createElement(Alert, { variant: \"small\", ariaHidden: true });\n default:\n return React.createElement(AirConditioning, { variant: \"small\", ariaHidden: true }); //icon for 'info\n }\n};\nconst StyledDisplayTag = styled.div.withConfig({ displayName: \"StyledDisplayTag\", componentId: \"sc-1xqza3j\" }) `display:flex;gap:${({ theme }) => theme.size.static100};align-items:center;width:fit-content;height:${({ theme }) => theme.size.static350};background-color:${getBackgroundColorByAppearance};color:${getColorByAppearance};padding:${({ theme }) => theme.size.static150};p{margin-top:${({ theme }) => theme.size.static0};::first-letter{text-transform:uppercase;}}`;\nexport const DisplayTag = (props) => {\n //className is added to the props to be able to overwrite the StyledDisplayTag className\n const { appearance, id, text, hideIcon = false, className } = props;\n const commonProps = getCommonProps(props);\n return (React.createElement(ThemeProvider, { theme: \"main\" },\n React.createElement(StyledDisplayTag, Object.assign({ appearance: appearance, className: className, id: id }, commonProps),\n !hideIcon && getIconByAppearance(appearance),\n React.createElement(Text, { tag: TextTag.p, appearance: TokenTextAppearance.copy100, color: TokenTextColor.inherit }, text))));\n};\n//this export is needed to expose the getIconByAppearance function for testing\n//for some reason, if the `export` keyword is added before the function declaration instead\n// the table properties will disappear from the storybook page\nexport { getIconByAppearance };\nDisplayTag.displayName = 'DisplayTag';\n","import * as React from 'react';\nimport { styled } from '../theme-provider';\nimport { getCommonProps } from '../helpers/common-props';\nconst StyledDivider = styled.hr.withConfig({ displayName: \"StyledDivider\", componentId: \"sc-1g6khxq\" }) `border:none;width:${(props) => props.isVertical ? props.theme.size.line.default : 'initial'};height:${(props) => props.isVertical ? '100%' : props.theme.size.line.default};margin:0;background-color:${(props) => props.theme.colors.border.divider};`;\nexport const Divider = (props) => {\n const { isVertical } = props;\n const commonProps = getCommonProps(props);\n return React.createElement(StyledDivider, Object.assign({ isVertical: isVertical }, commonProps));\n};\nDivider.displayName = 'Divider';\n","import * as React from 'react';\nimport { Text, TextTag, TokenTextAppearance } from '../text';\nimport { styled } from '../theme-provider';\nimport { Container, ContainerGutter, ContainerWrap } from '../container';\nimport { NotificationMessage } from '../notification-message';\nimport { InputAppearance } from '../helpers/input';\nimport { getCommonProps } from '../helpers/common-props';\nconst StyledFieldset = styled.fieldset.withConfig({ displayName: \"StyledFieldset\", componentId: \"sc-16gvfsk\" }) `border:none;padding:0;margin:0;min-width:0;>:nth-last-child(2){margin-bottom:${(props) => props.theme.size.static350};}`;\nexport const Fieldset = (props) => {\n const { children, legend, required, appearance, message } = props;\n const commonProps = getCommonProps(props);\n const errorShouldBeVisible = Boolean(appearance === InputAppearance.Error && message);\n return (React.createElement(StyledFieldset, Object.assign({}, commonProps),\n legend && (React.createElement(Text, { appearance: TokenTextAppearance.copy200, bold: true, staticSize: true, tag: TextTag.legend },\n legend,\n required && '*')),\n React.createElement(NotificationMessage, { appearance: appearance }, errorShouldBeVisible ? message : undefined),\n React.createElement(Container, { gutter: ContainerGutter.static350, wrap: ContainerWrap.always }, children)));\n};\n","export const createA11yOutlineStyles = (theme, style = 'auto') => `outline: ${theme.size.border.heavy} ${style} ${theme.colors.focus.main};`;\n","const ANIMATION_FUNCTION = 'cubic-bezier(0.14, 1.12, 0.67, 0.99)';\nconst DEFAULT_ANIMATION_DURATION = '0.3s';\nfunction normalizeTransitionProps(transition) {\n return typeof transition === 'string'\n ? {\n name: transition,\n duration: DEFAULT_ANIMATION_DURATION,\n }\n : Object.assign(Object.assign({}, transition), { duration: transition.duration || DEFAULT_ANIMATION_DURATION });\n}\nfunction createTransitionForProperty(transition) {\n const { name, duration, delay } = normalizeTransitionProps(transition);\n return [name, duration, ANIMATION_FUNCTION, delay].filter(Boolean).join(' ');\n}\nexport function createElectricTransition(...transitions) {\n if (transitions.length === 0) {\n return;\n }\n return `transition: ${transitions\n .map(createTransitionForProperty)\n .join(', ')}`;\n}\n","export var Breakpoints;\n(function (Breakpoints) {\n Breakpoints[Breakpoints[\"default\"] = 0] = \"default\";\n Breakpoints[Breakpoints[\"b560\"] = 560] = \"b560\";\n Breakpoints[Breakpoints[\"b960\"] = 960] = \"b960\";\n Breakpoints[Breakpoints[\"b1280\"] = 1280] = \"b1280\";\n Breakpoints[Breakpoints[\"b1600\"] = 1600] = \"b1600\";\n Breakpoints[Breakpoints[\"b1920\"] = 1920] = \"b1920\";\n Breakpoints[Breakpoints[\"b2560\"] = 2560] = \"b2560\";\n Breakpoints[Breakpoints[\"never\"] = Infinity] = \"never\";\n})(Breakpoints || (Breakpoints = {}));\nconst breakpoints = Object.values(Breakpoints);\nexport function isBreakpointConfig(prop) {\n return (typeof prop === 'object' &&\n Object.keys(prop).every((key) => breakpoints.includes(key) || breakpoints.includes(parseInt(key, 10))));\n}\n/**\n * Compare two breakpoints to each other\n *\n * Pass to sort the breakpoints in ascending order\n *\n * All non-default breakpoints can also be passed as strings to enable mapping over Objects with breakpoints as keys:\n * ```\n * const breakpointConfig = {\n * [Breakpoints.default]: theme.size.static250,\n * [Breakpoints.b560]: theme.size.static350\n * };\n *\n * Object.keys(breakpointConfig).sort(compareBreakpoints).map(breakpoint => `\n * @media (min-with: ${breakpoint}) {\n * padding: ${breakpointConfig[breakpoint]}\n * }\n * `)\n * ```\n */\nexport function compareBreakpoints(a, b) {\n return ((typeof a === 'number' ? a : parseInt(a, 10)) -\n (typeof b === 'number' ? b : parseInt(b, 10)));\n}\nfunction mediaQueryTemplate(breakpoint, styles) {\n if (breakpoint === '0') {\n return styles;\n }\n return `@media (min-width: ${breakpoint}px) {${styles}}`;\n}\nexport function createStylesForBreakpoints(config, fn = (x) => x) {\n if (!isBreakpointConfig(config)) {\n return fn(config);\n }\n return Object.keys(config)\n .sort(compareBreakpoints)\n .map((breakpoint) => mediaQueryTemplate(breakpoint, fn(config[breakpoint])))\n .join('');\n}\nexport function getValueByScreenSize(screenSize, config) {\n if (!isBreakpointConfig(config)) {\n return config;\n }\n const activeBreakpoint = Object.keys(config)\n .sort(compareBreakpoints)\n .reduce((acc, key) => {\n const breakpoint = typeof key === 'number' ? key : parseInt(key, 10);\n return screenSize >= breakpoint ? key : acc;\n }, '');\n return config[activeBreakpoint];\n}\nexport function getValueForCurrentScreenSize(config) {\n const width = typeof window !== 'undefined' ? window.innerWidth || 0 : 0;\n return getValueByScreenSize(width, config);\n}\n","export const getCommonProps = (props) => {\n return { 'data-testid': props['data-testid'] };\n};\nexport const getUncommonProps = (props) => {\n const commonPropKeys = Object.keys(getCommonProps(props));\n return Object.keys(props).filter((propKey) => !commonPropKeys.includes(propKey)).reduce((accumulator, propKey) => (Object.assign(Object.assign({}, accumulator), { [propKey]: props[propKey] })), {});\n};\n","const basis = 24;\nfunction assertCountGridColumn(count) {\n if (process.env.NODE_ENV !== 'production') {\n if (Math.floor(count) !== count) {\n throw new Error('count has to be an integer.');\n }\n if (count < 0 || count > basis) {\n throw new Error(`count has to be between 0 and ${basis}.`);\n }\n }\n}\nexport function getGridColumn(count) {\n assertCountGridColumn(count);\n // Round down to two decimal places\n // two decimal places because Edge has issues with too many decimal places\n // round down, so (positive) rounding errors do not add up\n return `${Math.floor((100 / basis) * count * 100) / 100}vw`;\n}\nexport function getColumnsWidthForBreakpoint(columns, breakpoint) {\n assertCountGridColumn(columns);\n // Round down to two decimal places\n // two decimal places because Edge has issues with too many decimal places\n // round down, so (positive) rounding errors do not add up\n return `${Math.floor((breakpoint / basis) * columns * 100) / 100}px`;\n}\n","import * as React from 'react';\nimport { styled, css } from '../theme-provider';\nimport { DisplayTag } from '../display-tag';\nexport var InputAppearance;\n(function (InputAppearance) {\n InputAppearance[InputAppearance[\"Default\"] = 0] = \"Default\";\n InputAppearance[InputAppearance[\"Information\"] = 1] = \"Information\";\n InputAppearance[InputAppearance[\"Disabled\"] = 2] = \"Disabled\";\n InputAppearance[InputAppearance[\"Error\"] = 3] = \"Error\";\n InputAppearance[InputAppearance[\"Success\"] = 4] = \"Success\";\n InputAppearance[InputAppearance[\"ReadOnly\"] = 5] = \"ReadOnly\";\n InputAppearance[InputAppearance[\"Validation\"] = 6] = \"Validation\";\n})(InputAppearance || (InputAppearance = {}));\nexport const getMainColor = css `${({ theme, appearance }) => {\n switch (appearance) {\n case InputAppearance.ReadOnly:\n return theme.colors.content.primary;\n case InputAppearance.Disabled:\n return theme.colors.content.secondary;\n default:\n return 'inherit';\n }\n}}`;\nexport const getLabelColor = css `${({ theme, appearance }) => {\n switch (appearance) {\n case InputAppearance.ReadOnly:\n return theme.colors.content.primary;\n case InputAppearance.Disabled:\n return theme.colors.content.secondary;\n default:\n return theme.colors.content.active;\n }\n}}`;\n// color for borders, etc.\nexport const getAuxillaryColor = css `${({ theme, appearance }) => {\n switch (appearance) {\n case InputAppearance.Error:\n return theme.colors.signal.error;\n case InputAppearance.Success:\n return theme.colors.signal.success;\n case InputAppearance.Information:\n return theme.colors.signal.neutral;\n case InputAppearance.Disabled:\n return theme.colors.border.default;\n default:\n return theme.colors.signal.info;\n }\n}}`;\n// color for character counter\nexport const getAuxillaryTextColor = css `${({ theme }) => theme.colors.content.secondary}`;\n// color for notifications\nexport const getNotificationColor = css `${({ theme, appearance }) => {\n switch (appearance) {\n case InputAppearance.Error:\n case 'error':\n return theme.colors.signal.error;\n case InputAppearance.Success:\n case 'success':\n return theme.colors.signal.success;\n default:\n return theme.colors.signal.neutral;\n }\n}}`;\n/**\n * This is used to map the common appearances values between InputAppearance and DisplayTagAppearance,\n * i.e. SUCCESS, ERROR, INFORMATION\n */\nconst appearancesMap = {\n Error: 'error',\n Information: 'alert',\n Success: 'success',\n};\n//this is needed otherwise there gap is shown and the display tag looks asymmetric when no text is provided\nconst StyledDisplayTag = styled(DisplayTag).withConfig({ displayName: \"StyledDisplayTag\", componentId: \"sc-1p6dz7j\" }) `display:flex;overflow-wrap:anywhere;word-break:break-word;background:${getNotificationColor};color:${({ theme, appearance }) => {\n if (appearance === 'success') {\n return theme.colors.content.inverted;\n }\n return theme.colors.content.onsurface;\n}};svg{margin:-${({ theme }) => theme.size.line.active};flex:none;}${({ theme, text }) => {\n if (text) {\n return css `\n\t\t\t\theight: auto;\n\t\t\t\tmargin-top: ${theme.size.static100};\n\t\t\t\tpadding: ${theme.size.line.active} ${theme.size.static200};\n\t\t\t\tgap: ${theme.size.static150};\n\n\t\t\t\tsvg {\n\t\t\t\t\tposition: relative;\n\t\t\t\t\ttop: ${theme.size.static150};\n\t\t\t\t\talign-self: start;\n\t\t\t\t}\n\t\t\t`;\n }\n return css `\n\t\t\tgap: 0;\n\t\t\tposition: absolute;\n\t\t\tbottom: ${theme.size.line.active};\n\t\t\t${theme.direction === 'rtl' ? `left: 0;` : `right: 0;`};\n\t\t`;\n}}`;\n//this function is used to display the DisplayTag component when the input/text area appearance is set to\n// InputAppearance.Information, InputAppearance.Error or InputAppearance.Success\nexport const DisplayNotification = ({ appearance, notificationMessage, id }) => {\n const appearanceValue = InputAppearance[appearance];\n return Object.keys(appearancesMap).includes(appearanceValue) ? (React.createElement(StyledDisplayTag, { appearance: appearancesMap[appearanceValue], text: notificationMessage, hideIcon: appearanceValue === 'Information' || appearanceValue === 'Validation', id: id })) : null;\n};\n","/**\n * Logging wrapper to hide warnings on production\n */\nexport function warn(...messages) {\n if (process.env.NODE_ENV !== 'production') {\n messages.forEach((message) => console.warn(`vwa-lsg: ${message}`));\n }\n}\nexport function warnWithTrace(...messages) {\n if (process.env.NODE_ENV !== 'production') {\n // Only log as a group and add a stacktrace if run in the browser\n if (typeof window === 'undefined') {\n messages.forEach((message) => {\n console.warn(`vwa-lsg: ${message}`);\n });\n }\n else {\n const disableComponentsCoreLogging = (window.sessionStorage &&\n window.sessionStorage.getItem('disableComponentsCoreLogging')) ||\n (window.location.search &&\n window.location.search.includes('disableComponentsCoreLogging'));\n if (!disableComponentsCoreLogging) {\n messages.forEach((message) => {\n console.groupCollapsed(`vwa-lsg: ${message}`);\n console.warn(`vwa-lsg: ${message}`);\n console.trace();\n console.groupEnd();\n });\n }\n }\n }\n}\n","var __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport { styled } from '../theme-provider';\nimport { getCommonProps, getUncommonProps, } from '../helpers/common-props';\nexport const Image = styled.img.withConfig({ displayName: \"Image\", componentId: \"sc-3anbxi\" }) `display:block;width:100%;object-fit:${(props) => props.objectFit};${(props) => props.reduceBrightness && 'filter: brightness(80%)'};`;\nImage.displayName = 'Image';\nexport const DecorativeImage = React.forwardRef((props, ref) => {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars -- The `alt` should not be included in the props that get spread to the `Image`\n const { alt } = props, others = __rest(props, [\"alt\"]);\n // `aria-hidden`is required to hide it from voiceover\n return React.createElement(Image, Object.assign({ alt: \"\", \"aria-hidden\": true }, others, { ref: ref }));\n});\nDecorativeImage.displayName = 'DecorativeImage';\nconst TRANSPARENT_GIF = 'data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==';\nexport const LazyImage = React.forwardRef((props, ref) => {\n const _a = getUncommonProps(props), { src, srcPlaceholder, srcSet, sizes, className, alt, reduceBrightness, _disableNoScript } = _a, others = __rest(_a, [\"src\", \"srcPlaceholder\", \"srcSet\", \"sizes\", \"className\", \"alt\", \"reduceBrightness\", \"_disableNoScript\"]);\n const commonProps = getCommonProps(props);\n return (React.createElement(React.Fragment, null,\n _disableNoScript ? undefined : (React.createElement(\"noscript\", null,\n React.createElement(Image, Object.assign({ alt: alt, className: className, sizes: sizes, src: src, srcSet: srcSet, reduceBrightness: reduceBrightness }, others)))),\n React.createElement(Image\n // The class `lazyload` is required for our 3rd party lazyloading lib to work\n , Object.assign({ \n // The class `lazyload` is required for our 3rd party lazyloading lib to work\n className: `lazyload ${className || ''}`, \n // If an alt attribute is used, a broken image symbol would be displayed\n // if src would be left empty. Therefore we render a transparent 1px gif\n // until lazyload has replaced the src/srcSet.\n src: srcPlaceholder || TRANSPARENT_GIF, \"data-src\": src, \"data-srcset\": srcSet, \"data-sizes\": sizes, alt: alt, reduceBrightness: reduceBrightness, ref: ref }, others, commonProps))));\n});\nLazyImage.displayName = 'LazyImage';\nexport const DecorativeLazyImage = React.forwardRef((props, ref) => {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars -- The `alt` should not be included in the props that get spread to the `Image`\n const { alt, reduceBrightness } = props, others = __rest(props, [\"alt\", \"reduceBrightness\"]);\n return (React.createElement(LazyImage, Object.assign({ reduceBrightness: reduceBrightness, alt: \"\" }, others, { ref: ref })));\n});\nDecorativeLazyImage.displayName = 'DecorativeLazyImage';\n","import * as React from 'react';\nimport { Breakpoints } from '../helpers/breakpoint';\nimport { css, styled } from '../theme-provider';\nimport { getCommonProps } from '../helpers/common-props';\nimport { ChevronDown } from '@volkswagen-onehub/icons-core';\nimport { createA11yOutlineStyles } from '../helpers/a11y';\n// NOTE: anim definition taken from CMS helpers\nconst ANIMATION_FUNCTION = '0.3s cubic-bezier(0.14, 1.12, 0.67, 0.99)';\nconst StyledIcon = styled(ChevronDown).withConfig({ displayName: \"StyledIcon\", componentId: \"sc-ivhe3f\" }) `color:${({ theme, disabled }) => theme.colors.controllers.off[disabled ? 'disabled' : 'default']};transition:transform ${ANIMATION_FUNCTION};transform:${({ isOpen }) => (isOpen ? 'rotateX(180deg)' : 'rotateX(0)')};line-height:0;`;\nconst StyledHeadWrapper = styled.div.withConfig({ displayName: \"StyledHeadWrapper\", componentId: \"sc-70myp\" }) `display:grid;grid-column-gap:${({ theme }) => theme.size.dynamic0100};grid-template-columns:auto max-content;color:${({ theme, disabled }) => disabled ? theme.colors.content.disabled : 'inherit'};`;\nconst StyledAccordion = styled.div.withConfig({ displayName: \"StyledAccordion\", componentId: \"sc-1b6176y\" }) `border-bottom:${({ theme }) => theme.size.line.default} solid ${({ theme }) => theme.colors.border.divider};${({ hasBorder }) => hasBorder &&\n css `\n\t\t\tborder-radius: ${({ theme }) => theme.size.static150};\n\t\t\tborder: ${({ theme }) => theme.size.border.heavy} solid\n\t\t\t\t${({ theme }) => theme.colors.border.divider};\n\t\t\tpadding: 0 ${({ theme }) => theme.size.static250};\n\t\t`}`;\nconst StyledAccordionHead = styled.button.withConfig({ displayName: \"StyledAccordionHead\", componentId: \"sc-1t5og2f\" }) `padding:0;border:0;background:none;appearance:none;text-align:inherit;word-break:break-all;:lang(ko){word-break:keep-all;}width:100%;padding-top:${({ hasBorder, theme }) => hasBorder ? theme.size.static250 : theme.size.dynamic0100};padding-bottom:${({ hasBorder, theme, isOpen }) => {\n if (hasBorder)\n return theme.size.static250;\n if (isOpen)\n return theme.size.dynamic0040;\n return theme.size.dynamic0100;\n}};@media (min-width: ${Breakpoints.b1600}px){padding-bottom:${({ hasBorder, theme }) => !hasBorder && theme.size.dynamic0050};}cursor:${({ disabled }) => (disabled ? 'not-allowed' : 'pointer')};user-select:none;&:hover:not(:disabled),&:focus-within:not(:disabled){*{color:${({ theme }) => theme.colors.content.hover};}}:focus-visible{border-radius:calc(${({ theme }) => theme.size.static100} / 2);${({ theme }) => createA11yOutlineStyles(theme, 'solid')};outline-offset:calc(${({ theme }) => theme.size.static100} / 2);}`;\nconst StyledAccordionBody = styled.div.withConfig({ displayName: \"StyledAccordionBody\", componentId: \"sc-1asd5wy\" }) `display:${({ isOpen, fullWidthBody }) => {\n if (!isOpen) {\n return 'none';\n }\n return fullWidthBody ? 'block' : 'grid';\n}};grid-template-columns:${({ fullWidthBody, theme }) => !fullWidthBody && `auto ${theme.size.grid001}`};padding-bottom:${({ hasBorder, theme }) => hasBorder ? theme.size.static250 : theme.size.dynamic0100};`;\nexport const Accordion = (props) => {\n const { id, isOpen, disabled, fullWidthBody, hasBorder, headline, children, onClick, } = props;\n const headId = `${id}_head`;\n const bodyId = `${id}_body`;\n const commonProps = getCommonProps(props);\n return (React.createElement(StyledAccordion, Object.assign({ id: id }, commonProps, { hasBorder: hasBorder }),\n React.createElement(StyledAccordionHead, { id: headId, tabIndex: 0, isOpen: isOpen, disabled: disabled, hasBorder: hasBorder, onClick: onClick, \"aria-expanded\": isOpen, \"aria-controls\": bodyId },\n React.createElement(StyledHeadWrapper, { disabled: disabled },\n headline,\n React.createElement(StyledIcon, { isOpen: isOpen, disabled: disabled, variant: \"default\", ariaHidden: true }))),\n React.createElement(StyledAccordionBody, { id: bodyId, isOpen: isOpen, fullWidthBody: fullWidthBody, hasBorder: hasBorder, \"aria-hidden\": !isOpen, \"aria-labelledby\": headId, role: \"region\" },\n React.createElement(\"div\", null, children))));\n};\nAccordion.displayName = 'Accordion';\n","import * as React from 'react';\nimport { CSSTransition } from 'react-transition-group';\nimport { withTheme } from 'styled-components';\nimport { getColumnsWidthForBreakpoint, getGridColumn } from '../helpers/grid';\nimport { Breakpoints } from '../helpers/breakpoint';\nimport { ThemeProvider, styled } from '../theme-provider';\nimport { getCommonProps } from '../helpers/common-props';\nconst animationClassName = 'animation';\nconst StyledLayer = styled.div.withConfig({ displayName: \"StyledLayer\", componentId: \"sc-1c58wk5\" }) `position:relative;width:${getGridColumn(20)};background:${({ theme }) => theme.colors.signal.neutral};@media (min-width: ${Breakpoints.b560}px){width:${getGridColumn(18)};}@media (min-width: ${Breakpoints.b960}px){width:${getGridColumn(14)};}@media (min-width: ${Breakpoints.b1280}px){width:${getGridColumn(12)};}@media (min-width: ${Breakpoints.b1600}px){width:${getGridColumn(10)};}@media (min-width: ${Breakpoints.b1920}px){width:${getGridColumn(8)};}@media (min-width: ${Breakpoints.b2560}px){width:${getColumnsWidthForBreakpoint(6, Breakpoints.b2560)};}height:auto;max-height:calc(100vh - 2 * ${(props) => props.theme.size.dynamic0040});overflow:auto;-webkit-overflow-scrolling:touch;box-shadow:${({ theme }) => theme.colors.shadow.variant3};opacity:1;transform:translateY(0);transition:${(props) => {\n const duration = props.theme.animation.duration.layer;\n const timingFunction = props.theme.animation.timingFunction.in;\n return `opacity ${duration} ${timingFunction}, transform ${duration} ${timingFunction}`;\n}};&.${animationClassName}-exit{opacity:1;transform:translateY(0);}&.${animationClassName}-enter,&.${animationClassName}-exit-active,&.${animationClassName}-exit-done{opacity:0;transform:translateY(${(props) => props.theme.size.static500});}&.${animationClassName}-enter-active{opacity:1;transform:translateY(0);}`;\nconst InternalAlertLayer = (props) => {\n const { active, children, in: visible, onExited, role = 'alert', ariaLabel, ariaDescribedBy, ariaLabelledBy, scrollElementRef, } = props;\n const timeout = parseInt(props.theme.animation.duration.layer || '0', 10);\n const commonProps = getCommonProps(props);\n return (React.createElement(CSSTransition, { classNames: animationClassName, onExited: onExited, in: visible, timeout: timeout },\n React.createElement(StyledLayer, Object.assign({ ref: scrollElementRef, role: role, \"aria-label\": ariaLabel, \"aria-labelledby\": ariaLabelledBy, \"aria-describedby\": ariaDescribedBy, \"aria-modal\": role === 'alertdialog' ? active : undefined }, commonProps),\n React.createElement(ThemeProvider, { theme: \"inverted\" }, children))));\n};\nexport const AlertLayer = withTheme(InternalAlertLayer);\n","import * as React from 'react';\nimport { createStylesForBreakpoints, } from '../helpers/breakpoint';\nimport { styled } from '../theme-provider';\nimport { getCommonProps } from '../helpers/common-props';\n/**\n * @deprecated the AspectRatio enum is deprecated. Please use one of the string values instead.\n */\nexport var AspectRatio;\n(function (AspectRatio) {\n AspectRatio[\"1:1\"] = \"1:1\";\n AspectRatio[\"1:2\"] = \"1:2\";\n AspectRatio[\"10:6\"] = \"10:6\";\n AspectRatio[\"16:9\"] = \"16:9\";\n AspectRatio[\"2:1\"] = \"2:1\";\n AspectRatio[\"2:3\"] = \"2:3\";\n AspectRatio[\"3:2\"] = \"3:2\";\n AspectRatio[\"3:4\"] = \"3:4\";\n AspectRatio[\"4:3\"] = \"4:3\";\n AspectRatio[\"4:5\"] = \"4:5\";\n AspectRatio[\"6:5\"] = \"6:5\";\n AspectRatio[\"9:16\"] = \"9:16\";\n})(AspectRatio || (AspectRatio = {}));\nconst StyledWrapper = styled.div.withConfig({ displayName: \"StyledWrapper\", componentId: \"sc-iw10kj\" }) `position:relative;width:100%;height:0;${createAspectRatioForBreakpoints};&& > *{position:absolute;top:0;left:0;width:100%;height:100%;}`;\nStyledWrapper.displayName = 'StyledWrapper';\nfunction createAspectRatioForBreakpoints(props) {\n if (!props.ratio) {\n return '';\n }\n return createStylesForBreakpoints(props.ratio, (ratio) => `padding-bottom: ${calcAspectRatio(ratio) * 100}%;`);\n}\n/**\n * Calculates numeric ratio.\n * @param ratio - aspect ratio definition\n */\nexport function calcAspectRatio(ratio) {\n const [width, height] = ratio.split(':');\n return Number(height) / Number(width);\n}\nexport const AspectRatioContainer = (props) => {\n const { ratio, children } = props;\n const commonProps = getCommonProps(props);\n return (React.createElement(StyledWrapper, Object.assign({ ratio: ratio }, commonProps), children));\n};\nAspectRatioContainer.displayName = 'AspectRatioContainer';\n","import { Children, cloneElement, isValidElement } from 'react';\n/**\n * Given `this.props.children`, return an object mapping key to child.\n *\n * @param {*} children `this.props.children`\n * @return {object} Mapping of key to child\n */\n\nexport function getChildMapping(children, mapFn) {\n var mapper = function mapper(child) {\n return mapFn && isValidElement(child) ? mapFn(child) : child;\n };\n\n var result = Object.create(null);\n if (children) Children.map(children, function (c) {\n return c;\n }).forEach(function (child) {\n // run the map function here instead so that the key is the computed one\n result[child.key] = mapper(child);\n });\n return result;\n}\n/**\n * When you're adding or removing children some may be added or removed in the\n * same render pass. We want to show *both* since we want to simultaneously\n * animate elements in and out. This function takes a previous set of keys\n * and a new set of keys and merges them with its best guess of the correct\n * ordering. In the future we may expose some of the utilities in\n * ReactMultiChild to make this easy, but for now React itself does not\n * directly have this concept of the union of prevChildren and nextChildren\n * so we implement it here.\n *\n * @param {object} prev prev children as returned from\n * `ReactTransitionChildMapping.getChildMapping()`.\n * @param {object} next next children as returned from\n * `ReactTransitionChildMapping.getChildMapping()`.\n * @return {object} a key set that contains all keys in `prev` and all keys\n * in `next` in a reasonable order.\n */\n\nexport function mergeChildMappings(prev, next) {\n prev = prev || {};\n next = next || {};\n\n function getValueForKey(key) {\n return key in next ? next[key] : prev[key];\n } // For each key of `next`, the list of keys to insert before that key in\n // the combined list\n\n\n var nextKeysPending = Object.create(null);\n var pendingKeys = [];\n\n for (var prevKey in prev) {\n if (prevKey in next) {\n if (pendingKeys.length) {\n nextKeysPending[prevKey] = pendingKeys;\n pendingKeys = [];\n }\n } else {\n pendingKeys.push(prevKey);\n }\n }\n\n var i;\n var childMapping = {};\n\n for (var nextKey in next) {\n if (nextKeysPending[nextKey]) {\n for (i = 0; i < nextKeysPending[nextKey].length; i++) {\n var pendingNextKey = nextKeysPending[nextKey][i];\n childMapping[nextKeysPending[nextKey][i]] = getValueForKey(pendingNextKey);\n }\n }\n\n childMapping[nextKey] = getValueForKey(nextKey);\n } // Finally, add the keys which didn't appear before any key in `next`\n\n\n for (i = 0; i < pendingKeys.length; i++) {\n childMapping[pendingKeys[i]] = getValueForKey(pendingKeys[i]);\n }\n\n return childMapping;\n}\n\nfunction getProp(child, prop, props) {\n return props[prop] != null ? props[prop] : child.props[prop];\n}\n\nexport function getInitialChildMapping(props, onExited) {\n return getChildMapping(props.children, function (child) {\n return cloneElement(child, {\n onExited: onExited.bind(null, child),\n in: true,\n appear: getProp(child, 'appear', props),\n enter: getProp(child, 'enter', props),\n exit: getProp(child, 'exit', props)\n });\n });\n}\nexport function getNextChildMapping(nextProps, prevChildMapping, onExited) {\n var nextChildMapping = getChildMapping(nextProps.children);\n var children = mergeChildMappings(prevChildMapping, nextChildMapping);\n Object.keys(children).forEach(function (key) {\n var child = children[key];\n if (!isValidElement(child)) return;\n var hasPrev = (key in prevChildMapping);\n var hasNext = (key in nextChildMapping);\n var prevChild = prevChildMapping[key];\n var isLeaving = isValidElement(prevChild) && !prevChild.props.in; // item is new (entering)\n\n if (hasNext && (!hasPrev || isLeaving)) {\n // console.log('entering', key)\n children[key] = cloneElement(child, {\n onExited: onExited.bind(null, child),\n in: true,\n exit: getProp(child, 'exit', nextProps),\n enter: getProp(child, 'enter', nextProps)\n });\n } else if (!hasNext && hasPrev && !isLeaving) {\n // item is old (exiting)\n // console.log('leaving', key)\n children[key] = cloneElement(child, {\n in: false\n });\n } else if (hasNext && hasPrev && isValidElement(prevChild)) {\n // item hasn't changed transition states\n // copy over the last transition props;\n // console.log('unchanged', key)\n children[key] = cloneElement(child, {\n onExited: onExited.bind(null, child),\n in: prevChild.props.in,\n exit: getProp(child, 'exit', nextProps),\n enter: getProp(child, 'enter', nextProps)\n });\n }\n });\n return children;\n}","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport TransitionGroupContext from './TransitionGroupContext';\nimport { getChildMapping, getInitialChildMapping, getNextChildMapping } from './utils/ChildMapping';\n\nvar values = Object.values || function (obj) {\n return Object.keys(obj).map(function (k) {\n return obj[k];\n });\n};\n\nvar defaultProps = {\n component: 'div',\n childFactory: function childFactory(child) {\n return child;\n }\n};\n/**\n * The `` component manages a set of transition components\n * (`` and ``) in a list. Like with the transition\n * components, `` is a state machine for managing the mounting\n * and unmounting of components over time.\n *\n * Consider the example below. As items are removed or added to the TodoList the\n * `in` prop is toggled automatically by the ``.\n *\n * Note that `` does not define any animation behavior!\n * Exactly _how_ a list item animates is up to the individual transition\n * component. This means you can mix and match animations across different list\n * items.\n */\n\nvar TransitionGroup = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(TransitionGroup, _React$Component);\n\n function TransitionGroup(props, context) {\n var _this;\n\n _this = _React$Component.call(this, props, context) || this;\n\n var handleExited = _this.handleExited.bind(_assertThisInitialized(_this)); // Initial children should all be entering, dependent on appear\n\n\n _this.state = {\n contextValue: {\n isMounting: true\n },\n handleExited: handleExited,\n firstRender: true\n };\n return _this;\n }\n\n var _proto = TransitionGroup.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this.mounted = true;\n this.setState({\n contextValue: {\n isMounting: false\n }\n });\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.mounted = false;\n };\n\n TransitionGroup.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, _ref) {\n var prevChildMapping = _ref.children,\n handleExited = _ref.handleExited,\n firstRender = _ref.firstRender;\n return {\n children: firstRender ? getInitialChildMapping(nextProps, handleExited) : getNextChildMapping(nextProps, prevChildMapping, handleExited),\n firstRender: false\n };\n } // node is `undefined` when user provided `nodeRef` prop\n ;\n\n _proto.handleExited = function handleExited(child, node) {\n var currentChildMapping = getChildMapping(this.props.children);\n if (child.key in currentChildMapping) return;\n\n if (child.props.onExited) {\n child.props.onExited(node);\n }\n\n if (this.mounted) {\n this.setState(function (state) {\n var children = _extends({}, state.children);\n\n delete children[child.key];\n return {\n children: children\n };\n });\n }\n };\n\n _proto.render = function render() {\n var _this$props = this.props,\n Component = _this$props.component,\n childFactory = _this$props.childFactory,\n props = _objectWithoutPropertiesLoose(_this$props, [\"component\", \"childFactory\"]);\n\n var contextValue = this.state.contextValue;\n var children = values(this.state.children).map(childFactory);\n delete props.appear;\n delete props.enter;\n delete props.exit;\n\n if (Component === null) {\n return /*#__PURE__*/React.createElement(TransitionGroupContext.Provider, {\n value: contextValue\n }, children);\n }\n\n return /*#__PURE__*/React.createElement(TransitionGroupContext.Provider, {\n value: contextValue\n }, /*#__PURE__*/React.createElement(Component, props, children));\n };\n\n return TransitionGroup;\n}(React.Component);\n\nTransitionGroup.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /**\n * `` renders a `
` by default. You can change this\n * behavior by providing a `component` prop.\n * If you use React v16+ and would like to avoid a wrapping `
` element\n * you can pass in `component={null}`. This is useful if the wrapping div\n * borks your css styles.\n */\n component: PropTypes.any,\n\n /**\n * A set of `` components, that are toggled `in` and out as they\n * leave. the `` will inject specific transition props, so\n * remember to spread them through if you are wrapping the `` as\n * with our `` example.\n *\n * While this component is meant for multiple `Transition` or `CSSTransition`\n * children, sometimes you may want to have a single transition child with\n * content that you want to be transitioned out and in when you change it\n * (e.g. routes, images etc.) In that case you can change the `key` prop of\n * the transition child as you change its content, this will cause\n * `TransitionGroup` to transition the child out and back in.\n */\n children: PropTypes.node,\n\n /**\n * A convenience prop that enables or disables appear animations\n * for all children. Note that specifying this will override any defaults set\n * on individual children Transitions.\n */\n appear: PropTypes.bool,\n\n /**\n * A convenience prop that enables or disables enter animations\n * for all children. Note that specifying this will override any defaults set\n * on individual children Transitions.\n */\n enter: PropTypes.bool,\n\n /**\n * A convenience prop that enables or disables exit animations\n * for all children. Note that specifying this will override any defaults set\n * on individual children Transitions.\n */\n exit: PropTypes.bool,\n\n /**\n * You may need to apply reactive updates to a child as it is exiting.\n * This is generally done by using `cloneElement` however in the case of an exiting\n * child the element has already been removed and not accessible to the consumer.\n *\n * If you do need to update a child as it leaves you can provide a `childFactory`\n * to wrap every child, even the ones that are leaving.\n *\n * @type Function(child: ReactElement) -> ReactElement\n */\n childFactory: PropTypes.func\n} : {};\nTransitionGroup.defaultProps = defaultProps;\nexport default TransitionGroup;","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return self;\n}","import { Close } from '@volkswagen-onehub/icons-core';\nimport * as React from 'react';\nimport { Transition, TransitionGroup } from 'react-transition-group';\nimport { keyframes, withTheme } from 'styled-components';\nimport { Text, TokenTextAppearance, TokenTextColor } from '../text';\nimport { css, styled } from '../theme-provider';\nimport { getCommonProps } from '../helpers/common-props';\nconst keyframesSubActionsShow = (percents, pixels) => keyframes `0%,50%{transform:translateY(${percents}%)translateY(+${pixels}px);}100%{transform:translateY(0);}`;\nconst keyframesSubActionsHide = (percents, pixels) => keyframes `0%{transform:translateY(0);}50%,100%{transform:translateY(${percents}%)translateY(+${pixels}px);}`;\nconst keyframesCollapse = (props) => {\n return keyframes `from{transform:translateX(0);}to{transform:${props.theme.direction === 'rtl'\n ? `translateX(\n\t\t\t\t\t\t\t${parseInt(props.theme.size.static350, 10) +\n parseInt(props.theme.size.static300, 10) * 2}px\n\t\t\t\t\t\t)\n\t\t\t\t\t\ttranslateX(-100%)`\n : `translateX(\n\t\t\t\t\t\t\t-${parseInt(props.theme.size.static350, 10) +\n parseInt(props.theme.size.static300, 10) * 2}px\n\t\t\t\t\t\t)\n\t\t\t\t\t\ttranslateX(100%)`};}`;\n};\nconst keyframesExpand = (props) => {\n return keyframes `from{transform:${props.theme.direction === 'rtl'\n ? `translateX(\n\t\t\t\t\t\t\t${parseInt(props.theme.size.static350, 10) +\n parseInt(props.theme.size.static350, 10) * 2}px\n\t\t\t\t\t\t)\n\t\t\t\t\t\ttranslateX(-100%)`\n : `translateX(\n\t\t\t\t\t\t\t-${parseInt(props.theme.size.static350, 10) +\n parseInt(props.theme.size.static350, 10) * 2}px\n\t\t\t\t\t\t)\n\t\t\t\t\t\ttranslateX(100%)`};}to{transform:translateX(0);}`;\n};\nconst keyframesInitializing = keyframes `0%{opacity:0;}100%{opacity:1;}`;\nconst StyledOverflowWrapper = styled.div.withConfig({ displayName: \"StyledOverflowWrapper\", componentId: \"sc-11iuvw0\" }) `direction:${(props) => props.theme.direction || 'ltr'};margin-inline-start:auto;overflow:hidden;clip-path:inset(0 0 0 0);border-radius:${(props) => parseInt(props.theme.size.static350, 10) / 2 +\n parseInt(props.theme.size.static300, 10)}px;width:100%;`;\nconst height = (props) => `${\n/* icon size plus top and bottom margins */\nparseInt(props.theme.size.static350, 10) +\n parseInt(props.theme.size.static300, 10) * 2}px`;\nconst StyledTextWrapper = styled.div.withConfig({ displayName: \"StyledTextWrapper\", componentId: \"sc-1s5l1d7\" }) `${(props) => props.expanded\n ? css `\n\t\t\t\t\tanimation: ${props.theme.animation.duration.nba} ${keyframesExpand} 1\n\t\t\t\t\t\t${props.theme.animation.timingFunction.cubicOut};\n\t\t\t\t`\n : css `\n\t\t\t\t\tanimation: ${props.theme.animation.duration.nba} ${keyframesCollapse}\n\t\t\t\t\t\t1 ${props.theme.animation.timingFunction.cubicOut};\n\t\t\t\t`} transform:translateX(0);white-space:nowrap;transition:background-color ${(props) => `${props.theme.animation.duration.nba} ${props.theme.animation.timingFunction.cubicOut}`},border-color ${(props) => `${props.theme.animation.duration.nba} ${props.theme.animation.timingFunction.cubicOut}`};height:${height};${(props) => props.theme.direction === 'rtl'\n ? css `\n\t\t\t\t\tpadding-left: ${parseInt(props.theme.size.static350, 10) +\n parseInt(props.theme.size.static200, 10) +\n parseInt(props.theme.size.static300, 10)}px; /* icon size plus large outer and small inner border */\n\t\t\t\t\tpadding-right: ${props.theme.size.static300};\n\t\t\t\t`\n : css `\n\t\t\t\t\tpadding-right: ${parseInt(props.theme.size.static350, 10) +\n parseInt(props.theme.size.static200, 10) +\n parseInt(props.theme.size.static300, 10)}px; /* icon size plus large outer and small inner border */\n\t\t\t\t\tpadding-left: ${props.theme.size.static300};\n\t\t\t\t`} border-radius:${(props) => parseInt(props.theme.size.static350, 10) / 2 +\n parseInt(props.theme.size.static300, 10)}px;background-color:${({ theme }) => theme.colors.accent.nbab.default};flex:auto 0 0;display:flex;align-items:center;`;\nconst StyledIconWrapper = styled.div.withConfig({ displayName: \"StyledIconWrapper\", componentId: \"sc-40ei28\" }) `align-items:center;display:flex;flex:auto 0 0;height:${height};justify-content:center;position:absolute;border:${({ theme }) => theme.size.static300} solid;border-color:${({ theme }) => theme.direction === 'rtl'\n ? `transparent transparent transparent ${theme.colors.accent.nbab.default}`\n : `transparent ${theme.colors.accent.nbab.default} transparent transparent`};border-radius:${({ theme }) => parseInt(theme.size.static350, 10) / 2 +\n parseInt(theme.size.static300, 10)}px;left:${({ theme }) => (theme.direction === 'rtl' ? 0 : 'unset')};right:${({ theme }) => (theme.direction === 'rtl' ? 'unset' : 0)};transition:border-color ${({ theme }) => theme.animation.duration.nba} ${({ theme }) => theme.animation.timingFunction.cubicOut};width:${({ theme }) => parseInt(theme.size.static350, 10) +\n parseInt(theme.size.static300, 10) * 2}px;`;\nconst StyledDecorativeIconWrapper = styled.div.withConfig({ displayName: \"StyledDecorativeIconWrapper\", componentId: \"sc-5vg8x4\" }) `background-color:{({theme})=> theme.colors.accent.nbab.default};height:100%;width:100%;`;\nconst StyledInnerIconWrapper = styled.div.withConfig({ displayName: \"StyledInnerIconWrapper\", componentId: \"sc-9c8a1e\" }) `height:${(props) => parseInt(props.theme.size.static350, 10) +\n parseInt(props.theme.size.static200, 10) *\n 2}px;width:${(props) => parseInt(props.theme.size.static350, 10) +\n parseInt(props.theme.size.static200, 10) * 2}px;background-color:${({ theme, transitionState }) => transitionState === 'entering'\n ? theme.colors.content.inverted\n : theme.colors.accent.nbab.default};border:${(props) => props.theme.size.static200} solid;border-radius:${(props) => parseInt(props.theme.size.static350, 10) / 2 +\n parseInt(props.theme.size.static200, 10)}px;border-color:${({ theme, transitionState }) => transitionState === 'entering'\n ? theme.colors.content.inverted\n : theme.colors.accent.nbab.default};line-height:0;position:absolute;${(props) => props.theme.direction === 'rtl'\n ? `\n\t\t\t\t\tright: -${props.theme.size.static200};\n\t\t\t `\n : `\n\t\t\t\t\tleft: -${props.theme.size.static200};\n\t\t\t `} top:-${(props) => props.theme.size.static200};transition:opacity ${(props) => `${props.theme.animation.duration.nba} ${props.theme.animation.timingFunction.cubicOut}`},transform ${(props) => `${props.theme.animation.duration.nba} ${props.theme.animation.timingFunction.cubicOut}`},background-color ${(props) => `${props.theme.animation.duration.nba} ${props.theme.animation.timingFunction.cubicOut}`},border-color ${(props) => `${props.theme.animation.duration.nba} ${props.theme.animation.timingFunction.cubicOut}`};opacity:${(props) => (props.transitionState === 'entered' ? 1 : 0)};transform:${(props) => {\n if (props.transitionState === 'entering') {\n return 'rotate(-90deg)';\n }\n if (props.transitionState === 'entered') {\n return 'rotate(0deg)';\n }\n return 'rotate(90deg)';\n}};`;\nconst StyledSubActionWrapper = styled.div.withConfig({ displayName: \"StyledSubActionWrapper\", componentId: \"sc-n3pvt1\" }) `position:absolute;bottom:${height};`;\nconst StyledButton = styled.button.withConfig({ displayName: \"StyledButton\", componentId: \"sc-1k80dwj\" }) `appearance:none;background-color:transparent;border:none;box-shadow:none;cursor:pointer;pointer-events:auto;display:flex;min-width:${height};padding:0px;position:relative;text-decoration:none;visibility:${({ show }) => (show ? 'visible' : 'hidden')};${({ theme }) => css `\n\t\t/* We hide the element until the initial animations are done */\n\t\tanimation: ${theme.animation.duration.nba} ${keyframesInitializing} 1\n\t\t\tstep-end;\n\t\tcolor: ${theme.colors.button.primary.default};\n\t\tborder-radius: ${parseInt(theme.size.static350, 10) / 2 +\n parseInt(theme.size.static300, 10)}px; /* 1/2 height */\n\t\t${theme.direction === 'rtl' ? 'margin-right: auto;' : 'margin-left: auto;'}\n\t`} ${({ fullWidth }) => fullWidth && 'width: 100%;'} ${({ expanded, theme }) => expanded\n ? css `\n\t\t\t\t\tmax-width: calc(100vw - (2 * ${theme.size.dynamic0200}));\n\t\t\t\t\ttransition: none;\n\t\t\t\t`\n : css `\n\t\t\t\t\tmax-width: ${height};\n\t\t\t\t\ttransition: max-width 0s ease-in-out ${theme.animation.duration.nba};\n\t\t\t\t`}::before{content:'';position:absolute;${({ theme }) => (theme.direction === 'rtl' ? 'left: 0;' : 'right: 0;')} z-index:1;width:${height};height:100%;border-radius:${({ theme }) => parseInt(theme.size.static350, 10) / 2 +\n parseInt(theme.size.static300, 10)}px;transition:${({ expanded, theme }) => expanded\n ? 'none'\n : `visibility ${theme.animation.duration.nba}, width ${theme.animation.duration.nba} ${theme.animation.timingFunction.cubicOut}`};pointer-events:none;}:hover{::before{width:100%;background:${({ theme }) => `${theme.colors.hoverIndicator}33`};}}:hover,:focus{${({ theme, expanded }) => css `\n\t\t\ttransition:\n\t\t\t\tvisibility ${theme.animation.duration.nba},\n\t\t\t\tmax-width ${theme.animation.duration.nba}\n\t\t\t\t\t${theme.animation.timingFunction.cubicOut};\n\t\t\t${StyledTextWrapper} {\n\t\t\t\t${expanded === undefined &&\n css `\n\t\t\t\t\tanimation: ${theme.animation.duration.nba} ${keyframesExpand} 1\n\t\t\t\t\t\t${theme.animation.timingFunction.cubicOut};\n\t\t\t\t`}\n\t\t\t}\n\t\t`};${({ show, expanded, theme }) => show &&\n expanded === undefined &&\n css `\n\t\t\t\tmax-width: calc(100vw - (2 * ${theme.size.dynamic0200}));\n\t\t\t`};}:active{::before{background:${({ theme }) => `${theme.colors.hoverIndicator}66`};}}:focus{color:${({ theme }) => theme.colors.button.primary.default};outline:none;box-shadow:0 0 0 2px ${({ theme }) => theme.colors.button.primary.default};${StyledTextWrapper}{background-color:${({ theme }) => theme.colors.accent.nbab.default};}${StyledIconWrapper}{${({ theme }) => theme.direction === 'rtl'\n ? `border-left-color: ${theme.colors.accent.nbab.default};\n\t\t\t\t\tborder-right-color: transparent;`\n : `border-left-color: transparent;\n\t\t\t\t\tborder-right-color: ${theme.colors.accent.nbab.default};`}}${StyledInnerIconWrapper}{background-color:${({ theme }) => theme.colors.accent.nbab.default};border-color:${({ theme }) => theme.colors.accent.nbab.default};}}`;\nconst StyledCloseButton = styled.button.withConfig({ displayName: \"StyledCloseButton\", componentId: \"sc-tnsddf\" }) `${({ theme }) => (theme.direction === 'rtl' ? 'left: 0;' : 'right: 0;')} background-color:${({ theme }) => theme.colors.button.primary.disabled};border-radius:${({ theme }) => parseInt(theme.size.static350, 10) / 2 +\n parseInt(theme.size.static300, 10)}px;color:${({ theme }) => theme.colors.content.disabled};&::before{content:'';position:absolute;${({ theme }) => (theme.direction === 'rtl' ? 'left: 0;' : 'right: 0;')} z-index:1;width:${height};height:100%;border-radius:${({ theme }) => parseInt(theme.size.static350, 10) / 2 +\n parseInt(theme.size.static300, 10)}px;pointer-events:none;}&:hover{&::before{width:100%;background:${({ theme }) => `${theme.colors.hoverIndicator}33`};}}&:active{&::before{background:${({ theme }) => `${theme.colors.hoverIndicator}66`};}}&:focus{outline:none;box-shadow:0 0 0 2px ${({ theme }) => theme.colors.button.primary.default};}visibility:${({ show }) => (show ? 'visible' : 'hidden')};opacity:${({ show }) => (show ? '1' : '0')};appearance:none;border:none;box-shadow:none;cursor:pointer;pointer-events:auto;display:flex;min-height:${height};min-width:${height};padding:0px;position:absolute;text-decoration:none;align-items:center;justify-content:center;`;\nconst StyledSubNextBestActionButton = styled.div.withConfig({ displayName: \"StyledSubNextBestActionButton\", componentId: \"sc-1ptd3oc\" }) `width:100%;${({ theme }) => `\n\t\tmargin: ${theme.size.static100} 0;\n\t\ttransition: opacity ${theme.animation.duration.nba} ${theme.animation.timingFunction.cubicOut};\n\n\t\t&:last-child {\n\t\t\tmargin-bottom: ${theme.size.static150};\n\t\t}\n\t`} ${({ show, theme }) => `\n\t\tvisibility: ${show ? 'visible' : 'hidden'};\n\t\topacity: ${show ? '1' : '0'};\n\t\ttransition-delay: ${show ? theme.animation.duration.nba : 0};\n\n\t\t& ${StyledButton}{\n\t\t\tpointer-events: ${show ? 'auto' : 'none'};\n\t\t}\n\t`} ${({ show, endIndex, theme }) => show\n ? css `\n\t\t\t\t\tanimation: ${keyframesSubActionsShow(endIndex * 100, Number(theme.size.static100.replace('px', '') || 0) * endIndex * 2)}\n\t\t\t\t\t\t${theme.animation.duration.collapsible}\n\t\t\t\t\t\t${theme.animation.timingFunction.cubicOut};\n\t\t\t\t`\n : css `\n\t\t\t\t\tanimation: ${keyframesSubActionsHide(endIndex * 100, Number(theme.size.static100.replace('px', '') || 0) * endIndex * 2)}\n\t\t\t\t\t\t${theme.animation.duration.collapsible}\n\t\t\t\t\t\t${theme.animation.timingFunction.cubicOut};\n\t\t\t\t`}`;\nconst StyledNextBestActionButtonWrapper = styled.div.withConfig({ displayName: \"StyledNextBestActionButtonWrapper\", componentId: \"sc-zzq582\" }) `isolation:isolate;align-items:flex-end;display:flex;flex-direction:column;justify-content:flex-end;${({ theme }) => theme.direction === 'rtl' ? 'margin-right: auto;' : 'margin-left: auto;'};width:${({ fullWidth }) => (fullWidth ? '100%' : 'max-content')};pointer-events:none;`;\nconst isLink = (action) => Boolean(action.tag === 'a');\nconst StyledBadge = styled.div.withConfig({ displayName: \"StyledBadge\", componentId: \"sc-s9i9tg\" }) `${({ theme }) => css `\n\t\tbackground-color: ${theme.colors.background.primary};\n\t\tborder-color: ${theme.colors.button.primary.default};\n\t\tborder: ${theme.size.border.heavy} solid;\n\t\tmin-height: ${theme.size.static300};\n\t\tmin-width: ${theme.size.static300};\n\t\t${theme.direction === 'rtl' ? 'left: 0' : 'right: 0'};\n\t`} border-radius:50%;display:flex;justify-content:center;position:absolute;z-index:1;`;\nconst StyledBadgeText = styled.div.withConfig({ displayName: \"StyledBadgeText\", componentId: \"sc-1fcr1s2\" }) `${({ theme }) => css `\n\t\tcolor: ${theme.colors.button.primary.default};\n\t\tfont-size: ${theme.size.static200};\n\t\tline-height: ${theme.size.static200};\n\t`} background:transparent;display:flex;flex-direction:column;justify-content:center;`;\nconst NextBestActionButtonInternal = React.forwardRef((props, forwardRef) => {\n const { action, closeButtonAriaLabel, disabled, displaySubActions, expandContent, fullWidth, hideIcon, subActions, tabIndex = undefined, theme, } = props;\n const [internalDisplaySubActions, setInternalDisplaySubActions] = React.useState(false);\n const CloseButtonRef = React.useRef(null);\n const timeout = parseInt(theme.animation.duration.nba || '300', 10);\n const commonProps = getCommonProps(props);\n React.useEffect(() => {\n if (typeof displaySubActions === 'boolean' &&\n displaySubActions !== internalDisplaySubActions) {\n setInternalDisplaySubActions(displaySubActions);\n }\n }, [displaySubActions, internalDisplaySubActions]);\n React.useEffect(() => {\n if (internalDisplaySubActions) {\n // there is a focus delay due to animation\n setTimeout(() => {\n var _a;\n (_a = CloseButtonRef.current) === null || _a === void 0 ? void 0 : _a.focus();\n }, timeout);\n }\n }, [internalDisplaySubActions, timeout]);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any -- there is no sane type for the ref of both StyledLink and StyledButton using \"as\" that works with both components and both tags, so we have to use \"any\" instead\n const ref = forwardRef;\n const NBAContent = (React.createElement(React.Fragment, null,\n React.createElement(StyledOverflowWrapper, null,\n React.createElement(StyledTextWrapper, { expanded: expandContent },\n React.createElement(Text, { appearance: TokenTextAppearance.label200, staticSize: true, color: TokenTextColor.inherit }, action.content))),\n React.createElement(StyledIconWrapper, null,\n React.createElement(StyledDecorativeIconWrapper, null,\n React.createElement(TransitionGroup, null, hideIcon ? null : (React.createElement(Transition, { timeout: { exit: timeout }, key: action.icon.key || undefined }, (state) => (React.createElement(StyledInnerIconWrapper, { transitionState: state }, action.icon))))))),\n (subActions === null || subActions === void 0 ? void 0 : subActions.length) ? (React.createElement(StyledBadge, null,\n React.createElement(StyledBadgeText, null,\n React.createElement(\"bdi\", null, `+${subActions === null || subActions === void 0 ? void 0 : subActions.length}`)))) : null));\n const toggleDisplaySubActions = () => {\n setInternalDisplaySubActions(!internalDisplaySubActions);\n };\n const handleOnClick = (evt) => {\n if (subActions === null || subActions === void 0 ? void 0 : subActions.length) {\n toggleDisplaySubActions();\n }\n action.onClick && action.onClick(evt);\n };\n // since the main NBAB is either a link or a button it gets different props for each\n const mainNBABDifferingProps = isLink(action)\n ? {\n as: 'a',\n onClick: action.onClick,\n href: action.href,\n show: true,\n }\n : {\n onClick: handleOnClick,\n show: !internalDisplaySubActions,\n };\n return (React.createElement(StyledNextBestActionButtonWrapper, Object.assign({ fullWidth: fullWidth }, commonProps),\n (subActions === null || subActions === void 0 ? void 0 : subActions.length) ? (React.createElement(StyledSubActionWrapper, null, subActions.map((actionItem, actionIndex) => {\n const endIndex = subActions.length - actionIndex;\n return (React.createElement(StyledSubNextBestActionButton, { key: actionItem.key, show: internalDisplaySubActions, endIndex: endIndex, \"aria-hidden\": !internalDisplaySubActions }, actionItem));\n }))) : null,\n React.createElement(StyledButton, Object.assign({}, mainNBABDifferingProps, { ref: ref, expanded: expandContent, fullWidth: fullWidth, \"aria-label\": action.ariaLabel, tabIndex: tabIndex, disabled: disabled }), NBAContent),\n (subActions === null || subActions === void 0 ? void 0 : subActions.length) ? (React.createElement(StyledCloseButton, { \"aria-label\": closeButtonAriaLabel, onClick: handleOnClick, show: internalDisplaySubActions, ref: CloseButtonRef },\n React.createElement(Close, { ariaHidden: true }))) : null));\n});\nNextBestActionButtonInternal.displayName = 'NextBestActionButtonInternal';\nexport const NextBestActionButton = withTheme(NextBestActionButtonInternal);\n","import * as React from 'react';\nexport var ArrowLeft = React.forwardRef(Object.assign(function (props, forwardRef) {\n var variant = props.variant || \"default\";\n if (variant === \"small\") {\n return React.createElement(\"svg\", { className: props.className, \"aria-hidden\": props.ariaHidden, role: props.ariaHidden ? undefined : \"img\", tabIndex: props.tabIndex, \"aria-label\": props.ariaLabel, ref: forwardRef, xmlns: \"http://www.w3.org/2000/svg\", width: \"12\", height: \"12\", viewBox: \"0 0 12 12\", fill: \"currentColor\" },\n props.title && React.createElement(\"title\", null, props.title),\n React.createElement(\"path\", { d: \"M11.013 5.328H3.136a49 49 0 0 1 1.991-1.885l-.888-.99C.968 5.383.968 5.801.968 5.98c0 .515 1.78 2.217 3.271 3.555l.888-.99a44 44 0 0 1-1.979-1.886h7.865z\" }));\n }\n if (variant === \"default\") {\n return React.createElement(\"svg\", { className: props.className, \"aria-hidden\": props.ariaHidden, role: props.ariaHidden ? undefined : \"img\", tabIndex: props.tabIndex, \"aria-label\": props.ariaLabel, ref: forwardRef, xmlns: \"http://www.w3.org/2000/svg\", width: \"24\", height: \"24\", viewBox: \"0 0 24 24\", fill: \"currentColor\" },\n props.title && React.createElement(\"title\", null, props.title),\n React.createElement(\"path\", { d: \"M22.003 11.032H4.126A88 88 0 0 1 8.89 6.45l-.888-.99c-.06.054-6 5.384-6 6.237 0 .877 5.94 6.237 6 6.29l.888-.99a81 81 0 0 1-4.782-4.635h17.895z\" }));\n }\n return null;\n}, { displayName: 'ArrowLeft' }));\n","import * as React from 'react';\nexport var ArrowRight = React.forwardRef(Object.assign(function (props, forwardRef) {\n var variant = props.variant || \"default\";\n if (variant === \"small\") {\n return React.createElement(\"svg\", { className: props.className, \"aria-hidden\": props.ariaHidden, role: props.ariaHidden ? undefined : \"img\", tabIndex: props.tabIndex, \"aria-label\": props.ariaLabel, ref: forwardRef, xmlns: \"http://www.w3.org/2000/svg\", width: \"12\", height: \"12\", viewBox: \"0 0 12 12\", fill: \"currentColor\" },\n props.title && React.createElement(\"title\", null, props.title),\n React.createElement(\"path\", { d: \"m7.783 2.418-.888.99c.802.718 1.472 1.37 1.98 1.885H1.01v1.33h7.878a49 49 0 0 1-1.992 1.886l.887.99c3.272-2.93 3.272-3.349 3.272-3.528 0-.515-1.78-2.217-3.272-3.553\" }));\n }\n if (variant === \"default\") {\n return React.createElement(\"svg\", { className: props.className, \"aria-hidden\": props.ariaHidden, role: props.ariaHidden ? undefined : \"img\", tabIndex: props.tabIndex, \"aria-label\": props.ariaLabel, ref: forwardRef, xmlns: \"http://www.w3.org/2000/svg\", width: \"24\", height: \"24\", viewBox: \"0 0 24 24\", fill: \"currentColor\" },\n props.title && React.createElement(\"title\", null, props.title),\n React.createElement(\"path\", { d: \"m15.99 5.377-.887.99a81 81 0 0 1 4.782 4.635H1.991v1.33h17.877a88 88 0 0 1-4.764 4.583l.886.99c.06-.054 6-5.386 6-6.239 0-.876-5.94-6.235-6-6.289\" }));\n }\n return null;\n}, { displayName: 'ArrowRight' }));\n","var __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport { withTheme } from 'styled-components';\nimport { ArrowLeft, ArrowRight } from '@volkswagen-onehub/icons-core';\nimport { CTA, } from '../call-to-action';\nconst Arrow = withTheme((props) => props.theme.direction === 'rtl' ? (React.createElement(ArrowLeft, { variant: props.size === 'small' ? 'small' : 'default', ariaHidden: true })) : (React.createElement(ArrowRight, { variant: props.size === 'small' ? 'small' : 'default', ariaHidden: true })));\nexport const ButtonNext = (props) => {\n const { children, size } = props, rest = __rest(props, [\"children\", \"size\"]);\n return (React.createElement(CTA, Object.assign({}, rest, { icon: React.createElement(Arrow, { size: size }), iconPosition: \"end\", size: size }), children));\n};\n","var __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport { withTheme } from 'styled-components';\nimport { ArrowLeft, ArrowRight } from '@volkswagen-onehub/icons-core';\nimport { CTA, } from '../call-to-action';\nconst Arrow = withTheme((props) => props.theme.direction === 'rtl' ? (React.createElement(ArrowRight, { variant: props.size === 'small' ? 'small' : 'default', ariaHidden: true })) : (React.createElement(ArrowLeft, { variant: props.size === 'small' ? 'small' : 'default', ariaHidden: true })));\nexport const ButtonPrevious = (props) => {\n const { children, size } = props, rest = __rest(props, [\"children\", \"size\"]);\n return (React.createElement(CTA, Object.assign({}, rest, { icon: React.createElement(Arrow, { size: size }), size: size }), children));\n};\n","import * as React from 'react';\nimport { styled } from '../../theme-provider';\nimport { ChevronDown } from '@volkswagen-onehub/icons-core';\nconst ANIMATION_FUNCTION = '0.3s cubic-bezier(0.14, 1.12, 0.67, 0.99)';\nexport const StyledIcon = styled(ChevronDown).withConfig({ displayName: \"StyledIcon\", componentId: \"sc-u9wb10\" }) `color:${({ theme, disabled }) => theme.colors.controllers.off[disabled ? 'disabled' : 'default']};transition:transform ${ANIMATION_FUNCTION};transform:${({ isOpen }) => (isOpen ? 'rotateX(180deg)' : 'rotateX(0)')};line-height:0;`;\nexport const StyledIconWrapper = styled.span.withConfig({ displayName: \"StyledIconWrapper\", componentId: \"sc-5qejbz\" }) `position:relative;display:flex;align-items:center;cursor:pointer;flex-shrink:0;justify-content:center;height:${({ theme }) => theme.size.static350};margin-top:${({ theme }) => theme.size.static100};&::before{content:'';display:block;width:${({ theme }) => theme.size.static500};height:${({ theme }) => theme.size.static500};position:absolute;top:50%;left:50%;transform:translateX(-50%)translateY(-50%);border-radius:50%;}`;\nexport const CardHeaderChevron = ({ isOpen, dataTestId }) => {\n return (React.createElement(StyledIconWrapper, { \"data-testid\": `${dataTestId}-header-chevron` },\n React.createElement(StyledIcon, { isOpen: isOpen, variant: \"default\", ariaHidden: true })));\n};\n","import * as React from 'react';\nimport { CheckboxCheckmark } from '@volkswagen-onehub/icons-core';\nimport { styled } from '../../theme-provider';\nexport const StyledCheckmarkWrapper = styled.div.withConfig({ displayName: \"StyledCheckmarkWrapper\", componentId: \"sc-r5mg0v\" }) `color:${({ theme }) => theme.colors.content.inverted};position:relative;display:flex;align-items:center;justify-content:center;height:${({ theme }) => theme.size.static350};width:${({ theme }) => theme.size.static350};margin-top:${({ theme }) => theme.size.static100};background:${({ theme, isSelected }) => isSelected\n ? theme.colors.button.primary.active\n : theme.colors.background.primary};border-radius:50%;border:1px solid ${({ theme, isSelected }) => isSelected ? theme.colors.border.active : theme.colors.border.default};cursor:pointer;flex-shrink:0;`;\nexport const CardHeaderCheckbox = ({ isSelected, dataTestId }) => {\n return (React.createElement(StyledCheckmarkWrapper, { isSelected: isSelected, \"data-testid\": `${dataTestId}-header-checkbox` },\n React.createElement(CheckboxCheckmark, { variant: \"small\", ariaHidden: true })));\n};\n","import * as React from 'react';\nimport { useCardContext } from '../card';\nimport { Text, TokenTextAppearance, TokenTextColor } from '../../text';\nexport const CardTitle = ({ title }) => {\n const { emphasis = 'large' } = useCardContext();\n const appearance = {\n small: TokenTextAppearance.headline100,\n large: TokenTextAppearance.headline200,\n }[emphasis];\n return (React.createElement(Text, { appearance: appearance, bold: true, color: TokenTextColor.inherit }, title));\n};\n","import * as React from 'react';\nimport { css, styled } from '../../theme-provider';\nimport { CardHeaderChevron } from './card-header-chevron';\nimport { CardHeaderCheckbox } from './card-header-checkbox';\nimport { CardTitle } from './card-title';\nimport { useCardContext } from '../card';\nexport const CardHeaderWrapper = styled.div.withConfig({ displayName: \"CardHeaderWrapper\", componentId: \"sc-1mpflw3\" }) `display:flex;justify-content:space-between;:focus{outline:none;}${({ role }) => (role === 'button' || role === 'option') &&\n css `\n\t\t\t::after {\n\t\t\t\tcontent: '';\n\t\t\t\tposition: absolute;\n\t\t\t\ttop: 0;\n\t\t\t\tbottom: 0;\n\t\t\t\tleft: 0;\n\t\t\t\tright: 0;\n\t\t\t\tcursor: pointer;\n\t\t\t}\n\t\t`}`;\nconst CardHeaderIcon = ({ dataTestId }) => {\n const { type, isActive = false } = useCardContext();\n if (type === 'collapsible') {\n return React.createElement(CardHeaderChevron, { isOpen: isActive, dataTestId: dataTestId });\n }\n if (type === 'selectable')\n return React.createElement(CardHeaderCheckbox, { isSelected: isActive, dataTestId: dataTestId });\n return null;\n};\nexport const CardHeader = ({ title, children, }) => {\n const getRoleByType = (type) => {\n if (type === 'collapsible') {\n return 'button';\n }\n if (type === 'selectable') {\n return 'option';\n }\n return undefined;\n };\n const { type, dataTestId, isActive = false, role = getRoleByType(type), ariaLabel, } = useCardContext();\n const isSelected = type === 'selectable' ? isActive : undefined;\n const isExpanded = type === 'collapsible' ? isActive : undefined;\n return (React.createElement(CardHeaderWrapper, { \"aria-label\": ariaLabel, tabIndex: type !== 'default' ? 0 : undefined, role: role, \"aria-selected\": isSelected, \"aria-expanded\": isExpanded },\n React.createElement(CardTitle, { title: title }),\n React.createElement(CardHeaderIcon, { dataTestId: dataTestId }),\n children && React.createElement(React.Fragment, null, children)));\n};\n","var __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport { styled } from '../theme-provider';\nimport { createA11yOutlineStyles } from '../helpers/a11y';\nimport { StyledIcon } from './card-header/card-header-chevron';\nimport { StyledCheckmarkWrapper } from './card-header/card-header-checkbox';\nimport { CardHeaderWrapper } from './card-header';\nconst CardContext = React.createContext({\n type: 'default',\n emphasis: 'large',\n isActive: false,\n});\nexport const useCardContext = () => React.useContext(CardContext);\nexport const Card = React.forwardRef((props, ref) => {\n const { children, emphasis, type, 'data-testid': dataTestId, role, ariaLabel, } = props;\n const [ariaControlsIds, setAriaControlsIds] = React.useState('');\n const handleToggle = React.useCallback((event) => {\n const target = event.target;\n const isClickOnCardWrapper = target.tagName === 'DIV';\n if (isExtendedCardProps(props) &&\n props.onToggle &&\n isClickOnCardWrapper) {\n props.onToggle();\n }\n }, [props]);\n const isActive = isExtendedCardProps(props) ? props.isActive : false;\n const onToggle = isExtendedCardProps(props) ? handleToggle : undefined;\n const value = React.useMemo(() => ({\n setAriaControlsIds,\n type,\n emphasis,\n dataTestId,\n isActive,\n onToggle,\n role,\n ariaLabel,\n }), [dataTestId, emphasis, isActive, onToggle, type, role, ariaLabel]);\n return (React.createElement(CardContext.Provider, { value: value },\n React.createElement(CardInner, Object.assign({}, props, { ref: ref, ariaControlsIds: ariaControlsIds }), children)));\n});\nCard.displayName = 'Card';\nconst CardWrapper = styled.div.withConfig({ displayName: \"CardWrapper\", componentId: \"sc-njn7df\" }) `overflow:hidden;border-radius:${({ theme }) => theme.size.static150};box-shadow:inset 0px 0px 0px ${({ theme, isChecked }) => isChecked\n ? `2px ${theme.colors.border.active}`\n : `1px ${theme.colors.border.default}`};&:hover:not(:disabled){box-shadow:0px 0px 0px ${({ theme, isChecked }) => isChecked\n ? `2px ${theme.colors.border.active} inset`\n : `2px ${theme.colors.border.default}`};}img,.img{padding:0;border:0;}&:has(:focus-visible),&:focus-visible{${({ theme, type }) => type !== 'default' && createA11yOutlineStyles(theme, 'solid')}}&:focus:not(:focus-visible){outline:none;outline-offset:0;}padding:${({ theme }) => theme.size.static200};position:relative;display:grid;gap:${({ theme }) => theme.size.static200};color:${({ theme }) => theme.colors.content.primary};:hover,:focus-within{${CardHeaderWrapper}[aria-expanded],${CardHeaderWrapper}[aria-selected]{color:${({ theme }) => theme.colors.button.tertiary.hover};}${StyledIcon}{color:${({ theme }) => theme.colors.button.tertiary.hover};}}:hover{${StyledCheckmarkWrapper}{outline:${({ theme }) => theme.size.border.light};solid ${({ theme }) => theme.colors.border.default};}}`;\nconst isExtendedCardProps = (props) => props.type === 'collapsible' ||\n props.type === 'selectable';\nconst CardInner = React.forwardRef((props, ref) => {\n const { children, 'data-testid': dataTestId, uniqueAriaId, ariaControlsIds, type } = props, other = __rest(props, [\"children\", 'data-testid', \"uniqueAriaId\", \"ariaControlsIds\", \"type\"]);\n const { isActive, onToggle } = useCardContext();\n if (isExtendedCardProps(props)) {\n const isChecked = type === 'selectable' ? isActive : undefined;\n return (React.createElement(CardWrapper, Object.assign({ type: type, onClick: onToggle }, other, { id: uniqueAriaId, \"aria-controls\": \n /* `aria-controls` should only control elements that are present in the DOM,\n after the Card is active the collapsed sections are visible, hence their `id` can be mapped\n to the `aria-controls` here*/\n type === 'collapsible' && isActive ? ariaControlsIds : undefined, isChecked: isChecked, \"data-testid\": dataTestId, ref: ref }), children));\n }\n return (React.createElement(CardWrapper, Object.assign({}, other, { \"data-testid\": dataTestId, ref: ref }), children));\n});\nCardInner.displayName = 'Card';\n","var __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport { CTA } from '../call-to-action';\nexport const CardFooter = ({ children, footerLinks, }) => {\n return (React.createElement(React.Fragment, null,\n React.Children.toArray(footerLinks.map((_a) => {\n var { text } = _a, rest = __rest(_a, [\"text\"]);\n return React.createElement(CTA, Object.assign({}, rest), text);\n })),\n children));\n};\n","import * as React from 'react';\nimport { styled } from '../theme-provider';\nimport { useCardContext } from './card';\nconst StyledCardSection = styled.div.withConfig({ displayName: \"StyledCardSection\", componentId: \"sc-3ap0zt\" }) `border-top:1px solid ${({ theme }) => theme.colors.border.default};padding-top:${({ theme, emphasis }) => emphasis === 'small' ? theme.size.static150 : theme.size.static200};display:flex;gap:${({ theme }) => theme.size.static250};flex-wrap:wrap;`;\nexport const CardSection = ({ children, ariaLabel, ariaUniqueId, isCollapsed = true, }) => {\n const context = useCardContext();\n const { emphasis, type = 'default', setAriaControlsIds, isActive } = context;\n /* this effect is used to create a string out of each collapsed card section's ariaUniqueId\n this is needed for collapsible cards when they are toggled with the keyboard.\n */\n React.useEffect(() => {\n isCollapsed &&\n ariaUniqueId &&\n setAriaControlsIds &&\n setAriaControlsIds((prev) => `${prev === ' ' ? prev.substring(1) : prev} ${ariaUniqueId}`.trim());\n }, [isCollapsed, setAriaControlsIds, ariaUniqueId]);\n const isContentVisible = type === 'default' ||\n type === 'selectable' ||\n !isCollapsed ||\n (type === 'collapsible' && isActive);\n return isContentVisible ? (React.createElement(StyledCardSection, { emphasis: emphasis, \"aria-label\": ariaLabel, id: ariaUniqueId }, children)) : null;\n};\n","import * as React from 'react';\nimport styled from 'styled-components';\nimport { getGridColumn } from '../helpers/grid';\nimport { Breakpoints } from '../helpers/breakpoint';\nimport { Text, TextTag, TokenTextAppearance } from '../text';\nimport { CTA } from '../call-to-action';\nimport { Close } from '@volkswagen-onehub/icons-core';\n// Note: This calculation is needed to align the close button with the icons of the topbar, which are only 24px in width\nconst CLOSE_BTN_ALIGNMENT_CALC = (44 - 24) / 2;\nconst StyledContentContainer = styled.div.withConfig({ displayName: \"StyledContentContainer\", componentId: \"sc-1gxhv0j\" }) `${(props) => !props.disableDefaultPadding &&\n `\n\t\t\tpadding: ${props.theme.size.dynamic0300} 0;\n\t\t`};`;\n// Note: The height of this header should be the same as the expanded topbar.\n// For now we will use a static value until the new topbar height is defined as an exported value.\nconst StyledHeaderContainer = styled.header.withConfig({ displayName: \"StyledHeaderContainer\", componentId: \"sc-1wa1h0e\" }) `position:sticky;top:0;display:flex;align-items:center;min-height:${(props) => props.theme.size.static515};padding:${(props) => props.theme.size.static100} ${getGridColumn(3)};border-bottom:1px solid ${(props) => props.theme.colors.border.divider};background:${(props) => props.theme.colors.overlay.sticky};z-index:1;`;\nconst StyledTitleContainer = styled.h3.withConfig({ displayName: \"StyledTitleContainer\", componentId: \"sc-dcv7pc\" }) `width:100%;margin:0;text-align:center;@media (max-width: ${Breakpoints.b560}px){width:${getGridColumn(17)};}`;\nconst StyledCloseButtonContainer = styled.div.withConfig({ displayName: \"StyledCloseButtonContainer\", componentId: \"sc-1nj2to0\" }) `position:absolute;${(props) => (props.theme.direction === 'rtl' ? `left: 0;` : `right: 0;`)} padding-inline-end:calc(${getGridColumn(1)} - ${CLOSE_BTN_ALIGNMENT_CALC}px);@media (min-width: ${Breakpoints.b1280}px){display:flex;justify-content:center;width:${getGridColumn(2)};}`;\nexport const ContentLayerV2Content = (props) => {\n const { closeButtonLabel, contentHeadline, onClose, children, disableDefaultPadding, ariaLabelledBy, } = props;\n return (React.createElement(React.Fragment, null,\n React.createElement(StyledHeaderContainer, null,\n React.createElement(StyledTitleContainer, null,\n React.createElement(Text, { tag: TextTag.span, appearance: TokenTextAppearance.headline100, bold: true, id: ariaLabelledBy }, contentHeadline)),\n React.createElement(StyledCloseButtonContainer, null,\n React.createElement(CTA, { tag: \"button\", icon: React.createElement(Close, { ariaHidden: true }), onClick: onClose, type: \"button\", size: \"large\", emphasis: \"tertiary\", ariaLabel: closeButtonLabel }))),\n React.createElement(StyledContentContainer, { disableDefaultPadding: disableDefaultPadding }, children)));\n};\n","import * as React from 'react';\nimport { CSSTransition } from 'react-transition-group';\nimport { withTheme } from 'styled-components';\nimport { getColumnsWidthForBreakpoint } from '../helpers/grid';\nimport { Breakpoints } from '../helpers/breakpoint';\nimport { styled } from '../theme-provider';\nimport { getCommonProps } from '../helpers/common-props';\nimport { ContentLayerV2Content, } from './content-layer-v2-content';\nconst animationClassName = 'animation';\nconst StyledScrollWrapper = styled.div.withConfig({ displayName: \"StyledScrollWrapper\", componentId: \"sc-1tgic0h\" }) `position:fixed;top:0;right:0;bottom:0;left:0;overflow:auto;-webkit-overflow-scrolling:touch;transition:${(props) => {\n const duration = props.theme.animation.duration.layer;\n const timingFunction = props.theme.animation.timingFunction.in;\n return `transform ${duration} ${timingFunction}`;\n}};&.${animationClassName}-exit{transform:translateY(0);}&.${animationClassName}-enter,&.${animationClassName}-exit-active,&.${animationClassName}-exit-done{transform:translateY(100%);}&.${animationClassName}-enter-active{transform:translateY(0);}&.${animationClassName}-enter-done{transform:none;}`;\nconst StyledLayer = styled.div.withConfig({ displayName: \"StyledLayer\", componentId: \"sc-15gz0d8\" }) `height:auto;width:100%;max-width:${getColumnsWidthForBreakpoint(24, Breakpoints.b2560)};margin-top:${(props) => props.theme.size.dynamic0350};margin-bottom:${(props) => props.theme.size.dynamic0350};margin-right:auto;margin-left:auto;background-color:${({ theme }) => theme.colors.background.primary};pointer-events:auto;`;\nfunction isHTMLElement(element) {\n return element.click !== undefined;\n}\n/*\n The StyledScrollWrapper needs to be as big as the screen to allow the scroll behaviour\n with empty space above the content. But this StyledScrollWrapper prevents click events from targeting\n the ShimLayer which should be a sibling of this layer.\n (This is only a issue in chrome: https://bugs.chromium.org/p/chromium/issues/detail?id=818444)\n This function allows us to have a scroll wrapper that is as big as the whole screen.\n*/\nfunction preventClickCapture(event) {\n const target = event.currentTarget;\n target.style.pointerEvents = 'none';\n const newTarget = document.elementFromPoint(event.clientX, event.clientY);\n if (newTarget && isHTMLElement(newTarget)) {\n newTarget.click();\n }\n target.style.pointerEvents = '';\n}\nfunction InternalContentLayer(props) {\n const { active, ariaLabel, ariaDescribedBy, ariaLabelledBy, children, in: visible, onExited, scrollElementRef, withoutHeader, } = props;\n const commonProps = getCommonProps(props);\n return (React.createElement(CSSTransition, { classNames: animationClassName, onExited: onExited, in: visible, timeout: parseInt(props.theme.animation.duration.layer || '0', 10) },\n React.createElement(StyledScrollWrapper, Object.assign({ onClick: preventClickCapture, ref: scrollElementRef }, commonProps),\n React.createElement(StyledLayer, { role: \"dialog\", \"aria-modal\": active, \"aria-describedby\": ariaDescribedBy, \"aria-label\": ariaLabel, \"aria-labelledby\": ariaLabelledBy, \n // The propagation of the events needs to be stopped here to prevent the\n // StyledScrollWrapper to detect a click for child elements\n onClick: (event) => event.stopPropagation() },\n !withoutHeader && (React.createElement(ContentLayerV2Content, { ariaLabelledBy: ariaLabelledBy, closeButtonLabel: props.closeButtonLabel, contentHeadline: props.contentHeadline, onClose: props.onClose, disableDefaultPadding: props.disableDefaultPadding }, children)),\n withoutHeader && children))));\n}\nexport const ContentLayerV2 = withTheme(InternalContentLayer);\nexport * from './content-layer-v2-content';\n","import * as React from 'react';\nimport { styled, ThemeProvider } from '../theme-provider';\nimport { getCommonProps } from '../helpers/common-props';\nconst StyledWrapper = styled.div.withConfig({ displayName: \"StyledWrapper\", componentId: \"sc-10z2z34\" }) `--font-family-head:vw-head,Helvetica,Arial,sans-serif;--font-family-text:vw-text,Helvetica,Arial,sans-serif;word-break:initial;hyphens:initial;font-style:initial;:lang(ko),:lang(zh),:lang(zh-tw),:lang(ja){font-style:normal;}:lang(ko){--font-family-head:vw-head,Apple SD Gothic Neo,BonGothic,\\uB9D1\\uC740 \\uACE0\\uB515,Malgun Gothic,\\uAD74\\uB9BC,Gulim,\\uB3CB\\uC6C0,Dotum,Helvetica Neue,Helvetica,Arial,sans-serif;--font-family-text:vw-text,Apple SD Gothic Neo,BonGothic,\\uB9D1\\uC740 \\uACE0\\uB515,Malgun Gothic,\\uAD74\\uB9BC,Gulim,\\uB3CB\\uC6C0,Dotum,Helvetica Neue,Helvetica,Arial,sans-serif;word-break:keep-all;hyphens:auto;}:lang(zh){--font-family-head:vw-head,\\u534E\\u6587\\u7EC6\\u9ED1,STXihei,PingFang TC,\\u5FAE\\u8F6F\\u96C5\\u9ED1\\u4F53,Microsoft YaHei New,\\u5FAE\\u8F6F\\u96C5\\u9ED1,Microsoft Yahei,\\u5B8B\\u4F53,SimSun,Helvetica Neue,Helvetica,Arial,sans-serif;--font-family-text:vw-text,\\u534E\\u6587\\u7EC6\\u9ED1,STXihei,PingFang TC,\\u5FAE\\u8F6F\\u96C5\\u9ED1\\u4F53,Microsoft YaHei New,\\u5FAE\\u8F6F\\u96C5\\u9ED1,Microsoft Yahei,\\u5B8B\\u4F53,SimSun,Helvetica Neue,Helvetica,Arial,sans-serif;}:lang(zh-tw){--font-family-head:vw-head,Helvetica Neue,Helvetica,Arial,sans-serif;--font-family-text:vw-text,Helvetica Neue,Helvetica,Arial,sans-serif;}:lang(ja){--font-family-head:vw-head,\\u30D2\\u30E9\\u30AD\\u3099\\u30CE\\u89D2\\u30B3\\u3099 Pro W3,Hiragino Kaku Gothic Pro,Osaka,\\u30E1\\u30A4\\u30EA\\u30AA,Meiryo,MS P\\u30B3\\u3099\\u30B7\\u30C3\\u30AF,MS PGothic,Helvetica Neue,Helvetica,Arial,sans-serif;--font-family-text:vw-text,\\u30D2\\u30E9\\u30AD\\u3099\\u30CE\\u89D2\\u30B3\\u3099 Pro W3,Hiragino Kaku Gothic Pro,Osaka,\\u30E1\\u30A4\\u30EA\\u30AA,Meiryo,MS P\\u30B3\\u3099\\u30B7\\u30C3\\u30AF,MS PGothic,Helvetica Neue,Helvetica,Arial,sans-serif;}:lang(vi){--font-family-head:roboto-vi,Helvetica Neue,Helvetica,Arial,sans-serif;--font-family-text:roboto-vi,Helvetica Neue,Helvetica,Arial,sans-serif;}font-family:var(--font-family-text);`;\nexport const Language = (props) => {\n const { children, direction, language, tag } = props;\n const commonProps = getCommonProps(props);\n return (React.createElement(ThemeProvider, { language: language, direction: direction },\n React.createElement(StyledWrapper, Object.assign({ as: tag, lang: language, dir: direction }, commonProps), children)));\n};\n","import * as React from 'react';\nimport { styled, ThemeProvider } from '../../theme-provider';\nimport { IntegratorRoot } from '../../integrator-root';\nimport { Language } from '../../language';\nconst StyledDemoIntegratorRoot = styled.div.withConfig({ displayName: \"StyledDemoIntegratorRoot\", componentId: \"sc-1t925xi\" }) `margin:0;position:relative;@font-face{font-family:'vw-head';font-weight:400;src:url('./public/fonts/vwhead-regular.woff2')format('woff2'),url('/public/fonts/vwhead-regular.woff2')format('woff2');}@font-face{font-family:'vw-head';font-weight:400;font-style:italic;src:url('./public/fonts/vwhead-regularitalic.woff2')format('woff2'),url('/public/fonts/vwhead-regularitalic.woff2')format('woff2');}@font-face{font-family:'vw-head';font-weight:700;src:url('./public/fonts/vwhead-bold.woff2')format('woff2'),url('/public/fonts/vwhead-bold.woff2')format('woff2');}@font-face{font-family:'vw-head';font-weight:700;font-style:italic;src:url('./public/fonts/vwhead-bolditalic.woff2')format('woff2'),url('/public/fonts/vwhead-bolditalic.woff2')format('woff2');}@font-face{font-family:'vw-head';font-weight:800;src:url('./public/fonts/vwhead-extrabold.woff2')format('woff2'),url('/public/fonts/vwhead-extrabold.woff2')format('woff2');}@font-face{font-family:'vw-head';font-weight:200;src:url('./public/fonts/vwhead-light.woff2')format('woff2'),url('/public/fonts/vwhead-light.woff2')format('woff2');}@font-face{font-family:'vw-text';font-weight:400;src:url('./public/fonts/vwtext-regular.woff2')format('woff2'),url('/public/fonts/vwtext-regular.woff2')format('woff2');}@font-face{font-family:'vw-text';font-weight:400;font-style:italic;src:url('./public/fonts/vwtext-regularitalic.woff2')format('woff2'),url('/public/fonts/vwtext-regularitalic.woff2')format('woff2');}@font-face{font-family:'vw-text';font-weight:700;src:url('./public/fonts/vwtext-bold.woff2')format('woff2'),url('/public/fonts/vwtext-bold.woff2')format('woff2');}@font-face{font-family:'vw-text';font-weight:700;font-style:italic;src:url('./public/fonts/vwtext-bolditalic.woff2')format('woff2'),url('/public/fonts/vwtext-bolditalic.woff2')format('woff2');}@font-face{font-family:'vw-text';font-weight:200;src:url('./public/fonts/vwtext-light.woff2')format('woff2'),url('/public/fonts/vwtext-light.woff2')format('woff2');}@font-face{font-family:'vw-head-ar';font-weight:700;src:url('./public/fonts/HelveticaNeueArabicBD.woff')format('woff'),url('/public/fonts/HelveticaNeueArabicBD.woff')format('woff');}@font-face{font-family:'vw-text-ar';font-weight:400;src:url('./public/fonts/HelveticaNeueArabicLT.woff')format('woff'),url('/public/fonts/HelveticaNeueArabicLT.woff')format('woff');}@font-face{font-family:'roboto-vi';font-weight:200;src:url('./public/fonts/roboto-v20-vietnamese_latin-300.woff2')format('woff2'),url('/public/fonts/roboto-v20-vietnamese_latin-300.woff2')format('woff2');}@font-face{font-family:'roboto-vi';font-weight:400;src:url('./public/fonts/roboto-v20-vietnamese_latin-regular.woff2')format('woff2'),url('/public/fonts/roboto-v20-vietnamese_latin-regular.woff2')format('woff2');}@font-face{font-family:'roboto-vi';font-weight:700;src:url('./public/fonts/roboto-v20-vietnamese_latin-700.woff2')format('woff2'),url('/public/fonts/roboto-v20-vietnamese_latin-700.woff2')format('woff2');}background:${(props) => props.hasBackgroundImage\n ? `url(./public/component-files/demo/blurred.png), url(/public/component-files/demo/blurred.png)`\n : props.theme.colors.background.primary};color:${({ theme }) => theme.colors.content.primary};background-size:cover;`;\nStyledDemoIntegratorRoot.displayName = 'StyledDemoIntegratorRoot';\nconst StyledDemoGrid = styled.div.withConfig({ displayName: \"StyledDemoGrid\", componentId: \"sc-rqh7f8\" }) `display:block;position:absolute;top:0;left:0;bottom:0;right:0;pointer-events:none;z-index:100;height:100%;background:repeating-linear-gradient(\\n\\t\\tto right,\\n\\t\\trgba(255, 194, 244, 0.1) 0%,\\n\\t\\trgba(255, 194, 244, 0.1) ${100 / 24}%,\\n\\t\\trgba(255, 194, 244, 0.3) ${100 / 24}%,\\n\\t\\trgba(255, 191, 244, 0.3) ${(100 / 24) * 2}%,\\n\\t\\trgba(255, 194, 244, 0.1) ${(100 / 24) * 2}%\\n\\t);max-width:2560px;margin:auto;`;\n/**\n * DemoIntegratorRoot component\n *\n * Provides a wrapper element for component demos. This wrapper includes styles as well as global definitions like theme definitions.\n *\n * @param props Component properties\n */\nexport const DemoIntegratorRoot = (props) => {\n const { children, direction = 'ltr', theme = 'main', showGrid, language = '', } = props;\n return (React.createElement(IntegratorRoot, null,\n React.createElement(ThemeProvider, { theme: theme },\n React.createElement(StyledDemoIntegratorRoot, { hasBackgroundImage: theme === 'image' },\n showGrid && React.createElement(StyledDemoGrid, null),\n React.createElement(Language, { language: language, direction: direction }, children)))));\n};\n","import * as React from 'react';\nimport { withTheme } from 'styled-components';\nconst copy = {\n ko: `국군의 조직과 편성은 법률로 정한다. 모든 국민의 재산권은 보장된다. 제3항의 승인을 얻지 못한 때에는 그 처분 또는 명령은 그때부터 효력을 상실한다.`,\n zh: `支转有点身头办局线越,越好实集调识已看,斗构杨加秧干图I。 派阶该还决真起设置火,列斯越历适元快积种公,属型材政报志龙将\n\t\t任面受至据料连专型,族九期图素信识作王,般蠢镰争I英肃。意后需每段等华交三,就义论油新统快,况法8还来但。`,\n [`zh-tw`]: `跑人日代的體理書保現可學房,找次統活同持不大當帶的自特著子好大學在老聽利教大有腦速意心生響年近健教點整聯期學朋友立量,\n\t\t比時月於本主,巴它社你青化位個動像建立克國善用的團,於長居。`,\n ja: `7毎記ぼリ謙球げんごレ望過ムテヲ役少防ユカヒモ併人クテ帳画ラホタ木規将ケマトル滞握モヱワス権来ミサ医方品りすぎラ。`,\n vi: `Những tin tức hữu ích giành cho khách hàng: Với Volkswagen, bạn có thể mang cả phong cách của chiếc xe vào cuộc\n\t\tsống hằng ngày. Khám phá nhiều hơn về chiếc xe của bạn và chất lượng dịch vụ của chúng tôi tại đây`,\n ar: `و سأعرض مثال حي لهذا، من منا لم يتحمل جهد بدني شاق إلا من أجل الحصول على ميزة أو فائدة؟ ولكن من لديه الحق أن\n\t\tينتقد شخص ما أراد أن يشعر بالسعادة التي لا تشوبها عواقب أليمة أو آخر أراد أن يتجنب الألم الذي ربما تنجم عنه بعض\n\t\tالمتعة ؟`,\n en: `Lorem ipsum dolor sit amet, consectetur adipisicing elit. Amet incidunt aut voluptatum autem voluptates ea\n\t\tnumquam cupiditate deleniti unde.`,\n};\nexport const DemoPlaceholderText = withTheme(({ theme }) => (React.createElement(React.Fragment, null, copy[theme.language || 'en'] || copy.en)));\nexport const ShortDemoPlaceholderText = withTheme(({ theme }) => (React.createElement(React.Fragment, null, (copy[theme.language || 'en'] || copy.en).substring(0, 20))));\nexport const LongDemoPlaceholderText = withTheme(({ theme }) => (React.createElement(React.Fragment, null, (copy[theme.language || 'en'] || copy.en).repeat(10))));\n","import * as React from 'react';\nimport { warnWithTrace } from '../helpers/logger';\nconst NO_NAME = 'Component';\n// Actually the `defaultProps` should also be excluded for the hoisting of static\n// properties on components. But there are components that access the `defaultProps`\n// from other components to acquire an own default setting. This is not a good\n// practice. But this is a deprecation component, so you shouldn't refactor other\n// components to deprecate them, therefore `defaultProps` gets hoisted as well\n// for compatibility reasons.\nconst REACT_STATICS = {\n childContextTypes: true,\n contextTypes: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true,\n};\nconst KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true,\n};\nconst getPrototypeOf = Object.getPrototypeOf;\nconst objectPrototype = getPrototypeOf && getPrototypeOf(Object);\n/**\n * Hoist statics excluding known (react) statics and built-ins.\n *\n * This method compared to https://github.com/mridgway/hoist-non-react-statics ignores\n * symbols and `defaultProps` for compatibility reasons with our LSG.\n */\nfunction hoistNonReactStatics(targetComponent, sourceComponent) {\n if (objectPrototype) {\n const inheritedComponent = getPrototypeOf(sourceComponent);\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent);\n }\n }\n const keys = Object.getOwnPropertyNames(sourceComponent);\n keys.forEach((key) => {\n if (!REACT_STATICS[key] && !KNOWN_STATICS[key]) {\n const descriptor = Object.getOwnPropertyDescriptor(sourceComponent, key);\n if (descriptor) {\n // Avoid failures from read-only properties\n try {\n Object.defineProperty(targetComponent, key, descriptor);\n }\n catch (e) {\n // Ignore errors\n }\n }\n }\n });\n return targetComponent;\n}\n/**\n * Extract the display name of the component\n */\nfunction getDisplayName(WrappedComponent) {\n return WrappedComponent.displayName || WrappedComponent.name || NO_NAME;\n}\n/**\n * Create the deprecation message for component deprecation\n */\nfunction createComponentMessage(component, value) {\n return [\n typeof value !== 'string'\n ? `The component \"${getDisplayName(component)}\" is deprecated.`\n : value,\n ];\n}\n/**\n * Determine the basic prop deprecation message\n */\nfunction getBaseMessage(prop, name) {\n return `The prop \"${prop}\" on component \"${name || NO_NAME}\" is deprecated.`;\n}\n/**\n * Create the deprecation message for component props deprecation\n */\nfunction createComponentPropsMessage(component, value, props) {\n return value.reduce((result, descriptor) => {\n const [prop, message = ''] = (Array.isArray(descriptor) ? descriptor : [descriptor]);\n const deprecationMessage = message || getBaseMessage(prop, component.name);\n if (typeof prop === 'string' &&\n Object.prototype.hasOwnProperty.call(props, prop)) {\n return [...result, deprecationMessage];\n }\n return result;\n }, []);\n}\n/**\n * Wrap a function to create a deprecation wrapper to show warnings on function call\n */\nfunction createDeprecatedFunction(sfc, config) {\n const getMessageFactory = (props) => Array.isArray(config)\n ? createComponentPropsMessage(sfc, config, props)\n : createComponentMessage(sfc, config);\n const wrapper = (props, context) => {\n warnWithTrace(...getMessageFactory(props));\n return sfc.call(null, props, context);\n };\n const propertyDescriptor = Object.getOwnPropertyDescriptor(wrapper, 'name');\n if (propertyDescriptor && propertyDescriptor.configurable) {\n Object.defineProperty(wrapper, 'name', { writable: true, value: sfc.name });\n }\n return wrapper;\n}\n/**\n * Create a method decorator descriptor for deprecated component methods.\n */\nfunction createDeprecatedMethodDescriptor(target, args, value) {\n const [name, descriptor] = args;\n const original = descriptor.value;\n if (typeof original === 'function') {\n descriptor.value = (...vargs) => {\n warnWithTrace(value ||\n `The method \"${name}\" called on component \"${target.constructor.name || NO_NAME}\" is deprecated.`);\n return original.apply(target, vargs);\n };\n }\n return descriptor;\n}\n/**\n * Create deprecation warnings for a component or properties defined on that component.\n */\nfunction createDeprecatedComponent(WrappedComponent, config) {\n const getMessageFactory = (props) => Array.isArray(config)\n ? createComponentPropsMessage(WrappedComponent, config, props)\n : createComponentMessage(WrappedComponent, config);\n class Deprecated extends React.Component {\n componentDidMount() {\n warnWithTrace(...getMessageFactory(this.props));\n }\n componentDidUpdate() {\n warnWithTrace(...getMessageFactory(this.props));\n }\n render() {\n return React.createElement(WrappedComponent, Object.assign({}, this.props));\n }\n }\n Deprecated.displayName = `Deprecated(${getDisplayName(WrappedComponent)})`;\n hoistNonReactStatics(Deprecated, WrappedComponent);\n const propertyDescriptor = Object.getOwnPropertyDescriptor(Deprecated, 'name');\n if (propertyDescriptor && propertyDescriptor.configurable) {\n Object.defineProperty(Deprecated, 'name', {\n value: getDisplayName(WrappedComponent),\n });\n }\n return Deprecated;\n}\n/**\n * @deprecated The deprecated function is deprecated. Please use the @deprecated flag.\n */\nexport function deprecated(value, config) {\n // Direct function wrapper\n if (typeof value === 'function') {\n return createDeprecatedFunction(value, config);\n }\n // A class or method decorator\n return (target, name, descriptor) => {\n if (name && descriptor) {\n if (value && typeof value !== 'string') {\n throw new TypeError(`A method decorator can only take a string as optional error message! Type ${typeof value} given.`);\n }\n return createDeprecatedMethodDescriptor(target, [name, descriptor], value);\n }\n return createDeprecatedComponent(target, value);\n };\n}\n","import * as React from 'react';\nimport styled, { withTheme } from 'styled-components';\nimport { CSSTransition } from 'react-transition-group';\nimport { Breakpoints } from '../helpers/breakpoint';\nimport { ThemeProvider } from '../theme-provider';\nimport { getCommonProps } from '../helpers/common-props';\nconst animationClassName = 'animation';\nconst animationTimeout = (props) => props.theme.animation.duration.layer;\nconst animationTimingFunction = (props) => props.theme.animation.timingFunction.in;\nconst StyledDisclaimerLayer = styled.div.withConfig({ displayName: \"StyledDisclaimerLayer\", componentId: \"sc-1km1zxh\" }) `position:fixed;bottom:0;left:0;right:0;overflow-y:auto;-webkit-overflow-scrolling:touch;display:flex;flex-flow:column;align-self:flex-end;max-height:40vh;width:100%;background-color:${({ appearance }) => appearance === 'dark' ? 'rgba(0, 0, 0, 0.85)' : 'rgba(255,255,255, 1)'};@media (min-width: ${Breakpoints.b560}px){margin:0 auto;width:${(props) => props.theme.size.grid020};max-height:25vh;}box-shadow:${({ theme }) => theme.colors.shadow.variant3};opacity:1;transform:translateY(0);transition:opacity ${animationTimeout} ${animationTimingFunction},transform ${animationTimeout} ${animationTimingFunction};@media (prefers-reduced-motion){transition:opacity ${animationTimeout} ${animationTimingFunction};}&.${animationClassName}-exit{opacity:1;transform:translateY(0);}&.${animationClassName}-enter,&.${animationClassName}-exit-active,&.${animationClassName}-exit-done{opacity:0;transform:translateY(100%);}&.${animationClassName}-enter-active{opacity:1;transform:translateY(0);}`;\nfunction InternalDisclaimerLayer(props) {\n const { children, theme, in: visible, onExited, scrollElementRef, appearance = 'dark', ariaLabel, ariaLabelledBy, } = props;\n const commonProps = getCommonProps(props);\n return (React.createElement(CSSTransition, { classNames: animationClassName, onExited: onExited, in: visible, timeout: parseInt(theme.animation.duration.layer || '0', 10) },\n React.createElement(ThemeProvider, { theme: appearance === 'dark' ? 'inverted' : 'main' },\n React.createElement(StyledDisclaimerLayer, Object.assign({ role: \"dialog\", ref: scrollElementRef, appearance: appearance }, commonProps, { \"aria-labelledby\": ariaLabelledBy, \"aria-label\": ariaLabel }), children))));\n}\nexport const DisclaimerLayer = withTheme(InternalDisclaimerLayer);\n","import * as React from 'react';\nimport { Text, TextTag, TokenTextAppearance, TokenTextColor } from '../text';\nimport { styled } from '../theme-provider';\nimport { getCommonProps } from '../helpers/common-props';\nconst StyledDL = styled.dl.withConfig({ displayName: \"StyledDL\", componentId: \"sc-190wmkf\" }) `display:grid;grid-row-gap:${(props) => props.theme.size.static200};margin:0;padding:0;`;\n// NOTE: anim definition taken from CMS helpers\nconst ANIMATION_FUNCTION = '0.3s cubic-bezier(0.14, 1.12, 0.67, 0.99)';\nconst StyledDisclaimerFocusWrapper = styled.div.withConfig({ displayName: \"StyledDisclaimerFocusWrapper\", componentId: \"sc-z5dark\" }) `position:relative;display:grid;grid-template-columns:${(props) => props.theme.size.static370} auto;grid-column-gap:${(props) => props.theme.size.static150};outline:0;&:before{content:'';position:absolute;left:-${(props) => props.theme.size.static150};right:-${(props) => props.theme.size.static150};top:-${(props) => props.theme.size.static100};bottom:-${(props) => props.theme.size.static100};margin:-2px;border:solid 2px ${(props) => props.theme.colors.border.active};border-radius:2px;pointer-events:none;opacity:0;transition:opacity ${ANIMATION_FUNCTION};}&:focus{&:before{opacity:1;}}`;\nconst StyledUL = styled.ul.withConfig({ displayName: \"StyledUL\", componentId: \"sc-zddhd0\" }) `display:grid;grid-row-gap:${(props) => props.theme.size.static200};list-style:none;margin:0;padding:0;`;\nconst checkReferences = (disclaimers) => Boolean(disclaimers.find((disclaimer) => Boolean(disclaimer.reference)));\nconst getIndexWithPrefix = (index) => {\n return `disclaimerRef-${index}`;\n};\nconst InnerSingleDisclaimer = (props) => {\n const { disclaimer, hasReferences } = props;\n return (React.createElement(React.Fragment, null, hasReferences ? (React.createElement(StyledDisclaimerFocusWrapper, { key: disclaimer.key, ref: props.innerRef, tabIndex: -1 },\n React.createElement(Text, { tag: TextTag.dt, appearance: TokenTextAppearance.copy100, color: TokenTextColor.secondary }, disclaimer.reference),\n React.createElement(Text, { tag: TextTag.dd, appearance: TokenTextAppearance.copy100, color: TokenTextColor.secondary }, disclaimer.text))) : (React.createElement(Text, { key: disclaimer.key, tag: TextTag.li, appearance: TokenTextAppearance.copy100, color: TokenTextColor.secondary }, disclaimer.text))));\n};\nexport const SingleDisclaimer = React.forwardRef((props, ref) => React.createElement(InnerSingleDisclaimer, Object.assign({}, props, { innerRef: ref })));\nexport const DisclaimersContainer = (props) => {\n const { children, hasReferences } = props;\n const commonProps = getCommonProps(props);\n return (React.createElement(\"div\", Object.assign({}, commonProps), hasReferences ? (React.createElement(StyledDL, { \"data-component\": \"disclaimer\" }, children)) : (React.createElement(StyledUL, { \"data-component\": \"disclaimer\" }, children))));\n};\nexport const Disclaimers = (props) => {\n const { disclaimers } = props;\n const hasReferences = checkReferences(disclaimers);\n return (React.createElement(DisclaimersContainer, Object.assign({}, props, { hasReferences: hasReferences }), disclaimers.map((d, index) => (React.createElement(SingleDisclaimer, { disclaimer: d, hasReferences: hasReferences, key: d.key || getIndexWithPrefix(index) })))));\n};\n","import * as React from 'react';\nexport var ExternalLink = React.forwardRef(Object.assign(function (props, forwardRef) {\n var variant = props.variant || \"default\";\n if (variant === \"default\") {\n return React.createElement(\"svg\", { className: props.className, \"aria-hidden\": props.ariaHidden, role: props.ariaHidden ? undefined : \"img\", tabIndex: props.tabIndex, \"aria-label\": props.ariaLabel, ref: forwardRef, xmlns: \"http://www.w3.org/2000/svg\", width: \"24\", height: \"24\", viewBox: \"0 0 24 24\", fill: \"currentColor\" },\n props.title && React.createElement(\"title\", null, props.title),\n React.createElement(\"path\", { d: \"M23.489.483c-.621-.611-.728-.645-10.934-.085l.184 3.39c2.268-.123 4.02-.338 5.427-.39L7.635 13.866l2.398 2.408L20.562 5.777c-.061 1.34-.265 3.162-.404 5.404l3.394.21c.623-10.06.591-10.237-.063-10.908\" }),\n React.createElement(\"path\", { d: \"M19.6 15.014h3.398V24H0V1h9v3.395H3.399v16.21H19.6Z\" }));\n }\n return null;\n}, { displayName: 'ExternalLink' }));\n","import * as React from 'react';\nimport { ExternalLink } from '@volkswagen-onehub/icons-core';\nimport { styled } from '../theme-provider';\nimport { getCommonProps } from '../helpers/common-props';\nconst StyledExternalLinkIndicator = styled(ExternalLink).withConfig({ displayName: \"StyledExternalLinkIndicator\", componentId: \"sc-1wpzb1v\" }) `border:0;width:0.85em;height:0.7em;${(props) => props.theme.direction === 'rtl' && `transform: scale(-1, 1);`}`;\nexport const ExternalLinkIndicator = (props) => {\n const commonProps = getCommonProps(props);\n return (React.createElement(StyledExternalLinkIndicator, Object.assign({ variant: \"default\" }, (props.title ? { title: props.title } : { ariaHidden: true }), commonProps)));\n};\n","import * as React from 'react';\nimport { getCommonProps } from '../helpers/common-props';\nimport { styled } from '../theme-provider';\nconst StyledFadeWrapper = styled.div.withConfig({ displayName: \"StyledFadeWrapper\", componentId: \"sc-4rg3xe\" }) `opacity:${(props) => props.animatedOpacity};transform:${(props) => props.animatedTransform};`;\nStyledFadeWrapper.displayName = 'StyledFadeWrapper';\nconst DEFAULT_TRANSLATION = 'translate(0,0)';\nexport const getTransform = ({ directionFrom, distance, }) => {\n if (!directionFrom || !distance) {\n return {\n startTransform: DEFAULT_TRANSLATION,\n endTransform: DEFAULT_TRANSLATION,\n };\n }\n const xAxisSign = directionFrom === 'left' ? -1 : 1;\n const yAxisSign = directionFrom === 'top' ? -1 : 1;\n const xAxis = directionFrom === 'left' || directionFrom === 'right' ? distance : '0px';\n const yAxis = directionFrom === 'top' || directionFrom === 'bottom' ? distance : '0px';\n return {\n startTransform: `translate(calc(${xAxisSign} * ${xAxis}), calc(${yAxisSign} * ${yAxis}))`,\n endTransform: DEFAULT_TRANSLATION,\n };\n};\nexport const getOpacity = (fadeMode) => {\n switch (fadeMode) {\n case 'disable':\n return {\n startOpacity: 1,\n endOpacity: 1,\n };\n case 'invert':\n return {\n startOpacity: 1,\n endOpacity: 0,\n };\n default:\n return {\n startOpacity: 0,\n endOpacity: 1,\n };\n }\n};\nexport const handleIntersectionObserver = (entries, setter) => {\n const [entry] = entries;\n if (entry.isIntersecting) {\n setter((prevState) => (prevState === 'init' ? 'running' : prevState));\n }\n};\nexport const Fade = (props) => {\n const { children, delay = 0, duration = 400, easing = 'linear', disableAnimation = false, directionFrom, distance, fraction = 0, fadeMode = 'normal', onReveal, } = props;\n const [animationState, setAnimationState] = React.useState(disableAnimation ? 'none' : 'init');\n const commonProps = getCommonProps(props);\n const fadeRef = React.useRef(null);\n const { startTransform, endTransform } = getTransform({\n directionFrom,\n distance,\n });\n const { startOpacity, endOpacity } = getOpacity(fadeMode);\n const getAnimationKeyframes = React.useCallback(() => {\n return [\n {\n opacity: startOpacity,\n transform: startTransform,\n },\n {\n opacity: endOpacity,\n transform: endTransform,\n },\n ];\n }, [startOpacity, startTransform, endOpacity, endTransform]);\n const getAnimationOptions = React.useCallback(() => {\n return {\n delay,\n duration,\n easing,\n };\n }, [delay, duration, easing]);\n React.useEffect(() => {\n if (!fadeRef.current || animationState !== 'running') {\n return;\n }\n const animation = fadeRef.current.animate(getAnimationKeyframes(), getAnimationOptions());\n animation.addEventListener('finish', () => {\n setAnimationState('finished');\n onReveal === null || onReveal === void 0 ? void 0 : onReveal();\n });\n return () => {\n setAnimationState('finished');\n animation.removeEventListener('finish', () => {\n setAnimationState('finished');\n onReveal === null || onReveal === void 0 ? void 0 : onReveal();\n });\n };\n }, [animationState, getAnimationOptions, getAnimationKeyframes, onReveal]);\n React.useEffect(() => {\n if (!fadeRef.current || animationState !== 'init') {\n return;\n }\n const intersectionObserverOptions = {\n threshold: fraction,\n };\n const io = new IntersectionObserver((entries) => handleIntersectionObserver(entries, setAnimationState), intersectionObserverOptions);\n io.observe(fadeRef.current);\n return () => {\n io.disconnect();\n };\n }, [animationState, fraction]);\n React.useEffect(() => {\n setAnimationState(disableAnimation ? 'none' : 'init');\n }, [disableAnimation]);\n const animatedOpacity = animationState !== 'finished' ? startOpacity : endOpacity;\n const animatedTransform = animationState !== 'finished' ? startTransform : endTransform;\n return animationState === 'none' ? (React.createElement(React.Fragment, null, children)) : (React.createElement(StyledFadeWrapper, Object.assign({ ref: fadeRef, animatedOpacity: animatedOpacity, animatedTransform: animatedTransform }, commonProps), children));\n};\n","import * as React from 'react';\nimport { Container, ContainerGutter, ContainerWrap } from '../container';\nimport { styled } from '../theme-provider';\nimport { getCommonProps } from '../helpers/common-props';\nconst StyledFigure = styled.figure.withConfig({ displayName: \"StyledFigure\", componentId: \"sc-1fg4r0g\" }) `margin:0;`;\nStyledFigure.displayName = 'StyledFigure';\nexport const Figure = (props) => {\n const { caption, captionAboveMedia, children } = props;\n const commonProps = getCommonProps(props);\n return (React.createElement(StyledFigure, Object.assign({}, commonProps),\n React.createElement(Container, { gutter: ContainerGutter.dynamic0020, wrap: ContainerWrap.always },\n caption && captionAboveMedia && React.createElement(\"figcaption\", null, caption),\n children,\n caption && !captionAboveMedia && React.createElement(\"figcaption\", null, caption))));\n};\nFigure.displayName = 'Figure';\n","import * as React from 'react';\nexport var Add = React.forwardRef(Object.assign(function (props, forwardRef) {\n var variant = props.variant || \"default\";\n if (variant === \"small\") {\n return React.createElement(\"svg\", { className: props.className, \"aria-hidden\": props.ariaHidden, role: props.ariaHidden ? undefined : \"img\", tabIndex: props.tabIndex, \"aria-label\": props.ariaLabel, ref: forwardRef, xmlns: \"http://www.w3.org/2000/svg\", width: \"12\", height: \"12\", viewBox: \"0 0 12 12\", fill: \"currentColor\" },\n props.title && React.createElement(\"title\", null, props.title),\n React.createElement(\"path\", { d: \"M11 5.3H6.7V1H5.3v4.3H1v1.4h4.3V11h1.4V6.7H11z\" }));\n }\n if (variant === \"large\") {\n return React.createElement(\"svg\", { className: props.className, \"aria-hidden\": props.ariaHidden, role: props.ariaHidden ? undefined : \"img\", tabIndex: props.tabIndex, \"aria-label\": props.ariaLabel, ref: forwardRef, xmlns: \"http://www.w3.org/2000/svg\", width: \"48\", height: \"48\", viewBox: \"0 0 48 48\", fill: \"currentColor\" },\n props.title && React.createElement(\"title\", null, props.title),\n React.createElement(\"path\", { d: \"M42.02 23H25V5.98h-2V23H5.98v2H23v17.02h2V25h17.02z\" }));\n }\n if (variant === \"default\") {\n return React.createElement(\"svg\", { className: props.className, \"aria-hidden\": props.ariaHidden, role: props.ariaHidden ? undefined : \"img\", tabIndex: props.tabIndex, \"aria-label\": props.ariaLabel, ref: forwardRef, xmlns: \"http://www.w3.org/2000/svg\", width: \"24\", height: \"24\", viewBox: \"0 0 24 24\", fill: \"currentColor\" },\n props.title && React.createElement(\"title\", null, props.title),\n React.createElement(\"path\", { d: \"M21 11.3h-8.3V3h-1.4v8.3H3v1.4h8.3V21h1.4v-8.3H21z\" }));\n }\n return null;\n}, { displayName: 'Add' }));\n","import * as React from 'react';\nimport { Add, Checkmark } from '@volkswagen-onehub/icons-core';\nimport { styled } from '../theme-provider';\nconst StyledAddIcon = styled(Add).withConfig({ displayName: \"StyledAddIcon\", componentId: \"sc-9ijgpp\" }) `transition:transform 300ms ease;transform:${({ active, iconPosition }) => active && iconPosition === 'end' ? 'rotate(45deg)' : 'rotate(0)'};`;\nexport const Icon = ({ active, iconPosition, }) => {\n if (iconPosition === 'start' && !active)\n return React.createElement(Add, { variant: \"small\", ariaHidden: true });\n if (iconPosition === 'end')\n return (React.createElement(StyledAddIcon, { variant: \"small\", iconPosition: iconPosition, active: active, ariaHidden: true }));\n return React.createElement(Checkmark, { variant: \"small\", ariaHidden: true });\n};\n","import * as React from 'react';\nimport { css, styled } from '../theme-provider';\nimport { Icon } from './icon';\nimport { Text, TextTag, TokenTextAppearance, TokenTextColor } from '../text';\nimport { createA11yOutlineStyles } from '../helpers/a11y';\n//this object contains each variant's custom style\nconst styles = {\n primary: {\n selected: css `background:${({ theme }) => theme.colors.filter.on.default};color:${({ theme }) => theme.colors.content.inverted};&:hover:not(:disabled){background:${({ theme }) => theme.colors.filter.on.hover};}&:disabled{color:${({ theme }) => theme.colors.content.inverted};background:${({ theme }) => theme.colors.filter.on.disabled};}`,\n notSelected: css `color:${({ theme }) => theme.colors.content.active};background:${({ theme }) => theme.colors.filter.off.default};&:hover:not(:disabled){background:${({ theme }) => theme.colors.filter.off.hover};}&:disabled{color:${({ theme }) => theme.colors.content.secondary};background:${({ theme }) => theme.colors.filter.off.disabled};}`,\n },\n secondary: {\n selected: css `background:${({ theme }) => theme.colors.content.inverted};color:${({ theme }) => theme.colors.filter.on.default};border:${({ theme }) => theme.size.border.heavy} solid ${({ theme }) => theme.colors.filter.on.default};&:hover:not(:disabled){color:${({ theme }) => theme.colors.filter.on.hover};border:${({ theme }) => theme.size.border.heavy} solid ${({ theme }) => theme.colors.filter.on.hover};}&:disabled{color:${({ theme }) => theme.colors.content.secondary};border:${({ theme }) => theme.size.border.heavy} solid ${({ theme }) => theme.colors.border.divider};}`,\n notSelected: css `color:${({ theme }) => theme.colors.content.active};background:${({ theme }) => theme.colors.content.inverted};border:${({ theme }) => theme.size.border.light} solid ${({ theme }) => theme.colors.border.default};&:hover:not(:disabled){box-shadow:inset 0 0 0 ${({ theme }) => theme.size.line.default} ${({ theme }) => theme.colors.filter.off.hover};}&:not(:hover){transition:box-shadow ${({ theme }) => theme.animation.duration.layer} ease;-webkit-transition:box-shadow ${({ theme }) => theme.animation.duration.layer} ease;}&:disabled{color:${({ theme }) => theme.colors.content.secondary};border:${({ theme }) => theme.size.border.heavy} solid ${({ theme }) => theme.colors.border.divider};}`,\n },\n};\nconst outLineStyleFocus = css `&:focus-visible{${({ theme }) => createA11yOutlineStyles(theme, 'solid')};}&:focus:not(:focus-visible){outline:none;outline-offset:0;}`;\nconst StyledFilterTag = styled.button.withConfig({ displayName: \"StyledFilterTag\", componentId: \"sc-1tm4pjq\" }) `display:flex;align-items:center;flex-direction:${({ iconPosition }) => iconPosition === 'end' && 'row-reverse'};gap:${({ theme }) => theme.size.static150};justify-content:center;align-items:center;height:${({ theme }) => theme.size.static400};border-radius:${({ theme }) => theme.size.static150};border:none;cursor:pointer;padding:${({ theme }) => theme.size.static150} ${({ theme }) => theme.size.static200};&&&:disabled{cursor:not-allowed;}span{margin-top:${({ theme }) => theme.size.static0};::first-letter{text-transform:uppercase;}}${outLineStyleFocus} transition:background ${({ theme }) => theme.animation.duration.color} ease,color ${({ theme }) => theme.animation.duration.color} ease;${({ emphasis, active }) => \n// TS ignores default values for optional props, for this reason we need to whit for the props to be defined before using it as an index\nemphasis && styles[emphasis][active ? 'selected' : 'notSelected']};`;\nexport const FilterTag = ({ iconPosition = 'start', emphasis = 'primary', disabled = false, disabledReason, active = false, onClick, text, ariaPressed, 'data-testid': dataTestId = 'filterTag', uniqueAriaId, ariaLabel, }) => {\n const handleClick = (evt) => {\n onClick && onClick(evt);\n };\n return (React.createElement(StyledFilterTag, { \"aria-label\": ariaLabel, \"aria-pressed\": ariaPressed, active: active, onClick: handleClick, emphasis: emphasis, iconPosition: iconPosition, disabled: disabled, \"aria-describedby\": disabled ? uniqueAriaId : '', \"data-testid\": dataTestId },\n disabled && disabledReason && (React.createElement(\"span\", { id: uniqueAriaId, hidden: true }, disabledReason)),\n React.createElement(Icon, { iconPosition: iconPosition, active: active }),\n React.createElement(Text, { tag: TextTag.span, appearance: TokenTextAppearance.label150, color: TokenTextColor.inherit }, text)));\n};\nFilterTag.displayName = 'FilterTag';\n","import * as React from 'react';\nimport { getColumnsWidthForBreakpoint, getGridColumn } from '../helpers/grid';\nimport { compareBreakpoints, Breakpoints } from '../helpers/breakpoint';\nimport { styled } from '../theme-provider';\nimport { getCommonProps } from '../helpers/common-props';\nconst StyledContainer = styled.div.withConfig({ displayName: \"StyledContainer\", componentId: \"sc-13ur9q2\" }) `${(props) => {\n const sortedBreakpointsWithConfiguration = Object.keys(props.columns).sort(compareBreakpoints);\n const maxConfiguredBreakpoint = sortedBreakpointsWithConfiguration[sortedBreakpointsWithConfiguration.length - 1];\n const maxBreakpoint = Breakpoints.b2560;\n const maxWidthStyles = maxConfiguredBreakpoint &&\n `\n\t\t\t@media (min-width: ${maxBreakpoint}px) {\n\t\t\t\tmin-width: ${getColumnsWidthForBreakpoint(props.columns[maxConfiguredBreakpoint], maxBreakpoint)};\n\t\t\t\tmax-width: ${getColumnsWidthForBreakpoint(props.columns[maxConfiguredBreakpoint], maxBreakpoint)};\n\t\t\t}\n\t\t`;\n const perBreakpointStyles = sortedBreakpointsWithConfiguration\n .map((breakpoint) => {\n const columns = props.columns[breakpoint];\n const styles = `\n\t\t\t\tmin-width: ${getGridColumn(columns)};\n\t\t\t\tmax-width: ${getGridColumn(columns)};\n\t\t\t`;\n if (parseInt(breakpoint, 10) === Breakpoints.default) {\n return styles;\n }\n return `\n\t\t\t\t@media (min-width: ${breakpoint}px) {\n\t\t\t\t\t${styles}\n\t\t\t\t}\n\t\t\t`;\n })\n .join('\\n');\n return `\n\t\t\t${perBreakpointStyles}\n\t\t\t${maxWidthStyles}\n\t\t`;\n}} overflow:hidden;`;\nexport const FixedWidthContainer = (props) => {\n const { columns, children } = props;\n const commonProps = getCommonProps(props);\n const breakpointConfig = typeof columns === 'number' ? { [Breakpoints.default]: columns } : columns;\n return (React.createElement(StyledContainer, Object.assign({ columns: breakpointConfig }, commonProps), children));\n};\n","import * as React from 'react';\nimport { CSSTransition } from 'react-transition-group';\nimport { withTheme } from 'styled-components';\nimport { getColumnsWidthForBreakpoint, getGridColumn } from '../helpers/grid';\nimport { Breakpoints } from '../helpers/breakpoint';\nimport { css, styled } from '../theme-provider';\nimport { getCommonProps } from '../helpers/common-props';\n/**\n * Possible layer size variations\n */\nexport var FocusLayerSize;\n(function (FocusLayerSize) {\n /** small layer */\n FocusLayerSize[\"A\"] = \"A\";\n /** big layer */\n FocusLayerSize[\"B\"] = \"B\";\n /** even bigger layer */\n FocusLayerSize[\"C\"] = \"C\";\n /** layer without size */\n FocusLayerSize[\"NONE\"] = \"NONE\";\n})(FocusLayerSize || (FocusLayerSize = {}));\nconst animationClassName = 'animation';\nconst animationTimeout = (props) => props.theme.animation.duration.layer;\nconst animationTimingFunction = (props) => props.theme.animation.timingFunction.in;\nconst baseTransform = 'translate(-50%, -50%)';\nfunction calcLayerHeight(spacing) {\n return `calc(100% - ${spacing} * 2);`;\n}\nconst StyledLayer = styled.div.withConfig({ displayName: \"StyledLayer\", componentId: \"sc-ku0g94\" }) `position:absolute;top:50%;left:50%;overflow-y:auto;-webkit-overflow-scrolling:touch;${(props) => css `\n\t\tmax-height: ${calcLayerHeight(props.theme.size.static200)};\n\n\t\t@media (min-width: ${Breakpoints.b560}px) {\n\t\t\tmax-height: ${calcLayerHeight(props.theme.size.static300)};\n\t\t}\n\n\t\t@media (min-width: ${Breakpoints.b1600}px) {\n\t\t\tmax-height: ${calcLayerHeight(props.theme.size.static400)};\n\t\t}\n\n\t\t@media (min-width: ${Breakpoints.b2560}px) {\n\t\t\tmax-height: ${calcLayerHeight(props.theme.size.static510)};\n\t\t}\n\n\t\t${props.size === 'A' &&\n `width: ${getGridColumn(22)};\n\n\t\t\t@media (min-width: ${Breakpoints.b560}px) {\n\t\t\t\twidth: ${getGridColumn(20)};\n\t\t\t}\n\n\t\t\t@media (min-width: ${Breakpoints.b960}px) {\n\t\t\t\twidth: ${getGridColumn(16)};\n\t\t\t}\n\n\t\t\t@media (min-width: ${Breakpoints.b1280}px) {\n\t\t\t\twidth: ${getGridColumn(14)};\n\t\t\t}\n\n\t\t\t@media (min-width: ${Breakpoints.b1600}px) {\n\t\t\t\twidth: ${getGridColumn(12)};\n\t\t\t}\n\n\t\t\t@media (min-width: ${Breakpoints.b1920}px) {\n\t\t\t\twidth: ${getGridColumn(10)};\n\t\t\t}\n\n\t\t\t@media (min-width: ${Breakpoints.b2560}px) {\n\t\t\t\twidth: ${getColumnsWidthForBreakpoint(10, Breakpoints.b2560)};\n\t\t\t}`}\n\t\t${props.size === 'B' &&\n `width: ${getGridColumn(22)};\n\n\t\t\t@media (min-width: ${Breakpoints.b560}px) {\n\t\t\t\twidth: ${getGridColumn(20)};\n\t\t\t}\n\n\t\t\t@media (min-width: ${Breakpoints.b960}px) {\n\t\t\t\twidth: ${getGridColumn(16)};\n\t\t\t}\n\n\t\t\t@media (min-width: ${Breakpoints.b1600}px) {\n\t\t\t\twidth: ${getGridColumn(14)};\n\t\t\t}\n\n\t\t\t@media (min-width: ${Breakpoints.b1920}px) {\n\t\t\t\twidth: ${getGridColumn(12)};\n\t\t\t}\n\n\t\t\t@media (min-width: ${Breakpoints.b2560}px) {\n\t\t\t\twidth: ${getColumnsWidthForBreakpoint(12, Breakpoints.b2560)};\n\t\t\t}`}\n\t\t${props.size === 'C' &&\n `width: ${getGridColumn(24)};\n\t\t// layer size will be used with 16/9 images + navigation elements in it\n\t\t// therefore we try to maintain a roughly fitting aspect ratio for the layer\n\t\tmax-width: 135vh;\n\n\t\t\t@media (min-width: ${Breakpoints.b1280}px) {\n\t\t\t\twidth: ${getGridColumn(22)};\n\t\t\t}\n\n\t\t\t@media (min-width: ${Breakpoints.b1920}px) {\n\t\t\t\twidth: ${getGridColumn(20)};\n\t\t\t}`}\n\t`} background-color:${(props) => props.theme.colors.background.primary};opacity:1;transform:${baseTransform} translateY(0);transition:opacity ${(props) => animationTimeout(props)} ${(props) => animationTimingFunction(props)},transform ${(props) => animationTimeout(props)} ${(props) => animationTimingFunction(props)};&.${animationClassName}-exit{opacity:1;transform:${baseTransform} translateY(0);}&.${animationClassName}-enter,&.${animationClassName}-exit-active,&.${animationClassName}-exit-done{opacity:0;transform:${baseTransform} translateY(${(props) => props.theme.size.static500});}&.${animationClassName}-enter-active{opacity:1;transform:${baseTransform} translateY(0);}`;\nconst InternalFocusLayer = (props) => {\n const { active, ariaLabel, ariaDescribedBy, ariaLabelledBy, children, in: visible, onExited, size, scrollElementRef, } = props;\n const commonProps = getCommonProps(props);\n return (React.createElement(CSSTransition, { classNames: animationClassName, onExited: onExited, in: visible, timeout: parseInt(animationTimeout(props) || '0', 10) },\n React.createElement(StyledLayer, Object.assign({ role: \"dialog\", \"aria-modal\": active, \"aria-describedby\": ariaDescribedBy, \"aria-label\": ariaLabel, \"aria-labelledby\": ariaLabelledBy, size: size, ref: scrollElementRef }, commonProps), children)));\n};\nexport const FocusLayer = withTheme(InternalFocusLayer);\n","import * as React from 'react';\nimport { CSSTransition } from 'react-transition-group';\nimport { withTheme } from 'styled-components';\nimport { styled } from '../theme-provider';\nimport { getCommonProps } from '../helpers/common-props';\nconst animationClassName = 'animation';\n// animation possibility here\nconst StyledFullscreenLayer = styled.div.withConfig({ displayName: \"StyledFullscreenLayer\", componentId: \"sc-1x1y0wp\" }) `position:fixed;top:0;right:0;bottom:0;left:0;opacity:1;background-color:${(props) => props.theme.colors.background.primary};transition:${(props) => {\n const duration = props.theme.animation.duration.layer;\n const timingFunction = props.theme.animation.timingFunction.in;\n return `opacity ${duration} ${timingFunction}`;\n}};&.${animationClassName}-exit{opacity:1;}&.${animationClassName}-enter,&.${animationClassName}-exit-active,&.${animationClassName}-exit-done{opacity:0;}&.${animationClassName}-enter-active{opacity:1;}`;\nStyledFullscreenLayer.displayName = 'StyledFullscreenLayer';\nexport const InternalFullscreenLayer = (props) => {\n const { active, children, in: visible, onExited } = props;\n const commonProps = getCommonProps(props);\n const handleClick = (event) => {\n const { onClick = () => undefined } = props;\n onClick(event);\n };\n const timeout = parseInt(props.theme.animation.duration.layer || '0', 10);\n return (React.createElement(CSSTransition, { classNames: animationClassName, onExited: onExited, in: visible, timeout: timeout },\n React.createElement(StyledFullscreenLayer, Object.assign({ onClick: handleClick, \"aria-modal\": active, role: \"dialog\" }, commonProps), children)));\n};\nexport const FullscreenLayer = withTheme(InternalFullscreenLayer);\n","import * as React from 'react';\nconst TABINDEX_ORIGINAL = 'data-tabindex-original';\nconst FOCUSABLE_ELEMENTS = [\n 'a',\n 'button',\n 'input',\n 'textarea',\n 'select',\n 'details',\n 'audio',\n 'video',\n '[tabindex]',\n];\nexport class ChildContainerTabIndexManager extends React.Component {\n constructor(props) {\n super(props);\n this.observingNode = React.createRef();\n this.getFocusableElementSelector = (parent = '') => FOCUSABLE_ELEMENTS.map((el) => `${parent} ${el}`).join(',');\n this.handleTabIndexes = () => {\n const { activeChildContainerSelector, childContainerSelector } = this.props;\n const observingNode = this.observingNode.current;\n const allFocusableElements = observingNode === null || observingNode === void 0 ? void 0 : observingNode.querySelectorAll(this.getFocusableElementSelector(childContainerSelector));\n const activeContainerElements = observingNode === null || observingNode === void 0 ? void 0 : observingNode.querySelectorAll(this.getFocusableElementSelector(activeChildContainerSelector));\n // set -1 tabindex for all interaction elements in all containers\n if (allFocusableElements) {\n allFocusableElements.forEach((item) => {\n const itemTabindex = item.getAttribute('tabindex');\n const originalItemTabindex = item.getAttribute(TABINDEX_ORIGINAL);\n // set original if it doesn't exist or if it exists and tabindex was overwritten\n if (originalItemTabindex == null || itemTabindex !== '-1') {\n item.setAttribute(TABINDEX_ORIGINAL, itemTabindex !== null && itemTabindex !== void 0 ? itemTabindex : 'none');\n }\n item.setAttribute('tabindex', '-1');\n });\n }\n // reset tabIndex for children on active container\n if (activeContainerElements) {\n activeContainerElements.forEach((item) => {\n const itemOriginalTabindex = item.getAttribute(TABINDEX_ORIGINAL);\n if (itemOriginalTabindex === 'none' || itemOriginalTabindex == null) {\n item.removeAttribute('tabindex');\n }\n else {\n item.setAttribute('tabindex', itemOriginalTabindex);\n }\n item.removeAttribute(TABINDEX_ORIGINAL);\n });\n }\n };\n this.observeInteractiveContent = (mutationsList) => {\n const focusable = this.getFocusableElementSelector('');\n const hasFocusableMutation = mutationsList.some((entry) => \n // a tabindex got updated (not by us)\n (entry.type === 'attributes' &&\n entry.attributeName === 'tabindex' &&\n entry.target instanceof Element &&\n entry.target.getAttribute(TABINDEX_ORIGINAL) != null &&\n entry.target.getAttribute('tabindex') !== '-1') ||\n // or a attribute was updated that does not belong to us\n (entry.type === 'attributes' &&\n entry.attributeName !== 'tabindex' &&\n entry.attributeName !== TABINDEX_ORIGINAL) ||\n // or a focusable child got mounted\n (entry.type === 'childList' &&\n Array.from(entry.addedNodes).some((node) => node instanceof Element && node.matches(focusable))));\n if (hasFocusableMutation) {\n this.handleTabIndexes();\n }\n };\n if (typeof window !== 'undefined' && 'MutationObserver' in window) {\n this.contentObserver = new MutationObserver(this.observeInteractiveContent);\n }\n }\n componentDidMount() {\n this.handleTabIndexes();\n const observingNode = this.observingNode.current;\n if (observingNode && this.contentObserver) {\n this.contentObserver.observe(observingNode, {\n attributes: true,\n childList: true,\n subtree: true,\n });\n }\n }\n componentWillUnmount() {\n var _a;\n return (_a = this.contentObserver) === null || _a === void 0 ? void 0 : _a.disconnect();\n }\n componentDidUpdate(prevProps) {\n if (prevProps.activeChildContainerSelector !==\n this.props.activeChildContainerSelector) {\n this.handleTabIndexes();\n }\n }\n render() {\n return React.createElement(\"div\", { ref: this.observingNode }, this.props.children);\n }\n}\n","import * as React from 'react';\nimport { styled } from '../theme-provider';\nimport { GalleryContext } from './gallery';\nexport const StyledSlide = styled.div.withConfig({ displayName: \"StyledSlide\", componentId: \"sc-196wn05\" }) `display:flex;flex-grow:0;flex-shrink:0;align-items:start;justify-content:center;scroll-snap-align:${({ withScrollSnap }) => withScrollSnap ? 'start' : 'none'};outline:none;opacity:${({ fadeout }) => fadeout && '0.5'};transition:opacity 0.5s ease-in-out;`;\nconst StyledContainedImageWrapper = styled.div.withConfig({ displayName: \"StyledContainedImageWrapper\", componentId: \"sc-9lvcex\" }) `width:${(props) => props.reduceImageSize\n ? `calc(100% - 2 * ${props.theme.size.grid001})`\n : '100%'};`;\nexport const GallerySlide = ({ ariaLabel, ariaLabelledby, children }) => {\n const { getSlideId, slidesPerPage, fadingEdges, accessibleExtendedIndices, visibleIndices, snappableExtendedIndices, } = React.useContext(GalleryContext);\n const { index: slideIndex, id = NaN } = React.useContext(GallerySlideContext);\n // id (extendedIndex): -2 -1 5 6\n // slideIndex (index): 3 4 0 1 2 3 4 0 1\n const slideId = id || slideIndex;\n const isCopyOfASlide = !Number.isNaN(id);\n // To ensure that screenreaders read out the correct amount of slides in the gallery,\n // hide slide copies from aria when not in view and hide normal slides when their\n // copy gets in to view.\n const ariaHidden = isCopyOfASlide\n ? !accessibleExtendedIndices.includes(slideId)\n : visibleIndices.includes(slideIndex) &&\n !accessibleExtendedIndices.includes(slideIndex);\n return (React.createElement(StyledSlide, { id: getSlideId(slideId), fadeout: fadingEdges && !visibleIndices.includes(slideIndex), \"data-accessible\": accessibleExtendedIndices.includes(slideId), role: \"group\", \"aria-label\": ariaLabel, \"aria-labelledby\": ariaLabelledby, \"aria-roledescription\": \"slide\", \"aria-hidden\": ariaHidden ? true : undefined, withScrollSnap: snappableExtendedIndices.includes(slideIndex) },\n React.createElement(StyledContainedImageWrapper, { reduceImageSize: slidesPerPage === 1 }, children)));\n};\nexport const GallerySlideContext = React.createContext({\n index: 0,\n});\n","import * as React from 'react';\nimport { useThrottleCallback } from '@react-hook/throttle';\nimport { DesignTokenSizeEnum, styled, useTheme, } from '../theme-provider';\nimport { getCommonProps } from '../helpers/common-props';\nimport { getValueByScreenSize, } from '../helpers/breakpoint';\nimport { ChildContainerTabIndexManager } from './tabindex-manager';\nimport { GallerySlideContext } from './slide';\n// The index is the index in the range `0 .. length - 1`, it corresponds to the\n// number of the slides.\n//\n// index: 0 1 2 3 4\n//\n// If there is endless scrolling, slides are duplicated (leading and trailing).\n//\n// extendedIndex: -2 -1 0 1 2 3 4 5 6\n// index: 3 4 0 1 2 3 4 0 1\n//\n// The number of duplicated slides on each side is one more than the number of\n// slides per page, so a complete page and a fading edge can be seen beyond\n// either end of the \"real\" slides.\n//\n// If there is no endless scrolling, the extendedIndex is the same as the index.\nconst StyledCarousel = styled.section.withConfig({ displayName: \"StyledCarousel\", componentId: \"sc-1lwge8c\" }) `overflow:none;width:100%;position:relative;:focus{outline:none;}`;\nconst StyledSlides = styled.div.withConfig({ displayName: \"StyledSlides\", componentId: \"sc-17msnuv\" }) `display:grid;grid-auto-columns:calc(\\n\\t\\t(\\n\\t\\t\\t\\t100% -\\n\\t\\t\\t\\t\\t(\\n\\t\\t\\t\\t\\t\\t${({ gutter, theme }) => (gutter ? theme.size[gutter] : '0px')} *\\n\\t\\t\\t\\t\\t\\t\\t${({ slidesPerPage }) => slidesPerPage - 1}\\n\\t\\t\\t\\t\\t)\\n\\t\\t\\t) / ${({ slidesPerPage }) => slidesPerPage}\\n\\t);grid-auto-flow:column;gap:${({ theme, gutter }) => (gutter ? theme.size[gutter] : '0')};${({ disableSnap }) => !disableSnap && `scroll-snap-type: x mandatory;`} overscroll-behavior-x:contain;overflow:auto;::-webkit-scrollbar{display:none;}scrollbar-width:none;:focus{outline:none;box-shadow:0 0 0 ${({ theme }) => theme.size.border.heavy} ${({ theme }) => theme.colors.border.hover};}scroll-padding:0 ${({ fadingEdges, theme }) => (fadingEdges ? theme.size.grid002 : '0')};padding:0 ${({ fadingEdges, theme }) => (fadingEdges ? theme.size.grid002 : '0')};`;\nconst noop = () => { };\nexport const GalleryContext = React.createContext({\n index: 0,\n extendedIndex: 0,\n endlessScrolling: false,\n triggerChange: noop,\n triggerNext: noop,\n triggerPrevious: noop,\n getSlideId: () => '',\n disableScrollSnap: noop,\n slidesPerPage: 1,\n fadingEdges: false,\n length: 1,\n id: '',\n accessibleExtendedIndices: [],\n visibleIndices: [],\n snappableExtendedIndices: [],\n slidesRef: undefined,\n});\nconst DEFAULT_MULTI_SLIDE_GUTTER = DesignTokenSizeEnum.grid001;\nexport const Gallery = (props) => {\n const { slidesPerPage = 1, fadingEdges = false, endlessScrolling, increment = 'slide', handleChange: externalHandleChange, children, id, ariaLabel, ariaLabelledby, topElements, bottomElements, gutter, } = props;\n const theme = useTheme();\n const commonProps = getCommonProps(props);\n const [extendedIndex, setExtendedIndex] = React.useState(0);\n const [currentSlidesPerPage, setCurrentSlidesPerPage] = React.useState(1);\n const [currentFadingEdges, setCurrentFadingEdges] = React.useState(false);\n const [disableSnap, setDisableSnap] = React.useState(false);\n // A consumer-defined gutter always takes effect, but by default we only\n // have a gutter when there is more than one slide per page.\n const currentGutter = React.useMemo(() => gutter !== null && gutter !== void 0 ? gutter : (currentSlidesPerPage > 1 ? DEFAULT_MULTI_SLIDE_GUTTER : undefined), [currentSlidesPerPage, gutter]);\n const extendedIndexRef = React.useRef(extendedIndex);\n const slides = React.useRef(null);\n const childrenLength = React.useMemo(() => React.Children.count(children), [children]);\n const updateSlidesPerPage = React.useCallback(() => {\n const width = typeof window !== 'undefined' ? window.innerWidth || 0 : 0;\n const newCurrentSlidesPerPage = getValueByScreenSize(width, slidesPerPage);\n setCurrentSlidesPerPage(newCurrentSlidesPerPage);\n }, [slidesPerPage]);\n const updateFadingEdges = React.useCallback(() => {\n const width = typeof window !== 'undefined' ? window.innerWidth || 0 : 0;\n const newCurrentFadingEdges = getValueByScreenSize(width, fadingEdges);\n setCurrentFadingEdges(newCurrentFadingEdges);\n }, [fadingEdges]);\n const changeSlide = React.useCallback((nextIndex, animate = true) => {\n const slidesElement = slides.current;\n if (!slidesElement) {\n return;\n }\n // prevent jsdom based tests from failing because of missing scroll function stubs\n if (!slidesElement.scrollTo) {\n return;\n }\n const targetIndex = endlessScrolling\n ? nextIndex + currentSlidesPerPage + 1\n : (nextIndex + childrenLength) % childrenLength;\n const targetPosition = slidesElement.children[targetIndex].offsetLeft;\n const left = theme.direction === 'rtl' ? -1 * targetPosition : targetPosition;\n slidesElement.scrollTo({\n left,\n behavior: animate ? 'smooth' : 'instant',\n });\n }, [childrenLength, currentSlidesPerPage, endlessScrolling, theme.direction]);\n const handleResize = React.useCallback(() => {\n updateSlidesPerPage();\n updateFadingEdges();\n changeSlide(extendedIndexRef.current, false);\n }, [updateSlidesPerPage, updateFadingEdges, changeSlide]);\n const snappableExtendedIndices = React.useMemo(() => {\n const incrementValue = increment === 'slide' ? 1 : currentSlidesPerPage;\n const snappableSlides = Array.from({\n length: childrenLength / incrementValue,\n }).map((_, index) => index * incrementValue);\n snappableSlides.push(childrenLength - incrementValue);\n snappableSlides.push(childrenLength);\n for (let index = 1; index <= currentSlidesPerPage; index++) {\n const indexOfSlideCopy = 0 - incrementValue * index;\n // Ignore all indices without slides or copies of slides\n if (currentSlidesPerPage + indexOfSlideCopy >= 0) {\n snappableSlides.push(indexOfSlideCopy);\n }\n }\n snappableSlides.sort((a, b) => a - b);\n return snappableSlides;\n }, [currentSlidesPerPage, childrenLength, increment]);\n const slideToNextSlide = React.useCallback(() => {\n changeSlide(extendedIndex + (increment === 'page' ? currentSlidesPerPage : 1));\n }, [changeSlide, extendedIndex, increment, currentSlidesPerPage]);\n const slideToPreviousSlide = React.useCallback(() => {\n changeSlide(extendedIndex - (increment === 'page' ? currentSlidesPerPage : 1));\n }, [changeSlide, extendedIndex, increment, currentSlidesPerPage]);\n const handleScroll = useThrottleCallback(React.useCallback((e) => {\n const slidesElement = e.currentTarget;\n if (!slidesElement) {\n return;\n }\n const slides = slidesElement.children;\n if (slides.length === 0) {\n return;\n }\n const scrollLeft = slidesElement.scrollLeft;\n // checking 95% allows for small rounding errors\n const scrollIndex = Array.from(slides).findIndex((element) => element.offsetLeft / scrollLeft > 0.95);\n if (endlessScrolling) {\n const scrollPosition = theme.direction === 'rtl' ? -1 * scrollLeft : scrollLeft;\n const secondSlideStart = slides[1].offsetLeft;\n if (Math.floor(scrollPosition) <= secondSlideStart) {\n // Overflow on the left side\n // when we reach the second slide, so the first one is still visible for fading edges\n setExtendedIndex(childrenLength - currentSlidesPerPage);\n extendedIndexRef.current = childrenLength - currentSlidesPerPage;\n changeSlide(childrenLength - currentSlidesPerPage, false);\n return;\n }\n const lastSlideStart = slides[slides.length - 1]\n .offsetLeft;\n const slidesWidth = slidesElement.getBoundingClientRect().width;\n if (Math.ceil(scrollPosition + slidesWidth) >= lastSlideStart) {\n // Overflow on the right side\n // when we reach the second last slide, so the last one is still visible for fading edges\n setExtendedIndex(0);\n extendedIndexRef.current = 0;\n changeSlide(0, false);\n return;\n }\n const endlessScrollIndex = scrollIndex - currentSlidesPerPage - 1;\n if (endlessScrollIndex !== extendedIndex) {\n setExtendedIndex(endlessScrollIndex);\n extendedIndexRef.current = endlessScrollIndex;\n }\n }\n else {\n if (scrollIndex !== extendedIndex) {\n setExtendedIndex(scrollIndex);\n extendedIndexRef.current = scrollIndex;\n }\n }\n }, [\n changeSlide,\n childrenLength,\n currentSlidesPerPage,\n endlessScrolling,\n extendedIndex,\n theme.direction,\n ]));\n React.useEffect(() => {\n if (externalHandleChange) {\n externalHandleChange(extendedIndex);\n }\n }, [extendedIndex, externalHandleChange]);\n // this is called when control elements change the index\n const handleChange = React.useCallback((nextIndex, animate) => {\n // find previous snappableIndex counting from nextIndex,\n // i.e. beginning of page containing nextIndex\n const snappableArrayIndex = snappableExtendedIndices.findIndex((value) => value > nextIndex) - 1;\n const snappableTargetIndex = snappableExtendedIndices[snappableArrayIndex] || 0;\n changeSlide(snappableTargetIndex, animate);\n }, [changeSlide, snappableExtendedIndices]);\n // reset scroll position when basic props change\n React.useEffect(() => {\n const slidesElement = slides.current;\n if (!slidesElement) {\n return;\n }\n changeSlide(extendedIndex, false);\n // eslint-disable-next-line react-hooks/exhaustive-deps -- should not update on changes to extendedIndex\n }, [changeSlide, childrenLength, currentSlidesPerPage, endlessScrolling]);\n // When endlessScrolling is set scroll to starting position.\n // Add and remove resize listeners\n React.useEffect(() => {\n if (endlessScrolling) {\n changeSlide(0, false);\n }\n window.addEventListener('resize', handleResize);\n return () => {\n window.removeEventListener('resize', handleResize);\n };\n }, [changeSlide, endlessScrolling, fadingEdges, handleResize, slidesPerPage]);\n React.useEffect(() => {\n updateSlidesPerPage();\n }, [updateSlidesPerPage, slidesPerPage]);\n React.useEffect(() => {\n updateFadingEdges();\n }, [updateFadingEdges, fadingEdges]);\n const index = React.useMemo(() => (extendedIndex + childrenLength) % childrenLength, [extendedIndex, childrenLength]);\n // accessibleExtendedIndices,\n // i.e. those that are fully visible\n const accessibleExtendedIndices = React.useMemo(() => {\n const firstAccessibleIndex = endlessScrolling\n ? extendedIndex\n : Math.min(extendedIndex, childrenLength - currentSlidesPerPage);\n return Array.from({ length: currentSlidesPerPage }).map((_, index) => firstAccessibleIndex + index);\n }, [endlessScrolling, extendedIndex, childrenLength, currentSlidesPerPage]);\n // visibleIndices include accessibleExtendedIndices\n // slides of accessible duplicated slides.\n //\n // extendedIndex: -2 -1 0 1 2 3 4 5 6\n // index: 3 4 0 1 2 3 4 0 1\n //\n // e.g. if slide with (extended) index 5 is in the view, slides 0 is visible.\n // The slide component will render slide 5 (copy of slide 0) visible, too.\n const visibleIndices = React.useMemo(() => Array.from({ length: currentSlidesPerPage }).map((_, index) => (extendedIndex + index + childrenLength) % childrenLength), [currentSlidesPerPage, extendedIndex, childrenLength]);\n const galleryContextValue = React.useMemo(() => {\n return {\n index,\n extendedIndex,\n endlessScrolling: endlessScrolling || false,\n triggerChange: handleChange,\n triggerPrevious: slideToPreviousSlide,\n triggerNext: slideToNextSlide,\n getSlideId: (index) => `${id}__slide-${index}`,\n disableScrollSnap: (disabled = true) => setDisableSnap(disabled),\n slidesPerPage: currentSlidesPerPage,\n fadingEdges: currentFadingEdges,\n length: childrenLength,\n id: id,\n accessibleExtendedIndices,\n visibleIndices,\n snappableExtendedIndices,\n slidesRef: slides,\n };\n }, [\n accessibleExtendedIndices,\n childrenLength,\n currentFadingEdges,\n currentSlidesPerPage,\n endlessScrolling,\n extendedIndex,\n handleChange,\n id,\n index,\n slideToNextSlide,\n slideToPreviousSlide,\n snappableExtendedIndices,\n visibleIndices,\n slides,\n ]);\n const slideData = React.useMemo(() => {\n const leadingSlides = [];\n const slides = [];\n const trailingSlides = [];\n React.Children.toArray(children)\n .filter(React.isValidElement)\n .forEach((child, index) => {\n slides.push({\n key: child.key,\n value: {\n index,\n },\n child,\n });\n // Only render copies of slides when endlessScrolling is enabled and\n // we have more children than can be show on a single page\n if (endlessScrolling && childrenLength > currentSlidesPerPage) {\n if (index < currentSlidesPerPage + 1) {\n const id = childrenLength + index;\n trailingSlides.push({\n key: `${child.key}-${id}`,\n value: {\n index: index,\n id: id,\n },\n child,\n });\n }\n if (index > childrenLength - currentSlidesPerPage - 2) {\n const id = index - childrenLength;\n leadingSlides.push({\n key: `${child.key}-${id}`,\n value: {\n index: index,\n id: id,\n },\n child,\n });\n }\n }\n });\n return [...leadingSlides, ...slides, ...trailingSlides];\n }, [children, childrenLength, currentSlidesPerPage, endlessScrolling]);\n return (React.createElement(GalleryContext.Provider, { value: galleryContextValue },\n React.createElement(StyledCarousel, Object.assign({ id: id, tabIndex: -1, \"aria-label\": ariaLabel, role: \"region\", \"aria-roledescription\": \"carousel\", \"aria-labelledby\": ariaLabelledby }, commonProps),\n topElements,\n React.createElement(ChildContainerTabIndexManager, { childContainerSelector: '[data-accessible]', activeChildContainerSelector: '[data-accessible=\"true\"]' },\n React.createElement(StyledSlides, { ref: slides, onScroll: handleScroll, \"aria-atomic\": \"false\", \"aria-live\": \"polite\", slidesPerPage: currentSlidesPerPage, fadingEdges: currentFadingEdges && childrenLength > currentSlidesPerPage, gutter: currentGutter, tabIndex: 0, disableSnap: disableSnap }, slideData.map(({ key, value, child }) => (React.createElement(GallerySlideContext.Provider, { key: key, value: value }, child))))),\n bottomElements)));\n};\n","import * as React from 'react';\nimport { styled } from '../theme-provider';\nimport { GalleryContext } from '.';\nimport { CTA } from '../call-to-action';\nimport { ChevronLeft, ChevronRight } from '@volkswagen-onehub/icons-core';\nconst StyledArrowWrapper = styled.div.withConfig({ displayName: \"StyledArrowWrapper\", componentId: \"sc-1w8267r\" }) `position:absolute;top:50%;right:0;left:0;display:flex;justify-content:space-between;padding:0 ${(props) => props.theme.size.static150};transform:translateY(-50%);pointer-events:none;button{pointer-events:initial;}`;\nexport const ArrowButtons = ({ ariaHidden, buttonNextAriaLabel, buttonPreviousAriaLabel, }) => {\n const { triggerNext, triggerPrevious, length, slidesPerPage, index, endlessScrolling, } = React.useContext(GalleryContext);\n if (length <= slidesPerPage) {\n return null;\n }\n return (React.createElement(StyledArrowWrapper, null,\n React.createElement(CTA, { tag: \"button\", emphasis: \"primary\", onClick: triggerPrevious, ariaLabel: buttonPreviousAriaLabel, tabIndex: ariaHidden ? -1 : 0, disabled: index === 0 && !endlessScrolling, icon: React.createElement(ChevronLeft, { variant: \"small\", ariaHidden: true }) }),\n React.createElement(CTA, { tag: \"button\", emphasis: \"primary\", onClick: triggerNext, ariaLabel: buttonNextAriaLabel, tabIndex: ariaHidden ? -1 : 0, disabled: index + slidesPerPage === length && !endlessScrolling, icon: React.createElement(ChevronRight, { variant: \"small\", ariaHidden: true }) })));\n};\n","import * as React from 'react';\nimport { styled, useTheme } from '../theme-provider';\nimport { GalleryContext } from './index';\nimport { createA11yOutlineStyles } from '../helpers/a11y';\nconst StyledBullets = styled.div.withConfig({ displayName: \"StyledBullets\", componentId: \"sc-vphoa0\" }) `display:flex;justify-content:center;align-items:center;font-size:0;line-height:0;height:${({ theme }) => theme.size.grid001};gap:${({ theme }) => theme.size.static150};`;\nconst VisuallyHidden = styled.div.withConfig({ displayName: \"VisuallyHidden\", componentId: \"sc-1bqwty\" }) `clip:rect(0 0 0 0);clip-path:inset(50%);height:1px;overflow:hidden;position:absolute;white-space:nowrap;width:1px;`;\nconst StyledBullet = styled.button.withConfig({ displayName: \"StyledBullet\", componentId: \"sc-cwv4jb\" }) `position:relative;width:${({ theme }) => theme.size.static150};height:${({ theme }) => theme.size.static150};border:0;padding:0;border-radius:50%;background:${({ theme }) => theme.colors.background.primary};cursor:${({ isActive }) => (isActive ? 'unset' : 'pointer')};outline:none;transform:scale(${({ isActive }) => (isActive ? 2 : 1)});transition:${({ theme }) => {\n const duration = theme.animation.duration.layer;\n const timingFunction = theme.animation.timingFunction.in;\n return `all ${duration} ${timingFunction}`;\n}};::before{content:'';position:absolute;top:12.5%;left:12.5%;width:75%;height:75%;border-radius:50%;background:${({ theme }) => theme.colors.button.primary.default};}:hover{::before{background:${({ theme }) => theme.colors.button.primary.hover};}}:focus{outline:none;::before{${({ theme }) => createA11yOutlineStyles(theme)};}}`;\nconst NavigationBullet = ({ index, isActive = false, children, length }) => {\n const { triggerChange, id: galleryID } = React.useContext(GalleryContext);\n const theme = useTheme();\n const handleClick = React.useCallback((e) => {\n e.preventDefault();\n e.stopPropagation();\n triggerChange(index);\n }, [index, triggerChange]);\n const handleKey = React.useCallback((event) => {\n var _a, _b;\n let newIndex;\n switch (event.key) {\n case 'ArrowLeft':\n newIndex =\n (index + (theme.direction === 'rtl' ? 1 : length - 1)) % length;\n break;\n case 'ArrowRight':\n newIndex =\n (index + (theme.direction === 'rtl' ? length - 1 : 1)) % length;\n break;\n case 'Home':\n newIndex = 0;\n break;\n case 'End':\n newIndex = length - 1;\n break;\n default:\n newIndex = null;\n }\n if (newIndex !== null) {\n event.stopPropagation();\n event.preventDefault();\n // since we add the handler to one of our bullet buttons we know the target and the siblings are HTMLElements\n (_b = (_a = event.target.parentElement) === null || _a === void 0 ? void 0 : _a.querySelector(`:nth-child(${newIndex + 1})`)) === null || _b === void 0 ? void 0 : _b.focus();\n triggerChange(newIndex);\n }\n }, [index, length, theme.direction, triggerChange]);\n return (React.createElement(StyledBullet, { isActive: isActive, onClick: handleClick, onKeyDown: handleKey, key: `carousel-bullet-${index}`, tabIndex: isActive ? 0 : -1, \"aria-pressed\": isActive, \"aria-controls\": galleryID },\n React.createElement(VisuallyHidden, null, children)));\n};\nexport const NavigationBullets = ({ children, ariaLabel, ariaLabelledby }) => {\n const { index } = React.useContext(GalleryContext);\n const length = React.Children.count(children);\n return (React.createElement(StyledBullets, { role: \"group\", \"aria-label\": ariaLabel, \"aria-labelledby\": ariaLabelledby }, React.Children.map(children, (child, bulletIndex) => (React.createElement(NavigationBullet, { index: bulletIndex, isActive: index === bulletIndex, length: length }, child)))));\n};\n","import * as React from 'react';\nimport { styled, useTheme } from '../theme-provider';\nimport { GalleryContext } from '.';\nconst StyledScrollbarArea = styled.div.withConfig({ displayName: \"StyledScrollbarArea\", componentId: \"sc-13nqjar\" }) `height:${({ theme }) => theme.size.static500};position:relative;display:flex;justify-content:center;flex-flow:column;&:before{content:'';display:block;width:100%;height:2px;background:${({ theme }) => theme.colors.background.secondary};border-radius:2px;}`;\nconst StyledScrollbar = styled.div.attrs(({ x, slides }) => ({\n style: {\n '--progress': `${x}px`,\n '--slides': slides,\n },\n})).withConfig({ displayName: \"StyledScrollbar\", componentId: \"sc-13xb9w6\" }) `position:absolute;${(props) => (props.theme.direction === 'rtl' ? 'right' : 'left')}:0;transform:${(props) => props.theme.direction === 'rtl'\n ? `translateX(calc(-1 * var(--progress)))`\n : `translateX(var(--progress))`};height:100%;width:33%;cursor:grab;user-select:none;display:flex;flex-flow:column;justify-content:center;${(props) => !props.isDragging &&\n `\n\t\ttransition: transform 150ms ease-out;\n\t`} &:before{content:'';display:block;height:3px;background:${({ theme }) => theme.colors.border.hover};border-radius:3px;transition:background-color 150ms;}&:after{position:absolute;z-index:-1;content:'';box-sizing:border-box;display:block;height:${({ theme }) => theme.size.static350};left:-10px;right:-10px;background:${({ theme }) => theme.colors.background.tertiary};border-radius:${({ theme }) => theme.size.static300};opacity:0;transition:opacity 150ms,background-color 150ms;}&:hover{&:after{opacity:1;}}&:active{cursor:grabbing;}&:focus{outline:none;}&:active,&:focus{&:after{opacity:1;border:solid 3px ${({ theme }) => theme.colors.focus.main};}}`;\nconst activeSlideIndex = {};\nconst isDragging = {};\nconst TIMEOUT_TO_ENABLE_SNAPPING = 500;\nexport const NavigationScrollbar = () => {\n const { index, length, slidesPerPage, slidesRef, id: galleryID, triggerChange, disableScrollSnap, } = React.useContext(GalleryContext);\n const theme = useTheme();\n const gallerySlides = slidesRef === null || slidesRef === void 0 ? void 0 : slidesRef.current;\n const scrollbarAreaRef = React.useRef(null);\n const scrollbarRef = React.useRef(null);\n const [scrollbarAreaWidth, setScrollbarAreaWidth] = React.useState(0);\n const [scrollbarWidth, setScrollbarWidth] = React.useState(0);\n const [scrollbarPosition, setScrollbarPosition] = React.useState(0);\n const scrollbarArea = scrollbarAreaRef.current;\n const scrollbar = scrollbarRef.current;\n const maxScrollbarPosition = scrollbarAreaWidth - scrollbarWidth;\n activeSlideIndex[galleryID] = index;\n const roundToNearest = (value, interval = 1) => {\n return Math.floor(value / interval) * interval;\n };\n const handleScrollbarPosition = React.useCallback((value) => {\n if (value <= 0) {\n return 0;\n }\n if (value > maxScrollbarPosition) {\n return maxScrollbarPosition;\n }\n return roundToNearest(value);\n }, [maxScrollbarPosition]);\n const handleScrollbarPositionByGalleryPosition = React.useCallback(() => {\n const scrollbarArea = scrollbarAreaWidth - scrollbarWidth;\n const newPositionPercentage = activeSlideIndex[galleryID] / ((length - slidesPerPage) / 100) / 100;\n const newPosition = newPositionPercentage * scrollbarArea;\n return Math.round(newPosition);\n }, [galleryID, length, scrollbarAreaWidth, scrollbarWidth, slidesPerPage]);\n const getActuallScrollPercentage = (scrollbarPosition, maxScrollbarPosition) => {\n const value = scrollbarPosition / (maxScrollbarPosition / 100);\n // at times the calculation above returns NaN when both operands evaluate to 0\n if (value <= 0 || Number.isNaN(value)) {\n return 0;\n }\n if (value > 100) {\n return 100;\n }\n return value;\n };\n const setScrollbarSize = React.useCallback(() => {\n setScrollbarAreaWidth((scrollbarArea === null || scrollbarArea === void 0 ? void 0 : scrollbarArea.clientWidth) || 0);\n setScrollbarWidth((scrollbar === null || scrollbar === void 0 ? void 0 : scrollbar.clientWidth) || 0);\n }, [scrollbar === null || scrollbar === void 0 ? void 0 : scrollbar.clientWidth, scrollbarArea === null || scrollbarArea === void 0 ? void 0 : scrollbarArea.clientWidth]);\n React.useEffect(() => {\n !isDragging[galleryID] &&\n setScrollbarPosition(handleScrollbarPositionByGalleryPosition());\n }, [\n index,\n length,\n scrollbarAreaWidth,\n scrollbarWidth,\n handleScrollbarPositionByGalleryPosition,\n galleryID,\n ]);\n React.useEffect(() => {\n let mouseDownClientX = 0;\n let slideWidth = 0;\n let slidePaddingRight = 0;\n let totalSlideMargin = 0;\n if (gallerySlides) {\n slideWidth = gallerySlides.children[0].clientWidth;\n slidePaddingRight = parseFloat(getComputedStyle(gallerySlides.children[0]).getPropertyValue(`padding-${theme.direction === 'rtl' ? 'left' : 'right'}`));\n totalSlideMargin =\n parseFloat(getComputedStyle(gallerySlides.children[0]).getPropertyValue(`margin-${theme.direction === 'rtl' ? 'right' : 'left'}`)) * 2;\n }\n setScrollbarSize();\n const handleDragging = (clientX) => {\n const deltaX = clientX - mouseDownClientX;\n const newScrollbarPosition = theme.direction === 'rtl'\n ? scrollbarPosition - deltaX\n : scrollbarPosition + deltaX;\n setScrollbarPosition(handleScrollbarPosition(newScrollbarPosition));\n const positionPercantage = getActuallScrollPercentage(newScrollbarPosition, maxScrollbarPosition);\n if (gallerySlides) {\n const scrollTo = (positionPercantage / 100) *\n (gallerySlides.scrollWidth -\n slideWidth * slidesPerPage -\n totalSlideMargin +\n slidePaddingRight);\n gallerySlides.scrollTo({\n left: roundToNearest(theme.direction === 'rtl' ? scrollTo * -1 : scrollTo),\n behavior: 'auto',\n });\n }\n };\n const handleDragEnd = () => {\n triggerChange(activeSlideIndex[galleryID]);\n setTimeout(() => {\n !isDragging[galleryID] && disableScrollSnap(false);\n }, TIMEOUT_TO_ENABLE_SNAPPING);\n setScrollbarPosition(handleScrollbarPositionByGalleryPosition());\n };\n const handleMouseDown = (event) => {\n isDragging[galleryID] = true;\n disableScrollSnap();\n mouseDownClientX = event.clientX;\n document.addEventListener('mousemove', handleMouseDrag);\n document.addEventListener('mouseup', handleMouseUp);\n document.body.style.cursor = 'grabbing';\n document.body.style.userSelect = 'none';\n document.body.style.webkitUserSelect = 'none'; // still needed for Safari!\n };\n const handleMouseDrag = (event) => {\n handleDragging(event.clientX);\n };\n const handleMouseUp = () => {\n isDragging[galleryID] = false;\n document.removeEventListener('mousemove', handleMouseDrag);\n document.removeEventListener('mouseup', handleMouseUp);\n document.body.style.cursor = 'auto';\n handleDragEnd();\n };\n const handleTouchStart = (event) => {\n isDragging[galleryID] = true;\n disableScrollSnap();\n mouseDownClientX = event.touches[0].clientX;\n document.addEventListener('touchmove', handleTouchMove);\n document.addEventListener('touchend', handleTouchEnd);\n };\n const handleTouchMove = (event) => {\n handleDragging(event.touches[0].clientX);\n };\n const handleTouchEnd = () => {\n isDragging[galleryID] = false;\n document.removeEventListener('touchmove', handleTouchMove);\n document.removeEventListener('touchend', handleTouchEnd);\n handleDragEnd();\n };\n scrollbar === null || scrollbar === void 0 ? void 0 : scrollbar.addEventListener('mousedown', handleMouseDown);\n scrollbar === null || scrollbar === void 0 ? void 0 : scrollbar.addEventListener('touchstart', handleTouchStart);\n return () => {\n scrollbar === null || scrollbar === void 0 ? void 0 : scrollbar.removeEventListener('mousedown', handleMouseDown);\n scrollbar === null || scrollbar === void 0 ? void 0 : scrollbar.removeEventListener('touchstart', handleTouchStart);\n };\n }, [\n slidesRef,\n gallerySlides,\n index,\n slidesPerPage,\n scrollbarPosition,\n maxScrollbarPosition,\n disableScrollSnap,\n handleScrollbarPosition,\n handleScrollbarPositionByGalleryPosition,\n triggerChange,\n setScrollbarSize,\n scrollbar,\n theme.direction,\n galleryID,\n ]);\n const handleResize = React.useCallback(() => {\n setScrollbarSize();\n }, [setScrollbarSize]);\n React.useEffect(() => {\n window.addEventListener('resize', handleResize);\n return () => {\n window.removeEventListener('resize', handleResize);\n };\n }, [handleResize]);\n const createKeyHandler = (triggerChange, index) => (event) => {\n var _a, _b;\n let newIndex;\n switch (event.key) {\n case 'ArrowLeft':\n newIndex = Math.max(index + ((_a = theme.direction) !== null && _a !== void 0 ? _a : 'ltr') === 'rtl' ? 1 : -1, 0);\n break;\n case 'ArrowRight':\n newIndex = Math.max(index + ((_b = theme.direction) !== null && _b !== void 0 ? _b : 'ltr') === 'rtl' ? -1 : 1, 0);\n break;\n case 'Home':\n newIndex = 0;\n break;\n case 'End':\n newIndex = length - 1;\n break;\n default:\n newIndex = null;\n }\n if (newIndex !== null) {\n event.stopPropagation();\n event.preventDefault();\n triggerChange(newIndex);\n }\n };\n if (length <= slidesPerPage) {\n return null;\n }\n const handleScrollAreaClick = (event) => {\n const scrollbarAreaOffset = (scrollbarArea === null || scrollbarArea === void 0 ? void 0 : scrollbarArea.getBoundingClientRect().left) || 0;\n const deltaX = event.clientX - scrollbarAreaOffset;\n const newScrollbarPosition = theme.direction === 'rtl' ? scrollbarAreaWidth - deltaX : deltaX;\n const positionPercantage = getActuallScrollPercentage(newScrollbarPosition, maxScrollbarPosition);\n const slideToItem = ((length - 1) / 100) * positionPercantage;\n triggerChange(slideToItem);\n };\n const handleScrollbarClick = (event) => {\n event.stopPropagation();\n };\n const ariaScrolledPercentage = Math.round(getActuallScrollPercentage(scrollbarPosition, maxScrollbarPosition));\n return (React.createElement(StyledScrollbarArea, { ref: scrollbarAreaRef, onClick: (e) => handleScrollAreaClick(e) },\n React.createElement(StyledScrollbar, { ref: scrollbarRef, x: scrollbarPosition, isDragging: isDragging[galleryID], slides: length, tabIndex: 0, onKeyDown: createKeyHandler(triggerChange, index), onClick: (e) => handleScrollbarClick(e), role: \"scrollbar\", \"aria-controls\": galleryID, \"aria-labelledby\": galleryID, \"aria-orientation\": \"horizontal\", \"aria-valuenow\": ariaScrolledPercentage, \"aria-valuemin\": 0, \"aria-valuemax\": 100 })));\n};\n","import * as React from 'react';\nconst EDGE_LENGTH = { large: 48, default: 24, small: 12 };\nexport const ExternalIcon = React.forwardRef((props, ref) => {\n const variant = props.variant || 'default';\n const ariaHidden = !props.alt;\n const edgeLength = EDGE_LENGTH[variant];\n const svgSelector = props.svgSelector === undefined ? '#main' : props.svgSelector;\n return (React.createElement(\"svg\", { className: props.className, \"aria-hidden\": ariaHidden, role: ariaHidden ? undefined : 'img', \"aria-label\": props.alt || undefined, ref: ref, width: edgeLength, height: edgeLength, viewBox: `0 0 ${edgeLength} ${edgeLength}`, fill: \"currentColor\" },\n props.title && React.createElement(\"title\", null, props.title),\n React.createElement(\"use\", { href: `${props.url}${svgSelector}` })));\n});\nExternalIcon.displayName = 'ExternalIcon';\nExternalIcon.defaultProps = {\n variant: 'default',\n svgSelector: '#main',\n};\n","function isHexColorToRgbaOptions(alphaOrOptions) {\n return (typeof alphaOrOptions !== 'undefined' && typeof alphaOrOptions !== 'number');\n}\nfunction isValidAlpha(alpha) {\n return typeof alpha !== 'undefined' && alpha >= 0 && alpha <= 1;\n}\n/**\n * Converts a 3 or 6 digit hex color to an object with RGB values.\n * This is done without regular expressions to avoid security / DOS issues.\n *\n * @param color 3 or 6 digit hex code starting with #\n * @returns an object with separate R, G, and B values, returns undefined if there's something wrong with the given hex color\n */\nexport function getRGBfromHexColor(color) {\n if (!color.startsWith('#')) {\n return undefined;\n }\n const parts = color\n .split('')\n .slice(1)\n .map((digit) => parseInt(digit, 16));\n if (parts.some((digit) => isNaN(digit))) {\n return undefined;\n }\n if (parts.length === 3) {\n const [r, g, b] = parts;\n return { r: r * 17, g: g * 17, b: b * 17 };\n }\n if (parts.length === 6) {\n const [r1, r2, g1, g2, b1, b2] = parts;\n return { r: r1 * 16 + r2, g: g1 * 16 + g2, b: b1 * 16 + b2 };\n }\n return undefined;\n}\n/**\n * Converts a hex color to a full rgba() string\n *\n * @param color 3 or 6 digit hex code allowed\n * @param alphaOrOptions either the alpha value or an object with alpha and fallback values\n */\nexport function hexColorToRgba(color, alphaOrOptions) {\n let alpha = isHexColorToRgbaOptions(alphaOrOptions)\n ? alphaOrOptions.alpha\n : alphaOrOptions;\n if (!isValidAlpha(alpha)) {\n alpha = 1;\n }\n const rgb = getRGBfromHexColor(color);\n if (rgb) {\n return `rgba(${rgb.r},${rgb.g},${rgb.b},${alpha})`;\n }\n // fallback with rgbaFallback\n if (isHexColorToRgbaOptions(alphaOrOptions) && alphaOrOptions.rgbaFallback) {\n return alphaOrOptions.rgbaFallback;\n }\n const alphaFallback = isHexColorToRgbaOptions(alphaOrOptions) &&\n isValidAlpha(alphaOrOptions.alpha)\n ? alphaOrOptions.alpha\n : 0;\n // fallback with rgbFallback\n if (isHexColorToRgbaOptions(alphaOrOptions) && alphaOrOptions.rgbFallback) {\n return `rgba(${alphaOrOptions.rgbFallback.r},${alphaOrOptions.rgbFallback.g},${alphaOrOptions.rgbFallback.b},${alphaFallback})`;\n }\n // fallback with #000\n return `rgba(0,0,0,${alphaFallback})`;\n}\n","/**\n * defines a focus group\n */\nexport var FOCUS_GROUP = 'data-focus-lock';\n/**\n * disables element discovery inside a group marked by key\n */\nexport var FOCUS_DISABLED = 'data-focus-lock-disabled';\n/**\n * allows uncontrolled focus within the marked area, effectively disabling focus lock for it's content\n */\nexport var FOCUS_ALLOW = 'data-no-focus-lock';\n/**\n * instructs autofocus engine to pick default autofocus inside a given node\n * can be set on the element or container\n */\nexport var FOCUS_AUTO = 'data-autofocus-inside';\n/**\n * instructs autofocus to ignore elements within a given node\n * can be set on the element or container\n */\nexport var FOCUS_NO_AUTOFOCUS = 'data-no-autofocus';\n","import { assignRef } from './assignRef';\nimport { useCallbackRef } from './useRef';\n/**\n * Merges two or more refs together providing a single interface to set their value\n * @param {RefObject|Ref} refs\n * @returns {MutableRefObject} - a new ref, which translates all changes to {refs}\n *\n * @see {@link mergeRefs} a version without buit-in memoization\n * @see https://github.com/theKashey/use-callback-ref#usemergerefs\n * @example\n * const Component = React.forwardRef((props, ref) => {\n * const ownRef = useRef();\n * const domRef = useMergeRefs([ref, ownRef]); // 👈 merge together\n * return
...
\n * }\n */\nexport function useMergeRefs(refs, defaultValue) {\n return useCallbackRef(defaultValue || null, function (newValue) { return refs.forEach(function (ref) { return assignRef(ref, newValue); }); });\n}\n","import { useState } from 'react';\n/**\n * creates a MutableRef with ref change callback\n * @param initialValue - initial ref value\n * @param {Function} callback - a callback to run when value changes\n *\n * @example\n * const ref = useCallbackRef(0, (newValue, oldValue) => console.log(oldValue, '->', newValue);\n * ref.current = 1;\n * // prints 0 -> 1\n *\n * @see https://reactjs.org/docs/hooks-reference.html#useref\n * @see https://github.com/theKashey/use-callback-ref#usecallbackref---to-replace-reactuseref\n * @returns {MutableRefObject}\n */\nexport function useCallbackRef(initialValue, callback) {\n var ref = useState(function () { return ({\n // value\n value: initialValue,\n // last callback\n callback: callback,\n // \"memoized\" public interface\n facade: {\n get current() {\n return ref.value;\n },\n set current(value) {\n var last = ref.value;\n if (last !== value) {\n ref.value = value;\n ref.callback(value, last);\n }\n },\n },\n }); })[0];\n // update callback\n ref.callback = callback;\n return ref.facade;\n}\n","/**\n * Assigns a value for a given ref, no matter of the ref format\n * @param {RefObject} ref - a callback function or ref object\n * @param value - a new value\n *\n * @see https://github.com/theKashey/use-callback-ref#assignref\n * @example\n * const refObject = useRef();\n * const refFn = (ref) => {....}\n *\n * assignRef(refObject, \"refValue\");\n * assignRef(refFn, \"refValue\");\n */\nexport function assignRef(ref, value) {\n if (typeof ref === 'function') {\n ref(value);\n }\n else if (ref) {\n ref.current = value;\n }\n return ref;\n}\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\nexport var hiddenGuard = {\n width: '1px',\n height: '0px',\n padding: 0,\n overflow: 'hidden',\n position: 'fixed',\n top: '1px',\n left: '1px'\n};\n\nvar InFocusGuard = function InFocusGuard(_ref) {\n var children = _ref.children;\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"div\", {\n key: \"guard-first\",\n \"data-focus-guard\": true,\n \"data-focus-auto-guard\": true,\n style: hiddenGuard\n }), children, children && /*#__PURE__*/React.createElement(\"div\", {\n key: \"guard-last\",\n \"data-focus-guard\": true,\n \"data-focus-auto-guard\": true,\n style: hiddenGuard\n }));\n};\n\nInFocusGuard.propTypes = process.env.NODE_ENV !== \"production\" ? {\n children: PropTypes.node\n} : {};\nInFocusGuard.defaultProps = {\n children: null\n};\nexport default InFocusGuard;","/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n function fail(e) {\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n function next() {\n while (env.stack.length) {\n var rec = env.stack.pop();\n try {\n var result = rec.dispose && rec.dispose.call(rec.value);\n if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n catch (e) {\n fail(e);\n }\n }\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n __addDisposableResource,\n __disposeResources,\n};\n","import { __assign } from \"tslib\";\nfunction ItoI(a) {\n return a;\n}\nfunction innerCreateMedium(defaults, middleware) {\n if (middleware === void 0) { middleware = ItoI; }\n var buffer = [];\n var assigned = false;\n var medium = {\n read: function () {\n if (assigned) {\n throw new Error('Sidecar: could not `read` from an `assigned` medium. `read` could be used only with `useMedium`.');\n }\n if (buffer.length) {\n return buffer[buffer.length - 1];\n }\n return defaults;\n },\n useMedium: function (data) {\n var item = middleware(data, assigned);\n buffer.push(item);\n return function () {\n buffer = buffer.filter(function (x) { return x !== item; });\n };\n },\n assignSyncMedium: function (cb) {\n assigned = true;\n while (buffer.length) {\n var cbs = buffer;\n buffer = [];\n cbs.forEach(cb);\n }\n buffer = {\n push: function (x) { return cb(x); },\n filter: function () { return buffer; },\n };\n },\n assignMedium: function (cb) {\n assigned = true;\n var pendingQueue = [];\n if (buffer.length) {\n var cbs = buffer;\n buffer = [];\n cbs.forEach(cb);\n pendingQueue = buffer;\n }\n var executeQueue = function () {\n var cbs = pendingQueue;\n pendingQueue = [];\n cbs.forEach(cb);\n };\n var cycle = function () { return Promise.resolve().then(executeQueue); };\n cycle();\n buffer = {\n push: function (x) {\n pendingQueue.push(x);\n cycle();\n },\n filter: function (filter) {\n pendingQueue = pendingQueue.filter(filter);\n return buffer;\n },\n };\n },\n };\n return medium;\n}\nexport function createMedium(defaults, middleware) {\n if (middleware === void 0) { middleware = ItoI; }\n return innerCreateMedium(defaults, middleware);\n}\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport function createSidecarMedium(options) {\n if (options === void 0) { options = {}; }\n var medium = innerCreateMedium(null);\n medium.options = __assign({ async: true, ssr: false }, options);\n return medium;\n}\n","import { createMedium, createSidecarMedium } from 'use-sidecar';\nexport var mediumFocus = createMedium({}, function (_ref) {\n var target = _ref.target,\n currentTarget = _ref.currentTarget;\n return {\n target: target,\n currentTarget: currentTarget\n };\n});\nexport var mediumBlur = createMedium();\nexport var mediumEffect = createMedium();\nexport var mediumSidecar = createSidecarMedium({\n async: true // focus-lock sidecar is not required on the server\n // however, it might be required for JSDOM tests\n // ssr: true,\n\n});","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { node, bool, string, any, arrayOf, oneOfType, object, func } from 'prop-types';\nimport * as constants from 'focus-lock/constants';\nimport { useMergeRefs } from 'use-callback-ref';\nimport { useEffect } from 'react';\nimport { hiddenGuard } from './FocusGuard';\nimport { mediumFocus, mediumBlur, mediumSidecar } from './medium';\nvar emptyArray = [];\nvar FocusLock = /*#__PURE__*/React.forwardRef(function FocusLockUI(props, parentRef) {\n var _extends2;\n\n var _React$useState = React.useState(),\n realObserved = _React$useState[0],\n setObserved = _React$useState[1];\n\n var observed = React.useRef();\n var isActive = React.useRef(false);\n var originalFocusedElement = React.useRef(null);\n var children = props.children,\n disabled = props.disabled,\n noFocusGuards = props.noFocusGuards,\n persistentFocus = props.persistentFocus,\n crossFrame = props.crossFrame,\n autoFocus = props.autoFocus,\n allowTextSelection = props.allowTextSelection,\n group = props.group,\n className = props.className,\n whiteList = props.whiteList,\n hasPositiveIndices = props.hasPositiveIndices,\n _props$shards = props.shards,\n shards = _props$shards === void 0 ? emptyArray : _props$shards,\n _props$as = props.as,\n Container = _props$as === void 0 ? 'div' : _props$as,\n _props$lockProps = props.lockProps,\n containerProps = _props$lockProps === void 0 ? {} : _props$lockProps,\n SideCar = props.sideCar,\n shouldReturnFocus = props.returnFocus,\n focusOptions = props.focusOptions,\n onActivationCallback = props.onActivation,\n onDeactivationCallback = props.onDeactivation;\n\n var _React$useState2 = React.useState({}),\n id = _React$useState2[0]; // SIDE EFFECT CALLBACKS\n\n\n var onActivation = React.useCallback(function () {\n originalFocusedElement.current = originalFocusedElement.current || document && document.activeElement;\n\n if (observed.current && onActivationCallback) {\n onActivationCallback(observed.current);\n }\n\n isActive.current = true;\n }, [onActivationCallback]);\n var onDeactivation = React.useCallback(function () {\n isActive.current = false;\n\n if (onDeactivationCallback) {\n onDeactivationCallback(observed.current);\n }\n }, [onDeactivationCallback]);\n useEffect(function () {\n if (!disabled) {\n // cleanup return focus on trap deactivation\n // sideEffect/returnFocus should happen by this time\n originalFocusedElement.current = null;\n }\n }, []);\n var returnFocus = React.useCallback(function (allowDefer) {\n var returnFocusTo = originalFocusedElement.current;\n\n if (returnFocusTo && returnFocusTo.focus) {\n var howToReturnFocus = typeof shouldReturnFocus === 'function' ? shouldReturnFocus(returnFocusTo) : shouldReturnFocus;\n\n if (howToReturnFocus) {\n var returnFocusOptions = typeof howToReturnFocus === 'object' ? howToReturnFocus : undefined;\n originalFocusedElement.current = null;\n\n if (allowDefer) {\n // React might return focus after update\n // it's safer to defer the action\n Promise.resolve().then(function () {\n return returnFocusTo.focus(returnFocusOptions);\n });\n } else {\n returnFocusTo.focus(returnFocusOptions);\n }\n }\n }\n }, [shouldReturnFocus]); // MEDIUM CALLBACKS\n\n var onFocus = React.useCallback(function (event) {\n if (isActive.current) {\n mediumFocus.useMedium(event);\n }\n }, []);\n var onBlur = mediumBlur.useMedium; // REF PROPAGATION\n // not using real refs due to race conditions\n\n var setObserveNode = React.useCallback(function (newObserved) {\n if (observed.current !== newObserved) {\n observed.current = newObserved;\n setObserved(newObserved);\n }\n }, []);\n\n if (process.env.NODE_ENV !== 'production') {\n if (typeof allowTextSelection !== 'undefined') {\n // eslint-disable-next-line no-console\n console.warn('React-Focus-Lock: allowTextSelection is deprecated and enabled by default');\n }\n\n React.useEffect(function () {\n // report incorrect integration - https://github.com/theKashey/react-focus-lock/issues/123\n if (!observed.current && typeof Container !== 'string') {\n // eslint-disable-next-line no-console\n console.error('FocusLock: could not obtain ref to internal node');\n }\n }, []);\n }\n\n var lockProps = _extends((_extends2 = {}, _extends2[constants.FOCUS_DISABLED] = disabled && 'disabled', _extends2[constants.FOCUS_GROUP] = group, _extends2), containerProps);\n\n var hasLeadingGuards = noFocusGuards !== true;\n var hasTailingGuards = hasLeadingGuards && noFocusGuards !== 'tail';\n var mergedRef = useMergeRefs([parentRef, setObserveNode]);\n return /*#__PURE__*/React.createElement(React.Fragment, null, hasLeadingGuards && [\n /*#__PURE__*/\n // nearest focus guard\n React.createElement(\"div\", {\n key: \"guard-first\",\n \"data-focus-guard\": true,\n tabIndex: disabled ? -1 : 0,\n style: hiddenGuard\n }), // first tabbed element guard\n hasPositiveIndices ? /*#__PURE__*/React.createElement(\"div\", {\n key: \"guard-nearest\",\n \"data-focus-guard\": true,\n tabIndex: disabled ? -1 : 1,\n style: hiddenGuard\n }) : null], !disabled && /*#__PURE__*/React.createElement(SideCar, {\n id: id,\n sideCar: mediumSidecar,\n observed: realObserved,\n disabled: disabled,\n persistentFocus: persistentFocus,\n crossFrame: crossFrame,\n autoFocus: autoFocus,\n whiteList: whiteList,\n shards: shards,\n onActivation: onActivation,\n onDeactivation: onDeactivation,\n returnFocus: returnFocus,\n focusOptions: focusOptions\n }), /*#__PURE__*/React.createElement(Container, _extends({\n ref: mergedRef\n }, lockProps, {\n className: className,\n onBlur: onBlur,\n onFocus: onFocus\n }), children), hasTailingGuards && /*#__PURE__*/React.createElement(\"div\", {\n \"data-focus-guard\": true,\n tabIndex: disabled ? -1 : 0,\n style: hiddenGuard\n }));\n});\nFocusLock.propTypes = process.env.NODE_ENV !== \"production\" ? {\n children: node,\n disabled: bool,\n returnFocus: oneOfType([bool, object, func]),\n focusOptions: object,\n noFocusGuards: bool,\n hasPositiveIndices: bool,\n allowTextSelection: bool,\n autoFocus: bool,\n persistentFocus: bool,\n crossFrame: bool,\n group: string,\n className: string,\n whiteList: func,\n shards: arrayOf(any),\n as: oneOfType([string, func, object]),\n lockProps: object,\n onActivation: func,\n onDeactivation: func,\n sideCar: any.isRequired\n} : {};\nFocusLock.defaultProps = {\n children: undefined,\n disabled: false,\n returnFocus: false,\n focusOptions: undefined,\n noFocusGuards: false,\n autoFocus: true,\n persistentFocus: false,\n crossFrame: true,\n hasPositiveIndices: undefined,\n allowTextSelection: undefined,\n group: undefined,\n className: undefined,\n whiteList: undefined,\n shards: undefined,\n as: 'div',\n lockProps: {},\n onActivation: undefined,\n onDeactivation: undefined\n};\nexport default FocusLock;","export default function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nexport default function _toPropertyKey(arg) {\n var key = toPrimitive(arg, \"string\");\n return _typeof(key) === \"symbol\" ? key : String(key);\n}","import _typeof from \"./typeof.js\";\nexport default function _toPrimitive(input, hint) {\n if (_typeof(input) !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (_typeof(res) !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}","import _inheritsLoose from '@babel/runtime/helpers/esm/inheritsLoose';\nimport _defineProperty from '@babel/runtime/helpers/esm/defineProperty';\nimport React, { PureComponent } from 'react';\n\nfunction withSideEffect(reducePropsToState, handleStateChangeOnClient) {\n if (process.env.NODE_ENV !== \"production\") {\n if (typeof reducePropsToState !== 'function') {\n throw new Error('Expected reducePropsToState to be a function.');\n }\n\n if (typeof handleStateChangeOnClient !== 'function') {\n throw new Error('Expected handleStateChangeOnClient to be a function.');\n }\n }\n\n function getDisplayName(WrappedComponent) {\n return WrappedComponent.displayName || WrappedComponent.name || 'Component';\n }\n\n return function wrap(WrappedComponent) {\n if (process.env.NODE_ENV !== \"production\") {\n if (typeof WrappedComponent !== 'function') {\n throw new Error('Expected WrappedComponent to be a React component.');\n }\n }\n\n var mountedInstances = [];\n var state;\n\n function emitChange() {\n state = reducePropsToState(mountedInstances.map(function (instance) {\n return instance.props;\n }));\n handleStateChangeOnClient(state);\n }\n\n var SideEffect = /*#__PURE__*/function (_PureComponent) {\n _inheritsLoose(SideEffect, _PureComponent);\n\n function SideEffect() {\n return _PureComponent.apply(this, arguments) || this;\n }\n\n // Try to use displayName of wrapped component\n SideEffect.peek = function peek() {\n return state;\n };\n\n var _proto = SideEffect.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n mountedInstances.push(this);\n emitChange();\n };\n\n _proto.componentDidUpdate = function componentDidUpdate() {\n emitChange();\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n var index = mountedInstances.indexOf(this);\n mountedInstances.splice(index, 1);\n emitChange();\n };\n\n _proto.render = function render() {\n return /*#__PURE__*/React.createElement(WrappedComponent, this.props);\n };\n\n return SideEffect;\n }(PureComponent);\n\n _defineProperty(SideEffect, \"displayName\", \"SideEffect(\" + getDisplayName(WrappedComponent) + \")\");\n\n return SideEffect;\n };\n}\n\nexport default withSideEffect;\n","import toPropertyKey from \"./toPropertyKey.js\";\nexport default function _defineProperty(obj, key, value) {\n key = toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}","/*\nIE11 support\n */\nexport var toArray = function (a) {\n var ret = Array(a.length);\n for (var i = 0; i < a.length; ++i) {\n ret[i] = a[i];\n }\n return ret;\n};\nexport var asArray = function (a) { return (Array.isArray(a) ? a : [a]); };\nexport var getFirst = function (a) { return (Array.isArray(a) ? a[0] : a); };\n","import { FOCUS_NO_AUTOFOCUS } from '../constants';\nvar isElementHidden = function (node) {\n // we can measure only \"elements\"\n // consider others as \"visible\"\n if (node.nodeType !== Node.ELEMENT_NODE) {\n return false;\n }\n var computedStyle = window.getComputedStyle(node, null);\n if (!computedStyle || !computedStyle.getPropertyValue) {\n return false;\n }\n return (computedStyle.getPropertyValue('display') === 'none' || computedStyle.getPropertyValue('visibility') === 'hidden');\n};\nvar getParentNode = function (node) {\n // DOCUMENT_FRAGMENT_NODE can also point on ShadowRoot. In this case .host will point on the next node\n return node.parentNode && node.parentNode.nodeType === Node.DOCUMENT_FRAGMENT_NODE\n ? // eslint-disable-next-line @typescript-eslint/no-explicit-any\n node.parentNode.host\n : node.parentNode;\n};\nvar isTopNode = function (node) {\n // @ts-ignore\n return node === document || (node && node.nodeType === Node.DOCUMENT_NODE);\n};\nvar isVisibleUncached = function (node, checkParent) {\n return !node || isTopNode(node) || (!isElementHidden(node) && checkParent(getParentNode(node)));\n};\nexport var isVisibleCached = function (visibilityCache, node) {\n var cached = visibilityCache.get(node);\n if (cached !== undefined) {\n return cached;\n }\n var result = isVisibleUncached(node, isVisibleCached.bind(undefined, visibilityCache));\n visibilityCache.set(node, result);\n return result;\n};\nvar isAutoFocusAllowedUncached = function (node, checkParent) {\n return node && !isTopNode(node) ? (isAutoFocusAllowed(node) ? checkParent(getParentNode(node)) : false) : true;\n};\nexport var isAutoFocusAllowedCached = function (cache, node) {\n var cached = cache.get(node);\n if (cached !== undefined) {\n return cached;\n }\n var result = isAutoFocusAllowedUncached(node, isAutoFocusAllowedCached.bind(undefined, cache));\n cache.set(node, result);\n return result;\n};\nexport var getDataset = function (node) {\n // @ts-ignore\n return node.dataset;\n};\nexport var isHTMLButtonElement = function (node) { return node.tagName === 'BUTTON'; };\nexport var isHTMLInputElement = function (node) { return node.tagName === 'INPUT'; };\nexport var isRadioElement = function (node) {\n return isHTMLInputElement(node) && node.type === 'radio';\n};\nexport var notHiddenInput = function (node) {\n return !((isHTMLInputElement(node) || isHTMLButtonElement(node)) && (node.type === 'hidden' || node.disabled));\n};\nexport var isAutoFocusAllowed = function (node) {\n var attribute = node.getAttribute(FOCUS_NO_AUTOFOCUS);\n return ![true, 'true', ''].includes(attribute);\n};\nexport var isGuard = function (node) { var _a; return Boolean(node && ((_a = getDataset(node)) === null || _a === void 0 ? void 0 : _a.focusGuard)); };\nexport var isNotAGuard = function (node) { return !isGuard(node); };\nexport var isDefined = function (x) { return Boolean(x); };\n","import { toArray } from './array';\nexport var tabSort = function (a, b) {\n var tabDiff = a.tabIndex - b.tabIndex;\n var indexDiff = a.index - b.index;\n if (tabDiff) {\n if (!a.tabIndex) {\n return 1;\n }\n if (!b.tabIndex) {\n return -1;\n }\n }\n return tabDiff || indexDiff;\n};\nexport var orderByTabIndex = function (nodes, filterNegative, keepGuards) {\n return toArray(nodes)\n .map(function (node, index) { return ({\n node: node,\n index: index,\n tabIndex: keepGuards && node.tabIndex === -1 ? ((node.dataset || {}).focusGuard ? 0 : -1) : node.tabIndex,\n }); })\n .filter(function (data) { return !filterNegative || data.tabIndex >= 0; })\n .sort(tabSort);\n};\n","import { FOCUS_AUTO } from '../constants';\nimport { toArray } from './array';\nimport { tabbables } from './tabbables';\nvar queryTabbables = tabbables.join(',');\nvar queryGuardTabbables = \"\".concat(queryTabbables, \", [data-focus-guard]\");\nvar getFocusablesWithShadowDom = function (parent, withGuards) {\n return toArray((parent.shadowRoot || parent).children).reduce(function (acc, child) {\n return acc.concat(child.matches(withGuards ? queryGuardTabbables : queryTabbables) ? [child] : [], getFocusablesWithShadowDom(child));\n }, []);\n};\nvar getFocusablesWithIFrame = function (parent, withGuards) {\n var _a;\n // contentDocument of iframe will be null if current origin cannot access it\n if (parent instanceof HTMLIFrameElement && ((_a = parent.contentDocument) === null || _a === void 0 ? void 0 : _a.body)) {\n return getFocusables([parent.contentDocument.body], withGuards);\n }\n return [parent];\n};\nexport var getFocusables = function (parents, withGuards) {\n return parents.reduce(function (acc, parent) {\n var _a;\n var focusableWithShadowDom = getFocusablesWithShadowDom(parent, withGuards);\n var focusableWithIframes = (_a = []).concat.apply(_a, focusableWithShadowDom.map(function (node) { return getFocusablesWithIFrame(node, withGuards); }));\n return acc.concat(\n // add all tabbables inside and within shadow DOMs in DOM order\n focusableWithIframes, \n // add if node is tabbable itself\n parent.parentNode\n ? toArray(parent.parentNode.querySelectorAll(queryTabbables)).filter(function (node) { return node === parent; })\n : []);\n }, []);\n};\n/**\n * return a list of focusable nodes within an area marked as \"auto-focusable\"\n * @param parent\n */\nexport var getParentAutofocusables = function (parent) {\n var parentFocus = parent.querySelectorAll(\"[\".concat(FOCUS_AUTO, \"]\"));\n return toArray(parentFocus)\n .map(function (node) { return getFocusables([node]); })\n .reduce(function (acc, nodes) { return acc.concat(nodes); }, []);\n};\n","/**\n * list of the object to be considered as focusable\n */\nexport var tabbables = [\n 'button:enabled',\n 'select:enabled',\n 'textarea:enabled',\n 'input:enabled',\n // elements with explicit roles will also use explicit tabindex\n // '[role=\"button\"]',\n 'a[href]',\n 'area[href]',\n 'summary',\n 'iframe',\n 'object',\n 'embed',\n 'audio[controls]',\n 'video[controls]',\n '[tabindex]',\n '[contenteditable]',\n '[autofocus]',\n];\n","import { toArray } from './array';\nimport { isAutoFocusAllowedCached, isVisibleCached, notHiddenInput } from './is';\nimport { orderByTabIndex } from './tabOrder';\nimport { getFocusables, getParentAutofocusables } from './tabUtils';\n/**\n * given list of focusable elements keeps the ones user can interact with\n * @param nodes\n * @param visibilityCache\n */\nexport var filterFocusable = function (nodes, visibilityCache) {\n return toArray(nodes)\n .filter(function (node) { return isVisibleCached(visibilityCache, node); })\n .filter(function (node) { return notHiddenInput(node); });\n};\nexport var filterAutoFocusable = function (nodes, cache) {\n if (cache === void 0) { cache = new Map(); }\n return toArray(nodes).filter(function (node) { return isAutoFocusAllowedCached(cache, node); });\n};\n/**\n * !__WARNING__! Low level API.\n * @returns all tabbable nodes\n *\n * @see {@link getFocusableNodes} to get any focusable element\n *\n * @param topNodes - array of top level HTMLElements to search inside\n * @param visibilityCache - an cache to store intermediate measurements. Expected to be a fresh `new Map` on every call\n */\nexport var getTabbableNodes = function (topNodes, visibilityCache, withGuards) {\n return orderByTabIndex(filterFocusable(getFocusables(topNodes, withGuards), visibilityCache), true, withGuards);\n};\n/**\n * !__WARNING__! Low level API.\n *\n * @returns anything \"focusable\", not only tabbable. The difference is in `tabIndex=-1`\n * (without guards, as long as they are not expected to be ever focused)\n *\n * @see {@link getTabbableNodes} to get only tabble nodes element\n *\n * @param topNodes - array of top level HTMLElements to search inside\n * @param visibilityCache - an cache to store intermediate measurements. Expected to be a fresh `new Map` on every call\n */\nexport var getFocusableNodes = function (topNodes, visibilityCache) {\n return orderByTabIndex(filterFocusable(getFocusables(topNodes), visibilityCache), false);\n};\n/**\n * return list of nodes which are expected to be auto-focused\n * @param topNode\n * @param visibilityCache\n */\nexport var parentAutofocusables = function (topNode, visibilityCache) {\n return filterFocusable(getParentAutofocusables(topNode), visibilityCache);\n};\n/*\n * Determines if element is contained in scope, including nested shadow DOMs\n */\nexport var contains = function (scope, element) {\n if (scope.shadowRoot) {\n return contains(scope.shadowRoot, element);\n }\n else {\n if (Object.getPrototypeOf(scope).contains !== undefined &&\n Object.getPrototypeOf(scope).contains.call(scope, element)) {\n return true;\n }\n return toArray(scope.children).some(function (child) {\n var _a;\n if (child instanceof HTMLIFrameElement) {\n var iframeBody = (_a = child.contentDocument) === null || _a === void 0 ? void 0 : _a.body;\n if (iframeBody) {\n return contains(iframeBody, element);\n }\n return false;\n }\n return contains(child, element);\n });\n }\n};\n","/**\n * returns active element from document or from nested shadowdoms\n */\nimport { safeProbe } from './safe';\n/**\n * returns current active element. If the active element is a \"container\" itself(shadowRoot or iframe) returns active element inside it\n * @param [inDocument]\n */\nexport var getActiveElement = function (inDocument) {\n if (inDocument === void 0) { inDocument = document; }\n if (!inDocument || !inDocument.activeElement) {\n return undefined;\n }\n var activeElement = inDocument.activeElement;\n return (activeElement.shadowRoot\n ? getActiveElement(activeElement.shadowRoot)\n : activeElement instanceof HTMLIFrameElement && safeProbe(function () { return activeElement.contentWindow.document; })\n ? getActiveElement(activeElement.contentWindow.document)\n : activeElement);\n};\n","export var safeProbe = function (cb) {\n try {\n return cb();\n }\n catch (e) {\n return undefined;\n }\n};\n","import { FOCUS_DISABLED, FOCUS_GROUP } from '../constants';\nimport { asArray, toArray } from './array';\n/**\n * in case of multiple nodes nested inside each other\n * keeps only top ones\n * this is O(nlogn)\n * @param nodes\n * @returns {*}\n */\nvar filterNested = function (nodes) {\n var contained = new Set();\n var l = nodes.length;\n for (var i = 0; i < l; i += 1) {\n for (var j = i + 1; j < l; j += 1) {\n var position = nodes[i].compareDocumentPosition(nodes[j]);\n /* eslint-disable no-bitwise */\n if ((position & Node.DOCUMENT_POSITION_CONTAINED_BY) > 0) {\n contained.add(j);\n }\n if ((position & Node.DOCUMENT_POSITION_CONTAINS) > 0) {\n contained.add(i);\n }\n /* eslint-enable */\n }\n }\n return nodes.filter(function (_, index) { return !contained.has(index); });\n};\n/**\n * finds top most parent for a node\n * @param node\n * @returns {*}\n */\nvar getTopParent = function (node) {\n return node.parentNode ? getTopParent(node.parentNode) : node;\n};\n/**\n * returns all \"focus containers\" inside a given node\n * @param node - node or nodes to look inside\n * @returns Element[]\n */\nexport var getAllAffectedNodes = function (node) {\n var nodes = asArray(node);\n return nodes.filter(Boolean).reduce(function (acc, currentNode) {\n var group = currentNode.getAttribute(FOCUS_GROUP);\n acc.push.apply(acc, (group\n ? filterNested(toArray(getTopParent(currentNode).querySelectorAll(\"[\".concat(FOCUS_GROUP, \"=\\\"\").concat(group, \"\\\"]:not([\").concat(FOCUS_DISABLED, \"=\\\"disabled\\\"])\"))))\n : [currentNode]));\n return acc;\n }, []);\n};\n","import { contains } from './utils/DOMutils';\nimport { getAllAffectedNodes } from './utils/all-affected';\nimport { getFirst, toArray } from './utils/array';\nimport { getActiveElement } from './utils/getActiveElement';\nvar focusInFrame = function (frame, activeElement) { return frame === activeElement; };\nvar focusInsideIframe = function (topNode, activeElement) {\n return Boolean(toArray(topNode.querySelectorAll('iframe')).some(function (node) { return focusInFrame(node, activeElement); }));\n};\n/**\n * @returns {Boolean} true, if the current focus is inside given node or nodes.\n * Supports nodes hidden inside shadowDom\n */\nexport var focusInside = function (topNode, activeElement) {\n // const activeElement = document && getActiveElement();\n if (activeElement === void 0) { activeElement = getActiveElement(getFirst(topNode).ownerDocument); }\n if (!activeElement || (activeElement.dataset && activeElement.dataset.focusGuard)) {\n return false;\n }\n return getAllAffectedNodes(topNode).some(function (node) {\n return contains(node, activeElement) || focusInsideIframe(node, activeElement);\n });\n};\n","import { isRadioElement } from './is';\nvar findSelectedRadio = function (node, nodes) {\n return nodes\n .filter(isRadioElement)\n .filter(function (el) { return el.name === node.name; })\n .filter(function (el) { return el.checked; })[0] || node;\n};\nexport var correctNode = function (node, nodes) {\n if (isRadioElement(node) && node.name) {\n return findSelectedRadio(node, nodes);\n }\n return node;\n};\n/**\n * giving a set of radio inputs keeps only selected (tabbable) ones\n * @param nodes\n */\nexport var correctNodes = function (nodes) {\n // IE11 has no Set(array) constructor\n var resultSet = new Set();\n nodes.forEach(function (node) { return resultSet.add(correctNode(node, nodes)); });\n // using filter to support IE11\n return nodes.filter(function (node) { return resultSet.has(node); });\n};\n","import { correctNode } from './correctFocus';\nexport var pickFirstFocus = function (nodes) {\n if (nodes[0] && nodes.length > 1) {\n return correctNode(nodes[0], nodes);\n }\n return nodes[0];\n};\nexport var pickFocusable = function (nodes, index) {\n if (nodes.length > 1) {\n return nodes.indexOf(correctNode(nodes[index], nodes));\n }\n return index;\n};\n","import { correctNodes } from './utils/correctFocus';\nimport { pickFocusable } from './utils/firstFocus';\nimport { isGuard } from './utils/is';\nexport var NEW_FOCUS = 'NEW_FOCUS';\n/**\n * Main solver for the \"find next focus\" question\n * @param innerNodes\n * @param outerNodes\n * @param activeElement\n * @param lastNode\n * @returns {number|string|undefined|*}\n */\nexport var newFocus = function (innerNodes, outerNodes, activeElement, lastNode) {\n var cnt = innerNodes.length;\n var firstFocus = innerNodes[0];\n var lastFocus = innerNodes[cnt - 1];\n var isOnGuard = isGuard(activeElement);\n // focus is inside\n if (activeElement && innerNodes.indexOf(activeElement) >= 0) {\n return undefined;\n }\n var activeIndex = activeElement !== undefined ? outerNodes.indexOf(activeElement) : -1;\n var lastIndex = lastNode ? outerNodes.indexOf(lastNode) : activeIndex;\n var lastNodeInside = lastNode ? innerNodes.indexOf(lastNode) : -1;\n var indexDiff = activeIndex - lastIndex;\n var firstNodeIndex = outerNodes.indexOf(firstFocus);\n var lastNodeIndex = outerNodes.indexOf(lastFocus);\n var correctedNodes = correctNodes(outerNodes);\n var correctedIndex = activeElement !== undefined ? correctedNodes.indexOf(activeElement) : -1;\n var correctedIndexDiff = correctedIndex - (lastNode ? correctedNodes.indexOf(lastNode) : activeIndex);\n var returnFirstNode = pickFocusable(innerNodes, 0);\n var returnLastNode = pickFocusable(innerNodes, cnt - 1);\n // new focus\n if (activeIndex === -1 || lastNodeInside === -1) {\n return NEW_FOCUS;\n }\n // old focus\n if (!indexDiff && lastNodeInside >= 0) {\n return lastNodeInside;\n }\n // first element\n if (activeIndex <= firstNodeIndex && isOnGuard && Math.abs(indexDiff) > 1) {\n return returnLastNode;\n }\n // last element\n if (activeIndex >= lastNodeIndex && isOnGuard && Math.abs(indexDiff) > 1) {\n return returnFirstNode;\n }\n // jump out, but not on the guard\n if (indexDiff && Math.abs(correctedIndexDiff) > 1) {\n return lastNodeInside;\n }\n // focus above lock\n if (activeIndex <= firstNodeIndex) {\n return returnLastNode;\n }\n // focus below lock\n if (activeIndex > lastNodeIndex) {\n return returnFirstNode;\n }\n // index is inside tab order, but outside Lock\n if (indexDiff) {\n if (Math.abs(indexDiff) > 1) {\n return lastNodeInside;\n }\n return (cnt + lastNodeInside + indexDiff) % cnt;\n }\n // do nothing\n return undefined;\n};\n","import { filterAutoFocusable } from './DOMutils';\nimport { pickFirstFocus } from './firstFocus';\nimport { getDataset } from './is';\nvar findAutoFocused = function (autoFocusables) {\n return function (node) {\n var _a;\n var autofocus = (_a = getDataset(node)) === null || _a === void 0 ? void 0 : _a.autofocus;\n return (\n // @ts-expect-error\n node.autofocus ||\n //\n (autofocus !== undefined && autofocus !== 'false') ||\n //\n autoFocusables.indexOf(node) >= 0);\n };\n};\nexport var pickAutofocus = function (nodesIndexes, orderedNodes, groups) {\n var nodes = nodesIndexes.map(function (_a) {\n var node = _a.node;\n return node;\n });\n var autoFocusable = filterAutoFocusable(nodes.filter(findAutoFocused(groups)));\n if (autoFocusable && autoFocusable.length) {\n return pickFirstFocus(autoFocusable);\n }\n return pickFirstFocus(filterAutoFocusable(orderedNodes));\n};\n","import { parentAutofocusables } from './DOMutils';\nimport { contains } from './DOMutils';\nimport { asArray } from './array';\nvar getParents = function (node, parents) {\n if (parents === void 0) { parents = []; }\n parents.push(node);\n if (node.parentNode) {\n getParents(node.parentNode.host || node.parentNode, parents);\n }\n return parents;\n};\n/**\n * finds a parent for both nodeA and nodeB\n * @param nodeA\n * @param nodeB\n * @returns {boolean|*}\n */\nexport var getCommonParent = function (nodeA, nodeB) {\n var parentsA = getParents(nodeA);\n var parentsB = getParents(nodeB);\n // tslint:disable-next-line:prefer-for-of\n for (var i = 0; i < parentsA.length; i += 1) {\n var currentParent = parentsA[i];\n if (parentsB.indexOf(currentParent) >= 0) {\n return currentParent;\n }\n }\n return false;\n};\nexport var getTopCommonParent = function (baseActiveElement, leftEntry, rightEntries) {\n var activeElements = asArray(baseActiveElement);\n var leftEntries = asArray(leftEntry);\n var activeElement = activeElements[0];\n var topCommon = false;\n leftEntries.filter(Boolean).forEach(function (entry) {\n topCommon = getCommonParent(topCommon || entry, entry) || topCommon;\n rightEntries.filter(Boolean).forEach(function (subEntry) {\n var common = getCommonParent(activeElement, subEntry);\n if (common) {\n if (!topCommon || contains(common, topCommon)) {\n topCommon = common;\n }\n else {\n topCommon = getCommonParent(common, topCommon);\n }\n }\n });\n });\n // TODO: add assert here?\n return topCommon;\n};\n/**\n * return list of nodes which are expected to be autofocused inside a given top nodes\n * @param entries\n * @param visibilityCache\n */\nexport var allParentAutofocusables = function (entries, visibilityCache) {\n return entries.reduce(function (acc, node) { return acc.concat(parentAutofocusables(node, visibilityCache)); }, []);\n};\n","import { NEW_FOCUS, newFocus } from './solver';\nimport { getFocusableNodes, getTabbableNodes } from './utils/DOMutils';\nimport { getAllAffectedNodes } from './utils/all-affected';\nimport { asArray, getFirst } from './utils/array';\nimport { pickAutofocus } from './utils/auto-focus';\nimport { getActiveElement } from './utils/getActiveElement';\nimport { isDefined, isNotAGuard } from './utils/is';\nimport { allParentAutofocusables, getTopCommonParent } from './utils/parenting';\nvar reorderNodes = function (srcNodes, dstNodes) {\n var remap = new Map();\n // no Set(dstNodes) for IE11 :(\n dstNodes.forEach(function (entity) { return remap.set(entity.node, entity); });\n // remap to dstNodes\n return srcNodes.map(function (node) { return remap.get(node); }).filter(isDefined);\n};\n/**\n * contains the main logic of the `focus-lock` package.\n *\n * ! you probably dont need this function !\n *\n * given top node(s) and the last active element returns the element to be focused next\n * @returns element which should be focused to move focus inside\n * @param topNode\n * @param lastNode\n */\nexport var focusSolver = function (topNode, lastNode) {\n var activeElement = getActiveElement(asArray(topNode).length > 0 ? document : getFirst(topNode).ownerDocument);\n var entries = getAllAffectedNodes(topNode).filter(isNotAGuard);\n var commonParent = getTopCommonParent(activeElement || topNode, topNode, entries);\n var visibilityCache = new Map();\n var anyFocusable = getFocusableNodes(entries, visibilityCache);\n var innerElements = getTabbableNodes(entries, visibilityCache).filter(function (_a) {\n var node = _a.node;\n return isNotAGuard(node);\n });\n if (!innerElements[0]) {\n innerElements = anyFocusable;\n if (!innerElements[0]) {\n return undefined;\n }\n }\n var outerNodes = getFocusableNodes([commonParent], visibilityCache).map(function (_a) {\n var node = _a.node;\n return node;\n });\n var orderedInnerElements = reorderNodes(outerNodes, innerElements);\n var innerNodes = orderedInnerElements.map(function (_a) {\n var node = _a.node;\n return node;\n });\n var newId = newFocus(innerNodes, outerNodes, activeElement, lastNode);\n if (newId === NEW_FOCUS) {\n var focusNode = pickAutofocus(anyFocusable, innerNodes, allParentAutofocusables(entries, visibilityCache));\n if (focusNode) {\n return { node: focusNode };\n }\n else {\n console.warn('focus-lock: cannot find any node to move focus into');\n return undefined;\n }\n }\n if (newId === undefined) {\n return newId;\n }\n return orderedInnerElements[newId];\n};\n","import { focusOn } from './commands';\nimport { focusSolver } from './focusSolver';\nvar guardCount = 0;\nvar lockDisabled = false;\n/**\n * The main functionality of the focus-lock package\n *\n * Contains focus at a given node.\n * The last focused element will help to determine which element(first or last) should be focused.\n * The found element will be focused.\n *\n * This is one time action (move), not a persistent focus-lock\n *\n * HTML markers (see {@link import('./constants').FOCUS_AUTO} constants) can control autofocus\n * @see {@link focusSolver} for the same functionality without autofocus\n */\nexport var moveFocusInside = function (topNode, lastNode, options) {\n if (options === void 0) { options = {}; }\n var focusable = focusSolver(topNode, lastNode);\n // global local side effect to countain recursive lock activation and resolve focus-fighting\n if (lockDisabled) {\n return;\n }\n if (focusable) {\n /** +FOCUS-FIGHTING prevention **/\n if (guardCount > 2) {\n // we have recursive entered back the lock activation\n console.error('FocusLock: focus-fighting detected. Only one focus management system could be active. ' +\n 'See https://github.com/theKashey/focus-lock/#focus-fighting');\n lockDisabled = true;\n setTimeout(function () {\n lockDisabled = false;\n }, 1);\n return;\n }\n guardCount++;\n focusOn(focusable.node, options.focusOptions);\n guardCount--;\n }\n};\n","export var focusOn = function (target, focusOptions) {\n if ('focus' in target) {\n target.focus(focusOptions);\n }\n if ('contentWindow' in target && target.contentWindow) {\n target.contentWindow.focus();\n }\n};\n","export function deferAction(action) {\n setTimeout(action, 1);\n}\nexport var inlineProp = function inlineProp(name, value) {\n var obj = {};\n obj[name] = value;\n return obj;\n};","/* eslint-disable no-mixed-operators */\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport withSideEffect from 'react-clientside-effect';\nimport { moveFocusInside, focusInside, focusIsHidden, expandFocusableNodes } from 'focus-lock';\nimport { deferAction } from './util';\nimport { mediumFocus, mediumBlur, mediumEffect } from './medium';\n\nvar focusOnBody = function focusOnBody() {\n return document && document.activeElement === document.body;\n};\n\nvar isFreeFocus = function isFreeFocus() {\n return focusOnBody() || focusIsHidden();\n};\n\nvar lastActiveTrap = null;\nvar lastActiveFocus = null;\nvar lastPortaledElement = null;\nvar focusWasOutsideWindow = false;\n\nvar defaultWhitelist = function defaultWhitelist() {\n return true;\n};\n\nvar focusWhitelisted = function focusWhitelisted(activeElement) {\n return (lastActiveTrap.whiteList || defaultWhitelist)(activeElement);\n};\n\nvar recordPortal = function recordPortal(observerNode, portaledElement) {\n lastPortaledElement = {\n observerNode: observerNode,\n portaledElement: portaledElement\n };\n};\n\nvar focusIsPortaledPair = function focusIsPortaledPair(element) {\n return lastPortaledElement && lastPortaledElement.portaledElement === element;\n};\n\nfunction autoGuard(startIndex, end, step, allNodes) {\n var lastGuard = null;\n var i = startIndex;\n\n do {\n var item = allNodes[i];\n\n if (item.guard) {\n if (item.node.dataset.focusAutoGuard) {\n lastGuard = item;\n }\n } else if (item.lockItem) {\n if (i !== startIndex) {\n // we will tab to the next element\n return;\n }\n\n lastGuard = null;\n } else {\n break;\n }\n } while ((i += step) !== end);\n\n if (lastGuard) {\n lastGuard.node.tabIndex = 0;\n }\n}\n\nvar extractRef = function extractRef(ref) {\n return ref && 'current' in ref ? ref.current : ref;\n};\n\nvar focusWasOutside = function focusWasOutside(crossFrameOption) {\n if (crossFrameOption) {\n // with cross frame return true for any value\n return Boolean(focusWasOutsideWindow);\n } // in other case return only of focus went a while aho\n\n\n return focusWasOutsideWindow === 'meanwhile';\n};\n\nvar checkInHost = function checkInHost(check, el, boundary) {\n return el && ( // find host equal to active element and check nested active element\n el.host === check && (!el.activeElement || boundary.contains(el.activeElement)) // dive up\n || el.parentNode && checkInHost(check, el.parentNode, boundary));\n};\n\nvar withinHost = function withinHost(activeElement, workingArea) {\n return workingArea.some(function (area) {\n return checkInHost(activeElement, area, area);\n });\n};\n\nvar activateTrap = function activateTrap() {\n var result = false;\n\n if (lastActiveTrap) {\n var _lastActiveTrap = lastActiveTrap,\n observed = _lastActiveTrap.observed,\n persistentFocus = _lastActiveTrap.persistentFocus,\n autoFocus = _lastActiveTrap.autoFocus,\n shards = _lastActiveTrap.shards,\n crossFrame = _lastActiveTrap.crossFrame,\n focusOptions = _lastActiveTrap.focusOptions;\n var workingNode = observed || lastPortaledElement && lastPortaledElement.portaledElement;\n var activeElement = document && document.activeElement;\n\n if (workingNode) {\n var workingArea = [workingNode].concat(shards.map(extractRef).filter(Boolean));\n\n if (!activeElement || focusWhitelisted(activeElement)) {\n if (persistentFocus || focusWasOutside(crossFrame) || !isFreeFocus() || !lastActiveFocus && autoFocus) {\n if (workingNode && !( // active element is \"inside\" working area\n focusInside(workingArea) || // check for shadow-dom contained elements\n activeElement && withinHost(activeElement, workingArea) || focusIsPortaledPair(activeElement, workingNode))) {\n if (document && !lastActiveFocus && activeElement && !autoFocus) {\n // Check if blur() exists, which is missing on certain elements on IE\n if (activeElement.blur) {\n activeElement.blur();\n }\n\n document.body.focus();\n } else {\n result = moveFocusInside(workingArea, lastActiveFocus, {\n focusOptions: focusOptions\n });\n lastPortaledElement = {};\n }\n }\n\n focusWasOutsideWindow = false;\n lastActiveFocus = document && document.activeElement;\n }\n }\n\n if (document) {\n var newActiveElement = document && document.activeElement;\n var allNodes = expandFocusableNodes(workingArea);\n var focusedIndex = allNodes.map(function (_ref) {\n var node = _ref.node;\n return node;\n }).indexOf(newActiveElement);\n\n if (focusedIndex > -1) {\n // remove old focus\n allNodes.filter(function (_ref2) {\n var guard = _ref2.guard,\n node = _ref2.node;\n return guard && node.dataset.focusAutoGuard;\n }).forEach(function (_ref3) {\n var node = _ref3.node;\n return node.removeAttribute('tabIndex');\n });\n autoGuard(focusedIndex, allNodes.length, +1, allNodes);\n autoGuard(focusedIndex, -1, -1, allNodes);\n }\n }\n }\n }\n\n return result;\n};\n\nvar onTrap = function onTrap(event) {\n if (activateTrap() && event) {\n // prevent scroll jump\n event.stopPropagation();\n event.preventDefault();\n }\n};\n\nvar onBlur = function onBlur() {\n return deferAction(activateTrap);\n};\n\nvar onFocus = function onFocus(event) {\n // detect portal\n var source = event.target;\n var currentNode = event.currentTarget;\n\n if (!currentNode.contains(source)) {\n recordPortal(currentNode, source);\n }\n};\n\nvar FocusWatcher = function FocusWatcher() {\n return null;\n};\n\nvar FocusTrap = function FocusTrap(_ref4) {\n var children = _ref4.children;\n return /*#__PURE__*/React.createElement(\"div\", {\n onBlur: onBlur,\n onFocus: onFocus\n }, children);\n};\n\nFocusTrap.propTypes = process.env.NODE_ENV !== \"production\" ? {\n children: PropTypes.node.isRequired\n} : {};\n\nvar onWindowBlur = function onWindowBlur() {\n focusWasOutsideWindow = 'just'; // using setTimeout to set this variable after React/sidecar reaction\n\n deferAction(function () {\n focusWasOutsideWindow = 'meanwhile';\n });\n};\n\nvar attachHandler = function attachHandler() {\n document.addEventListener('focusin', onTrap);\n document.addEventListener('focusout', onBlur);\n window.addEventListener('blur', onWindowBlur);\n};\n\nvar detachHandler = function detachHandler() {\n document.removeEventListener('focusin', onTrap);\n document.removeEventListener('focusout', onBlur);\n window.removeEventListener('blur', onWindowBlur);\n};\n\nfunction reducePropsToState(propsList) {\n return propsList.filter(function (_ref5) {\n var disabled = _ref5.disabled;\n return !disabled;\n });\n}\n\nfunction handleStateChangeOnClient(traps) {\n var trap = traps.slice(-1)[0];\n\n if (trap && !lastActiveTrap) {\n attachHandler();\n }\n\n var lastTrap = lastActiveTrap;\n var sameTrap = lastTrap && trap && trap.id === lastTrap.id;\n lastActiveTrap = trap;\n\n if (lastTrap && !sameTrap) {\n lastTrap.onDeactivation(); // return focus only of last trap was removed\n\n if (!traps.filter(function (_ref6) {\n var id = _ref6.id;\n return id === lastTrap.id;\n }).length) {\n // allow defer is no other trap is awaiting restore\n lastTrap.returnFocus(!trap);\n }\n }\n\n if (trap) {\n lastActiveFocus = null;\n\n if (!sameTrap || lastTrap.observed !== trap.observed) {\n trap.onActivation();\n }\n\n activateTrap(true);\n deferAction(activateTrap);\n } else {\n detachHandler();\n lastActiveFocus = null;\n }\n} // bind medium\n\n\nmediumFocus.assignSyncMedium(onFocus);\nmediumBlur.assignMedium(onBlur);\nmediumEffect.assignMedium(function (cb) {\n return cb({\n moveFocusInside: moveFocusInside,\n focusInside: focusInside\n });\n});\nexport default withSideEffect(reducePropsToState, handleStateChangeOnClient)(FocusWatcher);","import { FOCUS_ALLOW } from './constants';\nimport { contains } from './utils/DOMutils';\nimport { toArray } from './utils/array';\nimport { getActiveElement } from './utils/getActiveElement';\n/**\n * checks if focus is hidden FROM the focus-lock\n * ie contained inside a node focus-lock shall ignore\n *\n * This is a utility function coupled with {@link FOCUS_ALLOW} constant\n *\n * @returns {boolean} focus is currently is in \"allow\" area\n */\nexport var focusIsHidden = function (inDocument) {\n if (inDocument === void 0) { inDocument = document; }\n var activeElement = getActiveElement(inDocument);\n if (!activeElement) {\n return false;\n }\n // this does not support setting FOCUS_ALLOW within shadow dom\n return toArray(inDocument.querySelectorAll(\"[\".concat(FOCUS_ALLOW, \"]\"))).some(function (node) { return contains(node, activeElement); });\n};\n","import { getTabbableNodes } from './utils/DOMutils';\nimport { getAllAffectedNodes } from './utils/all-affected';\nimport { isGuard, isNotAGuard } from './utils/is';\nimport { getTopCommonParent } from './utils/parenting';\n/**\n * @returns list of focusable elements inside a given top node\n * @see {@link getFocusableNodes} for lower level access\n */\nexport var expandFocusableNodes = function (topNode) {\n var entries = getAllAffectedNodes(topNode).filter(isNotAGuard);\n var commonParent = getTopCommonParent(topNode, topNode, entries);\n var visibilityCache = new Map();\n var outerNodes = getTabbableNodes([commonParent], visibilityCache, true);\n var innerElements = getTabbableNodes(entries, visibilityCache)\n .filter(function (_a) {\n var node = _a.node;\n return isNotAGuard(node);\n })\n .map(function (_a) {\n var node = _a.node;\n return node;\n });\n return outerNodes.map(function (_a) {\n var node = _a.node, index = _a.index;\n return ({\n node: node,\n index: index,\n lockItem: innerElements.indexOf(node) >= 0,\n guard: isGuard(node),\n });\n });\n};\n","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport FocusLockUI from './Lock';\nimport FocusTrap from './Trap';\n/* that would be a BREAKING CHANGE!\n// delaying sidecar execution till the first usage\nconst RequireSideCar = (props) => {\n // eslint-disable-next-line global-require\n const SideCar = require('./Trap').default;\n return ;\n};\n*/\n\nvar FocusLockCombination = /*#__PURE__*/React.forwardRef(function FocusLockUICombination(props, ref) {\n return /*#__PURE__*/React.createElement(FocusLockUI, _extends({\n sideCar: FocusTrap,\n ref: ref\n }, props));\n});\n\nvar _ref = FocusLockUI.propTypes || {},\n sideCar = _ref.sideCar,\n propTypes = _objectWithoutPropertiesLoose(_ref, [\"sideCar\"]);\n\nFocusLockCombination.propTypes = process.env.NODE_ENV !== \"production\" ? propTypes : {};\nexport default FocusLockCombination;","import FocusLock from './Combination';\nexport * from './UI';\nexport default FocusLock;","var __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport FocusTrap from 'react-focus-lock';\n/**\n * WithFocusLock\n *\n * The `WithFocusLock` higher order component provides two things:\n *\n * - `FocusLock` (provided by\n * [react-focus-lock](https://github.com/theKashey/react-focus-lock)) to keep the\n * user focus in the current layer so that keyboard navigation will be restricted\n * to the elements within the `FocusLock`\n * - the `onEscKeyUp` handler that listens for the ESC keyup event to enable\n * closing the current layer by pressing the escape key\n *\n * Example\n *\n * ```javascript\n * const Layer = LayerComponent;\n * const LayerComponentWithFocusLock = withFocusLock(Layer);\n *\n * \n * // some content ...\n * \n *\n * doSomething()}\n * >\n * // some content ...\n * \n * ```\n */\nexport function withFocusLock(WrappedComponent) {\n var _a;\n return _a = class WithFocusLock extends React.PureComponent {\n constructor() {\n super(...arguments);\n this.handleKeyUp = (event) => {\n const { onEscKeyUp } = this.props;\n if (event.key === 'Escape' && onEscKeyUp) {\n event.stopPropagation();\n onEscKeyUp(event);\n }\n };\n }\n render() {\n const _a = this.props, { \n // eslint-disable-next-line @typescript-eslint/no-unused-vars -- The `onEscKeyUp` should not be included in the `wrappedComponentProps`\n onEscKeyUp, disableReturnFocus } = _a, wrappedComponentProps = __rest(_a, [\"onEscKeyUp\", \"disableReturnFocus\"]);\n return (React.createElement(FocusTrap, { returnFocus: !disableReturnFocus, autoFocus: true },\n React.createElement(\"div\", { onKeyUp: this.handleKeyUp },\n React.createElement(WrappedComponent, Object.assign({}, wrappedComponentProps)))));\n }\n },\n _a.displayName = `WithFocusLock(${WrappedComponent.displayName})`,\n _a;\n}\n","import * as React from 'react';\nimport { Alert, Checkmark } from '@volkswagen-onehub/icons-core';\nimport { styled, ThemeProvider } from '../theme-provider';\nimport { getCommonProps } from '../helpers/common-props';\nimport { getNotificationColor } from '../helpers/input';\nimport { Container, ContainerGutter, ContainerPadding, ContainerWrap, } from '../container';\nexport var InfoboxAppearance;\n(function (InfoboxAppearance) {\n InfoboxAppearance[InfoboxAppearance[\"Default\"] = 0] = \"Default\";\n InfoboxAppearance[InfoboxAppearance[\"Error\"] = 1] = \"Error\";\n InfoboxAppearance[InfoboxAppearance[\"Success\"] = 2] = \"Success\";\n})(InfoboxAppearance || (InfoboxAppearance = {}));\nconst getIcon = (appearance) => {\n switch (appearance) {\n case InfoboxAppearance.Success:\n return Checkmark;\n case InfoboxAppearance.Error:\n case InfoboxAppearance.Default:\n default:\n return Alert;\n }\n};\nconst StyledInfobox = styled.div.withConfig({ displayName: \"StyledInfobox\", componentId: \"sc-16u4l1c\" }) `display:inline-block;width:${(props) => props.fullWidth && '100%'};border-radius:4px;background-color:${getNotificationColor};color:${(props) => props.theme.colors.content.primary};`;\n// Actual Icon will be replaced depending on Appearance\nconst StyledIcon = styled(Alert).withConfig({ displayName: \"StyledIcon\", componentId: \"sc-145nlbo\" }) `display:block;`;\nexport const Infobox = (props) => {\n const { ariaLabel, ariaLive, children, fullWidth, hideIcon, appearance, role = 'alert', } = props;\n const commonProps = getCommonProps(props);\n return (React.createElement(ThemeProvider, { theme: \"inverted\" },\n React.createElement(StyledInfobox, Object.assign({ role: role, \"aria-label\": ariaLabel, \"aria-live\": ariaLive, \"aria-atomic\": true, fullWidth: fullWidth, appearance: appearance }, commonProps),\n React.createElement(Container, { gutter: ContainerGutter.static200, wrap: ContainerWrap.never, padding: ContainerPadding.static200, shrinkContent: true },\n !hideIcon && (React.createElement(StyledIcon, { variant: \"default\", ariaHidden: true, as: getIcon(appearance) })),\n React.createElement(React.Fragment, null, children)))));\n};\n","import * as React from 'react';\nimport { styled, ThemeProvider } from '../theme-provider';\nimport { getMediaQueryVars } from '../theme-provider/get-media-query-vars';\nconst StyledApplicationRoot = styled.div.withConfig({ displayName: \"StyledApplicationRoot\", componentId: \"sc-1mahok8\" }) `${getMediaQueryVars()};`;\nexport const ApplicationRoot = ({ children }) => (React.createElement(ThemeProvider, { theme: \"main\" },\n React.createElement(StyledApplicationRoot, null, children)));\n","import * as React from 'react';\nimport { CSSTransition } from 'react-transition-group';\nimport { withTheme } from 'styled-components';\nimport { useThrottle } from '@react-hook/throttle';\nimport { getColumnsWidthForBreakpoint, getGridColumn } from '../helpers/grid';\nimport { getValueByScreenSize, Breakpoints, createStylesForBreakpoints, } from '../helpers/breakpoint';\nimport { styled, css } from '../theme-provider';\nimport { getCommonProps } from '../helpers/common-props';\nexport var InteractionLayerSize;\n(function (InteractionLayerSize) {\n InteractionLayerSize[\"A\"] = \"A\";\n InteractionLayerSize[\"B\"] = \"B\";\n InteractionLayerSize[\"C\"] = \"C\";\n InteractionLayerSize[\"D\"] = \"D\";\n InteractionLayerSize[\"E\"] = \"E\";\n InteractionLayerSize[\"F\"] = \"F\";\n})(InteractionLayerSize || (InteractionLayerSize = {}));\nconst animationClassName = 'animation';\nconst StyledLayerScrollContainer = styled.div.attrs(({ animationDirection, containerHeight }) => ({\n style: { height: animationDirection === 'vertical' ? 'auto' : containerHeight },\n})).withConfig({ displayName: \"StyledLayerScrollContainer\", componentId: \"sc-1d9lvrq\" }) `overflow-y:auto;-webkit-overflow-scrolling:touch;`;\nconst widthsMap = {\n A: {\n [Breakpoints.default]: getGridColumn(23),\n [Breakpoints.b560]: getGridColumn(18),\n [Breakpoints.b960]: getGridColumn(12),\n [Breakpoints.b1280]: getGridColumn(8),\n [Breakpoints.b1600]: getGridColumn(6),\n [Breakpoints.b2560]: getColumnsWidthForBreakpoint(6, Breakpoints.b2560),\n },\n B: {\n [Breakpoints.default]: getGridColumn(23),\n [Breakpoints.b560]: getGridColumn(22),\n [Breakpoints.b960]: getGridColumn(20),\n [Breakpoints.b1600]: getGridColumn(19),\n [Breakpoints.b1920]: getGridColumn(18),\n [Breakpoints.b2560]: getColumnsWidthForBreakpoint(18, Breakpoints.b2560),\n },\n C: {\n [Breakpoints.default]: getGridColumn(22),\n [Breakpoints.b560]: getGridColumn(9),\n [Breakpoints.b2560]: getColumnsWidthForBreakpoint(9, Breakpoints.b2560),\n },\n D: {\n [Breakpoints.default]: getGridColumn(24),\n [Breakpoints.b960]: getColumnsWidthForBreakpoint(24, Breakpoints.b960),\n },\n E: {\n [Breakpoints.default]: getGridColumn(23),\n [Breakpoints.b560]: getGridColumn(18),\n [Breakpoints.b960]: getGridColumn(12),\n [Breakpoints.b1600]: getGridColumn(9),\n [Breakpoints.b2560]: getColumnsWidthForBreakpoint(9, Breakpoints.b2560),\n },\n F: {\n [Breakpoints.default]: getGridColumn(24),\n [Breakpoints.b960]: getColumnsWidthForBreakpoint(12, Breakpoints.b960),\n },\n};\nconst heightsMap = {\n A: 'var(--interaction-layer-height)',\n B: 'var(--interaction-layer-height)',\n C: 'var(--interaction-layer-height)',\n D: 'var(--interaction-layer-height)',\n E: 'var(--interaction-layer-height)',\n F: {\n [Breakpoints.default]: '50vh',\n [Breakpoints.b960]: 'var(--interaction-layer-height)',\n },\n};\nconst directionMap = {\n A: 'horizontal',\n B: 'horizontal',\n C: 'horizontal',\n D: 'horizontal',\n E: 'horizontal',\n F: {\n [Breakpoints.default]: 'vertical',\n [Breakpoints.b960]: 'horizontal',\n },\n};\nfunction createWidthForBreakpoints(props) {\n const widths = widthsMap[props.size];\n if (!widths) {\n return '';\n }\n return createStylesForBreakpoints(widths, (width) => `width: ${width};`);\n}\nfunction createHeightForBreakpoints(props) {\n const heights = heightsMap[props.size];\n if (!heights) {\n return '';\n }\n return createStylesForBreakpoints(heights, (height) => `height: ${height};`);\n}\nfunction createDirectionForBreakpoint(size) {\n const direction = directionMap[size];\n const width = typeof window !== 'undefined' ? window.innerWidth || 0 : 0;\n return getValueByScreenSize(width, direction);\n}\nfunction createPositionAndTransforms(props) {\n const { animationDirection, direction } = props;\n const horizontalAnimationValue = direction === 'rtl' ? '-100%' : '100%';\n const animationTransform = animationDirection === 'horizontal'\n ? `translate(${horizontalAnimationValue}, 0)`\n : `translate(0, 100%)`;\n return css `bottom:0;left:${direction === 'rtl' ? 0 : 'auto'};right:${direction === 'ltr' ? 0 : 'auto'};&.${animationClassName}{&-enter-active,&-enter-active,&-exit-active,&-exit-active{transition:${(props) => {\n const duration = props.theme.animation.duration.layer;\n const timingFunction = props.theme.animation.timingFunction.in;\n return `transform ${duration} ${timingFunction}`;\n }};}&-enter{transform:${animationTransform};}&-enter-active,&-exit{transform:translate(0);}&-exit-active{transform:${animationTransform};}}`;\n}\nconst StyledLayer = styled.div.withConfig({ displayName: \"StyledLayer\", componentId: \"sc-1wno2sw\" }) `background-color:${({ theme }) => theme.colors.background.primary};position:fixed;box-shadow:${({ theme }) => theme.colors.shadow.variant3};overflow-y:auto;-webkit-overflow-scrolling:touch;--interaction-layer-height:${({ height }) => height};${createWidthForBreakpoints} ${createHeightForBreakpoints} ${createPositionAndTransforms};`;\nStyledLayer.displayName = 'StyledLayer';\nconst UnanimatedInteractionLayer = React.forwardRef((props, ref) => {\n const { active, children, direction, size, scrollElementRef, height, ariaLabel, ariaLabelledBy, ariaDescribedBy, } = props;\n const innerRef = ref || undefined;\n const animationDirection = createDirectionForBreakpoint(size);\n return (React.createElement(StyledLayer, { role: \"dialog\", \"aria-modal\": active, size: size, ref: innerRef, direction: direction, animationDirection: animationDirection, height: height, \"aria-describedby\": ariaDescribedBy, \"aria-label\": ariaLabel, \"aria-labelledby\": ariaLabelledBy },\n React.createElement(StyledLayerScrollContainer, { ref: scrollElementRef, containerHeight: height, direction: direction, animationDirection: animationDirection }, children)));\n});\nUnanimatedInteractionLayer.displayName = 'UnanimatedInteractionLayer';\nconst InteractionLayerInternal = (props) => {\n const [height, setHeight] = useThrottle(typeof window !== 'undefined' ? `${window.innerHeight}px` : '100%');\n const handleResize = React.useCallback(() => setHeight(`${window.innerHeight}px`), [setHeight]);\n React.useEffect(() => {\n window.addEventListener('resize', handleResize);\n return () => window.removeEventListener('resize', handleResize);\n }, [handleResize]);\n const { active, ariaLabel, ariaDescribedBy, ariaLabelledBy, children, in: visible = true, key, onExited, scrollElementRef, size, theme, } = props;\n const commonProps = getCommonProps(props);\n const direction = theme.direction || 'ltr';\n const timeout = parseInt(theme.animation.duration.layer || '0', 10);\n return (React.createElement(CSSTransition, { classNames: animationClassName, onExited: onExited, in: Boolean(visible), timeout: timeout },\n React.createElement(UnanimatedInteractionLayer, Object.assign({ active: active, size: size, scrollElementRef: scrollElementRef, direction: direction, key: key, height: height, ariaDescribedBy: ariaDescribedBy, ariaLabel: ariaLabel, ariaLabelledBy: ariaLabelledBy }, commonProps), children)));\n};\nexport const InteractionLayer = withTheme(InteractionLayerInternal);\n","var __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport { TransitionGroup } from 'react-transition-group';\nimport { styled } from '../theme-provider';\nconst StyledLayerWrapper = styled.div.withConfig({ displayName: \"StyledLayerWrapper\", componentId: \"sc-1bl8kxv\" }) `position:fixed;top:0;right:0;bottom:0;left:0;${(props) => props.contentCentered &&\n `\n\t\tdisplay: flex;\n\t\tjustify-content: center;\n\t\talign-items: center;\n\t`} overflow:hidden;pointer-events:none;& > *{pointer-events:auto;}`;\nStyledLayerWrapper.displayName = 'StyledLayerWrapper';\nexport const LayerWrapper = (props) => {\n const { contentCentered } = props, rest = __rest(props, [\"contentCentered\"]);\n return (React.createElement(StyledLayerWrapper, { contentCentered: contentCentered },\n React.createElement(TransitionGroup, Object.assign({}, rest, { appear: true }))));\n};\n","import * as React from 'react';\nimport styled from 'styled-components';\nimport { Text, TextTag, TokenTextAppearance, TokenTextColor } from '../text';\nimport { Breakpoints } from '../helpers/breakpoint';\nimport { css } from '../theme-provider';\nconst borderStyle = css `${(props) => props.theme.size.border.heavy} solid ${(props) => props.theme.colors.focus.main}`;\nconst StyledContentFrame = styled.div.withConfig({ displayName: \"StyledContentFrame\", componentId: \"sc-1o57vyo\" }) `position:relative;max-width:${Breakpoints.b1600}px;margin:0 auto;padding-top:${(props) => props.theme.size.dynamic0200};padding-bottom:${(props) => props.theme.size.dynamic0200};border-top:${borderStyle};border-bottom:${borderStyle};margin-top:0.85em;::before,::after{content:'';position:absolute;border:${borderStyle};height:100%;top:0;}::before{border-right:none;transform:translate(\\n\\t\\t\\tcalc(-1 * ${(props) => props.theme.size.border.heavy}),\\n\\t\\t\\t-${(props) => props.theme.size.border.heavy}\\n\\t\\t);}::after{border-left:none;right:0;transform:translate(\\n\\t\\t\\t${(props) => props.theme.size.border.heavy},\\n\\t\\t\\t-${(props) => props.theme.size.border.heavy}\\n\\t\\t);}`;\nconst StyledLabel = styled.div.withConfig({ displayName: \"StyledLabel\", componentId: \"sc-1xnbxer\" }) `display:inline-block;padding:0 ${(props) => props.theme.size.static150};background:${(props) => props.theme.colors.background.primary};transform:translateY(\\n\\t\\tcalc(\\n\\t\\t\\t-${(props) => props.theme.size.static250} - ${(props) => props.theme.size.dynamic0200}\\n\\t\\t)\\n\\t);margin-left:${(props) => props.theme.size.grid002};margin-right:${(props) => props.theme.size.grid002};`;\nconst StyledLink = styled.a.withConfig({ displayName: \"StyledLink\", componentId: \"sc-znpgg8\" }) `text-decoration-color:${(props) => props.theme.colors.border.hover};`;\nconst StyledOverflowWrapper = styled.div.withConfig({ displayName: \"StyledOverflowWrapper\", componentId: \"sc-1bho25v\" }) `overflow:hidden;`;\nexport const LegalFrame = (props) => {\n const { text, linkText, link, children } = props;\n return (React.createElement(StyledOverflowWrapper, null,\n React.createElement(StyledContentFrame, null,\n React.createElement(StyledLabel, null,\n text && (React.createElement(Text, { appearance: TokenTextAppearance.copy100, tag: TextTag.span, color: TokenTextColor.secondary }, text)),\n text && link && linkText && (React.createElement(Text, { appearance: TokenTextAppearance.copy100, tag: TextTag.span }, ' | ')),\n linkText && link && (React.createElement(StyledLink, { href: link },\n React.createElement(Text, { appearance: TokenTextAppearance.copy100, tag: TextTag.span, bold: true }, linkText)))),\n children)));\n};\n","import * as React from 'react';\nimport { DesignTokenSizeEnum, styled } from '../theme-provider';\nimport { getCommonProps } from '../helpers/common-props';\nexport { DesignTokenSizeEnum as ListGutter };\nconst StyledList = styled.ul.withConfig({ displayName: \"StyledList\", componentId: \"sc-1v05jo\" }) `list-style-type:none;padding:0;margin:0;display:grid;row-gap:${({ theme, gutter }) => theme.size[gutter || 'static300']};`;\nexport const List = (props) => {\n const { children, gutter, isOrdered = false, appearance } = props;\n const commonProps = getCommonProps(props);\n const childrenArr = React.Children.toArray(children);\n const markerSize = Math.floor(Math.pow(childrenArr.length, 1 / 10));\n const childrenElements = childrenArr.map((child) => React.cloneElement(child, {\n appearance,\n markerSize,\n }));\n return (React.createElement(StyledList, Object.assign({ as: isOrdered ? 'ol' : 'ul', gutter: gutter }, commonProps), childrenElements));\n};\n","import * as React from 'react';\nimport { warnWithTrace } from '../helpers/logger';\nimport { css, styled, useTheme } from '../theme-provider';\nconst getTextAppearance = (theme, appearance) => {\n if (!appearance) {\n return theme.fonts['copy']['200'];\n }\n const [, fontKey, fontSizeKey] = appearance.match(/([a-z]{1,25})(\\d{1,10})/);\n return theme.fonts[fontKey][parseInt(fontSizeKey, 10)];\n};\nfunction createFontStyles(props) {\n const { appearance, theme, textColor } = props;\n const textAppearance = getTextAppearance(theme, appearance);\n if (!textAppearance) {\n warnWithTrace(`The textAppearance ${appearance} could not be found`);\n return '';\n }\n const { fontFamily, fontSize, letterSpacing, lineHeight } = textAppearance;\n return css `font-family:${fontFamily};font-size:${fontSize};line-height:${lineHeight};letter-spacing:${letterSpacing};color:${textColor};margin:unset;`;\n}\nconst translateX = css `translateX(\\n\\t${({ theme }) => theme.direction === 'rtl'\n ? `min(2em, ${theme.size.static510})`\n : `max(-2em, -${theme.size.static510})`}\\n);`;\nconst StyledListItem = styled.li.withConfig({ displayName: \"StyledListItem\", componentId: \"sc-112v5tu\" }) `${(props) => createFontStyles(props)};padding-inline-start:min(2em, ${({ theme }) => theme.size.static510});position:relative;&::before{transform:translateX(max(-2em, -${({ theme }) => theme.size.static510}));position:absolute;font-weight:bold;}ul > &::before{transform:${translateX};position:absolute;content:'\\\\2014';}ol > &{counter-increment:items;::before{transform:${translateX};content:${({ markerSize }) => `\"${'0'.repeat(markerSize)}\" counter(items)`};}}`;\nexport const ListItem = ({ children, markerSize = 2, appearance, }) => {\n const theme = useTheme();\n return (React.createElement(StyledListItem, { markerSize: markerSize, appearance: appearance, textColor: theme.colors.content.primary }, children));\n};\n","/* eslint-disable sonarjs/no-duplicate-string -- the strings need to be duplicated because they are further defined by other parameter in their object */\nexport const MapTopographyStyles = [\n {\n elementType: 'geometry',\n stylers: [\n {\n color: '#f5f5f5',\n },\n ],\n },\n {\n elementType: 'labels.icon',\n stylers: [\n {\n visibility: 'off',\n },\n ],\n },\n {\n elementType: 'labels.text.fill',\n stylers: [\n {\n color: '#616161',\n },\n ],\n },\n {\n elementType: 'labels.text.stroke',\n stylers: [\n {\n color: '#f5f5f5',\n },\n ],\n },\n {\n featureType: 'administrative.land_parcel',\n elementType: 'labels',\n stylers: [\n {\n visibility: 'off',\n },\n ],\n },\n {\n featureType: 'administrative.land_parcel',\n elementType: 'labels.text.fill',\n stylers: [\n {\n color: '#bdbdbd',\n },\n ],\n },\n {\n featureType: 'landscape',\n stylers: [\n {\n color: '#dfe4e8',\n },\n ],\n },\n {\n featureType: 'landscape.natural',\n elementType: 'labels',\n stylers: [\n {\n color: '#757575',\n },\n {\n visibility: 'simplified',\n },\n {\n weight: 0.5,\n },\n ],\n },\n {\n featureType: 'poi',\n elementType: 'geometry',\n stylers: [\n {\n color: '#eeeeee',\n },\n ],\n },\n {\n featureType: 'poi',\n elementType: 'labels.text',\n stylers: [\n {\n visibility: 'off',\n },\n ],\n },\n {\n featureType: 'poi',\n elementType: 'labels.text.fill',\n stylers: [\n {\n color: '#757575',\n },\n ],\n },\n {\n featureType: 'poi.business',\n stylers: [\n {\n visibility: 'off',\n },\n ],\n },\n {\n featureType: 'poi.park',\n elementType: 'geometry',\n stylers: [\n {\n color: '#e5e5e5',\n },\n ],\n },\n {\n featureType: 'poi.park',\n elementType: 'geometry.fill',\n stylers: [\n {\n color: '#ade5a1',\n },\n ],\n },\n {\n featureType: 'poi.park',\n elementType: 'labels',\n stylers: [\n {\n visibility: 'on',\n },\n ],\n },\n {\n featureType: 'poi.park',\n elementType: 'labels.text.fill',\n stylers: [\n {\n color: '#00662f',\n },\n ],\n },\n {\n featureType: 'poi.park',\n elementType: 'labels.text.stroke',\n stylers: [\n {\n visibility: 'off',\n },\n ],\n },\n {\n featureType: 'road',\n elementType: 'geometry',\n stylers: [\n {\n color: '#ffffff',\n },\n ],\n },\n {\n featureType: 'road',\n elementType: 'labels',\n stylers: [\n {\n visibility: 'on',\n },\n ],\n },\n {\n featureType: 'road',\n elementType: 'labels.icon',\n stylers: [\n {\n visibility: 'off',\n },\n ],\n },\n {\n featureType: 'road.arterial',\n elementType: 'labels',\n stylers: [\n {\n visibility: 'on',\n },\n ],\n },\n {\n featureType: 'road.arterial',\n elementType: 'labels.icon',\n stylers: [\n {\n visibility: 'on',\n },\n ],\n },\n {\n featureType: 'road.arterial',\n elementType: 'labels.text.fill',\n stylers: [\n {\n color: '#757575',\n },\n ],\n },\n {\n featureType: 'road.highway',\n elementType: 'geometry',\n stylers: [\n {\n color: '#dadada',\n },\n ],\n },\n {\n featureType: 'road.highway',\n elementType: 'geometry.fill',\n stylers: [\n {\n color: '#ffe856',\n },\n ],\n },\n {\n featureType: 'road.highway',\n elementType: 'geometry.stroke',\n stylers: [\n {\n visibility: 'off',\n },\n ],\n },\n {\n featureType: 'road.highway',\n elementType: 'labels',\n stylers: [\n {\n visibility: 'on',\n },\n ],\n },\n {\n featureType: 'road.highway',\n elementType: 'labels.text.fill',\n stylers: [\n {\n color: '#616161',\n },\n ],\n },\n {\n featureType: 'road.local',\n stylers: [\n {\n visibility: 'off',\n },\n ],\n },\n {\n featureType: 'road.local',\n elementType: 'geometry',\n stylers: [\n {\n color: '#ffffff',\n },\n {\n visibility: 'on',\n },\n {\n weight: 0.5,\n },\n ],\n },\n {\n featureType: 'road.local',\n elementType: 'labels',\n stylers: [\n {\n visibility: 'on',\n },\n ],\n },\n {\n featureType: 'road.local',\n elementType: 'labels.text',\n stylers: [\n {\n visibility: 'on',\n },\n ],\n },\n {\n featureType: 'road.local',\n elementType: 'labels.text.fill',\n stylers: [\n {\n color: '#9e9e9e',\n },\n ],\n },\n {\n featureType: 'transit',\n stylers: [\n {\n visibility: 'off',\n },\n ],\n },\n {\n featureType: 'transit.line',\n elementType: 'geometry',\n stylers: [\n {\n color: '#e5e5e5',\n },\n ],\n },\n {\n featureType: 'transit.station',\n elementType: 'geometry',\n stylers: [\n {\n color: '#eeeeee',\n },\n ],\n },\n {\n featureType: 'water',\n elementType: 'geometry',\n stylers: [\n {\n color: '#4cc7f4',\n },\n ],\n },\n {\n featureType: 'water',\n elementType: 'labels.text.fill',\n stylers: [\n {\n color: '#0066a1',\n },\n ],\n },\n];\n","import { useCallback, useRef, } from 'react';\nconst DRAG_TOLERANCE = 10;\nfunction determineDragIntention(touch, moveStart) {\n const { clientX, clientY } = touch;\n const deltaX = Math.abs(moveStart.x - clientX);\n const deltaY = Math.abs(moveStart.y - clientY);\n if (deltaX > deltaY) {\n return 'horizontal';\n }\n if (deltaY > deltaX) {\n return 'vertical';\n }\n return undefined;\n}\nfunction isDragEvent(clientX, currentX) {\n return Boolean(currentX && Math.abs(currentX - clientX) > DRAG_TOLERANCE);\n}\nfunction isTouchEvent(event) {\n return (Boolean(window.TouchEvent && event instanceof TouchEvent) ||\n 'touches' in event);\n}\nexport function useDragHandlers(updateFunction, dragStartCallback, dragEndCallback, forceDisableMove) {\n const dragStart = useRef();\n const moveIntention = useRef();\n const hasListeners = useRef(false);\n const handleDragMove = useCallback((e) => {\n const event = isTouchEvent(e) ? e.changedTouches[0] : e;\n if (!dragStart.current || forceDisableMove) {\n return;\n }\n // determine direction of move intention, this is required to\n if (!moveIntention.current) {\n moveIntention.current = determineDragIntention(event, dragStart.current);\n }\n // skip when scrolling\n if (moveIntention.current !== 'horizontal') {\n return;\n }\n const { clientX } = event;\n if (!isDragEvent(clientX, dragStart.current.x)) {\n return;\n }\n if (e.cancelable) {\n e.preventDefault();\n }\n updateFunction(clientX, dragStart.current);\n }, [forceDisableMove, updateFunction]);\n const handleDragEnd = useCallback(() => {\n window.removeEventListener('mousemove', handleDragMove);\n window.removeEventListener('mouseup', handleDragEnd);\n window.removeEventListener('touchmove', handleDragMove, false);\n window.removeEventListener('touchend', handleDragEnd, false);\n hasListeners.current = false;\n document.body.style.cursor = 'auto';\n if (!dragStart.current) {\n return;\n }\n dragStart.current = undefined;\n moveIntention.current = undefined;\n dragEndCallback === null || dragEndCallback === void 0 ? void 0 : dragEndCallback();\n }, [handleDragMove, dragEndCallback]);\n return useCallback((e) => {\n const event = isTouchEvent(e) ? e.changedTouches[0] : e;\n if (event) {\n window.addEventListener('mousemove', handleDragMove);\n window.addEventListener('mouseup', handleDragEnd);\n window.addEventListener('touchmove', handleDragMove, {\n passive: false,\n });\n window.addEventListener('touchend', handleDragEnd, {\n passive: false,\n });\n hasListeners.current = true;\n document.body.style.cursor = 'ew-resize';\n dragStart.current = {\n x: event.clientX,\n y: event.clientY,\n };\n dragStartCallback === null || dragStartCallback === void 0 ? void 0 : dragStartCallback();\n }\n }, [dragStartCallback, handleDragEnd, handleDragMove]);\n}\n","import { useEffect, useState } from 'react';\nlet increment = 0;\nexport const useGalleryId = () => {\n const [id, setId] = useState();\n useEffect(() => {\n setId(`:media-gallery-id-${increment++}`);\n }, []);\n return id;\n};\n","import { createContext, useContext } from 'react';\nexport const MediaGalleryContext = createContext(undefined);\nexport const useMediaGalleryContext = () => {\n const context = useContext(MediaGalleryContext);\n if (!context) {\n throw new Error('Media Gallery Context not provided');\n }\n return context;\n};\n","import * as React from 'react';\nimport { useMediaGalleryContext } from './use-media-gallery-context';\nexport const useGalleryControls = () => {\n const { dispatch, state: { activeIndex }, } = useMediaGalleryContext();\n const changeSlide = React.useCallback((index, animate = true) => {\n // ignore when index flips from last to first or first to last, will be called again later\n dispatch({ type: 'SLIDE_CHANGE', index, animate });\n }, [dispatch]);\n const slideToNextSlide = (event) => {\n event.stopPropagation();\n changeSlide(activeIndex + 1);\n };\n const slideToPreviousSlide = (event) => {\n event.stopPropagation();\n changeSlide(activeIndex - 1);\n };\n return {\n changeSlide,\n slideToNextSlide,\n slideToPreviousSlide,\n };\n};\n","import * as React from 'react';\nimport { createA11yOutlineStyles } from '../helpers/a11y';\nimport { useDragHandlers } from './helpers/drag';\nimport { styled } from '../theme-provider';\nimport { useGalleryId } from './hooks/use-gallery-id';\nimport { useMediaGalleryContext } from './hooks/use-media-gallery-context';\nimport { useGalleryControls } from './hooks/use-gallery-controls';\nconst StyledMediaGalleryAspectRatio = styled.div.withConfig({ displayName: \"StyledMediaGalleryAspectRatio\", componentId: \"sc-1ydg6qh\" }) `position:relative;width:100%;aspect-ratio:${({ aspectRatio }) => aspectRatio};`;\nconst StyledMediaGallery = styled.div.withConfig({ displayName: \"StyledMediaGallery\", componentId: \"sc-1ohxc5m\" }) `position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;outline:none;:focus-visible{${({ theme }) => createA11yOutlineStyles(theme, 'solid')};outline-offset:unset;}`;\nconst StyledSlides = styled.div.attrs(({ slidePosition, theme: { direction } }) => ({\n style: {\n transform: direction === 'rtl'\n ? `translate3d(${slidePosition}%, 0, 0)`\n : `translate3d(-${slidePosition}%, 0, 0)`,\n },\n})).withConfig({ displayName: \"StyledSlides\", componentId: \"sc-2k505\" }) `display:flex;width:${({ length }) => length * 100}%;height:100%;transition:${({ animate, theme }) => animate\n ? `transform ${theme.animation.duration.layer} ${theme.animation.timingFunction.in}`\n : 'none'};`;\nexport const Carousel = ({ children, aspectRatio = '16 / 9', onChange, }) => {\n const id = useGalleryId();\n const { state, dispatch, getState } = useMediaGalleryContext();\n const { changeSlide, slideToNextSlide, slideToPreviousSlide } = useGalleryControls();\n const [slides, virtualSlides] = React.useMemo(() => {\n const slides = React.Children.toArray(children).filter(React.isValidElement);\n const length = slides.length;\n if (length > 1) {\n const leadingCopy = React.cloneElement(slides[length - 1], {\n key: `${slides[length - 1].key}-copy`,\n });\n const trailingCopy = React.cloneElement(slides[0], {\n key: `${slides[0].key}-copy`,\n });\n const virtualslides = [leadingCopy, ...slides, trailingCopy];\n return [slides, virtualslides];\n }\n return [slides, slides];\n }, [children]);\n React.useEffect(() => {\n const slides = React.Children.toArray(children).filter(React.isValidElement);\n const length = slides.length;\n dispatch({ type: 'SET_SLIDE_LENGTH', length });\n const slideKeys = slides.map((slide) => slide.key);\n dispatch({ type: 'SET_SLIDE_KEYS', slideKeys });\n }, [children, dispatch]);\n const dragStart = React.useRef();\n const moveIntention = React.useRef();\n const slidesContainerRef = React.useRef(null);\n const carouselRef = React.useRef(null);\n React.useEffect(() => {\n if (state.activeIndex > -1 &&\n state.activeIndex < slides.length &&\n state.activeIndex !== state.lastIndex &&\n onChange) {\n onChange(state.activeIndex);\n }\n }, [state.activeIndex, state.lastIndex, slides, onChange]);\n const onStart = React.useCallback(() => {\n dispatch({ type: 'DRAG_START', position: 0 });\n }, [dispatch]);\n const onMove = React.useCallback((newXPosition, dragStart) => {\n var _a;\n const { lastIndex } = state;\n const offset = dragStart.x - newXPosition;\n const percentageOffset = offset / (((_a = carouselRef.current) === null || _a === void 0 ? void 0 : _a.clientWidth) || window.innerWidth);\n const newIndex = Math.min(Math.max(lastIndex + percentageOffset, -1), slides.length + 1);\n dispatch({ type: 'DRAG_MOVE', index: newIndex });\n }, [state, slides, dispatch]);\n const handleEnd = React.useCallback(() => {\n const { dragStartTime, lastIndex, activeIndex, dragEnabled } = getState();\n const timeElapsed = new Date().getTime() - dragStartTime;\n const speed = Math.abs((activeIndex / timeElapsed) * 10000);\n let newIndex = Math.round(activeIndex);\n if (dragEnabled) {\n // don't wait to swipe half of the slide;\n // go to the nex slide instead if the swiping speed was fast enough\n if (speed > 20 && activeIndex !== lastIndex) {\n newIndex = activeIndex < lastIndex ? lastIndex - 1 : lastIndex + 1;\n newIndex = Math.min(Math.max(newIndex, -1), slides.length + 1);\n }\n changeSlide(newIndex);\n }\n dragStart.current = undefined;\n moveIntention.current = undefined;\n }, [changeSlide, slides, getState]);\n const handleDragStart = useDragHandlers(onMove, onStart, handleEnd);\n React.useEffect(() => {\n const { animate, activeIndex } = state;\n if (animate) {\n const duration = slidesContainerRef.current\n ? parseFloat(getComputedStyle(slidesContainerRef.current).getPropertyValue('transition-duration')) * 1000\n : 0;\n setTimeout(() => {\n if (activeIndex === -1) {\n changeSlide(slides.length - 1, false);\n }\n else if (activeIndex === slides.length) {\n changeSlide(0, false);\n }\n }, duration);\n }\n }, [changeSlide, slides, state, state.activeIndex]);\n React.useEffect(() => {\n const container = carouselRef.current;\n if (container && slides.length > 1) {\n // events need to be marked as not passive to prevent scrolling when needed\n container.addEventListener('touchstart', handleDragStart, {\n passive: false,\n });\n }\n return () => {\n if (container) {\n container.removeEventListener('touchstart', handleDragStart, false);\n }\n };\n }, [handleDragStart, slides]);\n function onKeyDown(e) {\n if (e.key === 'ArrowRight') {\n slideToNextSlide(e);\n }\n else if (e.key === 'ArrowLeft') {\n slideToPreviousSlide(e);\n }\n }\n return (React.createElement(StyledMediaGalleryAspectRatio, { aspectRatio: aspectRatio, id: id },\n React.createElement(StyledMediaGallery, { tabIndex: 0, ref: carouselRef, onKeyDown: onKeyDown },\n React.createElement(StyledSlides, { animate: state.animate, length: virtualSlides.length, slidePosition: state.slidePosition, ref: slidesContainerRef }, virtualSlides))));\n};\n","var __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport { styled } from '../theme-provider';\nconst StyledSlide = styled.div.withConfig({ displayName: \"StyledSlide\", componentId: \"sc-zp10d9\" }) `display:flex;flex:1 0 0;align-items:center;justify-content:center;user-select:none;pointer-events:none;`;\nexport const MediaGallerySlide = (_a) => {\n var { children, fullSize } = _a, rest = __rest(_a, [\"children\", \"fullSize\"]);\n if (fullSize) {\n return React.createElement(StyledSlide, Object.assign({}, rest), children);\n }\n return React.createElement(StyledSlide, Object.assign({}, rest), children);\n};\n","import { css } from '../../theme-provider';\nexport const LENTILS_MAX_LENGHT = 7;\nexport const LENTILS_MIDDLE_INDEX = Math.floor(LENTILS_MAX_LENGHT / 2);\nexport const LENTIL_SIZE = ({ theme }) => theme.size.static150;\nexport const LENTIL_GAP = ({ theme }) => theme.size.static150;\nexport function lentilsTransform({ activeIndex, length, }) {\n if (length <= LENTILS_MAX_LENGHT) {\n return css `transform:translateX(0);`;\n }\n if (activeIndex >= length - (LENTILS_MIDDLE_INDEX + 1)) {\n return css `transform:translateX(\\n\\t\\t\\t\\tcalc(\\n\\t\\t\\t\\t\\t${({ theme }) => (theme.direction === 'rtl' ? 1 : -1)} *\\n\\t\\t\\t\\t\\t\\t(${LENTIL_SIZE} + ${LENTIL_GAP}) * ${length - LENTILS_MAX_LENGHT}\\n\\t\\t\\t\\t)\\n\\t\\t\\t);`;\n }\n if (activeIndex > LENTILS_MIDDLE_INDEX) {\n return css `transform:translateX(\\n\\t\\t\\t\\tcalc(\\n\\t\\t\\t\\t\\t${({ theme }) => (theme.direction === 'rtl' ? 1 : -1)} *\\n\\t\\t\\t\\t\\t\\t(${LENTIL_SIZE} + ${LENTIL_GAP}) *\\n\\t\\t\\t\\t\\t\\t${activeIndex - LENTILS_MIDDLE_INDEX}\\n\\t\\t\\t\\t)\\n\\t\\t\\t);`;\n }\n return css `transform:translateX(0);`;\n}\nexport function lentilsWidth({ length }) {\n return css `width:calc(${length} * ${LENTIL_SIZE} + ${length - 1} * ${LENTIL_GAP});`;\n}\nexport function lentilsHeigth() {\n return css `height:calc(2 * ${LENTIL_SIZE});`;\n}\nexport function lentilsMaxWith() {\n return css `max-width:calc(\\n\\t\\t\\t${LENTILS_MAX_LENGHT} * ${LENTIL_SIZE} + ${LENTILS_MAX_LENGHT - 1} *\\n\\t\\t\\t\\t${LENTIL_GAP} + (${LENTIL_SIZE} * 2 - ${LENTIL_SIZE})\\n\\t\\t);`;\n}\nexport function getRef(index, activeIndex, length, prevRef, nextRef) {\n if (activeIndex === 0 && index === length - 1) {\n return prevRef;\n }\n if (activeIndex === length - 1 && index === 0) {\n return nextRef;\n }\n if (index === activeIndex - 1) {\n return prevRef;\n }\n if (index === activeIndex + 1) {\n return nextRef;\n }\n return undefined;\n}\nexport function isSmall(currentIndex, activeIndex, slideLength) {\n const isCorrected = slideLength > LENTILS_MAX_LENGHT;\n return isCorrected\n ? (activeIndex > LENTILS_MIDDLE_INDEX &&\n currentIndex < activeIndex - (LENTILS_MIDDLE_INDEX - 1) &&\n currentIndex < slideLength - (LENTILS_MAX_LENGHT - 1)) ||\n (currentIndex >= LENTILS_MAX_LENGHT - 1 &&\n currentIndex < slideLength - 1 &&\n currentIndex > activeIndex + (LENTILS_MIDDLE_INDEX - 1))\n : false;\n}\n","import { styled } from '../theme-provider';\nimport * as React from 'react';\nimport { useRef } from 'react';\nimport { useMediaGalleryContext } from './hooks/use-media-gallery-context';\nimport { LENTIL_GAP, LENTIL_SIZE, lentilsHeigth, lentilsMaxWith, getRef, lentilsTransform, lentilsWidth, isSmall, } from './helpers/lentils';\nconst StyledLentil = styled.button.withConfig({ displayName: \"StyledLentil\", componentId: \"sc-mw44ik\" }) `position:relative;width:${LENTIL_SIZE};height:${LENTIL_SIZE};border:0;padding:0;border-radius:50%;background:${({ theme }) => theme.colors.background.primary};outline:none;transform:scale(\\n\\t\\t${({ isActive, isSmall }) => {\n if (isActive) {\n return 2;\n }\n if (isSmall) {\n return 0.5;\n }\n return 1;\n}}\\n\\t);transition:${({ theme: { animation } }) => `all ${animation.duration.layer} ${animation.timingFunction.in}`};cursor:pointer;:before{content:'';position:absolute;top:12.5%;left:12.5%;width:75%;height:75%;border-radius:50%;background:${({ theme }) => theme.colors.content.active};}:hover{:before{background:${({ theme }) => theme.colors.button.primary.hover};}}:focus-visible{outline:none;:before{box-shadow:0 0 0 1px ${({ theme }) => theme.colors.focus.main};}}`;\nconst StyledLentilsLayout = styled.div.withConfig({ displayName: \"StyledLentilsLayout\", componentId: \"sc-fno5rn\" }) `display:flex;justify-content:flex-start;align-items:center;gap:${LENTIL_GAP};transition:${({ theme: { animation } }) => `all ${animation.duration.layer} ${animation.timingFunction.in}`};${lentilsWidth};${lentilsHeigth};${lentilsTransform};`;\nconst StyledLentilsScrollWrapper = styled.div.withConfig({ displayName: \"StyledLentilsScrollWrapper\", componentId: \"sc-ryutrg\" }) `padding:0 calc((${LENTIL_SIZE} * 2 - ${LENTIL_SIZE}) / 2);transition:${({ theme: { animation } }) => `padding-inline-start ${animation.duration.layer} ${animation.timingFunction.in}`};overflow:hidden;pointer-events:all;${lentilsMaxWith};`;\nconst StyledLentilsContainer = styled.div.withConfig({ displayName: \"StyledLentilsContainer\", componentId: \"sc-1ufbuwg\" }) `padding:${({ theme }) => `${theme.size.static150} ${theme.size.static250}`};background-color:${({ theme }) => theme.colors.background.primary};border-radius:${({ theme }) => theme.size.static400};`;\nexport function Lentils({ onChange, ariaControlsId, }) {\n const { state, dispatch } = useMediaGalleryContext();\n const { activeIndex, slideLength, slideKeys } = state;\n const prevRef = useRef(null);\n const nextRef = useRef(null);\n function handleChange(activeIndex) {\n if (onChange) {\n onChange(activeIndex);\n }\n dispatch({\n type: 'SLIDE_CHANGE',\n animate: true,\n index: activeIndex,\n });\n }\n function handleKeyDown(e) {\n var _a, _b;\n if (e.key === 'ArrowLeft') {\n handleChange(activeIndex === 0 ? slideLength - 1 : activeIndex - 1);\n (_a = prevRef.current) === null || _a === void 0 ? void 0 : _a.focus({ preventScroll: true });\n }\n else if (e.key === 'ArrowRight') {\n handleChange((activeIndex + 1) % slideLength);\n (_b = nextRef.current) === null || _b === void 0 ? void 0 : _b.focus({ preventScroll: true });\n }\n }\n return (React.createElement(StyledLentilsContainer, null,\n React.createElement(StyledLentilsScrollWrapper, null,\n React.createElement(StyledLentilsLayout, { length: slideLength, activeIndex: activeIndex }, Array.from({ length: slideLength }).map((_, index) => (React.createElement(StyledLentil, { key: `media-gallery-lentil-${slideKeys[index]}`, ref: getRef(index, activeIndex, slideLength, prevRef, nextRef), isActive: index === activeIndex, onClick: () => handleChange(index), onKeyDown: handleKeyDown, tabIndex: activeIndex === index ? 0 : -1, role: \"radio\", \"aria-checked\": activeIndex === index, \"aria-controls\": ariaControlsId, \"data-testid\": `media-gallery-lentil-${index}`, isSmall: isSmall(index, activeIndex, slideLength), \"aria-label\": `carousel slide ${index + 1}` })))))));\n}\n","import { useCallback, useReducer, useRef } from 'react';\nexport const useEnhancedReducer = (reducer, initState, initializer) => {\n const lastState = useRef(initState);\n const getState = useCallback(() => lastState.current, []);\n return [\n ...useReducer((state, action) => (lastState.current = reducer(state, action)), initState, initializer),\n getState,\n ];\n};\n","import { useEnhancedReducer } from './use-enhanced-reducer';\nconst mediaGalleryReducer = (state, action) => {\n switch (action.type) {\n case 'SLIDE_CHANGE':\n return Object.assign(Object.assign({}, state), { activeIndex: action.index, animate: action.animate, dragEnabled: false, lastIndex: action.index, slidePosition: calculateSlidePosition(state.slideLength, action.index) });\n case 'DRAG_START':\n return Object.assign(Object.assign({}, state), { animate: false, dragEnabled: true, dragStartPosition: action.position, dragStartTime: new Date().getTime() });\n case 'DRAG_MOVE':\n return Object.assign(Object.assign({}, state), { activeIndex: action.index, slidePosition: calculateSlidePosition(state.slideLength, state.activeIndex) });\n case 'SET_SLIDE_LENGTH':\n return Object.assign(Object.assign({}, state), { slideLength: action.length, slidePosition: calculateSlidePosition(action.length, state.activeIndex) });\n case 'SET_SLIDE_KEYS':\n return Object.assign(Object.assign({}, state), { slideKeys: action.slideKeys });\n default:\n return state;\n }\n};\nconst calculateSlidePosition = (length, index) => {\n if (length > 1) {\n return (100 / (length + 2)) * (index + 1);\n }\n return 0;\n};\nconst initialState = {\n activeIndex: 0,\n lastIndex: 0,\n animate: true,\n dragStartPosition: 0,\n dragStartTime: 0,\n dragEnabled: false,\n slidePosition: 0,\n slideLength: 0,\n slideKeys: [],\n};\nexport const useMediaGalleryReducer = () => {\n return useEnhancedReducer(mediaGalleryReducer, initialState);\n};\n","import * as React from 'react';\nimport { MediaGalleryContext } from './hooks/use-media-gallery-context';\nimport { useMediaGalleryReducer } from './hooks/use-media-gallery-reducer';\nexport const MediaGalleryContextProvider = ({ children }) => {\n const [state, dispatch, getState] = useMediaGalleryReducer();\n const value = React.useMemo(() => ({ state, dispatch, getState }), [state, dispatch, getState]);\n return (React.createElement(MediaGalleryContext.Provider, { value: value }, children));\n};\n","var __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport { CTA } from '../call-to-action';\nimport { Breakpoints } from '../helpers/breakpoint';\nimport { styled } from '../theme-provider';\nexport const CTAClusterContainer = styled.div.withConfig({ displayName: \"CTAClusterContainer\", componentId: \"sc-dq05bj\" }) `display:flex;gap:${({ theme }) => theme.size.static150};pointer-events:all;@media (min-width: ${Breakpoints.b560}px){gap:${({ theme }) => theme.size.static150};}@media (min-width: ${Breakpoints.b960}px){background-color:white;opacity:0.95;border-radius:${({ theme }) => theme.size.static150};padding:${({ theme }) => `${theme.size.static150} ${theme.size.static200}`};:only-child{padding:${({ theme }) => theme.size.static150};}}`;\nconst CTAWrapper = styled.div.withConfig({ displayName: \"CTAWrapper\", componentId: \"sc-o3m9t3\" }) `button{color:${({ theme, active }) => active && theme.colors.button.tertiary.active};}`;\nexport const ClusteredCTA = (_a) => {\n var { active } = _a, rest = __rest(_a, [\"active\"]);\n return (React.createElement(CTAWrapper, { active: active },\n React.createElement(CTA, Object.assign({}, rest, { tag: \"button\", size: \"small\", emphasis: \"tertiary\" }))));\n};\n","import * as React from 'react';\nexport var ExitFullscreen = React.forwardRef(Object.assign(function (props, forwardRef) {\n var variant = props.variant || \"default\";\n if (variant === \"small\") {\n return React.createElement(\"svg\", { className: props.className, \"aria-hidden\": props.ariaHidden, role: props.ariaHidden ? undefined : \"img\", tabIndex: props.tabIndex, \"aria-label\": props.ariaLabel, ref: forwardRef, xmlns: \"http://www.w3.org/2000/svg\", width: \"12\", height: \"12\", viewBox: \"0 0 12 12\", fill: \"currentColor\" },\n props.title && React.createElement(\"title\", null, props.title),\n React.createElement(\"path\", { d: \"M11 4.7H8.1c-.5 0-.8-.3-.8-.8V1h1.4v2.3H11zM4.7 11H3.3V8.7H1V7.4h2.9c.5 0 .8.3.8.8zM3.9 4.7H1V3.4h2.3V1h1.3v2.9c.1.5-.2.8-.7.8M8.7 11H7.4V8.1c0-.5.3-.8.8-.8H11v1.3H8.7z\" }));\n }\n if (variant === \"default\") {\n return React.createElement(\"svg\", { className: props.className, \"aria-hidden\": props.ariaHidden, role: props.ariaHidden ? undefined : \"img\", tabIndex: props.tabIndex, \"aria-label\": props.ariaLabel, ref: forwardRef, xmlns: \"http://www.w3.org/2000/svg\", width: \"24\", height: \"24\", viewBox: \"0 0 24 24\", fill: \"currentColor\" },\n props.title && React.createElement(\"title\", null, props.title),\n React.createElement(\"path\", { d: \"M2 8.4v1.3h6.8c.5 0 .9-.4.9-.9V2H8.3v6.4zM22 8.4v1.3h-6.8c-.5 0-.9-.4-.9-.9V2h1.3v6.4zM15.6 22h-1.3v-6.8c0-.5.4-.9.9-.9H22v1.3h-6.4zM2 15.6v-1.3h6.8c.5 0 .9.4.9.9V22H8.3v-6.4z\" }));\n }\n return null;\n}, { displayName: 'ExitFullscreen' }));\n","import * as React from 'react';\nexport var EnterFullscreen = React.forwardRef(Object.assign(function (props, forwardRef) {\n var variant = props.variant || \"default\";\n if (variant === \"small\") {\n return React.createElement(\"svg\", { className: props.className, \"aria-hidden\": props.ariaHidden, role: props.ariaHidden ? undefined : \"img\", tabIndex: props.tabIndex, \"aria-label\": props.ariaLabel, ref: forwardRef, xmlns: \"http://www.w3.org/2000/svg\", width: \"12\", height: \"12\", viewBox: \"0 0 12 12\", fill: \"currentColor\" },\n props.title && React.createElement(\"title\", null, props.title),\n React.createElement(\"path\", { d: \"M11.7 4h-1.4V1.7H8V.4h2.9c.5 0 .8.3.8.8zM4 11.7H1.1c-.5 0-.8-.3-.8-.8V8h1.4v2.3H4zM1.7 4H.4V1.1c0-.5.3-.8.8-.8H4v1.3H1.7zM10.9 11.7H8v-1.3h2.3V8h1.3v2.9c.1.5-.2.8-.7.8\" }));\n }\n if (variant === \"default\") {\n return React.createElement(\"svg\", { className: props.className, \"aria-hidden\": props.ariaHidden, role: props.ariaHidden ? undefined : \"img\", tabIndex: props.tabIndex, \"aria-label\": props.ariaLabel, ref: forwardRef, xmlns: \"http://www.w3.org/2000/svg\", width: \"24\", height: \"24\", viewBox: \"0 0 24 24\", fill: \"currentColor\" },\n props.title && React.createElement(\"title\", null, props.title),\n React.createElement(\"path\", { d: \"M23.2 8.5h-1.4V2.2h-6.3V.9h6.9c.5 0 .8.3.8.8zM8.5 23.2H1.6c-.5 0-.8-.3-.8-.8v-6.9h1.4v6.3h6.3zM2.2 8.5H.9V1.6c0-.5.3-.8.8-.8h6.8v1.3H2.2zM22.4 23.2h-6.9v-1.3h6.3v-6.4h1.3v6.9c.1.5-.2.8-.7.8\" }));\n }\n return null;\n}, { displayName: 'EnterFullscreen' }));\n","var __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport { EnterFullscreen, ExitFullscreen } from '@volkswagen-onehub/icons-core';\nimport { getCommonProps } from '../helpers/common-props';\nimport { CTA } from '../call-to-action';\nconst requestFullscreenMethods = [\n 'requestFullscreen',\n 'webkitRequestFullscreen',\n];\nexport function MediaGalleryFullscreenButton(_a) {\n var { elementRef, isActiveAriaLabel, isInActiveAriaLabel, onClick, size } = _a, otherProps = __rest(_a, [\"elementRef\", \"isActiveAriaLabel\", \"isInActiveAriaLabel\", \"onClick\", \"size\"]);\n const [isFullscreen, setFullscreen] = React.useState(false);\n const [isFullscreenAvailable, setIsFullscreenAvailable] = React.useState(false);\n const commonProps = getCommonProps(otherProps);\n React.useEffect(() => {\n setIsFullscreenAvailable(requestFullscreenMethods.some((prop) => { var _a; return Boolean((_a = elementRef.current) === null || _a === void 0 ? void 0 : _a[prop]); }));\n }, [setIsFullscreenAvailable, elementRef]);\n const handleFullScreenChange = React.useCallback(() => {\n setFullscreen(Boolean(document.fullscreenElement));\n }, [setFullscreen]);\n const handleFullscreenClick = React.useCallback(() => {\n var _a, _b;\n if (document.fullscreenElement) {\n document.exitFullscreen();\n setFullscreen(false);\n return;\n }\n if (document.webkitFullscreenElement) {\n (_a = document.webkitExitFullscreen) === null || _a === void 0 ? void 0 : _a.call(document);\n setFullscreen(false);\n return;\n }\n const element = elementRef.current;\n const methodName = requestFullscreenMethods.find((method) => element === null || element === void 0 ? void 0 : element[method]);\n if (methodName) {\n (_b = element === null || element === void 0 ? void 0 : element[methodName]) === null || _b === void 0 ? void 0 : _b.call(element);\n onClick === null || onClick === void 0 ? void 0 : onClick();\n setFullscreen(true);\n }\n }, [elementRef, onClick]);\n React.useEffect(() => {\n document.addEventListener('fullscreenchange', handleFullScreenChange);\n return () => {\n document.removeEventListener('fullscreenchange', handleFullScreenChange);\n };\n }, [handleFullScreenChange]);\n if (!isFullscreenAvailable) {\n return null;\n }\n return (React.createElement(CTA, Object.assign({ icon: isFullscreen ? (React.createElement(ExitFullscreen, { ariaHidden: true })) : (React.createElement(EnterFullscreen, { ariaHidden: true })), tag: \"button\", emphasis: \"tertiary\", onClick: handleFullscreenClick, ariaLabel: isFullscreen ? isActiveAriaLabel : isInActiveAriaLabel, size: size }, commonProps)));\n}\n","import { ChevronLeft, ChevronRight } from '@volkswagen-onehub/icons-core';\nimport * as React from 'react';\nimport { CTA } from '../call-to-action';\nimport { Breakpoints } from '../helpers/breakpoint';\nimport { styled, useTheme } from '../theme-provider';\nimport { useGalleryControls } from './hooks/use-gallery-controls';\nconst GalleryButtons = styled.div.withConfig({ displayName: \"GalleryButtons\", componentId: \"sc-1u2xx5t\" }) `position:absolute;top:50%;right:0;left:0;display:flex;justify-content:space-between;padding:0 ${(props) => props.theme.size.static250};transform:translateY(-50%);pointer-events:none;button{pointer-events:initial;}`;\nexport const FloatingButtonWrapper = styled.div.withConfig({ displayName: \"FloatingButtonWrapper\", componentId: \"sc-u9efy5\" }) `background-color:${({ theme }) => theme.colors.background.primary};opacity:0.95;border-radius:100%;@media (max-width: ${Breakpoints.b960 - 1}px)and (hover: none){display:none;}& > button{:focus:not(:disabled){border-radius:500px;}}`;\nexport const MediaGalleryArrowButtonNext = ({ ariaLabel, }) => {\n const theme = useTheme();\n const { slideToNextSlide } = useGalleryControls();\n return (React.createElement(FloatingButtonWrapper, null,\n React.createElement(CTA, { \"data-testid\": \"image-gallery-next-button\", tag: \"button\", emphasis: \"none\", onClick: slideToNextSlide, icon: theme.direction === 'rtl' ? (React.createElement(ChevronLeft, { ariaHidden: true })) : (React.createElement(ChevronRight, { ariaHidden: true })), ariaLabel: ariaLabel })));\n};\nexport const MediaGalleryArrowButtonPrevious = ({ ariaLabel, }) => {\n const theme = useTheme();\n const { slideToPreviousSlide } = useGalleryControls();\n return (React.createElement(FloatingButtonWrapper, null,\n React.createElement(CTA, { \"data-testid\": \"image-gallery-previous-button\", tag: \"button\", emphasis: \"tertiary\", onClick: slideToPreviousSlide, icon: theme.direction === 'rtl' ? (React.createElement(ChevronRight, { ariaHidden: true })) : (React.createElement(ChevronLeft, { ariaHidden: true })), ariaLabel: ariaLabel })));\n};\nexport const MediaGalleryArrowButtons = ({ ariaLabelNext, ariaLabelPrev, }) => {\n return (React.createElement(GalleryButtons, null,\n React.createElement(MediaGalleryArrowButtonPrevious, { ariaLabel: ariaLabelPrev }),\n React.createElement(MediaGalleryArrowButtonNext, { ariaLabel: ariaLabelNext })));\n};\n","import * as React from 'react';\nexport var Logo = React.forwardRef(Object.assign(function (props, forwardRef) {\n var variant = props.variant || \"default\";\n if (variant === \"large\") {\n return React.createElement(\"svg\", { className: props.className, \"aria-hidden\": props.ariaHidden, role: props.ariaHidden ? undefined : \"img\", tabIndex: props.tabIndex, \"aria-label\": props.ariaLabel, ref: forwardRef, xmlns: \"http://www.w3.org/2000/svg\", width: \"48\", height: \"48\", viewBox: \"0 0 48 48\", fill: \"currentColor\" },\n props.title && React.createElement(\"title\", null, props.title),\n React.createElement(\"path\", { d: \"M24 45.792c-11.952 0-21.744-9.84-21.744-21.792 0-2.688.48-5.232 1.392-7.632l12.72 25.584c.144.336.384.624.768.624s.624-.288.768-.624l5.856-13.104c.048-.144.144-.288.288-.288s.192.144.288.288l5.856 13.104c.144.336.384.624.768.624s.624-.288.768-.624l12.72-25.584A21.3 21.3 0 0 1 45.84 24C45.744 35.952 35.952 45.792 24 45.792m0-26.736c-.144 0-.192-.144-.288-.288l-6.816-15.36A20.5 20.5 0 0 1 24 2.16c2.496 0 4.896.432 7.104 1.248l-6.816 15.36c-.096.192-.144.288-.288.288m-6.96 15.792c-.144 0-.192-.144-.288-.288L5.712 12.288C7.68 9.264 10.32 6.72 13.536 4.944l7.968 17.712c.096.288.336.384.576.384h3.84c.288 0 .48-.048.624-.384l7.968-17.712a22.5 22.5 0 0 1 7.824 7.344L31.2 34.56c-.048.144-.144.288-.288.288s-.192-.144-.288-.288l-4.176-9.504c-.144-.336-.336-.384-.624-.384h-3.84c-.288 0-.48.048-.624.384l-4.032 9.504c-.048.144-.144.288-.288.288M24 48c13.296 0 24-10.704 24-24S37.296 0 24 0 0 10.704 0 24s10.704 24 24 24\" }));\n }\n if (variant === \"default\") {\n return React.createElement(\"svg\", { className: props.className, \"aria-hidden\": props.ariaHidden, role: props.ariaHidden ? undefined : \"img\", tabIndex: props.tabIndex, \"aria-label\": props.ariaLabel, ref: forwardRef, xmlns: \"http://www.w3.org/2000/svg\", width: \"24\", height: \"24\", viewBox: \"0 0 24 24\", fill: \"currentColor\" },\n props.title && React.createElement(\"title\", null, props.title),\n React.createElement(\"path\", { d: \"M12 22.586c-5.786 0-10.543-4.8-10.543-10.586 0-1.2.214-2.357.6-3.471l6.172 12c.085.171.171.3.385.3.215 0 .3-.129.386-.3l2.871-6.386q.064-.129.129-.129c.086 0 .086.086.129.129l2.914 6.386c.086.171.171.3.386.3.214 0 .3-.129.385-.3l6.172-12c.385 1.071.6 2.228.6 3.471-.043 5.786-4.8 10.586-10.586 10.586m0-13.329c-.086 0-.086-.086-.129-.128l-3.3-7.115a10.12 10.12 0 0 1 6.858 0l-3.3 7.115c-.043.042-.043.128-.129.128m-3.471 7.714c-.086 0-.086-.085-.129-.128L3 6.47c.943-1.542 2.314-2.828 3.9-3.728l3.814 8.228c.086.172.172.215.3.215h1.972c.128 0 .214-.043.3-.215l3.771-8.228c1.586.9 2.957 2.186 3.9 3.728L15.6 16.843q-.065.128-.129.128c-.085 0-.085-.085-.128-.128L13.286 12.3c-.086-.171-.172-.214-.3-.214h-1.972c-.128 0-.214.043-.3.214l-2.057 4.543c-.043.043-.043.128-.128.128M12 24c6.643 0 12-5.357 12-12S18.643 0 12 0 0 5.357 0 12s5.357 12 12 12\" }));\n }\n return null;\n}, { displayName: 'Logo' }));\n","import * as React from 'react';\nimport { Logo } from '@volkswagen-onehub/icons-core';\nimport { Breakpoints } from '../helpers/breakpoint';\nimport { styled } from '../theme-provider';\nimport { getCommonProps } from '../helpers/common-props';\nconst StyledWrapper = styled.span.withConfig({ displayName: \"StyledWrapper\", componentId: \"sc-16id0m5\" }) `display:grid;align-items:center;width:100%;--logo-size:${(props) => props.theme.size.static400};--margin-size:${(props) => parseInt(props.theme.size.static400, 10) / 4}px;@media (min-width: ${Breakpoints.b560}px){--logo-size:${(props) => props.theme.size.static450};--margin-size:${(props) => parseInt(props.theme.size.static450, 10) / 4}px;}@media (min-width: ${Breakpoints.b960}px){--logo-size:${(props) => props.theme.size.static510};--margin-size:${(props) => parseInt(props.theme.size.static510, 10) / 4}px;}@media (min-width: ${Breakpoints.b1920}px){--logo-size:${(props) => props.theme.size.static520};--margin-size:${(props) => parseInt(props.theme.size.static520, 10) / 4}px;}grid-template-columns:${(props) => props.hasClaim\n ? `calc(50vw - ${parseInt(props.theme.size.static400, 10) / 2}px - var(--margin-size))\n\t\tmax-content max-content auto`\n : 'auto max-content auto'};grid-column-gap:var(--margin-size);@media (min-width: ${Breakpoints.b560}px){grid-template-columns:${(props) => props.hasClaim\n ? `calc(50vw - ${parseInt(props.theme.size.static450, 10) / 2}px - var(--margin-size))\n\t\t\tmax-content max-content auto`\n : `auto max-content auto`};}@media (min-width: ${Breakpoints.b960}px){grid-template-columns:calc(${(props) => props.theme.size.grid016} - var(--margin-size))max-content ${(props) => (props.hasClaim ? 'max-content ' : '')}auto;}@media (min-width: ${Breakpoints.b2560}px){grid-template-columns:calc(${Breakpoints.b2560 / 6}px + 50vw - var(--margin-size))max-content ${(props) => (props.hasClaim ? 'max-content ' : '')}auto;}::before,::after{content:'';height:${({ theme }) => theme.size.border.heavy};background:${(props) => props.theme.colors.content.active};}svg{fill:${(props) => props.theme.colors.content.active};width:var(--logo-size);height:var(--logo-size);}`;\nexport const MovingFrame = (props) => {\n const { claim, logo, logoTitle } = props;\n const commonProps = getCommonProps(props);\n return (React.createElement(StyledWrapper, Object.assign({ hasClaim: Boolean(claim) }, commonProps),\n logo || (React.createElement(Logo, { variant: \"default\", title: logoTitle, ariaLabel: logoTitle || 'Volkswagen logo' })),\n claim));\n};\n","import * as React from 'react';\nimport { ChevronDown } from '@volkswagen-onehub/icons-core';\nimport { Text, TextTag, TokenTextAppearance, TokenTextColor } from '../text';\nimport { css, styled, ThemeProvider } from '../theme-provider';\nimport { Checkbox } from '../checkbox';\nimport { Container, ContainerGutter, ContainerWrap } from '../container';\nimport { getCommonProps } from '../helpers/common-props';\nimport { useState } from 'react';\nconst ANIMATION_FUNCTION = '0.3s cubic-bezier(0.14, 1.12, 0.67, 0.99)';\nconst StyledOverlay = styled.div.withConfig({ displayName: \"StyledOverlay\", componentId: \"sc-s4sgrn\" }) `position:absolute;z-index:1;width:100%;padding:${({ theme }) => theme.size.static250};background:${({ theme }) => theme.colors.background.primary};box-shadow:${({ theme }) => theme.colors.shadow.variant4};margin-top:${({ theme }) => theme.size.static200};opacity:0;transform:translateX(-100vw);&:dir(rtl){transform:translateX(100vw);}&:focus-within{opacity:1;transform:translateX(0);}`;\nconst StyledLegend = styled.legend.withConfig({ displayName: \"StyledLegend\", componentId: \"sc-oqxd84\" }) `position:absolute;opacity:0;transform:translateX(-100vw);&:dir(rtl){transform:translateX(100vw);}`;\nconst StyledLabelWrapper = styled.div.withConfig({ displayName: \"StyledLabelWrapper\", componentId: \"sc-lpywmt\" }) `display:flex;align-items:center;cursor:${({ internalDisabledProp }) => !internalDisabledProp ? 'pointer' : 'not-allowed'};`;\nconst StyledIcon = styled.span.withConfig({ displayName: \"StyledIcon\", componentId: \"sc-17f61o9\" }) `position:relative;flex:0 0 auto;overflow:visible;text-align:center;transition:${({ theme }) => `transform ${ANIMATION_FUNCTION}, color ${theme.animation.timingFunction.cubicOut} ${theme.animation.duration.color}`};line-height:0;`;\nconst StyledCountAndIconWrapper = styled.span.withConfig({ displayName: \"StyledCountAndIconWrapper\", componentId: \"sc-12d9n7j\" }) `display:flex;align-items:center;`;\nconst copy100 = css `${({ theme }) => theme.fonts.label[100].fontSize}`;\nconst StyledLabelText = styled.span.withConfig({ displayName: \"StyledLabelText\", componentId: \"sc-gs306v\" }) `font-size:${copy100};width:100%;display:block;margin:0;padding:0;color:transparent;`;\n// eslint-disable-next-line @typescript-eslint/no-explicit-any -- StyledLabelText has the right type, this just prevents some TS type inference issue\nconst StyledLabelTextWithFloating = styled(StyledLabelText).withConfig({ displayName: \"StyledLabelTextWithFloating\", componentId: \"sc-1p225xq\" }) `transition:0.3s ease;position:absolute;top:0;color:${({ theme }) => theme.colors.content.primary};${({ theme, isFloating, hasValue, labelHeight }) => {\n if (!isFloating || hasValue) {\n return undefined;\n }\n return css `\n\t\t\tfont-size: ${theme.fonts.copy[200].fontSize};\n\t\t\twhite-space: nowrap;\n\t\t\ttext-overflow: ellipsis;\n\t\t\toverflow-x: hidden;\n\t\t\tpadding-right: 50px;\n\t\t\ttransition: all 0.25s ease-in-out;\n\t\t\ttransform: translateY(${labelHeight}px)\n\t\t\t\t// Move it down by the padding on the 'StyledLabel'\n\t\t\t\ttranslateY(${theme.size.static100})\n\t\t\t\t// Move it down by the padding on the 'StyledInput'\n\t\t\t\ttranslateY(${parseInt(theme.size.static300) / 2}px)\n\t\t\t\t// Move it down by half the size of the 'StyledInput'\n\t\t\t\ttranslateY(-50%);\n\t\t\t// Move it up by half of its own size\n\t\t`;\n}}`;\nconst StyledIconWrapper = styled.span.withConfig({ displayName: \"StyledIconWrapper\", componentId: \"sc-2eaqg0\" }) `position:relative;display:flex;align-items:center;justify-content:center;height:${({ theme }) => theme.size.static350};`;\nconst StyledInteractionWrapper = styled.div.withConfig({ displayName: \"StyledInteractionWrapper\", componentId: \"sc-rebite\" }) `display:grid;grid-column-gap:${({ theme }) => theme.size.static150};grid-template-columns:auto max-content;align-items:center;width:100%;padding-bottom:${({ theme }) => theme.size.static150};cursor:${({ internalDisabledProp }) => !internalDisabledProp ? 'pointer' : 'not-allowed'};color:${({ theme, internalDisabledProp }) => theme.colors.content[internalDisabledProp ? 'disabled' : 'primary']};border-bottom:${({ theme }) => theme.size.line.default} solid ${({ theme, internalDisabledProp }) => internalDisabledProp\n ? theme.colors.controllers.off.disabled\n : theme.colors.border.divider};`;\nconst StyledCount = styled.span.withConfig({ displayName: \"StyledCount\", componentId: \"sc-qcfvmh\" }) `box-sizing:content-box;margin-inline-start:${({ theme }) => theme.size.static200};min-width:1em;line-height:1em;padding:${({ theme }) => theme.size.static100};border-radius:100px;font-size:${({ theme }) => theme.fonts.label[100].fontSize};text-align:center;color:${({ theme }) => theme.colors.content.inverted};background:${({ theme }) => theme.colors.signal.neutral};height:fit-content;width:fit-content;`;\nconst StyledMultiSelect = styled.fieldset.withConfig({ displayName: \"StyledMultiSelect\", componentId: \"sc-1gbzo02\" }) `margin:0;border:none;opacity:unset;position:relative;padding:2px 0;border-top:${({ theme }) => theme.size.line.default} solid transparent;border-bottom:${({ theme }) => theme.size.line.default} solid transparent;${({ disabled, theme }) => !disabled &&\n css `\n\t\t\t:focus-within,\n\t\t\t:hover {\n\t\t\t\t${StyledIcon} {\n\t\t\t\t\tcolor: ${theme.colors.button.tertiary.active};\n\t\t\t\t}\n\n\t\t\t\t${StyledLabelWrapper} {\n\t\t\t\t\tcolor: ${theme.colors.content.hover};\n\t\t\t\t}\n\t\t\t\t${StyledLabelTextWithFloating} {\n\t\t\t\t\ttransform: translateY(0);\n\t\t\t\t\tfont-size: ${copy100};\n\t\t\t\t\tcolor: ${theme.colors.content.hover};\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t:focus-within {\n\t\t\t\t${StyledIcon} {\n\t\t\t\t\ttransform: rotateX(180deg);\n\t\t\t\t}\n\t\t\t}\n\t\t`}`;\nconst StyledSingleOption = styled.div.withConfig({ displayName: \"StyledSingleOption\", componentId: \"sc-k52n5t\" }) `color:${({ theme }) => theme.colors.button.primary.default};font-weight:${({ isActive }) => (isActive ? 'bold' : 'normal')};cursor:pointer;`;\nconst StyledResults = styled.span.withConfig({ displayName: \"StyledResults\", componentId: \"sc-vvuie0\" }) `color:${({ theme }) => theme.colors.content.secondary};margin-left:${({ theme }) => theme.size.static150};`;\n/* The onMouseDown preventDefault is needed to ensure that the focus will\n not be removed from the checkbox when clicked */\nconst handleCheckboxOnMouseDown = (event) => {\n event.preventDefault();\n event.currentTarget.focus();\n};\nconst handleOverlayOnMouseDown = (event) => {\n event.preventDefault();\n};\nconst handleNewValue = (value, optionKey) => {\n const newValue = [...value];\n if (value.includes(optionKey)) {\n newValue.splice(value.indexOf(optionKey), 1);\n }\n else {\n newValue.push(optionKey);\n }\n return newValue;\n};\nconst handleMouseDown = (event) => {\n /* The onMouseDown preventDefault is needed to ensure that the focus will not be removed from the InteractionWrapper when clicked */\n event.preventDefault();\n};\nexport const MultiSelect = (props) => {\n const firstOption = React.useRef(null);\n const optionsList = React.useRef(null);\n const multiSelect = React.useRef(null);\n const labelRef = React.createRef();\n const [internalValue, setInternalValue] = React.useState(props.defaultValue || []);\n const { defaultValue, label, name, onChange, onOptionClick, options, value, disabled, singleOptionMode, defaultSingleOption, isFloating, results, } = props;\n const handleClick = React.useCallback((event) => {\n var _a;\n const { onClick } = props;\n if (!singleOptionMode) {\n if (firstOption &&\n firstOption.current &&\n multiSelect &&\n multiSelect.current) {\n const elementWithFocus = multiSelect.current.querySelector(':focus');\n if (elementWithFocus) {\n elementWithFocus.blur();\n return;\n }\n firstOption.current.focus();\n }\n onClick && onClick(event);\n }\n else {\n (_a = optionsList.current) === null || _a === void 0 ? void 0 : _a.focus();\n }\n }, [props, singleOptionMode]);\n const commonProps = getCommonProps(props);\n const [selectedOption, setSelectedOption] = useState(defaultSingleOption);\n const [labelHeight, setLabelHeight] = React.useState(0);\n const [hasValue, setHasValue] = React.useState(!!selectedOption || !!defaultSingleOption || false);\n React.useEffect(() => {\n var _a;\n setLabelHeight(((_a = labelRef.current) === null || _a === void 0 ? void 0 : _a.clientHeight) || 0);\n }, [labelRef]);\n React.useEffect(() => {\n setHasValue(!!selectedOption);\n }, [selectedOption]);\n const handleResize = React.useCallback(() => { var _a; return setLabelHeight(((_a = labelRef.current) === null || _a === void 0 ? void 0 : _a.clientHeight) || 0); }, [setLabelHeight, labelRef]);\n React.useEffect(() => {\n window.addEventListener('resize', handleResize);\n return () => window.removeEventListener('resize', handleResize);\n }, [handleResize]);\n const optionsElement = Object.entries(options).map((entry, index) => {\n const [key, elementLabel] = entry;\n const formattedElementLabelWith = results ? (React.createElement(\"div\", null,\n elementLabel,\n React.createElement(StyledResults, null,\n \"(\",\n results[index],\n \")\"))) : (elementLabel);\n if (!singleOptionMode) {\n return (React.createElement(Checkbox, { key: key, value: key, label: formattedElementLabelWith, ref: index === 0 ? firstOption : undefined, defaultChecked: defaultValue && defaultValue.includes(key), checked: value && value.includes(key), onLabelMouseDown: handleCheckboxOnMouseDown, onClick: () => {\n onOptionClick && onOptionClick(key);\n }, onChange: () => {\n if (value) {\n return;\n }\n const newInternalValue = handleNewValue(internalValue, key);\n setInternalValue(newInternalValue);\n onChange && onChange(newInternalValue);\n }, name: name, disabled: disabled }));\n }\n else {\n return (\n // We use tabindex here because without this attribute we won't be able to invoke the focus event and dropdown list won't be opened.\n React.createElement(StyledSingleOption, { key: key, ref: optionsList, isActive: selectedOption === elementLabel, tabIndex: 0, onClick: () => {\n setSelectedOption(elementLabel);\n onChange && onChange(elementLabel);\n } }, elementLabel));\n }\n });\n const count = value ? value.length : internalValue.length;\n return (React.createElement(StyledMultiSelect, Object.assign({ ref: multiSelect, disabled: disabled }, commonProps),\n label && singleOptionMode && (React.createElement(StyledLabelText, { \"aria-hidden\": true, ref: labelRef }, label)),\n React.createElement(StyledLegend, null, label),\n label && singleOptionMode && (React.createElement(StyledLabelTextWithFloating, { isFloating: isFloating, hasValue: hasValue, labelHeight: labelHeight }, label)),\n React.createElement(StyledInteractionWrapper, { onClick: handleClick, onMouseDown: handleMouseDown, \"aria-hidden\": true, internalDisabledProp: disabled },\n React.createElement(StyledLabelWrapper, { internalDisabledProp: disabled },\n React.createElement(Text, { tag: TextTag.span, color: TokenTextColor.inherit, appearance: TokenTextAppearance.copy200, staticSize: true }, singleOptionMode ? selectedOption : label),\n count > 0 && (React.createElement(ThemeProvider, { theme: \"main\" },\n React.createElement(StyledCount, null, count)))),\n React.createElement(StyledCountAndIconWrapper, null,\n React.createElement(StyledIconWrapper, null,\n React.createElement(StyledIcon, null,\n React.createElement(ChevronDown, { variant: \"default\", ariaHidden: true }))))),\n React.createElement(ThemeProvider, { theme: \"main\" },\n React.createElement(StyledOverlay, { onMouseDown: handleOverlayOnMouseDown },\n React.createElement(Container, { gutter: ContainerGutter.static200, wrap: ContainerWrap.always }, optionsElement)))));\n};\n","import * as React from 'react';\nimport { css } from 'styled-components';\nimport { Container, ContainerHorizontalAlignment, ContainerVerticalAlignment, ContainerWrap, ContainerGutter, } from '../container';\nimport { Fade } from '../fade';\nimport { Breakpoints } from '../helpers/breakpoint';\nimport { Text, TokenTextAppearance, TokenTextColor } from '../text';\nimport { styled } from '../theme-provider';\nimport { getCommonProps } from '../helpers/common-props';\nimport { ChevronDown } from '@volkswagen-onehub/icons-core';\nconst animationDuration = 300;\nconst StyledNavigationLevelList = styled.div.withConfig({ displayName: \"StyledNavigationLevelList\", componentId: \"sc-ju1w4n\" }) `position:relative;padding-bottom:${(props) => props.theme.size.static150};display:flex;flex-direction:column;gap:${(props) => props.theme.size.dynamic0100};`;\nconst StyledNavigationLevelListItem = styled.div.withConfig({ displayName: \"StyledNavigationLevelListItem\", componentId: \"sc-kdwnmt\" }) `@media (min-width: ${Breakpoints.b560}px){display:grid;grid-column-gap:1em;grid-template-columns:1fr 1fr;}`;\nconst StyledIcon = styled(ChevronDown).withConfig({ displayName: \"StyledIcon\", componentId: \"sc-43lik5\" }) `color:${(props) => props.theme.colors.button.primary.default};transition:transform ${animationDuration}ms ease;transform:${(props) => (props.isOpen ? 'rotateX(180deg)' : 'rotateX(0)')};transform-origin:50% 50%;@media (min-width: ${Breakpoints.b560}px){transform:rotateZ(-90deg);}`;\nconst StyledText = styled.div.withConfig({ displayName: \"StyledText\", componentId: \"sc-1usxyke\" }) `position:relative;::after{content:'';display:block;position:absolute;width:0;height:${({ theme }) => theme.size.line.active};margin-top:${(props) => props.theme.size.static100};background:${(props) => props.theme.colors.button.primary.default};transition:width ${animationDuration}ms ease;}${(props) => props.isOpen &&\n `\n\t\t\t::after {\n\t\t\t\twidth: 100%;\n\t\t\t}\n\t\t`};`;\nconst LinkStyle = css `display:block;text-decoration:none;color:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent;@media (hover: hover){&:hover{color:${({ theme }) => theme.colors.content.secondary};${StyledIcon}{color:${({ theme }) => theme.colors.content.secondary};}}}:focus{outline:0;color:${({ theme }) => theme.colors.content.secondary};${StyledIcon}{color:${({ theme }) => theme.colors.content.secondary};}}${(props) => props.isOpen &&\n css `\n\t\t\t@media (hover: hover) {\n\t\t\t\tcolor: ${({ theme }) => theme.colors.content.primary};\n\n\t\t\t\t${StyledIcon} {\n\t\t\t\t\tcolor: ${({ theme }) => theme.colors.content.primary};\n\t\t\t\t}\n\n\t\t\t\t&:hover,\n\t\t\t\t&:focus {\n\t\t\t\t\tcolor: ${({ theme }) => theme.colors.content.primary};\n\n\t\t\t\t\t${StyledIcon} {\n\t\t\t\t\t\tcolor: ${({ theme }) => theme.colors.content.primary};\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t`};`;\nconst StyledLink = styled.a.withConfig({ displayName: \"StyledLink\", componentId: \"sc-1qpvfum\" }) `${LinkStyle}`;\nconst StyledButton = styled.button.withConfig({ displayName: \"StyledButton\", componentId: \"sc-1p7ikll\" }) `${LinkStyle} border:0;padding:0;width:100%;background:transparent;`;\nconst StyledSecondLevelList = styled.div.withConfig({ displayName: \"StyledSecondLevelList\", componentId: \"sc-1rmprda\" }) `${(props) => props.isOpen &&\n css `\n\t\t\tpadding: 0 ${props.theme.size.grid001} ${props.theme.size.dynamic0100};\n\t\t`};${StyledLink}{display:inline-block;margin-top:${(props) => props.theme.size.dynamic0100};}@media (min-width: ${Breakpoints.b560}px){position:absolute;top:0;padding:0;${StyledLink}{:first-child{margin-top:0;}}}`;\nconst StyledSecondLevelListInner = styled.div.withConfig({ displayName: \"StyledSecondLevelListInner\", componentId: \"sc-8nshfb\" }) `display:flex;flex-direction:column;`;\nexport const NavigationLevelListItem = (props) => {\n const { id, isOpen = false, name, url, subItems, onClick } = props;\n const firstLevelId = `${id}_firstlevel`;\n const secondLevelId = `${id}_secondlevel`;\n return (React.createElement(StyledNavigationLevelListItem, { id: id },\n React.createElement(\"div\", null, subItems ? (React.createElement(StyledButton, { id: firstLevelId, isOpen: isOpen, onClick: onClick, \"aria-expanded\": isOpen, \"aria-controls\": subItems && secondLevelId },\n React.createElement(Container, { wrap: ContainerWrap.never, horizontalAlign: ContainerHorizontalAlignment.spaceBetween, verticalAlign: ContainerVerticalAlignment.center, gutter: ContainerGutter.grid001 },\n React.createElement(StyledText, { isOpen: isOpen },\n React.createElement(Text, { color: TokenTextColor.inherit, appearance: TokenTextAppearance.headline200 }, name)),\n React.createElement(StyledIcon, { isOpen: isOpen, variant: \"small\", ariaHidden: true })))) : (React.createElement(StyledLink, { href: url },\n React.createElement(Text, { color: TokenTextColor.inherit, appearance: TokenTextAppearance.headline200 }, name)))),\n subItems && (React.createElement(\"div\", null,\n React.createElement(StyledSecondLevelList, { id: subItems && secondLevelId, isOpen: isOpen, \"aria-hidden\": !isOpen, \"aria-labelledby\": firstLevelId, role: \"separator\" }, isOpen && (React.createElement(Fade, { duration: animationDuration, disableAnimation: typeof window === 'undefined' },\n React.createElement(StyledSecondLevelListInner, null, (subItems || []).map((item) => (React.createElement(StyledLink, { href: item.url, key: item.name },\n React.createElement(Text, { color: TokenTextColor.inherit, appearance: TokenTextAppearance.headline200 }, item.name))))))))))));\n};\nNavigationLevelListItem.displayName = 'NavigationLevelListItem';\nexport const NavigationLevelList = (props) => {\n const commonProps = getCommonProps(props);\n return (React.createElement(StyledNavigationLevelList, Object.assign({}, commonProps), props.children));\n};\nNavigationLevelList.displayName = 'NavigationLevelList';\n","import * as React from 'react';\nimport { ThemeProvider, styled } from '../theme-provider';\nimport { getCommonProps } from '../helpers/common-props';\nimport { Close } from '@volkswagen-onehub/icons-core';\nimport { CTA } from '../call-to-action';\nimport { Breakpoints } from '../helpers/breakpoint';\nimport { BreakpointWrapper } from '../breakpoint-wrapper';\nimport { getGridColumn } from '../helpers/grid';\n// Note: 32px is the total width of the close button including its \"safezones\" on both sides.\n// This calculation will determine the width of one of the safezones for the purpose of alignments with other elements.\nconst getCloseBtnSafezoneWidth = (theme) => `(${theme.size.static400} - ${theme.size.static200}) / 2`;\nconst StyledNotificationBar = styled.div.withConfig({ displayName: \"StyledNotificationBar\", componentId: \"sc-1o7l9fi\" }) `position:relative;background:${(props) => props.theme.colors.signal.neutral};`;\nconst StyledContentWrapper = styled.div.withConfig({ displayName: \"StyledContentWrapper\", componentId: \"sc-146kb8q\" }) `display:flex;align-items:center;padding-top:${(props) => props.theme.size.static200};padding-bottom:${(props) => props.theme.size.static200};padding-inline-end:calc(\\n\\t\\t${getGridColumn(1)} + ${(props) => getCloseBtnSafezoneWidth(props.theme)} +\\n\\t\\t\\t${(props) => props.theme.size.static200} +\\n\\t\\t\\t${(props) => props.theme.size.static370}\\n\\t);padding-inline-start:${getGridColumn(1)};@media (max-width: ${Breakpoints.b560}px){padding-inline-end:${getGridColumn(3)};}`;\nconst StyledIcon = styled.div.withConfig({ displayName: \"StyledIcon\", componentId: \"sc-282bhd\" }) `display:flex;margin-inline-end:${(props) => props.theme.size.static370};color:${(props) => props.theme.colors.content.primary};${(props) => props.iconBackgroundColor &&\n `\n\t\t\tbackground-color: ${props.iconBackgroundColor};\n\t\t\tcolor: ${props.theme.colors.signal.neutral};\n\t\t\tpadding: ${props.theme.size.static150};\n\t\t\tborder-radius: 100%;\n\t\t`};`;\nconst StyledCloseButtonContainer = styled.div.withConfig({ displayName: \"StyledCloseButtonContainer\", componentId: \"sc-ibg9c3\" }) `position:absolute;top:0;bottom:0;display:flex;align-items:center;${(props) => (props.theme.direction === 'rtl' ? `left: 0;` : `right: 0;`)} padding-inline-end:calc(${getGridColumn(1)} - ${(props) => getCloseBtnSafezoneWidth(props.theme)});`;\nexport const NotificationBar = (props) => {\n const { icon, closeButtonLabel, onClose, children, ariaLabel, ariaDescribedBy, ariaLabelledBy, iconBackgroundColor, } = props;\n const commonProps = getCommonProps(props);\n return (React.createElement(StyledNotificationBar, Object.assign({ role: \"status\", \"aria-label\": ariaLabel, \"aria-labelledby\": ariaLabelledBy, \"aria-describedby\": ariaDescribedBy }, commonProps),\n React.createElement(ThemeProvider, { theme: \"inverted\" },\n React.createElement(StyledContentWrapper, null,\n React.createElement(BreakpointWrapper, { min: Breakpoints.b560 }, icon && (React.createElement(StyledIcon, { iconBackgroundColor: iconBackgroundColor }, icon))),\n children,\n React.createElement(StyledCloseButtonContainer, null,\n React.createElement(CTA, { tag: \"button\", icon: React.createElement(Close, { variant: \"small\", ariaHidden: true }), onClick: onClose, type: \"button\", size: \"small\", emphasis: \"none\", ariaLabel: closeButtonLabel }))))));\n};\n","import * as React from 'react';\nimport { keyframes } from 'styled-components';\nimport { styled } from '../theme-provider';\nconst move = keyframes `0%{transform:translateX(-100%);}100%{transform:translateX(100%);}`;\nconst StyledProgressWrapper = styled.div.withConfig({ displayName: \"StyledProgressWrapper\", componentId: \"sc-5qdgzc\" }) `position:relative;overflow:hidden;height:${(props) => props.theme.size.static100};line-height:0;::after{content:'';display:${({ indeterminate }) => (indeterminate ? 'block' : 'none')};position:absolute;top:0;left:0;height:100%;width:100%;background-color:${({ theme }) => theme.colors.signal.progress};animation:2s linear ${move} infinite;}`;\nconst StyledProgress = styled.progress.withConfig({ displayName: \"StyledProgress\", componentId: \"sc-v1o82w\" }) `appearance:none;border:none;position:absolute;top:0;height:100%;width:100%;::-webkit-progress-bar{background-color:${({ theme }) => theme.colors.border.divider};}::-moz-progress-bar{background-color:${({ theme }) => theme.colors.signal.neutral};transition:width 0.3s;}::-webkit-progress-value{background-color:${({ theme }) => theme.colors.signal.progress};transition:width 0.3s;}:indeterminate{::-webkit-progress-value,::-moz-progress-bar{display:none;width:0;}}`;\nexport const Progress = (props) => (React.createElement(StyledProgressWrapper, { indeterminate: typeof props.value !== 'number' },\n React.createElement(StyledProgress, { max: 1, value: props.value }, props.value)));\n","import * as React from 'react';\nimport { css, styled } from '../theme-provider';\nimport { getCommonProps } from '../helpers/common-props';\nimport { createA11yOutlineStyles } from '../helpers/a11y';\nconst StyledReferenceBadge = styled.button.withConfig({ displayName: \"StyledReferenceBadge\", componentId: \"sc-q385m9\" }) `background:none;border-radius:100px;border:0;cursor:pointer;display:inline;font-weight:initial;line-height:1;margin:0;padding:0;white-space:nowrap;${({ theme, variant }) => variant === 'default' &&\n css `\n\t\t\tmin-width: 1.25em;\n\t\t\tpadding: 0.125em 0.35em;\n\t\t\tfont-size: ${theme.fonts.label[100].fontSize};\n\t\t`} ${({ theme, variant }) => variant === 'large' &&\n css `\n\t\t\tmin-width: 1.5em;\n\t\t\tpadding: 0.25em 0.45em;\n\t\t\tfont-size: ${theme.fonts.label[150].fontSize};\n\t\t`} color:${({ theme }) => theme.colors.content.primary};background:${({ theme }) => theme.colors.badge.default};box-shadow:inset 0 0 0 1px ${({ theme }) => theme.colors.border.default};&:hover,&:active{color:${({ theme }) => theme.colors.content.onsurface};background:${({ theme }) => theme.colors.badge.active};outline:0;box-shadow:inset 0 0 0 1px ${({ theme }) => theme.colors.badge.active};}&:focus:not(:focus-visible){box-shadow:inset 0 0 0 1px ${({ theme }) => theme.colors.badge.active};background:${({ theme }) => theme.colors.badge.active};color:${({ theme }) => theme.colors.content.onsurface};outline:none;}&:focus-visible{${({ theme }) => createA11yOutlineStyles(theme)}}`;\nexport const ReferenceBadge = React.forwardRef((props, forwardRef) => {\n const { children, onClick, ariaLabel, variant = 'default' } = props;\n const commonProps = getCommonProps(props);\n return (React.createElement(StyledReferenceBadge, Object.assign({ onClick: onClick, \"aria-label\": ariaLabel, ref: forwardRef, variant: variant }, commonProps), children));\n});\nReferenceBadge.displayName = 'ReferenceBadge';\nexport const DisclaimerReferenceBadge = React.forwardRef((props, forwardRef) => {\n const { children, onClick, ariaLabel, variant = 'default' } = props;\n const commonProps = getCommonProps(props);\n return (React.createElement(StyledReferenceBadge, Object.assign({ onClick: onClick, \"aria-label\": ariaLabel, ref: forwardRef, variant: variant, \"data-component\": \"disclaimer-reference-badge\" }, commonProps), children));\n});\nDisclaimerReferenceBadge.displayName = 'DisclaimerReferenceBadge';\n","/* @jsx h */\n/**\n * markdown-to-jsx is a fork of [simple-markdown v0.2.2](https://github.com/Khan/simple-markdown)\n * from Khan Academy. Thank you Khan devs for making such an awesome and extensible\n * parsing infra... without it, half of the optimizations here wouldn't be feasible. 🙏🏼\n */\nimport * as React from 'react'\n\nexport namespace MarkdownToJSX {\n /**\n * RequireAtLeastOne<{ ... }> <- only requires at least one key\n */\n type RequireAtLeastOne = Pick<\n T,\n Exclude\n > &\n {\n [K in Keys]-?: Required> & Partial>>\n }[Keys]\n\n export type CreateElement = typeof React.createElement\n\n export type HTMLTags = keyof JSX.IntrinsicElements\n\n export type State = {\n _inAnchor?: boolean\n _inline?: boolean\n _inTable?: boolean\n _key?: React.Key\n _list?: boolean\n _simple?: boolean\n }\n\n export type ParserResult = {\n [key: string]: any\n type?: string\n }\n\n export type NestedParser = (\n input: string,\n state?: MarkdownToJSX.State\n ) => MarkdownToJSX.ParserResult\n\n export type Parser = (\n capture: RegExpMatchArray,\n nestedParse: NestedParser,\n state?: MarkdownToJSX.State\n ) => ParserOutput\n\n export type RuleOutput = (\n ast: MarkdownToJSX.ParserResult,\n state: MarkdownToJSX.State\n ) => JSX.Element\n\n export type Rule = {\n _match: (\n source: string,\n state: MarkdownToJSX.State,\n prevCapturedString?: string\n ) => RegExpMatchArray\n _order: Priority\n _parse: MarkdownToJSX.Parser\n _react?: (\n node: ParserOutput,\n output: RuleOutput,\n state?: MarkdownToJSX.State\n ) => React.ReactChild\n }\n\n export type Rules = {\n [key: string]: Rule\n }\n\n export type Override =\n | RequireAtLeastOne<{\n component: React.ElementType\n props: Object\n }>\n | React.ElementType\n\n export type Overrides = {\n [tag in HTMLTags]?: Override\n } & {\n [customComponent: string]: Override\n }\n\n export type Options = Partial<{\n /**\n * Ultimate control over the output of all rendered JSX.\n */\n createElement: (\n tag: Parameters[0],\n props: JSX.IntrinsicAttributes,\n ...children: React.ReactChild[]\n ) => JSX.Element\n\n /**\n * Disable the compiler's best-effort transcription of provided raw HTML\n * into JSX-equivalent. This is the functionality that prevents the need to\n * use `dangerouslySetInnerHTML` in React.\n */\n disableParsingRawHTML: boolean\n\n /**\n * Forces the compiler to always output content with a block-level wrapper\n * (`

` or any block-level syntax your markdown already contains.)\n */\n forceBlock: boolean\n\n /**\n * Forces the compiler to always output content with an inline wrapper (``)\n */\n forceInline: boolean\n\n /**\n * Supply additional HTML entity: unicode replacement mappings.\n *\n * Pass only the inner part of the entity as the key,\n * e.g. `≤` -> `{ \"le\": \"\\u2264\" }`\n *\n * By default\n * the following entities are replaced with their unicode equivalents:\n *\n * ```\n * &\n * '\n * >\n * <\n *  \n * "\n * ```\n */\n namedCodesToUnicode: {\n [key: string]: string\n }\n\n /**\n * Selectively control the output of particular HTML tags as they would be\n * emitted by the compiler.\n */\n overrides: Overrides\n\n /**\n * Declare the type of the wrapper to be used when there are multiple\n * children to render. Set to `null` to get an array of children back\n * without any wrapper, or use `React.Fragment` to get a React element\n * that won't show up in the DOM.\n */\n wrapper: React.ElementType | null\n\n /**\n * Forces the compiler to wrap results, even if there is only a single\n * child or no children.\n */\n forceWrapper: boolean\n\n /**\n * Override normalization of non-URI-safe characters for use in generating\n * HTML IDs for anchor linking purposes.\n */\n slugify: (source: string) => string\n\n /**\n * Forces the compiler to have space between hash sign and the header text which\n * is explicitly stated in the most of the markdown specs.\n * https://github.github.com/gfm/#atx-heading\n * `The opening sequence of # characters must be followed by a space or by the end of line.`\n */\n enforceAtxHeadings: boolean\n }>\n}\n\n/** TODO: Drop for React 16? */\nconst ATTRIBUTE_TO_JSX_PROP_MAP = [\n 'allowFullScreen',\n 'allowTransparency',\n 'autoComplete',\n 'autoFocus',\n 'autoPlay',\n 'cellPadding',\n 'cellSpacing',\n 'charSet',\n 'className',\n 'classId',\n 'colSpan',\n 'contentEditable',\n 'contextMenu',\n 'crossOrigin',\n 'encType',\n 'formAction',\n 'formEncType',\n 'formMethod',\n 'formNoValidate',\n 'formTarget',\n 'frameBorder',\n 'hrefLang',\n 'inputMode',\n 'keyParams',\n 'keyType',\n 'marginHeight',\n 'marginWidth',\n 'maxLength',\n 'mediaGroup',\n 'minLength',\n 'noValidate',\n 'radioGroup',\n 'readOnly',\n 'rowSpan',\n 'spellCheck',\n 'srcDoc',\n 'srcLang',\n 'srcSet',\n 'tabIndex',\n 'useMap',\n].reduce(\n (obj, x) => {\n obj[x.toLowerCase()] = x\n return obj\n },\n { for: 'htmlFor' }\n)\n\nconst namedCodesToUnicode = {\n amp: '\\u0026',\n apos: '\\u0027',\n gt: '\\u003e',\n lt: '\\u003c',\n nbsp: '\\u00a0',\n quot: '\\u201c',\n} as const\n\nconst DO_NOT_PROCESS_HTML_ELEMENTS = ['style', 'script']\n\n/**\n * the attribute extractor regex looks for a valid attribute name,\n * followed by an equal sign (whitespace around the equal sign is allowed), followed\n * by one of the following:\n *\n * 1. a single quote-bounded string, e.g. 'foo'\n * 2. a double quote-bounded string, e.g. \"bar\"\n * 3. an interpolation, e.g. {something}\n *\n * JSX can be be interpolated into itself and is passed through the compiler using\n * the same options and setup as the current run.\n *\n * } />\n * ==================\n * ↳ children: []\n *\n * Otherwise, interpolations are handled as strings or simple booleans\n * unless HTML syntax is detected.\n *\n * \n * ===== ====\n * ↓ ↳ disabled: true\n * ↳ color: \"green\"\n *\n * Numbers are not parsed at this time due to complexities around int, float,\n * and the upcoming bigint functionality that would make handling it unwieldy.\n * Parse the string in your component as desired.\n *\n * \n * ==================\n * ↳ someBigNumber: \"123456789123456789\"\n */\nconst ATTR_EXTRACTOR_R =\n /([-A-Z0-9_:]+)(?:\\s*=\\s*(?:(?:\"((?:\\\\.|[^\"])*)\")|(?:'((?:\\\\.|[^'])*)')|(?:\\{((?:\\\\.|{[^}]*?}|[^}])*)\\})))?/gi\n\n/** TODO: Write explainers for each of these */\n\nconst AUTOLINK_MAILTO_CHECK_R = /mailto:/i\nconst BLOCK_END_R = /\\n{2,}$/\nconst BLOCKQUOTE_R = /^( *>[^\\n]+(\\n[^\\n]+)*\\n*)+\\n{2,}/\nconst BLOCKQUOTE_TRIM_LEFT_MULTILINE_R = /^ *> ?/gm\nconst BREAK_LINE_R = /^ {2,}\\n/\nconst BREAK_THEMATIC_R = /^(?:( *[-*_])){3,} *(?:\\n *)+\\n/\nconst CODE_BLOCK_FENCED_R =\n /^\\s*(`{3,}|~{3,}) *(\\S+)?([^\\n]*?)?\\n([\\s\\S]+?)\\s*\\1 *(?:\\n *)*\\n?/\nconst CODE_BLOCK_R = /^(?: {4}[^\\n]+\\n*)+(?:\\n *)+\\n?/\nconst CODE_INLINE_R = /^(`+)\\s*([\\s\\S]*?[^`])\\s*\\1(?!`)/\nconst CONSECUTIVE_NEWLINE_R = /^(?:\\n *)*\\n/\nconst CR_NEWLINE_R = /\\r\\n?/g\nconst FOOTNOTE_R = /^\\[\\^([^\\]]+)](:.*)\\n/\nconst FOOTNOTE_REFERENCE_R = /^\\[\\^([^\\]]+)]/\nconst FORMFEED_R = /\\f/g\nconst GFM_TASK_R = /^\\s*?\\[(x|\\s)\\]/\nconst HEADING_R = /^ *(#{1,6}) *([^\\n]+?)(?: +#*)?(?:\\n *)*(?:\\n|$)/\nconst HEADING_ATX_COMPLIANT_R =\n /^ *(#{1,6}) +([^\\n]+?)(?: +#*)?(?:\\n *)*(?:\\n|$)/\nconst HEADING_SETEXT_R = /^([^\\n]+)\\n *(=|-){3,} *(?:\\n *)+\\n/\n\n/**\n * Explanation:\n *\n * 1. Look for a starting tag, preceded by any amount of spaces\n * ^ *<\n *\n * 2. Capture the tag name (capture 1)\n * ([^ >/]+)\n *\n * 3. Ignore a space after the starting tag and capture the attribute portion of the tag (capture 2)\n * ?([^>]*)\\/{0}>\n *\n * 4. Ensure a matching closing tag is present in the rest of the input string\n * (?=[\\s\\S]*<\\/\\1>)\n *\n * 5. Capture everything until the matching closing tag -- this might include additional pairs\n * of the same tag type found in step 2 (capture 3)\n * ((?:[\\s\\S]*?(?:<\\1[^>]*>[\\s\\S]*?<\\/\\1>)*[\\s\\S]*?)*?)<\\/\\1>\n *\n * 6. Capture excess newlines afterward\n * \\n*\n */\nconst HTML_BLOCK_ELEMENT_R =\n /^ *(?!<[a-z][^ >/]* ?\\/>)<([a-z][^ >/]*) ?([^>]*)\\/{0}>\\n?(\\s*(?:<\\1[^>]*?>[\\s\\S]*?<\\/\\1>|(?!<\\1)[\\s\\S])*?)<\\/\\1>\\n*/i\n\nconst HTML_CHAR_CODE_R = /&([a-z0-9]+|#[0-9]{1,6}|#x[0-9a-fA-F]{1,6});/ig\n\nconst HTML_COMMENT_R = /^)/\n\n/**\n * borrowed from React 15(https://github.com/facebook/react/blob/894d20744cba99383ffd847dbd5b6e0800355a5c/src/renderers/dom/shared/HTMLDOMPropertyConfig.js)\n */\nconst HTML_CUSTOM_ATTR_R = /^(data|aria|x)-[a-z_][a-z\\d_.-]*$/\n\nconst HTML_SELF_CLOSING_ELEMENT_R =\n /^ *<([a-z][a-z0-9:]*)(?:\\s+((?:<.*?>|[^>])*))?\\/?>(?!<\\/\\1>)(\\s*\\n)?/i\nconst INTERPOLATION_R = /^\\{.*\\}$/\nconst LINK_AUTOLINK_BARE_URL_R = /^(https?:\\/\\/[^\\s<]+[^<.,:;\"')\\]\\s])/\nconst LINK_AUTOLINK_MAILTO_R = /^<([^ >]+@[^ >]+)>/\nconst LINK_AUTOLINK_R = /^<([^ >]+:\\/[^ >]+)>/\nconst CAPTURE_LETTER_AFTER_HYPHEN = /-([a-z])?/gi\nconst NP_TABLE_R = /^(.*\\|?.*)\\n *(\\|? *[-:]+ *\\|[-| :]*)\\n((?:.*\\|.*\\n)*)\\n?/\nconst PARAGRAPH_R = /^[^\\n]+(?: \\n|\\n{2,})/\nconst REFERENCE_IMAGE_OR_LINK = /^\\[([^\\]]*)\\]:\\s+]+)>?\\s*(\"([^\"]*)\")?/\nconst REFERENCE_IMAGE_R = /^!\\[([^\\]]*)\\] ?\\[([^\\]]*)\\]/\nconst REFERENCE_LINK_R = /^\\[([^\\]]*)\\] ?\\[([^\\]]*)\\]/\nconst SQUARE_BRACKETS_R = /(\\[|\\])/g\nconst SHOULD_RENDER_AS_BLOCK_R = /(\\n|^[-*]\\s|^#|^ {2,}|^-{2,}|^>\\s)/\nconst TAB_R = /\\t/g\nconst TABLE_SEPARATOR_R = /^ *\\| */\nconst TABLE_TRIM_PIPES = /(^ *\\||\\| *$)/g\nconst TABLE_CELL_END_TRIM = / *$/\nconst TABLE_CENTER_ALIGN = /^ *:-+: *$/\nconst TABLE_LEFT_ALIGN = /^ *:-+ *$/\nconst TABLE_RIGHT_ALIGN = /^ *-+: *$/\n\nconst TEXT_BOLD_R =\n /^([*_])\\1((?:\\[.*?\\][([].*?[)\\]]|<.*?>(?:.*?<.*?>)?|`.*?`|~+.*?~+|.)*?)\\1\\1(?!\\1)/\nconst TEXT_EMPHASIZED_R =\n /^([*_])((?:\\[.*?\\][([].*?[)\\]]|<.*?>(?:.*?<.*?>)?|`.*?`|~+.*?~+|.)*?)\\1(?!\\1|\\w)/\nconst TEXT_MARKED_R = /^==((?:\\[.*?\\]|<.*?>(?:.*?<.*?>)?|`.*?`|.)*?)==/\nconst TEXT_STRIKETHROUGHED_R = /^~~((?:\\[.*?\\]|<.*?>(?:.*?<.*?>)?|`.*?`|.)*?)~~/\n\nconst TEXT_ESCAPED_R = /^\\\\([^0-9A-Za-z\\s])/\nconst TEXT_PLAIN_R =\n /^[\\s\\S]+?(?=[^0-9A-Z\\s\\u00c0-\\uffff&#;.()'\"]|\\d+\\.|\\n\\n| {2,}\\n|\\w+:\\S|$)/i\n\nconst TRIM_STARTING_NEWLINES = /^\\n+/\n\nconst HTML_LEFT_TRIM_AMOUNT_R = /^([ \\t]*)/\n\nconst UNESCAPE_URL_R = /\\\\([^\\\\])/g\n\ntype LIST_TYPE = 1 | 2\nconst ORDERED: LIST_TYPE = 1\nconst UNORDERED: LIST_TYPE = 2\n\nconst LIST_ITEM_END_R = / *\\n+$/\nconst LIST_LOOKBEHIND_R = /(?:^|\\n)( *)$/\n\n// recognize a `*` `-`, `+`, `1.`, `2.`... list bullet\nconst ORDERED_LIST_BULLET = '(?:\\\\d+\\\\.)'\nconst UNORDERED_LIST_BULLET = '(?:[*+-])'\n\nfunction generateListItemPrefix(type: LIST_TYPE) {\n return (\n '( *)(' +\n (type === ORDERED ? ORDERED_LIST_BULLET : UNORDERED_LIST_BULLET) +\n ') +'\n )\n}\n\n// recognize the start of a list item:\n// leading space plus a bullet plus a space (` * `)\nconst ORDERED_LIST_ITEM_PREFIX = generateListItemPrefix(ORDERED)\nconst UNORDERED_LIST_ITEM_PREFIX = generateListItemPrefix(UNORDERED)\n\nfunction generateListItemPrefixRegex(type: LIST_TYPE) {\n return new RegExp(\n '^' +\n (type === ORDERED ? ORDERED_LIST_ITEM_PREFIX : UNORDERED_LIST_ITEM_PREFIX)\n )\n}\n\nconst ORDERED_LIST_ITEM_PREFIX_R = generateListItemPrefixRegex(ORDERED)\nconst UNORDERED_LIST_ITEM_PREFIX_R = generateListItemPrefixRegex(UNORDERED)\n\nfunction generateListItemRegex(type: LIST_TYPE) {\n // recognize an individual list item:\n // * hi\n // this is part of the same item\n //\n // as is this, which is a new paragraph in the same item\n //\n // * but this is not part of the same item\n return new RegExp(\n '^' +\n (type === ORDERED\n ? ORDERED_LIST_ITEM_PREFIX\n : UNORDERED_LIST_ITEM_PREFIX) +\n '[^\\\\n]*(?:\\\\n' +\n '(?!\\\\1' +\n (type === ORDERED ? ORDERED_LIST_BULLET : UNORDERED_LIST_BULLET) +\n ' )[^\\\\n]*)*(\\\\n|$)',\n 'gm'\n )\n}\n\nconst ORDERED_LIST_ITEM_R = generateListItemRegex(ORDERED)\nconst UNORDERED_LIST_ITEM_R = generateListItemRegex(UNORDERED)\n\n// check whether a list item has paragraphs: if it does,\n// we leave the newlines at the end\nfunction generateListRegex(type: LIST_TYPE) {\n const bullet = type === ORDERED ? ORDERED_LIST_BULLET : UNORDERED_LIST_BULLET\n\n return new RegExp(\n '^( *)(' +\n bullet +\n ') ' +\n '[\\\\s\\\\S]+?(?:\\\\n{2,}(?! )' +\n '(?!\\\\1' +\n bullet +\n ' (?!' +\n bullet +\n ' ))\\\\n*' +\n // the \\\\s*$ here is so that we can parse the inside of nested\n // lists, where our content might end before we receive two `\\n`s\n '|\\\\s*\\\\n*$)'\n )\n}\n\nconst ORDERED_LIST_R = generateListRegex(ORDERED)\nconst UNORDERED_LIST_R = generateListRegex(UNORDERED)\n\nfunction generateListRule(h: any, type: LIST_TYPE) {\n const ordered = type === ORDERED\n const LIST_R = ordered ? ORDERED_LIST_R : UNORDERED_LIST_R\n const LIST_ITEM_R = ordered ? ORDERED_LIST_ITEM_R : UNORDERED_LIST_ITEM_R\n const LIST_ITEM_PREFIX_R = ordered\n ? ORDERED_LIST_ITEM_PREFIX_R\n : UNORDERED_LIST_ITEM_PREFIX_R\n\n return {\n _match(source, state, prevCapture) {\n // We only want to break into a list if we are at the start of a\n // line. This is to avoid parsing \"hi * there\" with \"* there\"\n // becoming a part of a list.\n // You might wonder, \"but that's inline, so of course it wouldn't\n // start a list?\". You would be correct! Except that some of our\n // lists can be inline, because they might be inside another list,\n // in which case we can parse with inline scope, but need to allow\n // nested lists inside this inline scope.\n const isStartOfLine = LIST_LOOKBEHIND_R.exec(prevCapture)\n const isListBlock = state._list || (!state._inline && !state._simple)\n\n if (isStartOfLine && isListBlock) {\n source = isStartOfLine[1] + source\n\n return LIST_R.exec(source)\n } else {\n return null\n }\n },\n _order: Priority.HIGH,\n _parse(capture, parse, state) {\n const bullet = capture[2]\n const start = ordered ? +bullet : undefined\n const items = capture[0]\n // recognize the end of a paragraph block inside a list item:\n // two or more newlines at end end of the item\n .replace(BLOCK_END_R, '\\n')\n .match(LIST_ITEM_R)\n\n let lastItemWasAParagraph = false\n const itemContent = items.map(function (item, i) {\n // We need to see how far indented the item is:\n const space = LIST_ITEM_PREFIX_R.exec(item)[0].length\n\n // And then we construct a regex to \"unindent\" the subsequent\n // lines of the items by that amount:\n const spaceRegex = new RegExp('^ {1,' + space + '}', 'gm')\n\n // Before processing the item, we need a couple things\n const content = item\n // remove indents on trailing lines:\n .replace(spaceRegex, '')\n // remove the bullet:\n .replace(LIST_ITEM_PREFIX_R, '')\n\n // Handling \"loose\" lists, like:\n //\n // * this is wrapped in a paragraph\n //\n // * as is this\n //\n // * as is this\n const isLastItem = i === items.length - 1\n const containsBlocks = content.indexOf('\\n\\n') !== -1\n\n // Any element in a list is a block if it contains multiple\n // newlines. The last element in the list can also be a block\n // if the previous item in the list was a block (this is\n // because non-last items in the list can end with \\n\\n, but\n // the last item can't, so we just \"inherit\" this property\n // from our previous element).\n const thisItemIsAParagraph =\n containsBlocks || (isLastItem && lastItemWasAParagraph)\n lastItemWasAParagraph = thisItemIsAParagraph\n\n // backup our state for restoration afterwards. We're going to\n // want to set state._list to true, and state._inline depending\n // on our list's looseness.\n const oldStateInline = state._inline\n const oldStateList = state._list\n state._list = true\n\n // Parse inline if we're in a tight list, or block if we're in\n // a loose list.\n let adjustedContent\n if (thisItemIsAParagraph) {\n state._inline = false\n adjustedContent = content.replace(LIST_ITEM_END_R, '\\n\\n')\n } else {\n state._inline = true\n adjustedContent = content.replace(LIST_ITEM_END_R, '')\n }\n\n const result = parse(adjustedContent, state)\n\n // Restore our state before returning\n state._inline = oldStateInline\n state._list = oldStateList\n\n return result\n })\n\n return {\n _items: itemContent,\n _ordered: ordered,\n _start: start,\n }\n },\n _react(node, output, state) {\n const Tag = node._ordered ? 'ol' : 'ul'\n\n return (\n \n {node._items.map(function generateListItem(item, i) {\n return

  • {output(item, state)}
  • \n })}\n \n )\n },\n } as MarkdownToJSX.Rule<{\n _items: MarkdownToJSX.ParserResult[]\n _ordered: boolean\n _start?: number\n }>\n}\n\nconst LINK_R = /^\\[([^\\]]*)]\\( *((?:\\([^)]*\\)|[^() ])*) *\"?([^)\"]*)?\"?\\)/\nconst IMAGE_R = /^!\\[([^\\]]*)]\\( *((?:\\([^)]*\\)|[^() ])*) *\"?([^)\"]*)?\"?\\)/\n\nconst NON_PARAGRAPH_BLOCK_SYNTAXES = [\n BLOCKQUOTE_R,\n CODE_BLOCK_FENCED_R,\n CODE_BLOCK_R,\n HEADING_R,\n HEADING_SETEXT_R,\n HEADING_ATX_COMPLIANT_R,\n HTML_COMMENT_R,\n NP_TABLE_R,\n ORDERED_LIST_ITEM_R,\n ORDERED_LIST_R,\n UNORDERED_LIST_ITEM_R,\n UNORDERED_LIST_R,\n]\n\nconst BLOCK_SYNTAXES = [\n ...NON_PARAGRAPH_BLOCK_SYNTAXES,\n PARAGRAPH_R,\n HTML_BLOCK_ELEMENT_R,\n HTML_SELF_CLOSING_ELEMENT_R,\n]\n\nfunction containsBlockSyntax(input: string) {\n return BLOCK_SYNTAXES.some(r => r.test(input))\n}\n\n/** Remove symmetrical leading and trailing quotes */\nfunction unquote(str: string) {\n const first = str[0]\n if (\n (first === '\"' || first === \"'\") &&\n str.length >= 2 &&\n str[str.length - 1] === first\n ) {\n return str.slice(1, -1)\n }\n return str\n}\n\n// based on https://stackoverflow.com/a/18123682/1141611\n// not complete, but probably good enough\nfunction slugify(str: string) {\n return str\n .replace(/[ÀÁÂÃÄÅàáâãäåæÆ]/g, 'a')\n .replace(/[çÇ]/g, 'c')\n .replace(/[ðÐ]/g, 'd')\n .replace(/[ÈÉÊËéèêë]/g, 'e')\n .replace(/[ÏïÎîÍíÌì]/g, 'i')\n .replace(/[Ññ]/g, 'n')\n .replace(/[øØœŒÕõÔôÓóÒò]/g, 'o')\n .replace(/[ÜüÛûÚúÙù]/g, 'u')\n .replace(/[ŸÿÝý]/g, 'y')\n .replace(/[^a-z0-9- ]/gi, '')\n .replace(/ /gi, '-')\n .toLowerCase()\n}\n\nfunction parseTableAlignCapture(alignCapture: string) {\n if (TABLE_RIGHT_ALIGN.test(alignCapture)) {\n return 'right'\n } else if (TABLE_CENTER_ALIGN.test(alignCapture)) {\n return 'center'\n } else if (TABLE_LEFT_ALIGN.test(alignCapture)) {\n return 'left'\n }\n\n return null\n}\n\nfunction parseTableRow(\n source: string,\n parse: MarkdownToJSX.NestedParser,\n state: MarkdownToJSX.State\n) {\n const prevInTable = state._inTable\n state._inTable = true\n const tableRow = parse(source.trim(), state)\n state._inTable = prevInTable\n\n let cells = [[]]\n tableRow.forEach(function (node, i) {\n if (node.type === 'tableSeparator') {\n // Filter out empty table separators at the start/end:\n if (i !== 0 && i !== tableRow.length - 1) {\n // Split the current row:\n cells.push([])\n }\n } else {\n if (\n node.type === 'text' &&\n (tableRow[i + 1] == null || tableRow[i + 1].type === 'tableSeparator')\n ) {\n node._content = node._content.replace(TABLE_CELL_END_TRIM, '')\n }\n cells[cells.length - 1].push(node)\n }\n })\n return cells\n}\n\nfunction parseTableAlign(source: string /*, parse, state*/) {\n const alignText = source.replace(TABLE_TRIM_PIPES, '').split('|')\n\n return alignText.map(parseTableAlignCapture)\n}\n\nfunction parseTableCells(\n source: string,\n parse: MarkdownToJSX.NestedParser,\n state: MarkdownToJSX.State\n) {\n const rowsText = source.trim().split('\\n')\n\n return rowsText.map(function (rowText) {\n return parseTableRow(rowText, parse, state)\n })\n}\n\nfunction parseTable(\n capture: RegExpMatchArray,\n parse: MarkdownToJSX.NestedParser,\n state: MarkdownToJSX.State\n) {\n state._inline = true\n const header = parseTableRow(capture[1], parse, state)\n const align = parseTableAlign(capture[2])\n const cells = parseTableCells(capture[3], parse, state)\n state._inline = false\n\n return {\n _align: align,\n _cells: cells,\n _header: header,\n type: 'table',\n }\n}\n\nfunction getTableStyle(node, colIndex) {\n return node._align[colIndex] == null\n ? {}\n : {\n textAlign: node._align[colIndex],\n }\n}\n\n/** TODO: remove for react 16 */\nfunction normalizeAttributeKey(key) {\n const hyphenIndex = key.indexOf('-')\n\n if (hyphenIndex !== -1 && key.match(HTML_CUSTOM_ATTR_R) === null) {\n key = key.replace(CAPTURE_LETTER_AFTER_HYPHEN, function (_, letter) {\n return letter.toUpperCase()\n })\n }\n\n return key\n}\n\nfunction attributeValueToJSXPropValue(\n key: keyof React.AllHTMLAttributes,\n value: string\n): any {\n if (key === 'style') {\n return value.split(/;\\s?/).reduce(function (styles, kvPair) {\n const key = kvPair.slice(0, kvPair.indexOf(':'))\n\n // snake-case to camelCase\n // also handles PascalCasing vendor prefixes\n const camelCasedKey = key.replace(/(-[a-z])/g, substr =>\n substr[1].toUpperCase()\n )\n\n // key.length + 1 to skip over the colon\n styles[camelCasedKey] = kvPair.slice(key.length + 1).trim()\n\n return styles\n }, {})\n } else if (key === 'href') {\n return sanitizeUrl(value)\n } else if (value.match(INTERPOLATION_R)) {\n // return as a string and let the consumer decide what to do with it\n value = value.slice(1, value.length - 1)\n }\n\n if (value === 'true') {\n return true\n } else if (value === 'false') {\n return false\n }\n\n return value\n}\n\nfunction normalizeWhitespace(source: string): string {\n return source\n .replace(CR_NEWLINE_R, '\\n')\n .replace(FORMFEED_R, '')\n .replace(TAB_R, ' ')\n}\n\n/**\n * Creates a parser for a given set of rules, with the precedence\n * specified as a list of rules.\n *\n * @rules: an object containing\n * rule type -> {match, order, parse} objects\n * (lower order is higher precedence)\n * (Note: `order` is added to defaultRules after creation so that\n * the `order` of defaultRules in the source matches the `order`\n * of defaultRules in terms of `order` fields.)\n *\n * @returns The resulting parse function, with the following parameters:\n * @source: the input source string to be parsed\n * @state: an optional object to be threaded through parse\n * calls. Allows clients to add stateful operations to\n * parsing, such as keeping track of how many levels deep\n * some nesting is. For an example use-case, see passage-ref\n * parsing in src/widgets/passage/passage-markdown.jsx\n */\nfunction parserFor(\n rules: MarkdownToJSX.Rules\n): (\n source: string,\n state: MarkdownToJSX.State\n) => ReturnType {\n // Sorts rules in order of increasing order, then\n // ascending rule name in case of ties.\n let ruleList = Object.keys(rules)\n\n /* istanbul ignore next */\n if (process.env.NODE_ENV !== 'production') {\n ruleList.forEach(function (type) {\n let order = rules[type]._order\n if (\n process.env.NODE_ENV !== 'production' &&\n (typeof order !== 'number' || !isFinite(order))\n ) {\n console.warn(\n 'markdown-to-jsx: Invalid order for rule `' + type + '`: ' + order\n )\n }\n })\n }\n\n ruleList.sort(function (typeA, typeB) {\n let orderA = rules[typeA]._order\n let orderB = rules[typeB]._order\n\n // First sort based on increasing order\n if (orderA !== orderB) {\n return orderA - orderB\n\n // Then based on increasing unicode lexicographic ordering\n } else if (typeA < typeB) {\n return -1\n }\n\n return 1\n })\n\n function nestedParse(\n source: string,\n state: MarkdownToJSX.State\n ): MarkdownToJSX.ParserResult[] {\n let result = []\n\n // We store the previous capture so that match functions can\n // use some limited amount of lookbehind. Lists use this to\n // ensure they don't match arbitrary '- ' or '* ' in inline\n // text (see the list rule for more information).\n let prevCapture = ''\n while (source) {\n let i = 0\n while (i < ruleList.length) {\n const ruleType = ruleList[i]\n const rule = rules[ruleType]\n const capture = rule._match(source, state, prevCapture)\n\n if (capture) {\n const currCaptureString = capture[0]\n source = source.substring(currCaptureString.length)\n const parsed = rule._parse(capture, nestedParse, state)\n\n // We also let rules override the default type of\n // their parsed node if they would like to, so that\n // there can be a single output function for all links,\n // even if there are several rules to parse them.\n if (parsed.type == null) {\n parsed.type = ruleType\n }\n\n result.push(parsed)\n\n prevCapture = currCaptureString\n break\n }\n\n i++\n }\n }\n\n return result\n }\n\n return function outerParse(source, state) {\n return nestedParse(normalizeWhitespace(source), state)\n }\n}\n\n// Creates a match function for an inline scoped or simple element from a regex\nfunction inlineRegex(regex: RegExp) {\n return function match(source, state: MarkdownToJSX.State) {\n if (state._inline) {\n return regex.exec(source)\n } else {\n return null\n }\n }\n}\n\n// basically any inline element except links\nfunction simpleInlineRegex(regex: RegExp) {\n return function match(source: string, state: MarkdownToJSX.State) {\n if (state._inline || state._simple) {\n return regex.exec(source)\n } else {\n return null\n }\n }\n}\n\n// Creates a match function for a block scoped element from a regex\nfunction blockRegex(regex: RegExp) {\n return function match(source: string, state: MarkdownToJSX.State) {\n if (state._inline || state._simple) {\n return null\n } else {\n return regex.exec(source)\n }\n }\n}\n\n// Creates a match function from a regex, ignoring block/inline scope\nfunction anyScopeRegex(regex: RegExp) {\n return function match(source: string /*, state*/) {\n return regex.exec(source)\n }\n}\n\nfunction matchParagraph(\n source: string,\n state: MarkdownToJSX.State,\n prevCapturedString?: string\n) {\n if (state._inline || state._simple) {\n return null\n }\n\n if (prevCapturedString && !prevCapturedString.endsWith('\\n')) {\n // don't match continuation of a line\n return null\n }\n\n let match = ''\n\n source.split('\\n').every(line => {\n // bail out on first sign of non-paragraph block\n if (NON_PARAGRAPH_BLOCK_SYNTAXES.some(regex => regex.test(line))) {\n return false\n }\n match += line + '\\n'\n return line.trim()\n })\n\n const captured = match.trimEnd()\n if (captured == '') {\n return null\n }\n\n return [match, captured]\n}\n\nfunction reactFor(outputFunc) {\n return function nestedReactOutput(\n ast: MarkdownToJSX.ParserResult | MarkdownToJSX.ParserResult[],\n state: MarkdownToJSX.State = {}\n ): React.ReactChild[] {\n if (Array.isArray(ast)) {\n const oldKey = state._key\n const result = []\n\n // map nestedOutput over the ast, except group any text\n // nodes together into a single string output.\n let lastWasString = false\n\n for (let i = 0; i < ast.length; i++) {\n state._key = i\n\n const nodeOut = nestedReactOutput(ast[i], state)\n const isString = typeof nodeOut === 'string'\n\n if (isString && lastWasString) {\n result[result.length - 1] += nodeOut\n } else if (nodeOut !== null) {\n result.push(nodeOut)\n }\n\n lastWasString = isString\n }\n\n state._key = oldKey\n\n return result\n }\n\n return outputFunc(ast, nestedReactOutput, state)\n }\n}\n\nfunction sanitizeUrl(url: string): string | undefined {\n try {\n const decoded = decodeURIComponent(url).replace(/[^A-Za-z0-9/:]/g, '')\n\n if (decoded.match(/^\\s*(javascript|vbscript|data(?!:image)):/i)) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(\n 'Anchor URL contains an unsafe JavaScript/VBScript/data expression, it will not be rendered.',\n decoded\n )\n }\n\n return undefined\n }\n } catch (e) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(\n 'Anchor URL could not be decoded due to malformed syntax or characters, it will not be rendered.',\n url\n )\n }\n\n // decodeURIComponent sometimes throws a URIError\n // See `decodeURIComponent('a%AFc');`\n // http://stackoverflow.com/questions/9064536/javascript-decodeuricomponent-malformed-uri-exception\n return null\n }\n\n return url\n}\n\nfunction unescapeUrl(rawUrlString: string): string {\n return rawUrlString.replace(UNESCAPE_URL_R, '$1')\n}\n\n/**\n * Everything inline, including links.\n */\nfunction parseInline(\n parse: MarkdownToJSX.NestedParser,\n content: string,\n state: MarkdownToJSX.State\n): MarkdownToJSX.ParserResult {\n const isCurrentlyInline = state._inline || false\n const isCurrentlySimple = state._simple || false\n state._inline = true\n state._simple = true\n const result = parse(content, state)\n state._inline = isCurrentlyInline\n state._simple = isCurrentlySimple\n return result\n}\n\n/**\n * Anything inline that isn't a link.\n */\nfunction parseSimpleInline(\n parse: MarkdownToJSX.NestedParser,\n content: string,\n state: MarkdownToJSX.State\n): MarkdownToJSX.ParserResult {\n const isCurrentlyInline = state._inline || false\n const isCurrentlySimple = state._simple || false\n state._inline = false\n state._simple = true\n const result = parse(content, state)\n state._inline = isCurrentlyInline\n state._simple = isCurrentlySimple\n return result\n}\n\nfunction parseBlock(\n parse,\n content,\n state: MarkdownToJSX.State\n): MarkdownToJSX.ParserResult {\n state._inline = false\n return parse(content, state)\n}\n\nconst parseCaptureInline: MarkdownToJSX.Parser<\n ReturnType\n> = (capture, parse, state: MarkdownToJSX.State) => {\n return {\n _content: parseInline(parse, capture[1], state),\n }\n}\n\nfunction captureNothing() {\n return {}\n}\n\nfunction renderNothing() {\n return null\n}\n\nfunction ruleOutput(rules: MarkdownToJSX.Rules) {\n return function nestedRuleOutput(\n ast: MarkdownToJSX.ParserResult,\n outputFunc: MarkdownToJSX.RuleOutput,\n state: MarkdownToJSX.State\n ): React.ReactChild {\n return rules[ast.type]._react(ast, outputFunc, state)\n }\n}\n\nfunction cx(...args) {\n return args.filter(Boolean).join(' ')\n}\n\nfunction get(src: Object, path: string, fb?: any) {\n let ptr = src\n const frags = path.split('.')\n\n while (frags.length) {\n ptr = ptr[frags[0]]\n\n if (ptr === undefined) break\n else frags.shift()\n }\n\n return ptr || fb\n}\n\nfunction getTag(tag: string, overrides: MarkdownToJSX.Overrides) {\n const override = get(overrides, tag)\n\n if (!override) return tag\n\n return typeof override === 'function' ||\n (typeof override === 'object' && 'render' in override)\n ? override\n : get(overrides, `${tag}.component`, tag)\n}\n\nenum Priority {\n /**\n * anything that must scan the tree before everything else\n */\n MAX,\n /**\n * scans for block-level constructs\n */\n HIGH,\n /**\n * inline w/ more priority than other inline\n */\n MED,\n /**\n * inline elements\n */\n LOW,\n /**\n * bare text and stuff that is considered leftovers\n */\n MIN,\n}\n\nexport function compiler(\n markdown: string,\n options: MarkdownToJSX.Options = {}\n) {\n options.overrides = options.overrides || {}\n options.slugify = options.slugify || slugify\n options.namedCodesToUnicode = options.namedCodesToUnicode\n ? { ...namedCodesToUnicode, ...options.namedCodesToUnicode }\n : namedCodesToUnicode\n\n const createElementFn = options.createElement || React.createElement\n\n // JSX custom pragma\n // eslint-disable-next-line no-unused-vars\n function h(\n // locally we always will render a known string tag\n tag: MarkdownToJSX.HTMLTags,\n props: Parameters[1] & {\n className?: string\n id?: string\n },\n ...children\n ) {\n const overrideProps = get(options.overrides, `${tag}.props`, {})\n\n return createElementFn(\n getTag(tag, options.overrides),\n {\n ...props,\n ...overrideProps,\n className: cx(props?.className, overrideProps.className) || undefined,\n },\n ...children\n )\n }\n\n function compile(input: string): JSX.Element {\n let _inline = false\n\n if (options.forceInline) {\n _inline = true\n } else if (!options.forceBlock) {\n /**\n * should not contain any block-level markdown like newlines, lists, headings,\n * thematic breaks, blockquotes, tables, etc\n */\n _inline = SHOULD_RENDER_AS_BLOCK_R.test(input) === false\n }\n\n const arr = emitter(\n parser(\n _inline\n ? input\n : `${input.trimEnd().replace(TRIM_STARTING_NEWLINES, '')}\\n\\n`,\n {\n _inline,\n }\n )\n )\n\n while (\n typeof arr[arr.length - 1] === 'string' &&\n !arr[arr.length - 1].trim()\n ) {\n arr.pop()\n }\n\n if (options.wrapper === null) {\n return arr\n }\n\n const wrapper = options.wrapper || (_inline ? 'span' : 'div')\n let jsx\n\n if (arr.length > 1 || options.forceWrapper) {\n jsx = arr\n } else if (arr.length === 1) {\n jsx = arr[0]\n\n // TODO: remove this for React 16\n if (typeof jsx === 'string') {\n return {jsx}\n } else {\n return jsx\n }\n } else {\n // TODO: return null for React 16\n jsx = null\n }\n\n return React.createElement(wrapper, { key: 'outer' }, jsx)\n }\n\n function attrStringToMap(str: string): JSX.IntrinsicAttributes {\n const attributes = str.match(ATTR_EXTRACTOR_R)\n if (!attributes) {\n return null\n }\n\n return attributes.reduce(function (map, raw, index) {\n const delimiterIdx = raw.indexOf('=')\n\n if (delimiterIdx !== -1) {\n const key = normalizeAttributeKey(raw.slice(0, delimiterIdx)).trim()\n const value = unquote(raw.slice(delimiterIdx + 1).trim())\n\n const mappedKey = ATTRIBUTE_TO_JSX_PROP_MAP[key] || key\n const normalizedValue = (map[mappedKey] = attributeValueToJSXPropValue(\n key,\n value\n ))\n\n if (\n typeof normalizedValue === 'string' &&\n (HTML_BLOCK_ELEMENT_R.test(normalizedValue) ||\n HTML_SELF_CLOSING_ELEMENT_R.test(normalizedValue))\n ) {\n map[mappedKey] = React.cloneElement(compile(normalizedValue.trim()), {\n key: index,\n })\n }\n } else if (raw !== 'style') {\n map[ATTRIBUTE_TO_JSX_PROP_MAP[raw] || raw] = true\n }\n\n return map\n }, {})\n }\n\n /* istanbul ignore next */\n if (process.env.NODE_ENV !== 'production') {\n if (typeof markdown !== 'string') {\n throw new Error(`markdown-to-jsx: the first argument must be\n a string`)\n }\n\n if (\n Object.prototype.toString.call(options.overrides) !== '[object Object]'\n ) {\n throw new Error(`markdown-to-jsx: options.overrides (second argument property) must be\n undefined or an object literal with shape:\n {\n htmltagname: {\n component: string|ReactComponent(optional),\n props: object(optional)\n }\n }`)\n }\n }\n\n const footnotes: { _footnote: string; _identifier: string }[] = []\n const refs: { [key: string]: { _target: string; _title: string } } = {}\n\n /**\n * each rule's react() output function goes through our custom h() JSX pragma;\n * this allows the override functionality to be automatically applied\n */\n const rules: MarkdownToJSX.Rules = {\n blockQuote: {\n _match: blockRegex(BLOCKQUOTE_R),\n _order: Priority.HIGH,\n _parse(capture, parse, state) {\n return {\n _content: parse(\n capture[0].replace(BLOCKQUOTE_TRIM_LEFT_MULTILINE_R, ''),\n state\n ),\n }\n },\n _react(node, output, state) {\n return (\n
    \n {output(node._content, state)}\n
    \n )\n },\n } as MarkdownToJSX.Rule<{ _content: MarkdownToJSX.ParserResult }>,\n\n breakLine: {\n _match: anyScopeRegex(BREAK_LINE_R),\n _order: Priority.HIGH,\n _parse: captureNothing,\n _react(_, __, state) {\n return
    \n },\n },\n\n breakThematic: {\n _match: blockRegex(BREAK_THEMATIC_R),\n _order: Priority.HIGH,\n _parse: captureNothing,\n _react(_, __, state) {\n return
    \n },\n },\n\n codeBlock: {\n _match: blockRegex(CODE_BLOCK_R),\n _order: Priority.MAX,\n _parse(capture /*, parse, state*/) {\n return {\n _content: capture[0].replace(/^ {4}/gm, '').replace(/\\n+$/, ''),\n _lang: undefined,\n }\n },\n\n _react(node, output, state) {\n return (\n
    \n            \n              {node._content}\n            \n          
    \n )\n },\n } as MarkdownToJSX.Rule<{\n _attrs?: ReturnType\n _content: string\n _lang?: string\n }>,\n\n codeFenced: {\n _match: blockRegex(CODE_BLOCK_FENCED_R),\n _order: Priority.MAX,\n _parse(capture /*, parse, state*/) {\n return {\n // if capture[3] it's additional metadata\n _attrs: attrStringToMap(capture[3] || ''),\n _content: capture[4],\n _lang: capture[2] || undefined,\n type: 'codeBlock',\n }\n },\n },\n\n codeInline: {\n _match: simpleInlineRegex(CODE_INLINE_R),\n _order: Priority.LOW,\n _parse(capture /*, parse, state*/) {\n return {\n _content: capture[2],\n }\n },\n _react(node, output, state) {\n return {node._content}\n },\n } as MarkdownToJSX.Rule<{ _content: string }>,\n\n /**\n * footnotes are emitted at the end of compilation in a special