{"version":3,"file":"vw-oneform-feature-app.umd.js","mappings":"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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,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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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,UACD,CAAC,UACD,CAAC,OACD,CAAC,QACD,CAAC,QAC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GAAmB,GACnBF,EAAc,MACdlP,EAAS,IACTiU,GAAiB,GAIrB,GAEAxhB,IAAAA,cAAC2F,GAAAA,EAAK,QAMlB,CCpUO,I,0CAAMo0E,GAAY,CACvB,CACEvK,YAAa,WACbC,QAAS,CACP,CACErhE,MAAO,aAIb,CACEohE,YAAa,cACbC,QAAS,CACP,CACEC,WAAY,SAIlB,CACEF,YAAa,mBACbC,QAAS,CACP,CACErhE,MAAO,aAIb,CACEohE,YAAa,qBACbC,QAAS,CACP,CACErhE,MAAO,aAIb,CACEmhE,YAAa,6BACbC,YAAa,SACbC,QAAS,CACP,CACEC,WAAY,SAIlB,CACEH,YAAa,6BACbC,YAAa,mBACbC,QAAS,CACP,CACErhE,MAAO,aAIb,CACEmhE,YAAa,YACbE,QAAS,CACP,CACErhE,MAAO,aAIb,CACEmhE,YAAa,oBACbC,YAAa,SACbC,QAAS,CACP,CACErhE,MAAO,WAET,CACEshE,WAAY,cAEd,CACEf,OAAQ,MAId,CACEY,YAAa,MACbC,YAAa,WACbC,QAAS,CACP,CACErhE,MAAO,aAIb,CACEmhE,YAAa,MACbC,YAAa,cACbC,QAAS,CACP,CACEC,WAAY,SAIlB,CACEH,YAAa,MACbC,YAAa,mBACbC,QAAS,CACP,CACErhE,MAAO,aAIb,CACEmhE,YAAa,eACbE,QAAS,CACP,CACEC,WAAY,SAIlB,CACEH,YAAa,WACbC,YAAa,WACbC,QAAS,CACP,CACErhE,MAAO,aAIb,CACEmhE,YAAa,WACbC,YAAa,gBACbC,QAAS,CACP,CACErhE,MAAO,aAIb,CACEmhE,YAAa,WACbC,YAAa,SACbC,QAAS,CACP,CACEC,WAAY,QAIlB,CACEH,YAAa,WACbC,YAAa,mBACbC,QAAS,CACP,CACErhE,MAAO,aAIb,CACEmhE,YAAa,WACbC,YAAa,qBACbC,QAAS,CACP,CACEC,WAAY,SAIlB,CACEH,YAAa,OACbC,YAAa,WACbC,QAAS,CACP,CACErhE,MAAO,aAIb,CACEmhE,YAAa,OACbC,YAAa,SACbC,QAAS,CACP,CACEC,WAAY,QAIlB,CACEH,YAAa,OACbC,YAAa,cACbC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c,QAAS,GACtB,CAAEjc,KAAM,IAAKic,QAAS,IACtB,CAAEjc,KAAM,IAAKic,QAAS,MACvBrM,EAAAA,EAAAA,GAAAvO,EACAsQ,EAAAA,GAAY0K,MAAQ,CACnB,CAAErc,KAAM,IAAKic,QAAS,GACtB,CAAEjc,KAAM,IAAKic,QAAS,IACtB,CAAEjc,KAAM,IAAKic,QAAS,KACvB5a,GAEHsoD,OAAQC,EAAAA,EAAaj+C,WAEpBqqB,EAGP,C,4FCvDM,SAAUinE,IACd,IAAQG,GAAsBj1F,EAAAA,EAAAA,KAAY,SAACC,GAAmB,OAAKA,EAAM2F,QAAQ,IAAzEqvF,kBACR,OAAA/oF,EAAAA,EAAAA,GAAA,GAAY+oF,EACd,C,mKCPaC,EAAmB,CAC9B,CACEr9F,KAAM,KACNwP,MAAO,UAET,CACExP,KAAM,aACNwP,MAAO,6IAET,CACExP,KAAM,KACNwP,MAAO,sBAET,CACExP,KAAM,YACNwP,MAAO,QAET,CACExP,KAAM,iBACNwP,MAAO,QAET,CACExP,KAAM,OACNwP,MAAO,mCAET,CACExP,KAAM,WACNwP,MAAO,QAET,CACExP,KAAM,YACNwP,MAAO,QAET,CACExP,KAAM,aACNwP,MAAO,QAET,CACExP,KAAM,aACNwP,MAAO,QAET,CACExP,KAAM,SACNwP,MAAO,QAET,CACExP,KAAM,OACNwP,MAAO,QAET,CACExP,KAAM,eACNwP,MAAO,QAET,CACExP,KAAM,WACNwP,MAAO,QAET,CACExP,KAAM,gBACNwP,MAAO,QAET,CACExP,KAAM,cACNwP,MAAO,QAET,CACExP,KAAM,eACNwP,MAAO,QAET,CACExP,KAAM,oBACNwP,MAAO,QAET,CACExP,KAAM,iBACNwP,MAAO,QAET,CACExP,KAAM,kBACNwP,MAAO,QAET,CACExP,KAAM,mBACNwP,MAAO,QAET,CACExP,KAAM,yBACNwP,MAAO,QAET,CACExP,KAAM,iBACNwP,MAAO,QAET,CACExP,KAAM,iBACNwP,MAAO,QAET,CACExP,KAAM,eACNwP,MAAO,QAET,CACExP,KAAM,gBACNwP,MAAO,QAET,CACExP,KAAM,qBACNwP,MAAO,QAET,CACExP,KAAM,kBACNwP,MAAO,QAET,CACExP,KAAM,mBACNwP,MAAO,QAET,CACExP,KAAM,oBACNwP,MAAO,QAET,CACExP,KAAM,0BACNwP,MAAO,QAET,CACExP,KAAM,kBACNwP,MAAO,QAET,CACExP,KAAM,QACNwP,MAAO,QAET,CACExP,KAAM,MACNwP,MAAO,QAET,CACExP,KAAM,gBACNwP,MAAO,QAET,CACExP,KAAM,UACNwP,MAAO,QAET,CACExP,KAAM,WACNwP,MAAO,QAET,CACExP,KAAM,MACNwP,MAAO,QAET,CACExP,KAAM,WACNwP,MAAO,QAET,CACExP,KAAM,gBACNwP,MAAO,QAET,CACExP,KAAM,oBACNwP,MAAO,QAET,CACExP,KAAM,YACNwP,MAAO,QAET,CACExP,KAAM,eACNwP,MAAO,QAET,CACExP,KAAM,cACNwP,MAAO,QAET,CACExP,KAAM,SACNwP,MAAO,QAET,CACExP,KAAM,OACNwP,MAAO,QAET,CACExP,KAAM,UACNwP,MAAO,QAET,CACExP,KAAM,cACNwP,MAAO,QAET,CACExP,KAAM,cACNwP,MAAO,QAET,CACExP,KAAM,mBACNwP,MAAO,QAET,CACExP,KAAM,mBACNwP,MAAO,QAET,CACExP,KAAM,iBACNwP,MAAO,QAET,CACExP,KAAM,mBACNwP,MAAO,QAET,CACExP,KAAM,iBACNwP,MAAO,QAET,CACExP,KAAM,qBACNwP,MAAO,QAET,CACExP,KAAM,YACNwP,MAAO,QAET,CACExP,KAAM,kBACNwP,MAAO,QAET,CACExP,KAAM,kBACNwP,MAAO,QAET,CACExP,KAAM,sBACNwP,MAAO,QAET,CACExP,KAAM,oBACNwP,MAAO,QAET,CACExP,KAAM,qBACNwP,MAAO,QAET,CACExP,KAAM,0BACNwP,MAAO,QAET,CACExP,KAAM,uBACNwP,MAAO,QAET,CACExP,KAAM,wBACNwP,MAAO,QAET,CACExP,KAAM,yBACNwP,MAAO,QAET,CACExP,KAAM,+BACNwP,MAAO,QAET,CACExP,KAAM,uBACNwP,MAAO,QAET,CACExP,KAAM,oBACNwP,MAAO,QAET,CACExP,KAAM,cACNwP,MAAO,QAET,CACExP,KAAM,cACNwP,MAAO,QAET,CACExP,KAAM,mBACNwP,MAAO,QAET,CACExP,KAAM,2BACNwP,MAAO,QAET,CACExP,KAAM,0BACNwP,MAAO,QAET,CACExP,KAAM,yBACNwP,MAAO,QAET,CACExP,KAAM,2BACNwP,MAAO,QAET,CACExP,KAAM,yBACNwP,MAAO,QAET,CACExP,KAAM,SACNwP,MAAO,QAET,CACExP,KAAM,kBACNwP,MAAO,QAET,CACExP,KAAM,gBACNwP,MAAO,QAET,CACExP,KAAM,UACNwP,MAAO,QAET,CACExP,KAAM,qBACNwP,MAAO,QAET,CACExP,KAAM,YACNwP,MAAO,QAET,CACExP,KAAM,UACNwP,MAAO,QAET,CACExP,KAAM,uBACNwP,MAAO,QAET,CACExP,KAAM,iBACNwP,MAAO,QAET,CACExP,KAAM,uBACNwP,MAAO,QAET,CACExP,KAAM,uBACNwP,MAAO,QAET,CACExP,KAAM,qBACNwP,MAAO,QAET,CACExP,KAAM,SACNwP,MAAO,QAET,CACExP,KAAM,WACNwP,MAAO,QAET,CACExP,KAAM,uBACNwP,MAAO,QAET,CACExP,KAAM,gBACNwP,MAAO,QAET,CACExP,KAAM,uBACNwP,MAAO,SAET,CACExP,KAAM,gBACNwP,MAAO,QAET,CACExP,KAAM,uBACNwP,MAAO,QAET,CACExP,KAAM,SACNwP,MAAO,QAET,CACExP,KAAM,UACNwP,MAAO,QAET,CACExP,KAAM,sBACNwP,MAAO,QAET,CACExP,KAAM,kBACNwP,MAAO,QAET,CACExP,KAAM,eACNwP,MAAO,QAET,CACExP,KAAM,cACNwP,MAAO,QAET,CACExP,KAAM,iBACNwP,MAAO,QAET,CACExP,KAAM,eACNwP,MAAO,QAET,CACExP,KAAM,kBACNwP,MAAO,UAET,CACExP,KAAM,iBACNwP,MAAO,QAET,CACExP,KAAM,qBACNwP,MAAO,SAET,CACExP,KAAM,kBACNwP,MAAO,UAET,CACExP,KAAM,8BACNwP,MAAO,QAET,CACExP,KAAM,mBACNwP,MAAO,QAET,CACExP,KAAM,kBACNwP,MAAO,kBAET,CACExP,KAAM,oBACNwP,MAAO,MAET,CACExP,KAAM,kBACNwP,MAAO,QAET,CACExP,KAAM,uBACNwP,MAAO,QAET,CACExP,KAAM,yBACNwP,MAAO,SAET,CACExP,KAAM,2BACNwP,MAAO,QAET,CACExP,KAAM,2BACNwP,MAAO,QAET,CACExP,KAAM,6BACNwP,MAAO,QAET,CACExP,KAAM,sBACNwP,MAAO,QAET,CACExP,KAAM,qBACNwP,MAAO,QAET,CACExP,KAAM,oBACNwP,MAAO,QAET,CACExP,KAAM,oBACNwP,MAAO,QAET,CACExP,KAAM,sBACNwP,MAAO,QAET,CACExP,KAAM,qBACNwP,MAAO,QAET,CACExP,KAAM,oBACNwP,MAAO,QAET,CACExP,KAAM,oBACNwP,MAAO,QAET,CACExP,KAAM,0BACNwP,MAAO,QAET,CACExP,KAAM,yBACNwP,MAAO,QAET,CACExP,KAAM,wBACNwP,MAAO,QAET,CACExP,KAAM,wBACNwP,MAAO,QAET,CACExP,KAAM,0BACNwP,MAAO,QAET,CACExP,KAAM,yBACNwP,MAAO,QAET,CACExP,KAAM,wBACNwP,MAAO,QAET,CACExP,KAAM,wBACNwP,MAAO,QAET,CACExP,KAAM,+BACNwP,MAAO,QAET,CACExP,KAAM,8BACNwP,MAAO,QAET,CACExP,KAAM,8BACNwP,MAAO,QAET,CACExP,KAAM,2BACNwP,MAAO,QAET,CACExP,KAAM,qBACNwP,MAAO,QAET,CACExP,KAAM,oBACNwP,MAAO,QAET,CACExP,KAAM,oBACNwP,MAAO,QAET,CACExP,KAAM,iBACNwP,MAAO,QAET,CACExP,KAAM,qBACNwP,MAAO,QAET,CACExP,KAAM,oBACNwP,MAAO,QAET,CACExP,KAAM,oBACNwP,MAAO,QAET,CACExP,KAAM,iBACNwP,MAAO,QAET,CACExP,KAAM,yBACNwP,MAAO,QAET,CACExP,KAAM,2BACNwP,MAAO,QAET,CACExP,KAAM,wBACNwP,MAAO,QAET,CACExP,KAAM,qBACNwP,MAAO,QAET,CACExP,KAAM,yBACNwP,MAAO,QAET,CACExP,KAAM,2BACNwP,MAAO,QAET,CACExP,KAAM,wBACNwP,MAAO,QAET,CACExP,KAAM,qBACNwP,MAAO,QAET,CACExP,KAAM,oCACNwP,MAAO,QAET,CACExP,KAAM,mCACNwP,MAAO,QAET,CACExP,KAAM,mCACNwP,MAAO,QAET,CACExP,KAAM,gCACNwP,MAAO,QAET,CACExP,KAAM,6BACNwP,MAAO,QAET,CACExP,KAAM,4BACNwP,MAAO,QAET,CACExP,KAAM,4BACNwP,MAAO,QAET,CACExP,KAAM,yBACNwP,MAAO,QAET,CACExP,KAAM,6BACNwP,MAAO,QAET,CACExP,KAAM,4BACNwP,MAAO,QAET,CACExP,KAAM,4BACNwP,MAAO,QAET,CACExP,KAAM,yBACNwP,MAAO,QAET,CACExP,KAAM,6BACNwP,MAAO,QAET,CACExP,KAAM,4BACNwP,MAAO,QAET,CACExP,KAAM,4BACNwP,MAAO,QAET,CACExP,KAAM,yBACNwP,MAAO,QAET,CACExP,KAAM,4BACNwP,MAAO,QAET,CACExP,KAAM,2BACNwP,MAAO,QAET,CACExP,KAAM,2BACNwP,MAAO,QAET,CACExP,KAAM,wBACNwP,MAAO,QAET,CACExP,KAAM,6BACNwP,MAAO,QAET,CACExP,KAAM,4BACNwP,MAAO,QAET,CACExP,KAAM,4BACNwP,MAAO,QAET,CACExP,KAAM,yBACNwP,MAAO,QAET,CACExP,KAAM,0BACNwP,MAAO,QAET,CACExP,KAAM,yBACNwP,MAAO,QAET,CACExP,KAAM,yBACNwP,MAAO,QAET,CACExP,KAAM,sBACNwP,MAAO,QAET,CACExP,KAAM,2BACNwP,MAAO,QAET,CACExP,KAAM,6BACNwP,MAAO,QAET,CACExP,KAAM,0BACNwP,MAAO,QAET,CACExP,KAAM,uBACNwP,MAAO,QAET,CACExP,KAAM,mCACNwP,MAAO,QAET,CACExP,KAAM,kCACNwP,MAAO,QAET,CACExP,KAAM,kCACNwP,MAAO,QAET,CACExP,KAAM,+BACNwP,MAAO,QAET,CACExP,KAAM,sBACNwP,MAAO,QAET,CACExP,KAAM,uBACNwP,MAAO,QAET,CACExP,KAAM,sBACNwP,MAAO,QAET,CACExP,KAAM,mBACNwP,MAAO,QAET,CACExP,KAAM,wBACNwP,MAAO,QAET,CACExP,KAAM,uBACNwP,MAAO,QAET,CACExP,KAAM,uBACNwP,MAAO,QAET,CACExP,KAAM,oBACNwP,MAAO,QAET,CACExP,KAAM,uBACNwP,MAAO,QAET,CACExP,KAAM,sBACNwP,MAAO,QAET,CACExP,KAAM,sBACNwP,MAAO,QAET,CACExP,KAAM,mBACNwP,MAAO,QAET,CACExP,KAAM,wBACNwP,MAAO,QAET,CACExP,KAAM,uBACNwP,MAAO,QAET,CACExP,KAAM,uBACNwP,MAAO,QAET,CACExP,KAAM,oBACNwP,MAAO,QAET,CACExP,KAAM,iCACNwP,MAAO,QAET,CACExP,KAAM,gCACNwP,MAAO,QAET,CACExP,KAAM,gCACNwP,MAAO,QAET,CACExP,KAAM,6BACNwP,MAAO,QAET,CACExP,KAAM,sBACNwP,MAAO,QAET,CACExP,KAAM,qBACNwP,MAAO,QAET,CACExP,KAAM,qBACNwP,MAAO,QAET,CACExP,KAAM,kBACNwP,MAAO,QAET,CACExP,KAAM,uBACNwP,MAAO,QAET,CACExP,KAAM,sBACNwP,MAAO,QAET,CACExP,KAAM,sBACNwP,MAAO,QAET,CACExP,KAAM,mBACNwP,MAAO,QAET,CACExP,KAAM,sBACNwP,MAAO,QAET,CACExP,KAAM,qBACNwP,MAAO,QAET,CACExP,KAAM,qBACNwP,MAAO,QAET,CACExP,KAAM,kBACNwP,MAAO,QAET,CACExP,KAAM,uBACNwP,MAAO,QAET,CACExP,KAAM,sBACNwP,MAAO,QAET,CACExP,KAAM,sBACNwP,MAAO,QAET,CACExP,KAAM,mBACNwP,MAAO,QAET,CACExP,KAAM,kBACNwP,MAAO,MAET,CACExP,KAAM,mBACNwP,MAAO,QAET,CACExP,KAAM,mBACNwP,MAAO,QAET,CACExP,KAAM,oBACNwP,MAAO,QAET,CACExP,KAAM,yBACNwP,MAAO,QAET,CACExP,KAAM,wBACNwP,MAAO,QAET,CACExP,KAAM,wBACNwP,MAAO,QAET,CACExP,KAAM,qBACNwP,MAAO,QAET,CACExP,KAAM,yBACNwP,MAAO,QAET,CACExP,KAAM,wBACNwP,MAAO,QAET,CACExP,KAAM,wBACNwP,MAAO,QAET,CACExP,KAAM,qBACNwP,MAAO,QAET,CACExP,KAAM,uBACNwP,MAAO,QAET,CACExP,KAAM,SACNwP,MAAO,QAET,CACExP,KAAM,gCACNwP,MAAO,QAET,CACExP,KAAM,mBACNwP,MAAO,QAET,CACExP,KAAM,qBACNwP,MAAO,QAET,CACExP,KAAM,6BACNwP,MAAO,QAET,CACExP,KAAM,uBACNwP,MAAO,QAET,CACExP,KAAM,wBACNwP,MAAO,QAET,CACExP,KAAM,mCACNwP,MAAO,QAET,CACExP,KAAM,kCACNwP,MAAO,QAET,CACExP,KAAM,iCACNwP,MAAO,QAET,CACExP,KAAM,iCACNwP,MAAO,QAET,CACExP,KAAM,cACNwP,MAAO,QAET,CACExP,KAAM,eACNwP,MAAO,QAET,CACExP,KAAM,iBACNwP,MAAO,QAET,CACExP,KAAM,2CACNwP,MAAO,QAET,CACExP,KAAM,0CACNwP,MAAO,QAET,CACExP,KAAM,yCACNwP,MAAO,QAET,CACExP,KAAM,yCACNwP,MAAO,QAET,CACExP,KAAM,sCACNwP,MAAO,QAET,CACExP,KAAM,qCACNwP,MAAO,QAET,CACExP,KAAM,oCACNwP,MAAO,QAET,CACExP,KAAM,oCACNwP,MAAO,QAET,CACExP,KAAM,mBACNwP,MAAO,QAET,CACExP,KAAM,oBACNwP,MAAO,QAET,CACExP,KAAM,qBACNwP,MAAO,QAET,CACExP,KAAM,uBACNwP,MAAO,QAET,CACExP,KAAM,6BACNwP,MAAO,QAET,CACExP,KAAM,eACNwP,MAAO,QAET,CACExP,KAAM,sBACNwP,MAAO,QAET,CACExP,KAAM,uBACNwP,MAAO,QAET,CACExP,KAAM,yBACNwP,MAAO,QAET,CACExP,KAAM,mBACNwP,MAAO,QAET,CACExP,KAAM,sBACNwP,MAAO,QAET,CACExP,KAAM,4BACNwP,MAAO,QAET,CACExP,KAAM,gCACNwP,MAAO,QAET,CACExP,KAAM,kCACNwP,MAAO,QAET,CACExP,KAAM,yBACNwP,MAAO,QAET,CACExP,KAAM,4BACNwP,MAAO,QAET,CACExP,KAAM,iBACNwP,MAAO,QAET,CACExP,KAAM,gBACNwP,MAAO,QAET,CACExP,KAAM,iBACNwP,MAAO,QAET,CACExP,KAAM,oBACNwP,MAAO,QAET,CACExP,KAAM,oBACNwP,MAAO,QAET,CACExP,KAAM,+BACNwP,MAAO,QAET,CACExP,KAAM,iBACNwP,MAAO,QAET,CACExP,KAAM,yBACNwP,MAAO,QAET,CACExP,KAAM,qCACNwP,MAAO,QAET,CACExP,KAAM,oCACNwP,MAAO,QAET,CACExP,KAAM,mCACNwP,MAAO,QAET,CACExP,KAAM,mCACNwP,MAAO,QAET,CACExP,KAAM,0BACNwP,MAAO,QAET,CACExP,KAAM,wBACNwP,MAAO,QAET,CACExP,KAAM,4BACNwP,MAAO,QAET,CACExP,KAAM,uBACNwP,MAAO,QAET,CACExP,KAAM,kBACNwP,MAAO,QAET,CACExP,KAAM,6BACNwP,MAAO,QAET,CACExP,KAAM,2BACNwP,MAAO,QAET,CACExP,KAAM,mBACNwP,MAAO,QAET,CACExP,KAAM,kCACNwP,MAAO,QAET,CACExP,KAAM,2BACNwP,MAAO,QAET,CACExP,KAAM,8BACNwP,MAAO,QAET,CACExP,KAAM,uBACNwP,MAAO,QAET,CACExP,KAAM,2BACNwP,MAAO,QAET,CACExP,KAAM,sBACNwP,MAAO,QAET,CACExP,KAAM,eACNwP,MAAO,QAET,CACExP,KAAM,4BACNwP,MAAO,QAET,CACExP,KAAM,2BACNwP,MAAO,QAET,CACExP,KAAM,kCACNwP,MAAO,QAET,CACExP,KAAM,gCACNwP,MAAO,QAET,CACExP,KAAM,sBACNwP,MAAO,QAET,CACExP,KAAM,+BACNwP,MAAO,QAET,CACExP,KAAM,iCACNwP,MAAO,QAET,CACExP,KAAM,mBACNwP,MAAO,QAET,CACExP,KAAM,uBACNwP,MAAO,QAET,CACExP,KAAM,yBACNwP,MAAO,QAET,CACExP,KAAM,kBACNwP,MAAO,QAET,CACExP,KAAM,sCACNwP,MAAO,QAET,CACExP,KAAM,kBACNwP,MAAO,QAET,CACExP,KAAM,qBACNwP,MAAO,QAET,CACExP,KAAM,sCACNwP,MAAO,QAET,CACExP,KAAM,oBACNwP,MAAO,QAET,CACExP,KAAM,mCACNwP,MAAO,QAET,CACExP,KAAM,uBACNwP,MAAO,QAET,CACExP,KAAM,uBACNwP,MAAO,QAET,CACExP,KAAM,wCACNwP,MAAO,QAET,CACExP,KAAM,0BACNwP,MAAO,QAET,CACExP,KAAM,aACNwP,MAAO,QAET,CACExP,KAAM,0BACNwP,MAAO,QAET,CACExP,KAAM,2BACNwP,MAAO,QAET,CACExP,KAAM,wBACNwP,MAAO,QAET,CACExP,KAAM,uBACNwP,MAAO,QAET,CACExP,KAAM,oBACNwP,MAAO,QAET,CACExP,KAAM,mBACNwP,MAAO,QAET,CACExP,KAAM,8BACNwP,MAAO,QAET,CACExP,KAAM,2BACNwP,MAAO,QAET,CACExP,KAAM,sBACNwP,MAAO,QAET,CACExP,KAAM,mBACNwP,MAAO,QAET,CACExP,KAAM,qBACNwP,MAAO,QAET,CACExP,KAAM,qBACNwP,MAAO,QAET,CACExP,KAAM,+BACNwP,MAAO,QAET,CACExP,KAAM,wBACNwP,MAAO,QAET,CACExP,KAAM,uCACNwP,MAAO,QAET,CACExP,KAAM,aACNwP,MAAO,QAET,CACExP,KAAM,iBACNwP,MAAO,QAET,CACExP,KAAM,yCACNwP,MAAO,QAET,CACExP,KAAM,mCACNwP,MAAO,QAET,CACExP,KAAM,cACNwP,MAAO,QAET,CACExP,KAAM,yBACNwP,MAAO,QAET,CACExP,KAAM,gCACNwP,MAAO,QAET,CACExP,KAAM,qBACNwP,MAAO,QAET,CACExP,KAAM,uBACNwP,MAAO,QAET,CACExP,KAAM,wBACNwP,MAAO,QAET,CACExP,KAAM,sBACNwP,MAAO,QAET,CACExP,KAAM,sCACNwP,MAAO,QAET,CACExP,KAAM,mBACNwP,MAAO,QAET,CACExP,KAAM,mBACNwP,MAAO,QAET,CACExP,KAAM,mBACNwP,MAAO,QAET,CACExP,KAAM,gBACNwP,MAAO,QAET,CACExP,KAAM,6BACNwP,MAAO,QAET,CACExP,KAAM,uBACNwP,MAAO,QAET,CACExP,KAAM,mBACNwP,MAAO,QAET,CACExP,KAAM,qBACNwP,MAAO,QAET,CACExP,KAAM,uBACNwP,MAAO,QAET,CACExP,KAAM,yBACNwP,MAAO,QAET,CACExP,KAAM,qBACNwP,MAAO,QAET,CACExP,KAAM,uBACNwP,MAAO,QAET,CACExP,KAAM,2BACNwP,MAAO,QAET,CACExP,KAAM,0BACNwP,MAAO,QAET,CACExP,KAAM,4BACNwP,MAAO,QAET,CACExP,KAAM,mCACNwP,MAAO,QAET,CACExP,KAAM,sBACNwP,MAAO,QAET,CACExP,KAAM,0BACNwP,MAAO,QAET,CACExP,KAAM,oBACNwP,MAAO,QAET,CACExP,KAAM,kCACNwP,MAAO,QAET,CACExP,KAAM,2BACNwP,MAAO,QAET,CACExP,KAAM,yBACNwP,MAAO,QAET,CACExP,KAAM,eACNwP,MAAO,QAET,CACExP,KAAM,yBACNwP,MAAO,QAET,CACExP,KAAM,gCACNwP,MAAO,QAET,CACExP,KAAM,sBACNwP,MAAO,QAET,CACExP,KAAM,2BACNwP,MAAO,QAET,CACExP,KAAM,sBACNwP,MAAO,QAET,CACExP,KAAM,iBACNwP,MAAO,QAET,CACExP,KAAM,sBACNwP,MAAO,QAET,CACExP,KAAM,kBACNwP,MAAO,QAET,CACExP,KAAM,yBACNwP,MAAO,QAET,CACExP,KAAM,iBACNwP,MAAO,QAET,CACExP,KAAM,YACNwP,MAAO,QAET,CACExP,KAAM,gCACNwP,MAAO,QAET,CACExP,KAAM,oBACNwP,MAAO,QAET,CACExP,KAAM,oBACNwP,MAAO,QAET,CACExP,KAAM,oBACNwP,MAAO,QAET,CACExP,KAAM,0BACNwP,MAAO,QAET,CACExP,KAAM,2BACNwP,MAAO,QAET,CACExP,KAAM,0BACNwP,MAAO,QAET,CACExP,KAAM,0BACNwP,MAAO,QAET,CACExP,KAAM,yBACNwP,MAAO,QAET,CACExP,KAAM,0BACNwP,MAAO,QAET,CACExP,KAAM,yBACNwP,MAAO,QAET,CACExP,KAAM,yBACNwP,MAAO,QAET,CACExP,KAAM,gCACNwP,MAAO,QAET,CACExP,KAAM,iBACNwP,MAAO,QAET,CACExP,KAAM,kBACNwP,MAAO,QAET,CACExP,KAAM,iBACNwP,MAAO,QAET,CACExP,KAAM,kBACNwP,MAAO,QAET,CACExP,KAAM,kBACNwP,MAAO,QAET,CACExP,KAAM,6BACNwP,MAAO,QAET,CACExP,KAAM,2BACNwP,MAAO,QAET,CACExP,KAAM,4BACNwP,MAAO,QAET,CACExP,KAAM,sBACNwP,MAAO,QAET,CACExP,KAAM,+BACNwP,MAAO,QAET,CACExP,KAAM,sBACNwP,MAAO,QAET,CACExP,KAAM,yBACNwP,MAAO,QAET,CACExP,KAAM,8BACNwP,MAAO,QAET,CACExP,KAAM,8BACNwP,MAAO,QAET,CACExP,KAAM,oBACNwP,MAAO,QAET,CACExP,KAAM,wBACNwP,MAAO,QAET,CACExP,KAAM,8BACNwP,MAAO,QAET,CACExP,KAAM,8BACNwP,MAAO,QAET,CACExP,KAAM,8BACNwP,MAAO,QAET,CACExP,KAAM,8BACNwP,MAAO,QAET,CACExP,KAAM,mCACNwP,MAAO,QAET,CACExP,KAAM,mCACNwP,MAAO,QAET,CACExP,KAAM,mCACNwP,MAAO,QAET,CACExP,KAAM,mCACNwP,MAAO,QAET,CACExP,KAAM,8BACNwP,MAAO,QAET,CACExP,KAAM,8BACNwP,MAAO,QAET,CACExP,KAAM,8BACNwP,MAAO,QAET,CACExP,KAAM,8BACNwP,MAAO,QAET,CACExP,KAAM,8BACNwP,MAAO,QAET,CACExP,KAAM,8BACNwP,MAAO,QAET,CACExP,KAAM,8BACNwP,MAAO,QAET,CACExP,KAAM,8BACNwP,MAAO,QAET,CACExP,KAAM,wBACNwP,MAAO,QAET,CACExP,KAAM,gCACNwP,MAAO,QAET,CACExP,KAAM,gCACNwP,MAAO,QAET,CACExP,KAAM,gCACNwP,MAAO,QAET,CACExP,KAAM,gCACNwP,MAAO,QAET,CACExP,KAAM,qCACNwP,MAAO,QAET,CACExP,KAAM,qCACNwP,MAAO,QAET,CACExP,KAAM,qCACNwP,MAAO,QAET,CACExP,KAAM,qCACNwP,MAAO,QAET,CACExP,KAAM,gCACNwP,MAAO,QAET,CACExP,KAAM,gCACNwP,MAAO,QAET,CACExP,KAAM,gCACNwP,MAAO,QAET,CACExP,KAAM,gCACNwP,MAAO,QAET,CACExP,KAAM,gCACNwP,MAAO,QAET,CACExP,KAAM,gCACNwP,MAAO,QAET,CACExP,KAAM,gCACNwP,MAAO,QAET,CACExP,KAAM,gCACNwP,MAAO,QAET,CACExP,KAAM,0BACNwP,MAAO,QAET,CACExP,KAAM,gCACNwP,MAAO,QAET,CACExP,KAAM,gCACNwP,MAAO,QAET,CACExP,KAAM,gCACNwP,MAAO,QAET,CACExP,KAAM,gCACNwP,MAAO,QAET,CACExP,KAAM,qCACNwP,MAAO,QAET,CACExP,KAAM,qCACNwP,MAAO,QAET,CACExP,KAAM,qCACNwP,MAAO,QAET,CACExP,KAAM,qCACNwP,MAAO,QAET,CACExP,KAAM,gCACNwP,MAAO,QAET,CACExP,KAAM,gCACNwP,MAAO,QAET,CACExP,KAAM,gCACNwP,MAAO,QAET,CACExP,KAAM,gCACNwP,MAAO,QAET,CACExP,KAAM,gCACNwP,MAAO,QAET,CACExP,KAAM,gCACNwP,MAAO,QAET,CACExP,KAAM,gCACNwP,MAAO,QAET,CACExP,KAAM,gCACNwP,MAAO,QAET,CACExP,KAAM,8BACNwP,MAAO,QAET,CACExP,KAAM,8BACNwP,MAAO,QAET,CACExP,KAAM,8BACNwP,MAAO,QAET,CACExP,KAAM,8BACNwP,MAAO,QAET,CACExP,KAAM,mCACNwP,MAAO,QAET,CACExP,KAAM,mCACNwP,MAAO,QAET,CACExP,KAAM,mCACNwP,MAAO,QAET,CACExP,KAAM,mCACNwP,MAAO,QAET,CACExP,KAAM,8BACNwP,MAAO,QAET,CACExP,KAAM,8BACNwP,MAAO,QAET,CACExP,KAAM,8BACNwP,MAAO,QAET,CACExP,KAAM,8BACNwP,MAAO,QAET,CACExP,KAAM,8BACNwP,MAAO,QAET,CACExP,KAAM,8BACNwP,MAAO,QAET,CACExP,KAAM,8BACNwP,MAAO,QAET,CACExP,KAAM,8BACNwP,MAAO,QAET,CACExP,KAAM,gCACNwP,MAAO,QAET,CACExP,KAAM,wCACNwP,MAAO,QAET,CACExP,KAAM,gBACNwP,MAAO,QAET,CACExP,KAAM,uCACNwP,MAAO,QAET,CACExP,KAAM,yCACNwP,MAAO,QAET,CACExP,KAAM,sCACNwP,MAAO,QAET,CACExP,KAAM,mCACNwP,MAAO,QAET,CACExP,KAAM,sBACNwP,MAAO,QAET,CACExP,KAAM,yBACNwP,MAAO,QAET,CACExP,KAAM,6BACNwP,MAAO,QAET,CACExP,KAAM,uBACNwP,MAAO,QAET,CACExP,KAAM,4BACNwP,MAAO,QAET,CACExP,KAAM,oBACNwP,MAAO,QAET,CACExP,KAAM,wBACNwP,MAAO,QAET,CACExP,KAAM,kBACNwP,MAAO,QAET,CACExP,KAAM,oBACNwP,MAAO,QAET,CACExP,KAAM,uBACNwP,MAAO,QAET,CACExP,KAAM,8BACNwP,MAAO,QAET,CACExP,KAAM,4BACNwP,MAAO,QAET,CACExP,KAAM,qBACNwP,MAAO,QAET,CACExP,KAAM,mBACNwP,MAAO,QAET,CACExP,KAAM,kBACNwP,MAAO,QAET,CACExP,KAAM,qCACNwP,MAAO,QAET,CACExP,KAAM,oCACNwP,MAAO,QAET,CACExP,KAAM,8BACNwP,MAAO,QAET,CACExP,KAAM,kBACNwP,MAAO,QAET,CACExP,KAAM,mBACNwP,MAAO,QAET,CACExP,KAAM,qCACNwP,MAAO,QAET,CACExP,KAAM,yBACNwP,MAAO,QAET,CACExP,KAAM,uBACNwP,MAAO,QAET,CACExP,KAAM,yBACNwP,MAAO,QAET,CACExP,KAAM,uBACNwP,MAAO,QAET,CACExP,KAAM,yBACNwP,MAAO,QAET,CACExP,KAAM,cACNwP,MAAO,QAET,CACExP,KAAM,sBACNwP,MAAO,QAET,CACExP,KAAM,yBACNwP,MAAO,QAET,CACExP,KAAM,wBACNwP,MAAO,QAET,CACExP,KAAM,kBACNwP,MAAO,QAET,CACExP,KAAM,iBACNwP,MAAO,QAET,CACExP,KAAM,mCACNwP,MAAO,QAET,CACExP,KAAM,iCACNwP,MAAO,QAET,CACExP,KAAM,mBACNwP,MAAO,QAET,CACExP,KAAM,iBACNwP,MAAO,QAET,CACExP,KAAM,oBACNwP,MAAO,QAET,CACExP,KAAM,qBACNwP,MAAO,QAET,CACExP,KAAM,gBACNwP,MAAO,QAET,CACExP,KAAM,qBACNwP,MAAO,QAET,CACExP,KAAM,mBACNwP,MAAO,QAET,CACExP,KAAM,eACNwP,MAAO,QAET,CACExP,KAAM,kBACNwP,MAAO,QAET,CACExP,KAAM,aACNwP,MAAO,QAET,CACExP,KAAM,sBACNwP,MAAO,QAET,CACExP,KAAM,gCACNwP,MAAO,QAET,CACExP,KAAM,iBACNwP,MAAO,QAET,CACExP,KAAM,cACNwP,MAAO,QAET,CACExP,KAAM,iCACNwP,MAAO,QAET,CACExP,KAAM,gCACNwP,MAAO,QAET,CACExP,KAAM,gCACNwP,MAAO,QAET,CACExP,KAAM,6BACNwP,MAAO,QAET,CACExP,KAAM,oBACNwP,MAAO,QAET,CACExP,KAAM,qBACNwP,MAAO,QAET,CACExP,KAAM,sBACNwP,MAAO,QAET,CACExP,KAAM,qBACNwP,MAAO,QAET,CACExP,KAAM,sBACNwP,MAAO,QAET,CACExP,KAAM,kCACNwP,MAAO,QAET,CACExP,KAAM,kCACNwP,MAAO,QAET,CACExP,KAAM,iBACNwP,MAAO,S,6BC3oEE8tF,EAAuB,SAAC33F,GAAe,OAAKA,EAAQ7F,WAAW,UAAU,EAGzEy9F,EAAiB,SAAC53F,GAE7B,IAAM63F,EAAY73F,EAAQM,SAAS,cAAgBN,EAAQM,SAAS,cAC9Dw3F,EAAc93F,EAAQM,SAAS,MAE/BnE,EAAU,GA2BhB,OA1BI6D,EAAQM,SAAS,WACnBnE,EAAQxC,KAAK,CACXusB,YAAU6J,EAAAA,EAAAA,GAAMgoE,EAAoBF,MAGpC73F,EAAQM,SAAS,SACnBnE,EAAQxC,KAAK,CACXusB,YAAU6J,EAAAA,EAAAA,GAAMioE,KAGhBh4F,EAAQM,SAAS,YACnBnE,EAAQxC,KAAK,CACXusB,YAAU6J,EAAAA,EAAAA,GAAMkoE,EAAqBH,MAGrC93F,EAAQM,SAAS,UACnBnE,EAAQxC,KAAK,CACXusB,YAAU6J,EAAAA,EAAAA,GAAMmoE,KAGhBl4F,EAAQM,SAAS,WACnBnE,EAAQxC,KAAK,CACXusB,YAAU6J,EAAAA,EAAAA,GAAM2nE,KAIb,CACLr3F,OAAQ,CACNyvB,OAAQ,UACRqoE,UAAWh/E,MAAQG,OAAO,uBAC1Bpf,KAAM,EACNi9D,KAAM,mBAERihC,OAAQ,CACNp4F,QAASA,EACTpC,MAAO,oBAETzB,QAASA,EAEb,ECpDa67F,EAAiB,CAC1B,CACE39F,KAAM,KACNwP,MAAO,QAET,CACExP,KAAM,aACNwP,MAAO,mKAET,CACExP,KAAM,KACNwP,MAAO,sBAET,CACExP,KAAM,UACNwP,MAAO,sBAET,CACExP,KAAM,YACNwP,MAAO,SAET,CACExP,KAAM,OACNwP,MAAO,sCAET,CACExP,KAAM,cACNwP,MAAO,uBAET,CACExP,KAAM,cACNwP,MAAO,sBAET,CACExP,KAAM,mBACNwP,MAAO,gCAET,CACExP,KAAM,mBACNwP,MAAO,sBAET,CACExP,KAAM,iBACNwP,MAAO,gCAET,CACExP,KAAM,iBACNwP,MAAO,QAET,CACExP,KAAM,qBACNwP,MAAO,QAET,CACExP,KAAM,WACNwP,MAAO,cAET,CACExP,KAAM,sBACNwP,MAAO,4BAET,CACExP,KAAM,gBACNwP,MAAO,SAET,CACExP,KAAM,uBACNwP,MAAO,WAET,CACExP,KAAM,iBACNwP,MAAO,SAET,CACExP,KAAM,mBACNwP,MAAO,SAET,CACExP,KAAM,gBACNwP,MAAO,SAET,CACExP,KAAM,aACNwP,MAAO,QAET,CACExP,KAAM,UACNwP,MAAO,cAET,CACExP,KAAM,qBACNwP,MAAO,gCAET,CACExP,KAAM,eACNwP,MAAO,iBAET,CACExP,KAAM,qBACNwP,MAAO,SAET,CACExP,KAAM,kBACNwP,MAAO,aAET,CACExP,KAAM,WACNwP,MAAO,0BAET,CACExP,KAAM,WACNwP,MAAO,QAET,CACExP,KAAM,uBACNwP,MAAO,QAET,CACExP,KAAM,uBACNwP,MAAO,QAET,CACExP,KAAM,uBACNwP,MAAO,QAET,CACExP,KAAM,uBACNwP,MAAO,QAET,CACExP,KAAM,WACNwP,MAAO,MAET,CACExP,KAAM,uBACNwP,MAAO,sBAET,CACExP,KAAM,0BACNwP,MAAO,6BAET,CACExP,KAAM,8BACNwP,MAAO,SAET,CACExP,KAAM,0BACNwP,MAAO,SAET,CACExP,KAAM,iBACNwP,MAAO,UCvJAquF,EAAkB,CAC7B,CACE79F,KAAM,KACNwP,MAAO,SAET,CACExP,KAAM,aACNwP,MAAO,+IAET,CACExP,KAAM,KACNwP,MAAO,sBAET,CACExP,KAAM,UACNwP,MAAO,sBAET,CACExP,KAAM,YACNwP,MAAO,SAET,CACExP,KAAM,OACNwP,MAAO,gBAET,CACExP,KAAM,cACNwP,MAAO,gCAET,CACExP,KAAM,cACNwP,MAAO,sBAET,CACExP,KAAM,mBACNwP,MAAO,gCAET,CACExP,KAAM,mBACNwP,MAAO,sBAET,CACExP,KAAM,iBACNwP,MAAO,gCAET,CACExP,KAAM,iBACNwP,MAAO,QAET,CACExP,KAAM,qBACNwP,MAAO,QAET,CACExP,KAAM,gCACNwP,MAAO,SAET,CACExP,KAAM,wCACNwP,MAAO,SAET,CACExP,KAAM,+BACNwP,MAAO,SAET,CACExP,KAAM,iCACNwP,MAAO,SAET,CACExP,KAAM,8BACNwP,MAAO,SAET,CACExP,KAAM,iBACNwP,MAAO,SAET,CACExP,KAAM,sBACNwP,MAAO,QAET,CACExP,KAAM,qBACNwP,MAAO,QAET,CACExP,KAAM,oBACNwP,MAAO,QAET,CACExP,KAAM,kBACNwP,MAAO,QAET,CACExP,KAAM,oBACNwP,MAAO,QAET,CACExP,KAAM,oBACNwP,MAAO,SAET,CACExP,KAAM,2BACNwP,MAAO,SAET,CACExP,KAAM,gBACNwP,MAAO,SAET,CACExP,KAAM,gBACNwP,MAAO,QAET,CACExP,KAAM,+BACNwP,MAAO,SAET,CACExP,KAAM,0BACNwP,MAAO,SAET,CACExP,KAAM,8BACNwP,MAAO,KAET,CACExP,KAAM,kCACNwP,MAAO,QAET,CACExP,KAAM,gBACNwP,MAAO,QAET,CACExP,KAAM,wBACNwP,MAAO,QAET,CACExP,KAAM,oBACNwP,MAAO,QAET,CACExP,KAAM,+BACNwP,MAAO,qBAET,CACExP,KAAM,iCACNwP,MAAO,QAET,CACExP,KAAM,sBACNwP,MAAO,QAET,CACExP,KAAM,4BACNwP,MAAO,SAET,CACExP,KAAM,wBACNwP,MAAO,SAET,CACExP,KAAM,wBACNwP,MAAO,QAET,CACExP,KAAM,aACNwP,MAAO,QAET,CACExP,KAAM,sBACNwP,MAAO,SAET,CACExP,KAAM,oBACNwP,MAAO,qBAET,CACExP,KAAM,qBACNwP,MAAO,MAET,CACExP,KAAM,qBACNwP,MAAO,cAET,CACExP,KAAM,eACNwP,MAAO,MAET,CACExP,KAAM,6BACNwP,MAAO,MAET,CACExP,KAAM,4BACNwP,MAAO,KAET,CACExP,KAAM,0BACNwP,MAAO,sBAET,CACExP,KAAM,uBACNwP,MAAO,KAET,CACExP,KAAM,gBACNwP,MAAO,sBAET,CACExP,KAAM,0BACNwP,MAAO,sBAET,CACExP,KAAM,wBACNwP,MAAO,sBAET,CACExP,KAAM,eACNwP,MAAO,sBAET,CACExP,KAAM,mBACNwP,MAAO,yBAET,CACExP,KAAM,yBACNwP,MAAO,cAET,CACExP,KAAM,eACNwP,MAAO,cAET,CACExP,KAAM,kBACNwP,MAAO,cAET,CACExP,KAAM,wBACNwP,MAAO,QAET,CACExP,KAAM,wBACNwP,MAAO,QAET,CACExP,KAAM,wBACNwP,MAAO,QAET,CACExP,KAAM,wBACNwP,MAAO,QAET,CACExP,KAAM,wBACNwP,MAAO,QAET,CACExP,KAAM,wBACNwP,MAAO,QAET,CACExP,KAAM,wBACNwP,MAAO,QAET,CACExP,KAAM,wBACNwP,MAAO,QAET,CACExP,KAAM,gBACNwP,MAAO,gBAET,CACExP,KAAM,iBACNwP,MAAO,uBCnREkuF,EAAsB,SAACM,GACpC,MAAO,CACL,CACEh+F,KAAM,KACNwP,MAAO,UAET,CACExP,KAAM,aACNwP,MAAO,QAET,CACExP,KAAM,KACNwP,MAAO,QAET,CACExP,KAAM,YACNwP,MAAO,SAET,CACExP,KAAM,OACNwP,MAAO,aAET,CACExP,KAAM,mBACNwP,MAAO,gBAET,CACExP,KAAM,WACNwP,MAAO,iBAET,CACExP,KAAM,YACNwP,MAAO,kBAET,CACExP,KAAM,aACNwP,MAAO,QAET,CACExP,KAAM,eACNwP,MAAO,sBAET,CACExP,KAAM,iBACNwP,MAAO,QAET,CACExP,KAAM,kBACNwP,MAAO,QAET,CACExP,KAAM,WACNwP,MAAO,QAET,CACExP,KAAM,UACNwP,MAAO,sBAET,CACExP,KAAM,cACNwP,MAAO,uBAET,CACExP,KAAM,cACNwP,MAAO,sBAET,CACExP,KAAM,mBACNwP,MAAO,uBAET,CACExP,KAAM,mBACNwP,MAAO,sBAET,CACExP,KAAM,iBACNwP,MAAO,uBAET,CACExP,KAAM,iBACNwP,MAAO,QAET,CACExP,KAAM,qBACNwP,MAAO,QAET,CACExP,KAAM,YACNwP,MAAO,SAET,CACExP,KAAM,kBACNwP,MAAO,sBAET,CACExP,KAAM,kBACNwP,MAAO,QAET,CACExP,KAAM,uBACNwP,MAAO,QAET,CACExP,KAAM,qBACNwP,MAAO,QAET,CACExP,KAAM,2BACNwP,MAAO,SAET,CACExP,KAAM,yBACNwP,MAAO,SAET,CACExP,KAAM,kBACNwP,MAAO,SAET,CACExP,KAAM,UACNwP,MAAO,SAET,CACExP,KAAM,iBACNwP,MAAO,QAET,CACExP,KAAM,WACNwP,MAAO,SAET,CACExP,KAAM,gBACNwP,MAAO,QAET,CACExP,KAAM,gBACNwP,MAAO,KAET,CACExP,KAAM,uBACNwP,MAAO,6BAET,CACExP,KAAM,SACNwP,MAAO,SAET,CACExP,KAAM,UACNwP,MAAOwuF,EAAgB,aAAe,WAExC,CACEh+F,KAAM,sBACNwP,MAAO,aAET,CACExP,KAAM,cACNwP,MAAO,WAET,CACExP,KAAM,iBACNwP,MAAO,QAET,CACExP,KAAM,eACNwP,MAAO,iBAET,CACExP,KAAM,kBACNwP,MAAO,6BAET,CACExP,KAAM,iBACNwP,MAAO,QAET,CACExP,KAAM,qBACNwP,MAAO,SAET,CACExP,KAAM,kBACNwP,MAAO,aAET,CACExP,KAAM,8BACNwP,MAAO,UAET,CACExP,KAAM,mBACNwP,MAAO,QAET,CACExP,KAAM,kBACNwP,MAAO,QAET,CACExP,KAAM,oBACNwP,MAAO,QAET,CACExP,KAAM,kBACNwP,MAAO,QAET,CACExP,KAAM,uBACNwP,MAAO,4BAET,CACExP,KAAM,sBACNwP,MAAO,QAET,CACExP,KAAM,qBACNwP,MAAO,QAET,CACExP,KAAM,oBACNwP,MAAO,QAET,CACExP,KAAM,oBACNwP,MAAO,SAET,CACExP,KAAM,sBACNwP,MAAO,QAET,CACExP,KAAM,qBACNwP,MAAO,QAET,CACExP,KAAM,oBACNwP,MAAO,QAET,CACExP,KAAM,oBACNwP,MAAO,SAET,CACExP,KAAM,0BACNwP,MAAO,QAET,CACExP,KAAM,yBACNwP,MAAO,QAET,CACExP,KAAM,wBACNwP,MAAO,QAET,CACExP,KAAM,wBACNwP,MAAO,SAET,CACExP,KAAM,0BACNwP,MAAO,QAET,CACExP,KAAM,yBACNwP,MAAO,QAET,CACExP,KAAM,wBACNwP,MAAO,QAET,CACExP,KAAM,wBACNwP,MAAO,SAET,CACExP,KAAM,wBACNwP,MAAO,QAET,CACExP,KAAM,2BACNwP,MAAO,QAET,CACExP,KAAM,6BACNwP,MAAO,QAET,CACExP,KAAM,0BACNwP,MAAO,SAET,CACExP,KAAM,uBACNwP,MAAO,QAET,CACExP,KAAM,mCACNwP,MAAO,QAET,CACExP,KAAM,kCACNwP,MAAO,QAET,CACExP,KAAM,kCACNwP,MAAO,SAET,CACExP,KAAM,+BACNwP,MAAO,QAET,CACExP,KAAM,sBACNwP,MAAO,QAET,CACExP,KAAM,uBACNwP,MAAO,QAET,CACExP,KAAM,sBACNwP,MAAO,SAET,CACExP,KAAM,mBACNwP,MAAO,QAET,CACExP,KAAM,wBACNwP,MAAO,QAET,CACExP,KAAM,uBACNwP,MAAO,QAET,CACExP,KAAM,uBACNwP,MAAO,SAET,CACExP,KAAM,oBACNwP,MAAO,QAET,CACExP,KAAM,uBACNwP,MAAO,QAET,CACExP,KAAM,sBACNwP,MAAO,QAET,CACExP,KAAM,sBACNwP,MAAO,SAET,CACExP,KAAM,mBACNwP,MAAO,QAET,CACExP,KAAM,wBACNwP,MAAO,QAET,CACExP,KAAM,uBACNwP,MAAO,QAET,CACExP,KAAM,uBACNwP,MAAO,SAET,CACExP,KAAM,oBACNwP,MAAO,QAET,CACExP,KAAM,iCACNwP,MAAO,QAET,CACExP,KAAM,gCACNwP,MAAO,QAET,CACExP,KAAM,gCACNwP,MAAO,SAET,CACExP,KAAM,6BACNwP,MAAO,QAET,CACExP,KAAM,sBACNwP,MAAO,QAET,CACExP,KAAM,qBACNwP,MAAO,QAET,CACExP,KAAM,qBACNwP,MAAO,SAET,CACExP,KAAM,kBACNwP,MAAO,QAET,CACExP,KAAM,uBACNwP,MAAO,QAET,CACExP,KAAM,sBACNwP,MAAO,QAET,CACExP,KAAM,sBACNwP,MAAO,SAET,CACExP,KAAM,mBACNwP,MAAO,QAET,CACExP,KAAM,sBACNwP,MAAO,QAET,CACExP,KAAM,qBACNwP,MAAO,QAET,CACExP,KAAM,qBACNwP,MAAO,SAET,CACExP,KAAM,kBACNwP,MAAO,QAET,CACExP,KAAM,uBACNwP,MAAO,QAET,CACExP,KAAM,sBACNwP,MAAO,QAET,CACExP,KAAM,sBACNwP,MAAO,SAET,CACExP,KAAM,mBACNwP,MAAO,QAET,CACExP,KAAM,kBACNwP,MAAO,QAET,CACExP,KAAM,oBACNwP,MAAO,SAET,CACExP,KAAM,uBACNwP,MAAO,SAET,CACExP,KAAM,gCACNwP,MAAO,SAET,CACExP,KAAM,qBACNwP,MAAO,SAET,CACExP,KAAM,2BACNwP,MAAO,SAET,CACExP,KAAM,mBACNwP,MAAO,QAET,CACExP,KAAM,kBACNwP,MAAO,QAET,CACExP,KAAM,qBACNwP,MAAO,QAET,CACExP,KAAM,sCACNwP,MAAO,QAET,CACExP,KAAM,oBACNwP,MAAO,QAET,CACExP,KAAM,mCACNwP,MAAO,QAET,CACExP,KAAM,uBACNwP,MAAO,QAET,CACExP,KAAM,uBACNwP,MAAO,QAET,CACExP,KAAM,wCACNwP,MAAO,QAET,CACExP,KAAM,0BACNwP,MAAO,QAET,CACExP,KAAM,aACNwP,MAAO,QAET,CACExP,KAAM,0BACNwP,MAAO,QAET,CACExP,KAAM,2BACNwP,MAAO,SAET,CACExP,KAAM,wBACNwP,MAAO,SAET,CACExP,KAAM,uBACNwP,MAAO,SAET,CACExP,KAAM,oBACNwP,MAAO,QAET,CACExP,KAAM,mBACNwP,MAAO,SAET,CACExP,KAAM,8BACNwP,MAAO,QAET,CACExP,KAAM,2BACNwP,MAAO,QAET,CACExP,KAAM,sBACNwP,MAAO,QAET,CACExP,KAAM,mBACNwP,MAAO,QAET,CACExP,KAAM,qBACNwP,MAAO,QAET,CACExP,KAAM,qBACNwP,MAAO,QAET,CACExP,KAAM,+BACNwP,MAAO,QAET,CACExP,KAAM,wBACNwP,MAAO,QAET,CACExP,KAAM,uCACNwP,MAAO,QAET,CACExP,KAAM,aACNwP,MAAO,QAET,CACExP,KAAM,iBACNwP,MAAO,QAET,CACExP,KAAM,yCACNwP,MAAO,QAET,CACExP,KAAM,mCACNwP,MAAO,QAET,CACExP,KAAM,cACNwP,MAAO,SAET,CACExP,KAAM,yBACNwP,MAAO,QAET,CACExP,KAAM,gCACNwP,MAAO,QAET,CACExP,KAAM,qBACNwP,MAAO,QAET,CACExP,KAAM,uBACNwP,MAAO,QAET,CACExP,KAAM,wBACNwP,MAAO,QAET,CACExP,KAAM,sBACNwP,MAAO,QAET,CACExP,KAAM,sCACNwP,MAAO,QAET,CACExP,KAAM,mBACNwP,MAAO,QAET,CACExP,KAAM,mBACNwP,MAAO,QAET,CACExP,KAAM,mBACNwP,MAAO,QAET,CACExP,KAAM,6BACNwP,MAAO,SAET,CACExP,KAAM,uBACNwP,MAAO,SAET,CACExP,KAAM,oBACNwP,MAAO,SAET,CACExP,KAAM,kCACNwP,MAAO,SAET,CACExP,KAAM,2BACNwP,MAAO,SAET,CACExP,KAAM,yBACNwP,MAAO,SAET,CACExP,KAAM,eACNwP,MAAO,SAET,CACExP,KAAM,yBACNwP,MAAO,SAET,CACExP,KAAM,gCACNwP,MAAO,SAET,CACExP,KAAM,sBACNwP,MAAO,SAET,CACExP,KAAM,2BACNwP,MAAO,SAET,CACExP,KAAM,sBACNwP,MAAO,SAET,CACExP,KAAM,iBACNwP,MAAO,SAET,CACExP,KAAM,sBACNwP,MAAO,SAET,CACExP,KAAM,kBACNwP,MAAO,QAET,CACExP,KAAM,yBACNwP,MAAO,QAET,CACExP,KAAM,gCACNwP,MAAO,SAET,CACExP,KAAM,iBACNwP,MAAO,SAET,CACExP,KAAM,kBACNwP,MAAO,SAET,CACExP,KAAM,iBACNwP,MAAO,SAET,CACExP,KAAM,kBACNwP,MAAO,SAET,CACExP,KAAM,kBACNwP,MAAO,SAET,CACExP,KAAM,uCACNwP,MAAO,QAET,CACExP,KAAM,yCACNwP,MAAO,QAET,CACExP,KAAM,sCACNwP,MAAO,SAET,CACExP,KAAM,mCACNwP,MAAO,QAET,CACExP,KAAM,iBACNwP,MAAO,SAET,CACExP,KAAM,iCACNwP,MAAO,QAET,CACExP,KAAM,gCACNwP,MAAO,QAET,CACExP,KAAM,gCACNwP,MAAO,SAET,CACExP,KAAM,6BACNwP,MAAO,SAET,CACExP,KAAM,oBACNwP,MAAO,QAET,CACExP,KAAM,qBACNwP,MAAO,QAET,CACExP,KAAM,sBACNwP,MAAO,SAET,CACExP,KAAM,qBACNwP,MAAO,SAET,CACExP,KAAM,sBACNwP,MAAO,SAET,CACExP,KAAM,kCACNwP,MAAO,QAET,CACExP,KAAM,kCACNwP,MAAO,QAET,CACExP,KAAM,WACNwP,MAAO,SAET,CACExP,KAAM,UACNwP,MAAO,SAET,CACExP,KAAM,YACNwP,MAAO,SAET,CACExP,KAAM,iBACNwP,MAAO,QAIX,ECxyBaouF,EAAuB,SAACH,GACnC,MAAO,CACL,CACEz9F,KAAM,KACNwP,MAAO,WAET,CACExP,KAAM,aACNwP,MAAO,iJAET,CACExP,KAAM,KACNwP,MAAO,sBAET,CACExP,KAAM,UACNwP,MAAO,sBAET,CACExP,KAAM,YACNwP,MAAO,SAET,CACExP,KAAM,OACNwP,MAAO,mBAET,CACExP,KAAM,cACNwP,MAAO,gCAET,CACExP,KAAM,cACNwP,MAAO,sBAET,CACExP,KAAM,mBACNwP,MAAO,gCAET,CACExP,KAAM,mBACNwP,MAAO,sBAET,CACExP,KAAM,iBACNwP,MAAO,gCAET,CACExP,KAAM,iBACNwP,MAAO,QAET,CACExP,KAAM,qBACNwP,MAAO,QAET,CACExP,KAAM,qBACNwP,MAAO,SAET,CACExP,KAAM,kBACNwP,MAAO,QAET,CACExP,KAAM,YACNwP,MAAO,SAET,CACExP,KAAM,YACNwP,MAAO,UAET,CACExP,KAAM,wBACNwP,MAAO,KAET,CACExP,KAAM,yBACNwP,MAAO,KAET,CACExP,KAAM,+BACNwP,MAAOiuF,EAAc,WAAa,qBAEpC,CACEz9F,KAAM,qBACNwP,MAAO,cAET,CACExP,KAAM,WACNwP,MAAOiuF,EAAc,oBAAsB,qBAE7C,CACEz9F,KAAM,UACNwP,MAAOiuF,EAAc,YAAc,Y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,YACbE,QAAS,CACL,CACIrhE,MAAO,aAInB,CACImhE,YAAa,oBACbC,YAAa,SACbC,QAAS,CACL,CACIrhE,MAAO,WAEX,CACIshE,WAAY,cAEhB,CACIf,OAAQ,MAIpB,CACIY,YAAa,MACbC,YAAa,WACbC,QAAS,CACL,CACIrhE,MAAO,aAInB,CACImhE,YAAa,MACbC,YAAa,cACbC,QAAS,CACL,CACIC,WAAY,SAIxB,CACIH,YAAa,MACbC,YAAa,mBACbC,QAAS,CACL,CACIrhE,MAAO,aAInB,CACImhE,YAAa,eACbE,QAAS,CACL,CACIC,WAAY,SAIxB,CACIH,YAAa,WACbC,YAAa,WACbC,QAAS,CACL,CACIrhE,MAAO,aAInB,CACImhE,YAAa,WACbC,YAAa,gBACbC,QAAS,CACL,CACIrhE,MAAO,aAInB,CACImhE,YAAa,WACbC,YAAa,SACbC,QAAS,CACL,CACIC,WAAY,QAIxB,CACIH,YAAa,WACbC,YAAa,mBACbC,QAAS,CACL,CACIrhE,MAAO,aAInB,CACImhE,YAAa,WACbC,YAAa,qBACbC,QAAS,CACL,CACIC,WAAY,SAIxB,CACIH,YAAa,OACbC,YAAa,WACbC,QAAS,CACL,CACIrhE,MAAO,aAInB,CACImhE,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,CACIrhE,MAAO,aAInB,CACImhE,YAAa,eACbC,YAAa,WACbC,QAAS,CACL,CACIrhE,MAAO,aAInB,CACImhE,YAAa,eACbC,YAAa,gBACbC,QAAS,CACL,CACIrhE,MAAO,aAInB,CACImhE,YAAa,eACbC,YAAa,kBACbC,QAAS,CACL,CACIC,WAAY,SAIxB,CACIH,YAAa,eACbC,YAAa,SACbC,QAAS,CACL,CACIC,WAAY,QAIxB,CACIH,YAAa,eACbC,YAAa,mBACbC,QAAS,CACL,CACIrhE,MAAO,aAInB,CACImhE,YAAa,aACbE,QAAS,CACL,CACIC,WAAY,SAIxB,CACIH,YAAa,aACbC,YAAa,WACbC,QAAS,CACL,CACIrhE,MAAO,WAEX,CACIshE,WAAY,MAEhB,CACIf,OAAQ,MAIpB,CACIY,YAAa,aACbC,YAAa,SACbC,QAAS,CACL,CACIC,WAAY,QAIxB,CACIH,YAAa,aACbC,YAAa,cACbC,QAAS,CACL,CACIC,WAAY,QAIxB,CACIH,YAAa,aACbC,YAAa,mBACbC,QAAS,CACL,CACIrhE,MAAO,aAInB,CACImhE,YAAa,UACbE,QAAS,CACL,CACIC,WAAY,SAIxB,CACIH,YAAa,eACbC,YAAa,WACbC,QAAS,CACL,CACIrhE,MAAO,aAInB,CACImhE,YAAa,kBACbC,YAAa,WACbC,QAAS,CACL,CACIrhE,MAAO,aAInB,CACImhE,YAAa,QACbC,YAAa,WACbC,QAAS,CACL,CACIrhE,MAAO,aAInB,CACImhE,YAAa,QACbC,YAAa,mBACbC,QAAS,CACL,CACIrhE,MAAO,cCtVhB,IAAIgoN,GAAO,aAAiB3nN,OAAOC,QAAO,SAAU1J,EAAOu6I,GAC9D,IAAIp+I,EAAU6D,EAAM7D,SAAW,UAC/B,MAAgB,YAAZA,EACO,gBAAoB,MAAO,CAAEuG,UAAW1C,EAAM0C,UAAW,cAAe1C,EAAMw6I,WAAYC,KAAMz6I,EAAMw6I,gBAAahoJ,EAAY,MAAOmyF,SAAU3kF,EAAM2kF,SAAU,aAAc3kF,EAAMsO,UAAWtF,IAAKuxI,EAAYtnE,MAAO,6BAA8BhkE,MAAO,KAAMyB,OAAQ,KAAMsiE,QAAS,YAAa/5B,KAAM,gBAC/Sj5C,EAAM4D,OAAS,gBAAoB,QAAS,KAAM5D,EAAM4D,OACxD,gBAAoB,OAAQ,CAAEi7D,EAAG,w2BAEzB,UAAZ1iE,EACO,gBAAoB,MAAO,CAAEuG,UAAW1C,EAAM0C,UAAW,cAAe1C,EAAMw6I,WAAYC,KAAMz6I,EAAMw6I,gBAAahoJ,EAAY,MAAOmyF,SAAU3kF,EAAM2kF,SAAU,aAAc3kF,EAAMsO,UAAWtF,IAAKuxI,EAAYtnE,MAAO,6BAA8BhkE,MAAO,KAAMyB,OAAQ,KAAMsiE,QAAS,YAAa/5B,KAAM,gBAC/Sj5C,EAAM4D,OAAS,gBAAoB,QAAS,KAAM5D,EAAM4D,OACxD,gBAAoB,OAAQ,CAAEi7D,EAAG,26BAElC,IACX,GAAG,CAAE67E,YAAa,UCTlB,MAAM,GAAgB,KAAOpzI,KAAKytL,WAAW,CAAEr6C,YAAa,gBAAiBs6C,YAAa,cAAgB,0DAA2Dh1L,GAAUA,EAAMmX,MAAMnb,KAAKgU,2BAA4BhQ,GAAUk5C,SAASl5C,EAAMmX,MAAMnb,KAAKgU,UAAW,IAAM,0BAA0B,KAAY3L,uBAAwBrE,GAAUA,EAAMmX,MAAMnb,KAAKyP,2BAA4BzL,GAAUk5C,SAASl5C,EAAMmX,MAAMnb,KAAKyP,UAAW,IAAM,2BAA2B,KAAYkD,uBAAwB3O,GAAUA,EAAMmX,MAAMnb,KAAKy1M,2BAA4BzxM,GAAUk5C,SAASl5C,EAAMmX,MAAMnb,KAAKy1M,UAAW,IAAM,2BAA2B,KAAY5iM,wBAAyB7O,GAAUA,EAAMmX,MAAMnb,KAAKqhF,2BAA4Br9E,GAAUk5C,SAASl5C,EAAMmX,MAAMnb,KAAKqhF,UAAW,IAAM,8BAA+Br9E,GAAUA,EAAMqxN,SAC3zB,eAAen4K,SAASl5C,EAAMmX,MAAMnb,KAAKgU,UAAW,IAAM,8DAE1D,iFAAiF,KAAY3L,iCAAkCrE,GAAUA,EAAMqxN,SAC/I,eAAen4K,SAASl5C,EAAMmX,MAAMnb,KAAKyP,UAAW,IAAM,gEAE1D,+CAA+C,KAAYkD,sCAAuC3O,GAAUA,EAAMmX,MAAMnb,KAAKs1N,6CAA8CtxN,GAAWA,EAAMqxN,SAAW,eAAiB,8BAA+B,KAAYviN,uCAAuC,KAAYA,MAAQ,gDAAiD9O,GAAWA,EAAMqxN,SAAW,eAAiB,8CAA+C,EAAGl6M,WAAYA,EAAMnb,KAAK+iG,OAAOo4F,oBAAqBn3L,GAAUA,EAAMmX,MAAMk0E,YAAYioE,UAAU7kJ,qBAAsBzO,GAAUA,EAAMmX,MAAMk0E,YAAYioE,UAAU7kJ,2DACxmB8iN,GAAevxN,IACxB,MAAM,MAAEwxN,EAAK,KAAEC,EAAI,UAAEC,GAAc1xN,EAC7Bi1L,GAAc,OAAej1L,GACnC,OAAQ,gBAAoB,GAAeyJ,OAAOC,OAAO,CAAE2nN,SAAUpkH,QAAQukH,IAAUv8B,GACnFw8B,GAAQ,gBAAoBL,GAAM,CAAEj1N,QAAS,UAAWyH,MAAO8tN,IAC/DF,EAAO,ECRTG,GAAgB,KAAOjyN,IAAIq1L,WAAW,CAAEr6C,YAAa,gBAAiBs6C,YAAa,aAAe,kDAAmDh1L,GAAUA,EAAMmX,MAAMnb,KAAKsgD,wBAAyBt8C,GAAUA,EAAMmX,MAAMsrF,OAAO7mD,8BAA8B,EAAGzkC,WAAYA,EAAMqpL,QAAQoxB,uBAAwB5xN,GAAUA,EAAMmX,MAAMnb,KAAK2B,8IACpVk0N,GAAe,KAAOx1B,OAAOtH,WAAW,CAAEr6C,YAAa,eAAgBs6C,YAAa,aAAe,oGACnG,GAAe,KAAOt1L,IAAIq1L,WAAW,CAAEr6C,YAAa,eAAgBs6C,YAAa,cAAgB,uBAAwBh1L,GAAUA,EAAM8xN,qBAAuB,cAAgB,aAChL,GAAa,KAAOxqN,KAAKytL,WAAW,CAAEr6C,YAAa,aAAcs6C,YAAa,cAAgB,+DAAgEh1L,GAAU,8DAA0CA,EAAMmX,MAAMkvD,UAAUq6H,eAAeqD,YAAY/jM,EAAMmX,MAAMkvD,UAAU8zC,SAAS/wG,yBAClS2oN,GAA4B,KAAOzqN,KAAKytL,WAAW,CAAEr6C,YAAa,4BAA6Bs6C,YAAa,cAAgB,mCAC5Hg9B,GAAkB,KAAO1qN,KAAKytL,WAAW,CAAEr6C,YAAa,kBAAmBs6C,YAAa,aAAe,aAAa,EAAG79K,WAAYA,EAAMohL,gBAAgBrrJ,SAASxiC,0EAClKunN,IAA8B,QAAOD,IAAiBj9B,WAAW,CAAEr6C,YAAa,8BAA+Bs6C,YAAa,cAAgB,8DAA8D,EAAG79K,QAAOrV,aAAYowN,WAAUC,iBAAkBrwN,IAAeowN,EAC3Q,IAAI,aAAa/6M,EAAMohL,gBAAgB5wL,SAAS+C,sFAAsF,gEAAgEynN,kBAA4Bh7M,EAAMnb,KAAK0hL,wBAAwBxkI,SAAS/hC,EAAMnb,KAAKoC,WAAa,6BAA0B5L,KAChU,GAAoB,KAAO8U,KAAKytL,WAAW,CAAEr6C,YAAa,oBAAqBs6C,YAAa,aAAe,mFAAoFh1L,GAAUA,EAAMmX,MAAMnb,KAAK4B,wKAC1Nw0N,GAA2B,KAAO1yN,IAAIq1L,WAAW,CAAEr6C,YAAa,2BAA4Bs6C,YAAa,aAAe,gCAAiCh1L,GAAUA,EAAMmX,MAAMnb,KAAKgvB,iGAAkGhrB,GAAUA,EAAMmX,MAAMnb,KAAKgvB,oBAAqBhrB,GAAUA,EAAMqyN,sBAAwB,cAAgB,mBAAoBryN,GAAUA,EAAMqyN,sBAClaryN,EAAMmX,MAAMk0E,YAAYioE,UAAUj7I,SAClCrY,EAAMmX,MAAMk0E,YAAYioE,UAAU7kJ,yBAAyB,EAAG0I,WAAYA,EAAMnb,KAAKwiH,KAAK/vG,iBAAkBzO,GAAUA,EAAMqyN,sBAC5HryN,EAAMmX,MAAMk0E,YAAYkzG,UAAUlmL,SAClCrY,EAAMmX,MAAMk0E,YAAYkzG,UAAU9vL,WAAYzO,IAAWA,EAAMqyN,uBAAyB,IAAI,WAAW,+BAA+CryN,GAAUA,EAAMmX,MAAMkgL,oBAAoBE,gBAAgB9oL,eAChN6jN,GAAc,KAAOhrN,KAAKytL,WAAW,CAAEr6C,YAAa,cAAes6C,YAAa,aAAe,8CAA+Ch1L,GAAUA,EAAMmX,MAAMnb,KAAK2B,mDAAoDqC,GAAUA,EAAMmX,MAAMnb,KAAK0hL,2CAA4C19K,GAAUA,EAAMmX,MAAMohL,gBAAgBrrJ,SAASxiC,oDAAqD1K,GAAUA,EAAMmX,MAAMk0E,YAAYkwG,UAAU9sL,WACpb8jN,GAAoB,KAAOn2B,SAASrH,WAAW,CAAEr6C,YAAa,oBAAqBs6C,YAAa,cAAgB,mEAAmE,EAAG79K,WAAYA,EAAMnb,KAAKwiH,KAAK/vG,2CAA2C,EAAG0I,WAAYA,EAAMnb,KAAKwiH,KAAK/vG,2CAA2C,iCAAyCwjN,wCAAkEjyN,GAAUA,EAAMmX,MAAMohL,gBAAgBnhI,QAAQ1sD,cAChe8nN,GAAqB,KAAO9yN,IAAIq1L,WAAW,CAAEr6C,YAAa,qBAAsBs6C,YAAa,aAAe,SAAS,EAAG79K,WAAYA,EAAMk0E,YAAYi5G,UAAU3xJ,sBAAsB,EAAGtI,cAAgBA,EAAW,OAAS,yCAA0C,EAAGlzB,WAAYA,EAAMsrF,OAAOgwH,oBACnSC,GAAgB,KAAOprN,KAAKytL,WAAW,CAAEr6C,YAAa,gBAAiBs6C,YAAa,aAAe,SAAS,EAAG79K,WAAYA,EAAMk0E,YAAYkzG,UAAU9vL,uBAAuB,EAAG0I,WAAYA,EAAMnb,KAAKgvB,aACxM2nM,GAA6B3+M,IAC/BA,EAAM3V,iBACN2V,EAAM7D,cAAcmmL,OAAO,EAEzBs8B,GAA4B5+M,IAC9BA,EAAM3V,gBAAgB,EAYpBm9M,GAAmBxnM,IACrBA,EAAM3V,gBAAgB,EAEbw0N,GAAe7yN,IACxB,MAAM8yN,EAAc,SAAa,MAC3BC,EAAc,SAAa,MAC3BC,EAAc,SAAa,MAC3BC,EAAW,eACVC,EAAeC,GAAoB,WAAenzN,EAAMid,cAAgB,KACzE,aAAEA,EAAY,MAAEpb,EAAK,KAAEpP,EAAI,SAAE0P,EAAQ,cAAEixN,EAAa,QAAExgO,EAAO,MAAEqP,EAAK,SAAEoW,EAAQ,iBAAEg7M,EAAgB,oBAAEC,EAAmB,WAAExxN,EAAU,QAAEyxN,GAAavzN,EAChJgtC,EAAc,eAAmBh5B,IACnC,IAAIvlB,EACJ,MAAM,QAAEiN,GAAYsE,EACpB,GAAKqzN,EAe8B,QAA9B5kO,EAAKskO,EAAY11M,eAA4B,IAAP5uB,GAAyBA,EAAG6nM,YAfhD,CACnB,GAAIw8B,GACAA,EAAYz1M,SACZ21M,GACAA,EAAY31M,QAAS,CACrB,MAAMm2M,EAAmBR,EAAY31M,QAAQ23E,cAAc,UAC3D,GAAIw+H,EAEA,YADAA,EAAiB9nL,OAGrBonL,EAAYz1M,QAAQi5K,OACxB,CACA56L,GAAWA,EAAQsY,EACvB,CAGA,GACD,CAAChU,EAAOqzN,IACLp+B,GAAc,OAAej1L,IAC5ByzN,EAAgBC,IAAqB,IAAAv5N,UAASm5N,IAC9CnB,EAAawB,GAAkB,WAAe,IAC9CzB,EAAU0B,GAAe,aAAiBH,KAAoBH,IAAuB,GAC5F,aAAgB,KACZ,IAAI7kO,EACJklO,GAA4C,QAA3BllO,EAAKwkO,EAAS51M,eAA4B,IAAP5uB,OAAgB,EAASA,EAAG0hD,eAAiB,EAAE,GACpG,CAAC8iL,IACJ,aAAgB,KACZW,IAAcH,EAAe,GAC9B,CAACA,IACJ,MAAMtc,EAAe,eAAkB,KAAQ,IAAI1oN,EAAI,OAAOklO,GAA4C,QAA3BllO,EAAKwkO,EAAS51M,eAA4B,IAAP5uB,OAAgB,EAASA,EAAG0hD,eAAiB,EAAE,GAAK,CAACwjL,EAAgBV,IACvL,aAAgB,KACZ/pM,OAAO/a,iBAAiB,SAAUgpM,GAC3B,IAAMjuL,OAAO9a,oBAAoB,SAAU+oM,KACnD,CAACA,IACJ,MAAM0c,EAAiBpqN,OAAO86F,QAAQ3xG,GAASiW,KAAI,CAAC8vF,EAAO5vF,KACvD,MAAOqC,EAAK0oN,GAAgBn7H,EACtBo7H,EAA4BR,EAAW,gBAAoB,MAAO,KACpEO,EACA,gBAAoBpB,GAAe,KAC/B,IACAa,EAAQxqN,GACR,MAAS,EACjB,OAAKsqN,EAaO,gBAAoBb,GAAoB,CAAEpnN,IAAKA,EAAKpC,IAAK+pN,EAAa1oL,SAAUopL,IAAmBK,EAAcnvI,SAAU,EAAGjpF,QAAS,KACvIg4N,EAAkBI,GAClB3xN,GAAYA,EAAS2xN,EAAa,GACjCA,GAfD,gBAAoB,KAAU,CAAE1oN,IAAKA,EAAKnJ,MAAOmJ,EAAKvJ,MAAOkyN,EAA2B/qN,IAAe,IAAVD,EAAc+pN,OAActgO,EAAW+qJ,eAAgBtgI,GAAgBA,EAAavkB,SAAS0S,GAAM2T,QAAS9c,GAASA,EAAMvJ,SAAS0S,GAAM8tL,iBAAkBy5B,GAA2Bj3N,QAAS,KAC7R03N,GAAiBA,EAAchoN,EAAI,EACpCjJ,SAAU,KACT,GAAIF,EACA,OAEJ,MAAM+xN,EAxEH,EAAC/xN,EAAOgyN,KAC3B,MAAMhyM,EAAW,IAAIhgB,GAOrB,OANIA,EAAMvJ,SAASu7N,GACfhyM,EAAS+vD,OAAO/vE,EAAM0yB,QAAQs/L,GAAY,GAG1ChyM,EAASlwB,KAAKkiO,GAEXhyM,CAAQ,EAgE0BiyM,CAAehB,EAAe9nN,GACvD+nN,EAAiBa,GACjB7xN,GAAYA,EAAS6xN,EAAiB,EACvCvhO,KAAMA,EAAM4lB,SAAUA,GAOjC,IAEE46C,EAAQhxD,EAAQA,EAAMpJ,OAASq6N,EAAcr6N,OACnD,OAAQ,gBAAoB05N,GAAmB9oN,OAAOC,OAAO,CAAEV,IAAKgqN,GAAe/9B,GAC/EpzL,GAASwxN,GAAqB,gBAAoBrB,GAAiB,CAAE,eAAe,EAAMhpN,IAAKiqN,GAAYpxN,GAC3G,gBAAoBgwN,GAAc,KAAMhwN,GACxCA,GAASwxN,GAAqB,gBAAoBpB,GAA6B,CAAEnwN,WAAYA,EAAYowN,SAAUA,EAAUC,YAAaA,GAAetwN,GACzJ,gBAAoBuwN,GAA0B,CAAE12N,QAASsxC,EAAaosJ,YAAaoiB,GAAiB,eAAe,EAAM6W,sBAAuBh6M,GAC5I,gBAAoB,GAAc,CAAEy5M,qBAAsBz5M,GACtD,gBAAoB,KAAM,CAAEvc,IAAK,EAAAk8L,QAAQ1wL,KAAM8B,MAAO,KAAUgX,QAASriB,WAAY,EAAAC,eAAe2+K,UAAW70K,YAAY,GAAQurN,EAAmBI,EAAiB5xN,GACvKoxD,EAAQ,GAAK,gBAAoBq/J,GAAa,KAAMr/J,IACxD,gBAAoB8+J,GAA2B,KAC3C,gBAAoB,GAAmB,KACnC,gBAAoB,GAAY,KAC5B,gBAAoBp3E,EAAA,EAAa,CAAEx+I,QAAS,UAAWq+I,YAAY,QACnF,gBAAoB,IAAe,CAAErjI,MAAO,QACxC,gBAAoBw6M,GAAe,CAAEv4B,YAAaw5B,IAC9C,gBAAoB,KAAW,CAAEn1N,OAAQ,KAAgBE,UAAW/O,KAAM,MAAc4O,QAAUq2N,KAAmB,EC3H/HM,GAA4B,KAAOz0N,IAAIq1L,WAAW,CAAEr6C,YAAa,4BAA6Bs6C,YAAa,aAAe,oCAAqCh1L,GAAUA,EAAMmX,MAAMnb,KAAKgvB,oDAAqDhrB,GAAUA,EAAMmX,MAAMnb,KAAKuH,eAC1Q6wN,GAAgC,KAAO10N,IAAIq1L,WAAW,CAAEr6C,YAAa,gCAAiCs6C,YAAa,aAAe,sBAAsB,KAAY3wL,2EACpK,IAAa,QAAOs2I,EAAA,GAAao6C,WAAW,CAAEr6C,YAAa,aAAcs6C,YAAa,aAAe,SAAUh1L,GAAUA,EAAMmX,MAAMk0E,YAAYyhH,UAAUr+L,gCAHvI,wBAG8MzO,GAAWA,EAAM2/L,OAAS,kBAAoB,4DAA6D,KAAYt7L,sCACzVgwN,GAAa,KAAO30N,IAAIq1L,WAAW,CAAEr6C,YAAa,aAAcs6C,YAAa,cAAgB,uFAAuF,EAAG79K,WAAYA,EAAMnb,KAAKwiH,KAAK7rE,qBAAsB3yC,GAAUA,EAAMmX,MAAMnb,KAAK0hL,wBAAyB19K,GAAUA,EAAMmX,MAAMk0E,YAAYyhH,UAAU/tL,4BAJrT,eAI+W/e,GAAUA,EAAM2/L,QACrZ,4DAKE20B,GAAY,EAAAr8J,GAAI,+IAAgJj4D,GAAUA,EAAMmX,MAAMk0E,YAAY4yG,UAAU1yG,SAAS,YAAqBvrF,GAAUA,EAAMmX,MAAMk0E,YAAY4yG,UAAU1yG,mCAAoCvrF,GAAUA,EAAMmX,MAAMk0E,YAAY4yG,UAAU1yG,SAAS,YAAqBvrF,GAAUA,EAAMmX,MAAMk0E,YAAY4yG,UAAU1yG,WAAYvrF,GAAUA,EAAM2/L,QAAU,EAAA1nI,GAAI,+BAA+Bj4D,EAAMmX,MAAMk0E,YAAY4yG,UAAUl/K,WAAW,YAAoB/e,EAAMmX,MAAMk0E,YAAY4yG,UAAUl/K,kCAAkC/e,EAAMmX,MAAMk0E,YAAY4yG,UAAUl/K,WAAW,YAAoB/e,EAAMmX,MAAMk0E,YAAY4yG,UAAUl/K,iBACjuB,GAAa,KAAOpxB,EAAEonM,WAAW,CAAEr6C,YAAa,aAAcs6C,YAAa,cAAgB,GAAGs/B,KAC9F,GAAe,KAAOx0N,OAAOi1L,WAAW,CAAEr6C,YAAa,eAAgBs6C,YAAa,cAAgB,GAAGs/B,2DACvGC,GAAwB,KAAO70N,IAAIq1L,WAAW,CAAEr6C,YAAa,wBAAyBs6C,YAAa,cAAgB,GAAIh1L,GAAUA,EAAM2/L,QAAU,EAAA1nI,GAAI,aAAaj4D,EAAMmX,MAAMnb,KAAKmB,WAAW6C,EAAMmX,MAAMnb,KAAKuH,kBAAkB,sCAA+CvD,GAAUA,EAAMmX,MAAMnb,KAAKuH,mCAAmC,KAAYc,6CAA6C,mCACvYmwN,GAA6B,KAAO90N,IAAIq1L,WAAW,CAAEr6C,YAAa,6BAA8Bs6C,YAAa,aAAe,sCACrHy/B,GAA2Bz0N,IACpC,MAAM,GAAE+iB,EAAE,OAAE48K,GAAS,EAAK,KAAEltM,EAAI,IAAEu3B,EAAG,SAAE0qM,EAAQ,QAAEh5N,GAAYsE,EACvD20N,EAAe,GAAG5xM,eAClB6xM,EAAgB,GAAG7xM,gBACzB,OAAQ,gBAAoBqxM,GAA+B,CAAErxM,GAAIA,GAC7D,gBAAoB,MAAO,KAAM2xM,EAAY,gBAAoB,GAAc,CAAE3xM,GAAI4xM,EAAch1B,OAAQA,EAAQjkM,QAASA,EAAS,gBAAiBikM,EAAQ,gBAAiBi1B,GAC3K,gBAAoB,KAAW,CAAEhmO,KAAM,MAAcuP,MAAOiF,gBAAiB,MAA6B44C,aAAcub,cAAe,MAA2BxoD,OAAQtR,OAAQ,KAAgBN,SAC9L,gBAAoBk3N,GAAY,CAAE10B,OAAQA,GACtC,gBAAoB,KAAM,CAAEv2L,MAAO,KAAUgX,QAASriB,WAAY,EAAAC,eAAe6V,cAAgBphB,IACrG,gBAAoB,GAAY,CAAEktM,OAAQA,EAAQxjM,QAAS,QAASq+I,YAAY,MAAc,gBAAoB,GAAY,CAAEl+I,KAAM0tB,GAC1I,gBAAoB,KAAM,CAAE5gB,MAAO,KAAUgX,QAASriB,WAAY,EAAAC,eAAe6V,cAAgBphB,KACrG,gBAAoB,MAAO,KACvB,gBAAoB8hO,GAAuB,CAAExxM,GAAI6xM,EAAej1B,OAAQA,EAAQ,eAAgBA,EAAQ,kBAAmBg1B,GAAgBh1B,GAAW,gBAAoB2P,GAAM,CAAEn1F,SA3BpK,IA2BiMq1F,iBAAoC,oBAAXtmL,QACpO,gBAAoBsrM,GAA4B,MAAOE,GAAY,IAAI7rN,KAAKsjF,GAAU,gBAAoB,GAAY,CAAE7vF,KAAM6vF,EAAKniE,IAAK5e,IAAK+gF,EAAK15F,MAC9I,gBAAoB,KAAM,CAAE2W,MAAO,KAAUgX,QAASriB,WAAY,EAAAC,eAAe6V,cAAgBs4E,EAAK15F,aAAe,EAEzIgiO,GAAwB/5E,YAAc,0BAC/B,MAAMm6E,GAAuB70N,IAChC,MAAMi1L,GAAc,OAAej1L,GACnC,OAAQ,gBAAoBm0N,GAA2B1qN,OAAOC,OAAO,CAAC,EAAGurL,GAAcj1L,EAAMyd,SAAU,EAE3Go3M,GAAoBn6E,YAAc,sBCrClC,MAAMo6E,GAA4B39M,GAAU,IAAIA,EAAMnb,KAAKgU,eAAemH,EAAMnb,KAAK2B,iBAC/Eo3N,GAAwB,KAAOr1N,IAAIq1L,WAAW,CAAEr6C,YAAa,wBAAyBs6C,YAAa,cAAgB,gCAAiCh1L,GAAUA,EAAMmX,MAAMk0E,YAAYkwG,UAAU9sL,WAChMumN,GAAuB,KAAOt1N,IAAIq1L,WAAW,CAAEr6C,YAAa,uBAAwBs6C,YAAa,cAAgB,+CAAgDh1L,GAAUA,EAAMmX,MAAMnb,KAAK2B,4BAA6BqC,GAAUA,EAAMmX,MAAMnb,KAAK2B;KACtP,OAAc,QAASqC,GAAU80N,GAAyB90N,EAAMmX;KAC9DnX,GAAUA,EAAMmX,MAAMnb,KAAK2B;KAC3BqC,GAAUA,EAAMmX,MAAMnb,KAAK6rM;2BACP,OAAc,yBAAyB,KAAYxjM,+BAA8B,OAAc,OACnH,GAAa,KAAO3E,IAAIq1L,WAAW,CAAEr6C,YAAa,aAAcs6C,YAAa,aAAe,kCAAmCh1L,GAAUA,EAAMmX,MAAMnb,KAAK6rM,mBAAoB7nM,GAAUA,EAAMmX,MAAMk0E,YAAYu8G,UAAUn5L,WAAYzO,GAAUA,EAAMi1N,qBACxP,6BACmBj1N,EAAMi1N,sCACjBj1N,EAAMmX,MAAMk0E,YAAYkwG,UAAU9sL,4BAChCzO,EAAMmX,MAAMnb,KAAKgvB,kDAGzB,GAA6B,KAAOtrB,IAAIq1L,WAAW,CAAEr6C,YAAa,6BAA8Bs6C,YAAa,aAAe,oEAAqEh1L,GAAqC,QAA1BA,EAAMmX,MAAM0iL,UAAsB,WAAa,wCAAwC,OAAc,QAAS75L,GAAU80N,GAAyB90N,EAAMmX,WAC5V+9M,GAAmBl1N,IAC5B,MAAM,KAAE/D,EAAI,iBAAEkvM,EAAgB,QAAEphC,EAAO,SAAEtsJ,EAAQ,UAAEnP,EAAS,gBAAEwyL,EAAe,eAAEC,EAAc,oBAAEk0B,GAAyBj1N,EAClHi1L,GAAc,OAAej1L,GACnC,OAAQ,gBAAoB+0N,GAAuBtrN,OAAOC,OAAO,CAAE+wI,KAAM,SAAU,aAAcnsI,EAAW,kBAAmByyL,EAAgB,mBAAoBD,GAAmB7L,GAClL,gBAAoB,IAAe,CAAE99K,MAAO,SACxC,gBAAoB69M,GAAsB,KACtC,gBAAoB,IAAmB,CAAE1wN,IAAK,KAAYD,MAAQpI,GAAS,gBAAoB,GAAY,CAAEg5N,oBAAqBA,GAAuBh5N,IACzJwhB,EACA,gBAAoB,GAA4B,KAC5C,gBAAoB,KAAK,CAAE3hB,IAAK,SAAUG,KAAM,gBAAoB0E,EAAA,EAAO,CAAExE,QAAS,QAASq+I,YAAY,IAAS9+I,QAASquK,EAASh3K,KAAM,SAAUiJ,KAAM,QAASD,SAAU,OAAQuS,UAAW68L,OAAwB,E,eC7B9O,MAAMgqB,GAAO,EAAAlyM,SAAU,oEACjBmyM,GAAwB,KAAO11N,IAAIq1L,WAAW,CAAEr6C,YAAa,wBAAyBs6C,YAAa,aAAe,4CAA6Ch1L,GAAUA,EAAMmX,MAAMnb,KAAK0hL,sDAAsD,EAAG23C,mBAAqBA,EAAgB,QAAU,iFAAmFr1N,GAAUA,EAAMmX,MAAMk0E,YAAYkwG,UAAU9sL,+BAA+B0mN,gBAChcG,GAAiB,KAAOC,SAASxgC,WAAW,CAAEr6C,YAAa,iBAAkBs6C,YAAa,aAAe,sHAAuHh1L,GAAUA,EAAMmX,MAAMk0E,YAAYkwG,UAAUljL,kDAAmDrY,GAAUA,EAAMmX,MAAMk0E,YAAYkwG,UAAU9sL,4EAA6EzO,GAAUA,EAAMmX,MAAMk0E,YAAYkwG,UAAU9sL,qHAC7d+mN,GAAYx1N,GAAW,gBAAoBo1N,GAAuB,CAAEC,cAAsC,iBAAhBr1N,EAAMiC,OACzG,gBAAoBqzN,GAAgB,CAAEnxN,IAAK,EAAGlC,MAAOjC,EAAMiC,OAASjC,EAAMiC,Q,eCJ9E,MAAMwzN,GAAuB,KAAO31N,OAAOi1L,WAAW,CAAEr6C,YAAa,uBAAwBs6C,YAAa,aAAe,sJAAsJ,EAAG79K,QAAOhb,aAA0B,YAAZA,GAAyB,IAAI,qDAAqDgb,EAAMohL,gBAAgBm9B,UAAUC,OAAOjrN,eAAe,EAAGyM,QAAOhb,aAA0B,UAAZA,GAAuB,IAAI,mDAAmDgb,EAAMohL,gBAAgBr7I,UAAUy4K,OAAOjrN,qBAAqB,EAAGyM,WAAYA,EAAMy+M,eAAe9E,UAAUriN,sBAAsB,EAAG0I,WAAYA,EAAMy+M,eAAeh6K,gBAAgBntC,sCAAsC,EAAG0I,WAAYA,EAAMy+M,eAAeC,uCAAuC,EAAG1+M,WAAYA,EAAMy+M,eAAe9E,UAAUn+K,qBAAqB,EAAGx7B,WAAYA,EAAMy+M,eAAeh6K,gBAAgBjJ,wDAAwD,EAAGx7B,WAAYA,EAAMk0E,YAAYioE,UAAU7kJ,sBAAsB,EAAG0I,WAAYA,EAAMm/K,MAAMhhB,oBAAoB,EAAGn+J,WAAYA,EAAMm/K,MAAMC,4BACvmCu/B,GAAiB,cAAiB,CAAC91N,EAAOu6I,KACnD,MAAM,SAAE98H,EAAQ,QAAE/hB,EAAO,UAAE4S,EAAS,QAAEnS,EAAU,WAAc6D,EACxDi1L,GAAc,OAAej1L,GACnC,OAAQ,gBAAoBy1N,GAAsBhsN,OAAOC,OAAO,CAAEhO,QAASA,EAAS,aAAc4S,EAAWtF,IAAKuxI,EAAYp+I,QAASA,GAAW84L,GAAcx3K,EAAU,IAE9Kq4M,GAAep7E,YAAc,iBACtB,MAAMq7E,GAA2B,cAAiB,CAAC/1N,EAAOu6I,KAC7D,MAAM,SAAE98H,EAAQ,QAAE/hB,EAAO,UAAE4S,EAAS,QAAEnS,EAAU,WAAc6D,EACxDi1L,GAAc,OAAej1L,GACnC,OAAQ,gBAAoBy1N,GAAsBhsN,OAAOC,OAAO,CAAEhO,QAASA,EAAS,aAAc4S,EAAWtF,IAAKuxI,EAAYp+I,QAASA,EAAS,iBAAkB,8BAAgC84L,GAAcx3K,EAAU,I,uOAE9Ns4M,GAAyBr7E,YAAc,2B,gCC8JjCs7E,GAA4B,CAChC,kBACA,oBACA,eACA,YACA,WACA,cACA,cACA,UACA,YACA,UACA,UACA,kBACA,cACA,cACA,UACA,aACA,cACA,aACA,iBACA,aACA,cACA,WACA,YACA,YACA,UACA,eACA,cACA,YACA,aACA,YACA,aACA,aACA,WACA,UACA,aACA,SACA,UACA,SACA,WACA,UACAlvK,QACA,CAAC0S,EAAKzQ,KACJyQ,EAAIzQ,EAAEljD,eAAiBkjD,EAChByQ,IAET,CAAEy8J,IAAK,YAGHC,GAAsB,CAC1BC,IAAK,IACLC,KAAM,IACNC,GAAI,IACJC,GAAI,IACJC,KAAM,IACNC,KAAM,KAGFC,GAA+B,CAAC,QAAS,UAkCzCC,GACJ,+GAIIC,GAA0B,WAC1BC,GAAc,UACdC,GAAe,oCACfC,GAAmC,WACnCC,GAAe,WACfC,GAAmB,kCACnBC,GACJ,qEACIC,GAAe,kCACfC,GAAgB,mCAChBC,GAAwB,eACxBC,GAAe,SACfC,GAAa,wBACbC,GAAuB,iBACvBC,GAAa,MACbC,GAAa,kBACbC,GAAY,mDACZC,GACJ,mDACIC,GAAmB,sCAwBnBC,GACJ,wHAEIC,GAAmB,iDAEnBC,GAAiB,uBAKjBC,GAAqB,oCAErBC,GACJ,wEACIC,GAAkB,WAClBC,GAA2B,uCAC3BC,GAAyB,qBACzBC,GAAkB,uBAClBC,GAA8B,cAC9BC,GAAa,4DAEbC,GAA0B,gDAC1BC,GAAoB,+BACpBC,GAAmB,8BACnBC,GAAoB,WACpBC,GAA2B,qCAC3BC,GAAQ,MACRC,GAAoB,UACpBC,GAAmB,iBACnBC,GAAsB,MACtBC,GAAqB,aACrBC,GAAmB,YACnBC,GAAoB,YAEpBC,GACJ,oFACIC,GACJ,mFACIC,GAAgB,kDAChBC,GAAyB,kDAEzBC,GAAiB,sBACjBC,GACJ,6EAEIC,GAAyB,OAEzBC,GAA0B,YAE1BC,GAAiB,aAMjBC,GAAkB,SAClBC,GAAoB,gBAGpBC,GAAsB,cACtBC,GAAwB,YAE9B,SAASC,GAAuBlnO,GAC9B,MACE,SAZuB,IAatBA,EAAmBgnO,GAAsBC,IAC1C,KAEJ,CAIA,MAAME,GAA2BD,GApBN,GAqBrBE,GAA6BF,GApBN,GAsB7B,SAASG,GAA4BrnO,GACnC,OAAO,IAAIgtB,OACT,KAzBuB,IA0BpBhtB,EAAmBmnO,GAA2BC,IAErD,CAEA,MAAME,GAA6BD,GA9BR,GA+BrBE,GAA+BF,GA9BR,GAgC7B,SAASG,GAAsBxnO,GAQ7B,OAAO,IAAIgtB,OACT,KA1CuB,IA2CpBhtB,EACGmnO,GACAC,IAHN,uBA1CuB,IAgDpBpnO,EAAmBgnO,GAAsBC,IAC1C,qBACF,KAEJ,CAEA,MAAMQ,GAAsBD,GAtDD,GAuDrBE,GAAwBF,GAtDD,GA0D7B,SAASG,GAAkB3nO,GACzB,MAAM4nO,EA5DmB,IA4DV5nO,EAAmBgnO,GAAsBC,GAExD,OAAO,IAAIj6M,OACT,SACE46M,EADF,oCAKEA,EACA,OACAA,EAPF,qBAaJ,CAEA,MAAMC,GAAiBF,GA9EI,GA+ErBG,GAAmBH,GA9EI,GAgF7B,SAASI,GAAiBjuI,EAAQ95F,GAChC,MAAMgoO,EAlFmB,IAkFThoO,EACVioO,EAASD,EAAUH,GAAiBC,GACpCI,EAAcF,EAAUP,GAAsBC,GAC9CS,EAAqBH,EACvBV,GACAC,GAEJ,MAAO,CACLa,CAAAA,CAAOvsH,EAAQ/zG,EAAOugO,GASpB,MAAMC,EAAgBvB,GAAkBxhM,KAAK8iM,GAG7C,OAAIC,IAFgBxgO,EAAMygO,IAAWzgO,EAAM0gO,IAAY1gO,EAAM2gO,GAKpDR,EAAO1iM,KAFds2E,EAASysH,EAAc,GAAKzsH,GAAAA,IAMhC,EACA6sH,EAAQC,GAASC,KACjBC,CAAAA,CAAOx3J,EAAS9oC,EAAOzgC,GACrB,MACMghC,EAAQk/L,GADC32J,EAAQ,UAEjBuwD,EAAQvwD,EAAQ,GAGnBpvE,QAAQ4hO,GAAa,MACrBj1N,MAAMs5N,GAET,IAAIY,GAAAA,EA+DJ,MAAO,CACLC,EA/DkBnnG,EAAM9rH,KAAI,SAAUsjF,EAAMv+F,GAE5C,MAAMmuO,EAAQb,EAAmB5iM,KAAK6zD,GAAM,GAAGtzF,OAIzCmjO,EAAa,IAAIj8M,OAAO,QAAUg8M,EAAQ,IAAK,MAG/CxnO,EAAU43F,EAEbn3F,QAAQgnO,EAAY,IAEpBhnO,QAAQkmO,EAAoB,IASzBe,EAAaruO,IAAM+mI,EAAM97H,OAAS,EASlCqjO,GAR8C,IAA7B3nO,EAAQogC,QAAQ,SASlBsnM,GAAcJ,EACnCA,EAAwBK,EAKxB,MAAMC,EAAiBthO,EAAM0gO,EACvBa,EAAevhO,EAAMygO,EAK3B,IAAIe,EAJJxhO,EAAMygO,GAAAA,EAKFY,GACFrhO,EAAM0gO,GAAAA,EACNc,EAAkB9nO,EAAQS,QAAQ6kO,GAAiB,UAEnDh/N,EAAM0gO,GAAAA,EACNc,EAAkB9nO,EAAQS,QAAQ6kO,GAAiB,KAGrD,MAAM3xM,EAASoT,EAAM+gM,EAAiBxhO,GAMtC,OAHAA,EAAM0gO,EAAUY,EAChBthO,EAAMygO,EAAQc,EAEPl0M,CACT,IAIEo0M,EAAUvB,EACVwB,EAAQ1gM,EAEZ,EACA2gM,EAAMA,CAACn5B,EAAMn1G,EAAQrzF,IAIjBgyF,EAHUw2G,EAAKi5B,EAAW,KAAO,MAG5BlxN,IAAKvQ,EAAM21C,EAAM3U,MAAOwnK,EAAKk5B,GAC/Bl5B,EAAKy4B,EAAOjzN,KAAI,SAA0BsjF,EAAMv+F,GAC/C,OAAOi/F,EAAAA,KAAAA,CAAIzhF,IAAKxd,GAAIsgG,EAAO/B,EAAMtxF,GACnC,KASV,CAEA,MAAM4hO,GAAS,2DACTC,GAAU,4DAEVC,GAA+B,CACnC9F,GACAI,GACAC,GACAQ,GACAE,GACAD,GACAI,GACAQ,GACAiC,GACAI,GACAH,GACAI,IAGI+B,GAAiB,IAClBD,GAlQe,yBAoQlB9E,GACAI,IAsBF,SAAS4E,GAAQtuH,GACf,OAAOA,EACJv5G,QAAQ,oBAAqB,KAC7BA,QAAQ,QAAS,KACjBA,QAAQ,QAAS,KACjBA,QAAQ,cAAe,KACvBA,QAAQ,cAAe,KACvBA,QAAQ,QAAS,KACjBA,QAAQ,kBAAmB,KAC3BA,QAAQ,cAAe,KACvBA,QAAQ,UAAW,KACnBA,QAAQ,gBAAiB,IACzBA,QAAQ,MAAO,KACf6Q,aACL,CAEA,SAASi3N,GAAuBC,GAC9B,OAAI5D,GAAkBn9M,KAAK+gN,GAClB,QACE9D,GAAmBj9M,KAAK+gN,GAC1B,SACE7D,GAAiBl9M,KAAK+gN,GACxB,WAIX,CAEA,SAASC,GACPpuH,EACAtzE,EACAzgC,GAEA,MAAMoiO,EAAcpiO,EAAMqiO,EAC1BriO,EAAMqiO,GAAAA,EACN,MAAMC,EAAW7hM,EAAMszE,EAAO9uF,OAAQjlB,GACtCA,EAAMqiO,EAAWD,EAEjB,IAAIG,EAAQ,CAAC,IAkBb,OAjBAD,EAASthK,SAAQ,SAAUwnI,EAAMz1M,GACb,mBAAdy1M,EAAKtwM,KAEG,IAANnF,GAAWA,IAAMuvO,EAAStkO,OAAS,GAErCukO,EAAMrrO,KAAK,KAIG,SAAdsxM,EAAKtwM,MACe,MAAnBoqO,EAASvvO,EAAI,IAAuC,mBAAzBuvO,EAASvvO,EAAI,GAAGmF,OAE5CswM,EAAKg6B,EAAWh6B,EAAKg6B,EAASroO,QAAQgkO,GAAqB,KAE7DoE,EAAMA,EAAMvkO,OAAS,GAAG9G,KAAKsxM,GAEjC,IACO+5B,CACT,CAoBA,SAASE,GACPl5J,EACA9oC,EACAzgC,GAEAA,EAAM0gO,GAAAA,EACN,MAAMzjG,EAASklG,GAAc54J,EAAQ,GAAI9oC,EAAOzgC,GAC1C0iO,EAAwBn5J,EAAQ,GAxBbpvE,QAAQ+jO,GAAkB,IAAInkO,MAAM,KAE5CiU,IAAIi0N,IAuBfM,EApBR,SACExuH,EACAtzE,EACAzgC,GAIA,OAFiB+zG,EAAO9uF,OAAOlrB,MAAM,MAErBiU,KAAI,SAAU20N,GAC5B,OAAOR,GAAcQ,EAASliM,EAAOzgC,EACvC,GACF,CAVA,CAoBgCupE,EAAQ,GAAI9oC,EAAOzgC,GAGjD,OAFAA,EAAM0gO,GAAAA,EAEC,CACLkC,EAAQF,EACRG,EAAQN,EACRO,EAAS7lG,EACT/kI,KAAM,QAEV,CAEA,SAAS6qO,GAAcv6B,EAAMw6B,GAC3B,OAAgC,MAAzBx6B,EAAKo6B,EAAOI,GACf,CAAC,EACD,CACE56N,UAAWogM,EAAKo6B,EAAOI,GAE/B,CAuKA,SAASC,GAAYllN,GACnB,OAAO,SAAeg2F,EAAQ/zG,GAC5B,OAAIA,EAAM0gO,EACD3iN,EAAM0f,KAAKs2E,GAAAA,IAItB,CACF,CAGA,SAASmvH,GAAkBnlN,GACzB,OAAO,SAAeg2F,EAAgB/zG,GACpC,OAAIA,EAAM0gO,GAAW1gO,EAAM2gO,EAClB5iN,EAAM0f,KAAKs2E,GAAAA,IAItB,CACF,CAGA,SAASovH,GAAWplN,GAClB,OAAO,SAAeg2F,EAAgB/zG,GACpC,OAAIA,EAAM0gO,GAAW1gO,EAAM2gO,EAAAA,KAGlB5iN,EAAM0f,KAAKs2E,EAEtB,CACF,CAGA,SAASqvH,GAAcrlN,GACrB,OAAO,SAAeg2F,GACpB,OAAOh2F,EAAM0f,KAAKs2E,EACpB,CACF,CAEA,SAASsvH,GACPtvH,EACA/zG,EACAsjO,GAEA,GAAItjO,EAAM0gO,GAAW1gO,EAAM2gO,EACzB,OAAO,KAGT,GAAI2C,IAAuBA,EAAmBC,SAAS,MAErD,OAAO,KAGT,IAAIz8N,EAAQ,GAEZitG,EAAOh6G,MAAM,MAAMw2G,OAAMoT,IAEnBm+G,GAA6B7gN,MAAKlD,GAASA,EAAMoD,KAAKwiG,OAG1D78G,GAAS68G,EAAO,KACTA,EAAK1+F,UAGd,MAAMu+M,EAAW18N,EAAM28N,UACvB,MAAgB,IAAZD,EAAAA,KAIG,CAAC18N,EAAO08N,EACjB,CAuCA,SAASE,GAAYv0M,GACnB,IAGE,GAFgBw0M,mBAAmBx0M,GAAKh1B,QAAQ,kBAAmB,IAEvD2M,MAAM,8CAQhB,MAAM,CAER,MAAOhG,GAWP,OAAO,IAAI,CAGb,OAAOquB,CACT,CAEA,SAASy0M,GAAYC,GACnB,OAAOA,EAAa1pO,QAAQ4kO,GAAgB,KAC9C,CAKA,SAAS+E,GACPrjM,EACA/mC,EACAsG,GAEA,MAAM+jO,EAAoB/jO,EAAM0gO,IAAAA,EAC1BsD,EAAoBhkO,EAAM2gO,IAAAA,EAChC3gO,EAAM0gO,GAAAA,EACN1gO,EAAM2gO,GAAAA,EACN,MAAMtzM,EAASoT,EAAM/mC,EAASsG,GAG9B,OAFAA,EAAM0gO,EAAUqD,EAChB/jO,EAAM2gO,EAAUqD,EACT32M,CACT,CAKA,SAAS42M,GACPxjM,EACA/mC,EACAsG,GAEA,MAAM+jO,EAAoB/jO,EAAM0gO,IAAAA,EAC1BsD,EAAoBhkO,EAAM2gO,IAAAA,EAChC3gO,EAAM0gO,GAAAA,EACN1gO,EAAM2gO,GAAAA,EACN,MAAMtzM,EAASoT,EAAM/mC,EAASsG,GAG9B,OAFAA,EAAM0gO,EAAUqD,EAChB/jO,EAAM2gO,EAAUqD,EACT32M,CACT,CAEA,SAAS62M,GACPzjM,EACA/mC,EACAsG,GAGA,OADAA,EAAM0gO,GAAAA,EACCjgM,EAAM/mC,EAASsG,EACxB,CAEA,MAAMmkO,GAEFA,CAAC56J,EAAS9oC,EAAOzgC,KAAAA,CAEjBwiO,EAAUsB,GAAYrjM,EAAO8oC,EAAQ,GAAIvpE,KAI7C,SAASokO,KACP,MAAO,CAAC,CACV,CAEA,SAASC,KACP,OAAO,IACT,CAYA,SAAShsJ,MAAM3lD,GACb,OAAOA,EAAKvN,OAAOitF,SAAS19E,KAAK,IACnC,CAEA,SAASrgC,GAAIggB,EAAa4iG,EAAcqtH,GACtC,IAAIC,EAAMlwN,EACV,MAAMmwN,EAAQvtH,EAAKl9G,MAAM,KAEzB,KAAOyqO,EAAMxmO,SACXumO,EAAMA,EAAIC,EAAM,aAEZD,IACCC,EAAM9iD,QAGb,OAAO6iD,GAAOD,CAChB,CAaA,IAAKzD,GAAAA,GAAAA,SAuBW4D,GACdC,EACA3sO,EAAiC,CAAC,GAElCA,EAAQ4sO,UAAY5sO,EAAQ4sO,WAAa,CAAC,EAC1C5sO,EAAQiqO,QAAUjqO,EAAQiqO,SAAWA,GACrCjqO,EAAQsjO,oBAAsBtjO,EAAQsjO,oBAAmBx8J,GAAAA,CAAAA,EAChDw8J,GAAwBtjO,EAAQsjO,qBACrCA,GAEJ,MAAMuJ,EAAkB7sO,EAAQ8lE,eAAiB19D,EAAAA,cAIjD,SAAS6xF,EAEP/wF,EACAkE,KAIGyd,GAEH,MAAMiiN,EAAgBxwO,GAAI0D,EAAQ4sO,UAAU,GAAI1jO,UAAa,CAAC,GAE9D,OAAO2jO,EA3DX,SAAgB3jO,EAAa0jO,GAC3B,MAAMG,EAAWzwO,GAAIswO,EAAW1jO,GAEhC,OAAK6jO,EAEsB,mBAAbA,GACS,iBAAbA,GAAyB,WAAYA,EAC3CA,EACAzwO,GAAIswO,EAAAA,GAAc1jO,cAAiBA,GALjBA,CAMxB,CATA,CA4DaA,EAAKlJ,EAAQ4sO,WAAU9lK,GAAAA,CAAAA,EAEzB15D,EACA0/N,EAAAA,CACHh9N,UAAWwwE,GAAAA,MAAGlzE,OAAAA,EAAAA,EAAO0C,UAAWg9N,EAAch9N,iBAAAA,OAE7C+a,EAEP,CAEA,SAASmiN,EAAQ/jN,GACf,IAAI0/M,GAAAA,EAEA3oO,EAAQitO,YACVtE,GAAAA,EACU3oO,EAAQktO,aAKlBvE,GAAAA,IAAU3C,GAAyB58M,KAAKH,IAG1C,MAAM8wC,EAAMozK,EACV15L,EACEk1L,EACI1/M,EAAAA,GACGA,EAAMyiN,UAAUtpO,QAAQ0kO,GAAwB,UACvD,CACE6B,EAAAA,KAKN,KACiC,iBAAxB5uK,EAAIA,EAAI9zD,OAAS,KACvB8zD,EAAIA,EAAI9zD,OAAS,GAAGinB,QAErB6sC,EAAIruB,MAGN,GAAwB,OAApB1rC,EAAQ03H,QACV,OAAO39D,EAGT,MAAM29D,EAAU13H,EAAQ03H,UAAYixG,EAAU,OAAS,OACvD,IAAIyE,EAEJ,GAAIrzK,EAAI9zD,OAAS,GAAKjG,EAAQqtO,aAC5BD,EAAMrzK,MAAAA,CAAAA,GACkB,IAAfA,EAAI9zD,OAIb,OAHAmnO,EAAMrzK,EAAI,GAGS,iBAARqzK,EACFnzI,EAAAA,OAAAA,CAAMzhF,IAAI,SAAS40N,GAEnBA,EAITA,EAAM,IAAI,CAGZ,OAAOhlO,EAAAA,cAAoBsvH,EAAS,CAAEl/G,IAAK,SAAW40N,EACxD,CAEA,SAASE,EAAgB3xH,GACvB,MAAMjwF,EAAaiwF,EAAI5sG,MAAM+0N,IAC7B,OAAKp4M,EAIEA,EAAWwoC,QAAO,SAAUj+C,EAAKs3N,EAAKp3N,GAC3C,MAAMq3N,EAAeD,EAAIxrM,QAAQ,KAEjC,IAAsB,IAAlByrM,EAAqB,CACvB,MAAMh1N,GAthBiBA,EAshBW+0N,EAAI55N,MAAM,EAAG65N,IAnhBhC,IAFDh1N,EAAIupB,QAAQ,MAE4B,OAAlCvpB,EAAIzJ,MAAMq2N,MAClC5sN,EAAMA,EAAIpW,QAAQsjO,IAA6B,SAAUnqM,EAAGkyM,GAC1D,OAAOA,EAAO/5N,aAChB,KAGK8E,GA6gB6D0U,OACxD7d,EA9oBd,SAAiBssG,GACf,MAAM4jC,EAAQ5jC,EAAI,GAClB,OACa,MAAV4jC,GAA2B,MAAVA,IAClB5jC,EAAI11G,QAAU,GACd01G,EAAIA,EAAI11G,OAAS,KAAOs5I,EAEjB5jC,EAAIhoG,MAAM,GAAI,GAEhBgoG,CACT,CAVA,CA8oB8B4xH,EAAI55N,MAAM65N,EAAe,GAAGtgN,QAE5CwgN,EAAYtK,GAA0B5qN,IAAQA,EAC9Cm1N,EAAmB13N,EAAIy3N,GA9gBrC,SACEl1N,EACAnJ,GAEA,MAAY,UAARmJ,EACKnJ,EAAMrN,MAAM,QAAQkyD,QAAO,SAAUwjB,EAAQk2J,GAClD,MAAMp1N,EAAMo1N,EAAOj6N,MAAM,EAAGi6N,EAAO7rM,QAAQ,MAW3C,OAFA21C,EALsBl/D,EAAIpW,QAAQ,aAAaw5G,GAC7CA,EAAO,GAAGloG,iBAIYk6N,EAAOj6N,MAAM6E,EAAIvS,OAAS,GAAGinB,OAE9CwqD,CACT,GAAG,CAAC,GACa,SAARl/D,EACFmzN,GAAYt8N,IACVA,EAAMN,MAAMu2N,MAErBj2N,EAAQA,EAAMsE,MAAM,EAAGtE,EAAMpJ,OAAS,IAG1B,SAAVoJ,GAEiB,UAAVA,GAIJA,EACT,CAjCA,CA+gBUmJ,EACAnJ,GAI2B,iBAApBs+N,IACN1I,GAAqB77M,KAAKukN,IACzBtI,GAA4Bj8M,KAAKukN,MAEnC13N,EAAIy3N,GAAatlO,EAAAA,aAAmB4kO,EAAQW,EAAgBzgN,QAAS,CACnE1U,IAAKrC,IAAAA,KAGQ,UAARo3N,IACTt3N,EAAImtN,GAA0BmK,IAAQA,IAAAA,GAziB9C,IAA+B/0N,EA4iBzB,OAAOvC,CACT,GAAG,CAAC,GAAD,IACL,CAuBA,MAAM43N,EAA0D,GAC1D5iB,EAA+D,CAAC,EAMhE6iB,EAA6B,CACjCC,WAAY,CACVxF,EAAQ6C,GAAWnH,IACnB4E,EAAQC,GAASC,KACjBC,EAAMA,CAACx3J,EAAS9oC,EAAOzgC,KAAAA,CAEnBwiO,EAAU/hM,EACR8oC,EAAQ,GAAGpvE,QAAQ8hO,GAAkC,IACrDj8N,KAIN2hO,EAAMA,CAACn5B,EAAMn1G,EAAQrzF,IAEjBgyF,EAAAA,aAAAA,CAAYzhF,IAAKvQ,EAAM21C,GACpB09C,EAAOm1G,EAAKg6B,EAAUxiO,KAM/B+lO,UAAW,CACTzF,EAAQ8C,GAAclH,IACtB0E,EAAQC,GAASC,KACjBC,EAAQqD,GACRzC,EAAMA,CAACruM,EAAG0yM,EAAIhmO,IACLgyF,EAAAA,KAAAA,CAAIzhF,IAAKvQ,EAAM21C,KAI1BswL,cAAe,CACb3F,EAAQ6C,GAAWhH,IACnByE,EAAQC,GAASC,KACjBC,EAAQqD,GACRzC,EAAMA,CAACruM,EAAG0yM,EAAIhmO,IACLgyF,EAAAA,KAAAA,CAAIzhF,IAAKvQ,EAAM21C,KAI1BuwL,UAAW,CACT5F,EAAQ6C,GAAW9G,IACnBuE,EAAQC,GAASsF,IACjBpF,EAAOx3J,IAAAA,CAEHi5J,EAAUj5J,EAAQ,GAAGpvE,QAAQ,UAAW,IAAIA,QAAQ,OAAQ,IAC5DisO,OAAAA,IAIJzE,EAAMA,CAACn5B,EAAMn1G,EAAQrzF,IAEjBgyF,EAAAA,MAAAA,CAAKzhF,IAAKvQ,EAAM21C,GACdq8C,EAAAA,OAAAA,GAAAA,CAAAA,EACMw2G,EAAK69B,EAAAA,CACTx+N,UAAW2gM,EAAK49B,EAAAA,QAAgB59B,EAAK49B,IAAU,KAE9C59B,EAAKg6B,KAWhB8D,WAAY,CACVhG,EAAQ6C,GAAW/G,IACnBwE,EAAQC,GAASsF,IACjBpF,EAAOx3J,IAAAA,CAGH88J,EAAQhB,EAAgB97J,EAAQ,IAAM,IACtCi5J,EAAUj5J,EAAQ,GAClB68J,EAAO78J,EAAQ,WACfrxE,KAAM,eAKZquO,WAAY,CACVjG,EAAQ4C,GAAkB5G,IAC1BsE,EAAQC,GAAS2F,IACjBzF,EAAOx3J,IAAAA,CAEHi5J,EAAUj5J,EAAQ,KAGtBo4J,EAAMA,CAACn5B,EAAMn1G,EAAQrzF,IACZgyF,EAAAA,OAAAA,CAAMzhF,IAAKvQ,EAAM21C,GAAO6yJ,EAAKg6B,IAOxCiE,SAAU,CACRnG,EAAQ6C,GAAW1G,IACnBmE,EAAQC,GAASsF,IACjBpF,EAAOx3J,IACLq8J,EAAU1uO,KAAK,CACbwvO,EAAWn9J,EAAQ,GACnBo9J,EAAap9J,EAAQ,KAGhB,CAAC,GAEVo4J,EAAQ0C,IAGVuC,kBAAmB,CACjBtG,EAAQ2C,GAAYvG,IACpBkE,EAAQC,GAASC,KACjBC,EAAOx3J,IAAAA,CAEHi5J,EAAUj5J,EAAQ,GAClBs9J,EAAAA,IAAa9uO,EAAQiqO,QAAQz4J,EAAQ,QAGzCo4J,EAAMA,CAACn5B,EAAMn1G,EAAQrzF,IAEjBgyF,EAAAA,IAAAA,CAAGzhF,IAAKvQ,EAAM21C,EAAMl0C,KAAMiiO,GAAYl7B,EAAKq+B,IACzC70I,EAAAA,MAAAA,CAAKzhF,IAAKvQ,EAAM21C,GAAO6yJ,EAAKg6B,KAMpCsE,QAAS,CACPxG,EAAQ2C,GAAYrG,IACpBgE,EAAQC,GAASC,KACjBC,EAAOx3J,IAAAA,CAEHw9J,EAAyC,MAA7Bx9J,EAAQ,GAAGv+D,gBAG3B22N,EAAMA,CAACn5B,EAAMn1G,EAAQrzF,IAEjBgyF,EAAAA,QAAAA,CACE9tE,QAASskL,EAAKu+B,EACdx2N,IAAKvQ,EAAM21C,EACXqxL,UAAAA,EACA9uO,KAAK,cAMb+uO,QAAS,CACP3G,EAAQ6C,GACNprO,EAAQmvO,mBAAqBpK,GAA0BD,IAEzD+D,EAAQC,GAASC,KACjBC,EAAMA,CAACx3J,EAAS9oC,EAAOzgC,KAAAA,CAEnBwiO,EAAUsB,GAAYrjM,EAAO8oC,EAAQ,GAAIvpE,GACzCmnO,EAAKpvO,EAAQiqO,QAAQz4J,EAAQ,IAC7BqyC,EAAQryC,EAAQ,GAAGvrE,SAGvB2jO,EAAMA,CAACn5B,EAAMn1G,EAAQrzF,IACZgyF,EAAAA,IACDw2G,EAAK5sF,IACT,CAAE1zF,GAAIsgL,EAAK2+B,EAAK52N,IAAKvQ,EAAM21C,GAC3B09C,EAAOm1G,EAAKg6B,EAAUxiO,KAU5BonO,cAAe,CACb9G,EAAQ6C,GAAWpG,IACnB6D,EAAQC,GAASsF,IACjBpF,EAAMA,CAACx3J,EAAS9oC,EAAOzgC,KAAAA,CAEnBwiO,EAAUsB,GAAYrjM,EAAO8oC,EAAQ,GAAIvpE,GACzC47G,EAAuB,MAAfryC,EAAQ,GAAa,EAAI,EACjCrxE,KAAM,aAKZmvO,YAAa,CACX/G,EAAQ8C,GAAclG,IACtB0D,EAAQC,GAASC,KACjBC,EAAMA,KAAAA,CACK,GAEXY,EAAQ0C,IAGV5zM,MAAO,CACL6vM,EAAQ4C,GAAkBrB,IAC1BjB,EAAQC,GAASC,KACjBC,EAAOx3J,IAAAA,CAEH+9J,EAAM/9J,EAAQ,GACds9J,EAASjD,GAAYr6J,EAAQ,IAC7Bg+J,EAAQh+J,EAAQ,KAGpBo4J,EAAMA,CAACn5B,EAAMn1G,EAAQrzF,IAEjBgyF,EAAAA,MAAAA,CACEzhF,IAAKvQ,EAAM21C,EACXrhC,IAAKk0L,EAAK8+B,QAAAA,EACVv+N,MAAOy/L,EAAK++B,QAAAA,EACZlzN,IAAKqvN,GAAYl7B,EAAKq+B,MAU9BlmI,KAAM,CACJ2/H,EAAQ2C,GAAYrB,IACpBhB,EAAQC,GAAS2F,IACjBzF,EAAMA,CAACx3J,EAAS9oC,EAAOzgC,KAAAA,CAEnBwiO,EAAUyB,GAAkBxjM,EAAO8oC,EAAQ,GAAIvpE,GAC/C6mO,EAASjD,GAAYr6J,EAAQ,IAC7Bg+J,EAAQh+J,EAAQ,KAGpBo4J,EAAMA,CAACn5B,EAAMn1G,EAAQrzF,IAEjBgyF,EAAAA,IAAAA,CACEzhF,IAAKvQ,EAAM21C,EACXl0C,KAAMiiO,GAAYl7B,EAAKq+B,GACvB99N,MAAOy/L,EAAK++B,GAEXl0I,EAAOm1G,EAAKg6B,EAAUxiO,KAW/BwnO,4BAA6B,CAC3BlH,EAAQ2C,GAAYzF,IACpBoD,EAAQC,GAASsF,IACjBpF,EAAOx3J,IAAAA,CAEHi5J,EAAU,CACR,CACEA,EAAUj5J,EAAQ,GAClBrxE,KAAM,SAGV2uO,EAASt9J,EAAQ,GACjBrxE,KAAM,UAKZuvO,oBAAqB,CACnBnH,EAAQA,CAACvsH,EAAQ/zG,IACXA,EAAM0nO,EAAAA,KAGHzE,GAAY3F,GAAZ2F,CAAsClvH,EAAQ/zG,GAEvD4gO,EAAQC,GAASsF,IACjBpF,EAAOx3J,IAAAA,CAEHi5J,EAAU,CACR,CACEA,EAAUj5J,EAAQ,GAClBrxE,KAAM,SAGV2uO,EAASt9J,EAAQ,GACjBg+J,OAAAA,EACArvO,KAAM,UAKZyvO,mBAAoB,CAClBrH,EAAQ2C,GAAY1F,IACpBqD,EAAQC,GAASsF,IACjBpF,CAAAA,CAAOx3J,GACL,IAAI5wB,EAAU4wB,EAAQ,GAClB9hE,EAAS8hE,EAAQ,GAOrB,OAJKuyJ,GAAwB36M,KAAK1Z,KAChCA,EAAS,UAAYA,GAGhB,CACL+6N,EAAU,CACR,CACEA,EAAU7pL,EAAQx+C,QAAQ,UAAW,IACrCjC,KAAM,SAGV2uO,EAASp/N,EACTvP,KAAM,OAEV,GAGF0vO,YAAa3H,GAAiBjuI,EA3uCP,GA4uCvB61I,cAAe5H,GAAiBjuI,EA3uCP,GA6uCzB81I,iBAAkB,CAChBxH,EAAQ6C,GAAW5G,IACnBqE,EAAQC,GAAS2F,IACjBzF,EAAQqD,GACRzC,EAAMA,IACG,MAIXoG,UAAW,CACTzH,EAAQ+C,GACRzC,EAAQC,GAAS2F,IACjBzF,EAAQoD,GACRxC,EAAMA,CAACn5B,EAAMn1G,EAAQrzF,IACZgyF,EAAAA,IAAAA,CAAGzhF,IAAKvQ,EAAM21C,GAAO09C,EAAOm1G,EAAKg6B,EAAUxiO,KAItDmO,IAAK,CACHmyN,EAAQ2C,GAAYtF,IACpBiD,EAAQC,GAASsF,IACjBpF,EAAOx3J,IACLy5I,EAAKz5I,EAAQ,IAAM,CACjBs9J,EAASt9J,EAAQ,GACjBg+J,EAAQh+J,EAAQ,IAGX,CAAC,GAEVo4J,EAAQ0C,IAGV2D,SAAU,CACR1H,EAAQ4C,GAAkBtF,IAC1BgD,EAAQC,GAASsF,IACjBpF,EAAOx3J,IAAAA,CAEH+9J,EAAM/9J,EAAQ,WACdj2E,EAAMi2E,EAAQ,KAGlBo4J,EAAMA,CAACn5B,EAAMn1G,EAAQrzF,IAEjBgyF,EAAAA,MAAAA,CACEzhF,IAAKvQ,EAAM21C,EACXrhC,IAAKk0L,EAAK8+B,EACVjzN,IAAKqvN,GAAY1gB,EAAKxa,EAAKl1M,GAAMuzO,GACjC99N,MAAOi6M,EAAKxa,EAAKl1M,GAAMi0O,KAM/BU,QAAS,CACP3H,EAAQ2C,GAAYpF,IACpB+C,EAAQC,GAASsF,IACjBpF,EAAMA,CAACx3J,EAAS9oC,EAAOzgC,KAAAA,CAEnBwiO,EAAU/hM,EAAM8oC,EAAQ,GAAIvpE,GAC5BkoO,EAAkBznM,EAChB8oC,EAAQ,GAAGpvE,QAAQ2jO,GAAmB,QACtC99N,GAEF1M,EAAMi2E,EAAQ,KAGlBo4J,EAAMA,CAACn5B,EAAMn1G,EAAQrzF,IACZgjN,EAAKxa,EAAKl1M,GACf0+F,EAAAA,IAAAA,CACEzhF,IAAKvQ,EAAM21C,EACXl0C,KAAMiiO,GAAY1gB,EAAKxa,EAAKl1M,GAAMuzO,GAClC99N,MAAOi6M,EAAKxa,EAAKl1M,GAAMi0O,GAEtBl0I,EAAOm1G,EAAKg6B,EAAUxiO,IAGzBgyF,EAAAA,OAAAA,CAAMzhF,IAAKvQ,EAAM21C,GAAO09C,EAAOm1G,EAAK0/B,EAAkBloO,KAS5DmoO,MAAO,CACL7H,EAAQ6C,GAAWzF,IACnBkD,EAAQC,GAASC,KACjBC,EAAQ0B,GACRd,EAAMA,CAACn5B,EAAMn1G,EAAQrzF,IAEjBgyF,EAAAA,QAAAA,CAAOzhF,IAAKvQ,EAAM21C,GAChBq8C,EAAAA,QAAAA,KACEA,EAAAA,KAAAA,KACGw2G,EAAKs6B,EAAQ90N,KAAI,SAA4BtU,EAAS3G,GACrD,OACEi/F,EAAAA,KAAAA,CAAIzhF,IAAKxd,EAAGoW,MAAO45N,GAAcv6B,EAAMz1M,IACpCsgG,EAAO35F,EAASsG,GAGvB,MAIJgyF,EAAAA,QAAAA,KACGw2G,EAAKq6B,EAAO70N,KAAI,SAA0B4gJ,EAAK77J,GAC9C,OACEi/F,EAAAA,KAAAA,CAAIzhF,IAAKxd,GACN67J,EAAI5gJ,KAAI,SAA2BtU,EAASinB,GAC3C,OACEqxE,EAAAA,KAAAA,CAAIzhF,IAAKoQ,EAAGxX,MAAO45N,GAAcv6B,EAAM7nL,IACpC0yE,EAAO35F,EAASsG,GAGvB,IAGN,OAOVooO,eAAgB,CACd9H,EAAQ,SAAUvsH,EAAQ/zG,GACxB,OAAKA,EAAMqiO,GAGXriO,EAAM0gO,GAAAA,EACCzC,GAAkBxgM,KAAKs2E,IAAAA,IAChC,EACA6sH,EAAQC,GAASC,KACjBC,EAAQ,WACN,MAAO,CAAE7oO,KAAM,iBACjB,EAEAypO,EAAMA,IACG,OAIXpnO,KAAM,CAKJ+lO,EAAQ8C,GAAcxE,IACtBgC,EAAQC,GAASwH,IACjBtH,EAAOx3J,IAAAA,CAEHi5J,EAAUj5J,EAAQ,GAEfpvE,QAAQ8iO,IAAkB,CAACqL,EAAM1+G,IACzB7xH,EAAQsjO,oBAAoBzxG,GAC/B7xH,EAAQsjO,oBAAoBzxG,GAC5B0+G,MAIZ3G,EAAOn5B,GACEA,EAAKg6B,GAIhB+F,WAAY,CACVjI,EAAQ4C,GAAkB3E,IAC1BqC,EAAQC,GAAS2H,IACjBzH,EAAMA,CAACx3J,EAAS9oC,EAAOzgC,KAAAA,CAInBwiO,EAAU/hM,EAAM8oC,EAAQ,GAAIvpE,KAGhC2hO,EAAMA,CAACn5B,EAAMn1G,EAAQrzF,IACZgyF,EAAAA,SAAAA,CAAQzhF,IAAKvQ,EAAM21C,GAAO09C,EAAOm1G,EAAKg6B,EAAUxiO,KAI3DyoO,eAAgB,CACdnI,EAAQ4C,GAAkB1E,IAC1BoC,EAAQC,GAAS2F,IACjBzF,EAAMA,CAACx3J,EAAS9oC,EAAOzgC,KAAAA,CAInBwiO,EAAU/hM,EAAM8oC,EAAQ,GAAIvpE,KAGhC2hO,EAAMA,CAACn5B,EAAMn1G,EAAQrzF,IACZgyF,EAAAA,KAAAA,CAAIzhF,IAAKvQ,EAAM21C,GAAO09C,EAAOm1G,EAAKg6B,EAAUxiO,KAIvD0oO,YAAa,CAKXpI,EAAQ4C,GAAkBvE,IAC1BiC,EAAQC,GAASC,KACjBC,EAAOx3J,IAAAA,CAEHi5J,EAAUj5J,EAAQ,GAClBrxE,KAAM,UAKZywO,WAAY,CACVrI,EAAQ4C,GAAkBzE,IAC1BmC,EAAQC,GAAS2F,IACjBzF,EAAQoD,GACRxC,EAAMA,CAACn5B,EAAMn1G,EAAQrzF,IACZgyF,EAAAA,OAAAA,CAAMzhF,IAAKvQ,EAAM21C,GAAO09C,EAAOm1G,EAAKg6B,EAAUxiO,KAIzD4oO,oBAAqB,CACnBtI,EAAQ4C,GAAkBxE,IAC1BkC,EAAQC,GAAS2F,IACjBzF,EAAQoD,GACRxC,EAAMA,CAACn5B,EAAMn1G,EAAQrzF,IACZgyF,EAAAA,MAAAA,CAAKzhF,IAAKvQ,EAAM21C,GAAO09C,EAAOm1G,EAAKg6B,EAAUxiO,OAAAA,IAmCtDjI,EAAQ8wO,wBACVhD,EAAMiD,UAAY,CAIhBxI,EAAQ8C,GAAcpG,IACtB4D,EAAQC,GAASC,KACjBC,CAAAA,CAAOx3J,EAAS9oC,EAAOzgC,GACrB,OAAS+oO,GAAcx/J,EAAQ,GAAGziE,MAAMg4N,IAClCkK,EAAU,IAAI9jN,OAAO,IAAI6jN,IAAc,MACvCE,EAAU1/J,EAAQ,GAAGpvE,QAAQ6uO,EAAS,IAEtCE,GArxCeloN,EAqxCiBioN,EApxCrClH,GAAe9gN,MAAKyyC,GAAKA,EAAEvyC,KAAKH,KAqxC7BkjN,GACAJ,IAvxCZ,IAA6B9iN,EAyxCrB,MAAMmyF,EAAU5pC,EAAQ,GAAGv+D,cACrBm+N,GAC+C,IAAnDvN,GAA6B9hM,QAAQq5E,GAEvCnzG,EAAM0nO,EAAY1nO,EAAM0nO,GAAyB,MAAZv0H,EAMrC,MAAMz5G,EAAUyvO,EACZ5/J,EAAQ,GACR2/J,EAAUzoM,EAAOwoM,EAASjpO,GAI9B,OAFAA,EAAM0nO,GAAAA,EAEC,CACLrB,EAAQhB,EAAgB97J,EAAQ,IAChCi5J,EAAU9oO,EACV0vO,EAAeD,EACfE,EAAMF,EAAeh2H,EAAU5pC,EAAQ,GAE3C,EACAo4J,EAAMA,CAACn5B,EAAMn1G,EAAQrzF,IAGjBgyF,EAACw2G,EAAK6gC,EAAIxqK,GAAAA,CAACtuD,IAAKvQ,EAAM21C,GAAU6yJ,EAAK69B,GAClC79B,EAAK4gC,EACD5gC,EAAKg6B,EACNnvI,EAAOm1G,EAAKg6B,EAAwCxiO,KAWhE6lO,EAAMyD,gBAAkB,CAItBhJ,EAAQ8C,GAAchG,IACtBwD,EAAQC,GAASC,KACjBC,EAAOx3J,IAAAA,CAEH88J,EAAQhB,EAAgB97J,EAAQ,IAAM,IACtC8/J,EAAM9/J,EAAQ,KAGlBo4J,EAAMA,CAACn5B,EAAMn1G,EAAQrzF,IACZgyF,EAACw2G,EAAK6gC,EAAIxqK,GAAAA,CAAAA,EAAK2pI,EAAK69B,EAAAA,CAAQ91N,IAAKvQ,EAAM21C,OAQpD,MAAMnK,EAjpCR,SACEq6L,GAOA,IAAI0D,EAAW36N,OAAO6lB,KAAKoxM,GAiC3B,SAAS2D,EACPz1H,EACA/zG,GAEA,IAAIqtB,EAAS,GAMTkzM,EAAc,GAClB,KAAOxsH,GAAQ,CACb,IAAIhhH,EAAI,EACR,KAAOA,EAAIw2O,EAASvrO,QAAQ,CAC1B,MAAMyrO,EAAWF,EAASx2O,GACpB22O,EAAO7D,EAAM4D,GACblgK,EAAUmgK,EAAKpJ,EAAOvsH,EAAQ/zG,EAAOugO,GAE3C,GAAIh3J,EAAS,CACX,MAAMogK,EAAoBpgK,EAAQ,GAClCwqC,EAASA,EAAO/zE,UAAU2pM,EAAkB3rO,QAC5C,MAAM4rO,EAASF,EAAK3I,EAAOx3J,EAASigK,EAAaxpO,GAM9B,MAAf4pO,EAAO1xO,OACT0xO,EAAO1xO,KAAOuxO,GAGhBp8M,EAAOn2B,KAAK0yO,GAEZrJ,EAAcoJ,EACd,KAAK,CAGP52O,GAAAA,CAAAA,CAIJ,OAAOs6B,CACT,CAEA,OA5DAk8M,EAAS3gN,MAAK,SAAUihN,EAAOC,GAC7B,IAAIC,EAASlE,EAAMgE,GAAOjJ,EACtBoJ,EAASnE,EAAMiE,GAAOlJ,EAG1B,OAAImJ,IAAWC,EACND,EAASC,EAGPH,EAAQC,GACT,GAIZ,aA8C2B/1H,EAAQ/zG,GACjC,OAAOwpO,EAhHX,SAA6Bz1H,GAC3B,OAAOA,EACJ55G,QAAQqiO,GAAc,MACtBriO,QAAQwiO,GAAY,IACpBxiO,QAAQ6jO,GAAO,OACpB,CALA,CAgH2CjqH,GAAS/zG,EAClD,CACF,CAxFA,CAipC2B6lO,GACnBX,GA12BYW,EA02B4BA,EA/+B9BoE,EAsIT,SACLC,EACAD,EACAjqO,GAEA,OAAO6lO,EAAMqE,EAAIhyO,MAAMypO,EAAOuI,EAAKD,EAAYjqO,EACjD,EAm2B8C6lO,SA9+B9BsE,EACdD,EACAlqO,EAA6B,CAAC,GAE9B,GAAI2yB,MAAMwT,QAAQ+jM,GAAM,CACtB,MAAME,EAASpqO,EAAM21C,EACftoB,EAAS,GAIf,IAAIg9M,GAAAA,EAEJ,IAAK,IAAIt3O,EAAI,EAAGA,EAAIm3O,EAAIlsO,OAAQjL,IAAK,CACnCiN,EAAM21C,EAAO5iD,EAEb,MAAMu3O,EAAUH,EAAkBD,EAAIn3O,GAAIiN,GACpCgyG,EAA8B,iBAAZs4H,EAEpBt4H,GAAYq4H,EACdh9M,EAAOA,EAAOrvB,OAAS,IAAMssO,EACR,OAAZA,GACTj9M,EAAOn2B,KAAKozO,GAGdD,EAAgBr4H,CAAAA,CAKlB,OAFAhyG,EAAM21C,EAAOy0L,EAEN/8M,CAAAA,CAGT,OAAO48M,EAAWC,EAAKC,EAAmBnqO,EAC5C,GAmGF,IAAoB6lO,EArIFoE,EAi/BhB,MAAM9E,EAAMJ,EAAQL,GAEpB,OAAIkB,EAAU5nO,OAEVg0F,EAAAA,MAAAA,KACGmzI,EACDnzI,EAAAA,SAAAA,CAAQzhF,IAAI,UACTq1N,EAAU53N,KAAI,SAAwBu8N,GACrC,OACEv4I,EAAAA,MAAAA,CAAK9pE,GAAInwB,EAAQiqO,QAAQuI,EAAI5D,GAAcp2N,IAAKg6N,EAAI5D,GACjD4D,EAAI5D,EACJzB,EAAQ15L,EAAO++L,EAAI7D,EAAW,CAAEhG,GAAAA,KAGvC,MAMDyE,CACT,EA11BKtE,GAAAA,KAAAA,GAAAA,CAAAA,IAIHA,GAAAA,IAAAA,GAAAA,MAIAA,GAAAA,GAAAA,KAAAA,GAAAA,OAIAA,GAAAA,GAAAA,IAAAA,GAAAA,MAIAA,GAAAA,GAAAA,IAAAA,GAAAA,MAIAA,GAAAA,GAAAA,IAAAA,GAAAA,MApBGA,IAAAA,GAo2BAvtO,IAAAA,IAACsvB,SAAEA,EAAQ7qB,QAAEA,GAAmBzE,EAAP6R,EAAAA,SAAAA,EAAAA,GAAAA,GAAAA,MAAAA,EAAAA,MAAAA,CAAAA,EAAAA,IAAAA,EAAAA,EAAAA,EAAAA,CAAAA,EAAAA,EAAAA,OAAAA,KAAAA,GAAAA,IAAAA,EAAAA,EAAAA,EAAAA,EAAAA,OAAAA,IAAAA,EAAAA,QAAAA,EAAAA,EAAAA,KAAAA,IAAAA,EAAAA,GAAAA,EAAAA,IAAAA,OAAAA,CAAAA,CAAAA,CAAK7R,EAAAywE,IAKjC,OAAO5jE,EAAAA,aACLskO,GAAS7hN,EAAU7qB,GACnBoN,EAAgC,EC98DpC,MAAM,aAAEyqJ,GAAY,aAAE3+I,GAAY,aAAE+H,GAAY,aAAExE,GAAY,SAAE1H,IAAa,EAAA3J,gBACvE,IAAE0B,GAAG,GAAE2lO,GAAE,GAAEC,GAAE,GAAEt6B,GAAE,GAAEu6B,GAAE,OAAEC,GAAQr4M,EAAC,IAAK,EAAA6qK,QACrCytC,GAAkB,CACpB,IACA,IACA,KACA,MACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACA,KACA,KACA,IACA,OACA,SACA,MACA,MACA,QACA,QACA,QACA,KACA,KACA,KACA,IACA,MAEG,SAASC,GAAkB5lI,EAAW9/F,GACzC,MAAO,CAAE8/F,YAAW9/F,QACxB,CACO,MAAM2lO,GAAgB3lO,GAAW,gBAAoB,KAAKyJ,OAAOC,OAAO,CAAC,EAAG1J,EAAO,CAAE1D,KAAO0D,GAASA,EAAM1D,MAAS,IAAKR,IAAK,IAAKC,SAAU,cAC9I6pO,GAA4Bx8N,IAAU,CACxCi8N,GAAIK,GAAkB,KAAM,CAAE5pO,IAAKupO,GAAItnO,WAAY0sJ,GAAcrhJ,UACjEk8N,GAAII,GAAkB,KAAM,CAAE5pO,IAAKwpO,GAAIvnO,WAAY+N,GAAc1C,UACjE4hM,GAAI06B,GAAkB,KAAM,CAAE5pO,IAAKkvM,GAAIjtM,WAAY8V,GAAczK,UACjEm8N,GAAIG,GAAkB,KAAM,CAAE5pO,IAAKypO,GAAIxnO,WAAYsR,GAAcjG,UACjE+jB,EAAGu4M,GAAkB,KAAM,CAAE5pO,IAAK,GAAGiC,WAAY4J,GAAUyB,UAC3D9B,KAAMo+N,GAAkB,KAAM,CAAE3nO,WAAY4J,GAAUyB,UACtD1J,IAAKgmO,GAAkB,KAAM,CAAE5pO,IAAK4D,GAAK3B,WAAY4J,GAAUyB,UAC/Do8N,OAAQE,GAAkB,KAAM,CAAE5pO,IAAK0pO,GAAQ1nO,MAAM,EAAMsL,UAC3Dzb,EAAG+3O,GAAkBC,IACrB37L,GAAI07L,GAAkBlV,IACtBqV,GAAIH,GAAkBlV,GAAM,CAAEC,WAAW,IACzCrmL,GAAIs7L,GAAkBxU,MAEb4U,GAAY9lO,IACrB,MAAM,SAAEu/N,EAAQ,UAAEC,EAAY,CAAC,EAAC,MAAEp2N,EAAK,wBAAE28N,GAA4B/lO,EAC/Di1L,GAAc,OAAej1L,GAC7BgmO,EAAY,CACdtC,uBAAuBqC,EACvBvG,UAAW/1N,OAAOC,OAAOD,OAAOC,OAAO,CAAC,EAAGk8N,GAAyBx8N,IAASo2N,GAC7E,aAAA9mK,CAAc3lE,EAAMkzO,EAAexoN,GAC/B,MAAoB,iBAAT1qB,GAAsB0yO,GAAgB/sO,SAAS3F,GAGnD,gBAAoBjD,MAAMhC,KAAMiC,WAF5B,gBAAoB,WAAgB,KAAM0tB,EAGzD,EACA6sG,QAAS,WACT21G,cAAc,GAElB,OAAQ,gBAAoB,GAAUx2N,OAAOC,OAAO,CAAE9W,QAASozO,GAAa/wC,GAAcsqC,EAAU,E,ICjE7F2G,G,YACX,SAAWA,GACPA,EAA2B,OAAI,SAC/BA,EAAgC,YAAI,aACvC,CAHD,CAGGA,KAAuBA,GAAqB,CAAC,IAChD,MAAM,GAAqB,YACrBC,GAAkB,KAAOzmO,IAAIq1L,WAAW,CAAEr6C,YAAa,kBAAmBs6C,YAAa,aAAe,iEAAkEh1L,GAAUA,EAAMomO,iBAAmBF,GAAmBG,YAC9N,cACArmO,EAAMmX,MAAMmvN,KAAKC,oCAAqCvmO,GAGjD,WAFUA,EAAMmX,MAAMkvD,UAAU8zC,SAAS5kG,SACzBvV,EAAMmX,MAAMkvD,UAAUq6H,eAAetkH,UAEzD,wBAAwC,cAA8B,oBAAoC,6BAA6C,8BAC9J+pJ,GAAgBzrF,YAAc,kBACvB,MAAM8rF,GAAqBxmO,IAC9B,MAAM,eAAEomO,EAAiBF,GAAmBp8D,OAAQ1tF,GAAIykH,EAAO,SAAEr3G,GAAcxpF,EACzEi1L,GAAc,OAAej1L,GAK7B7J,EAAU+iD,SAASl5C,EAAMmX,MAAMkvD,UAAU8zC,SAAS5kG,OAAS,IAAK,IACtE,OAAQ,gBAAoB4mE,EAAA,EAAe,CAAEE,WAAY,GAAoBmN,SAAUA,EAAUpN,GAAIykH,EAAS1qM,QAASA,GACnH,gBAAoBgwO,GAAiB18N,OAAOC,OAAO,CAAEhO,QANpCsY,IACjB,MAAM,QAAEtY,EAAU,MAAgB,IAAIsE,EACtCtE,EAAQsY,EAAM,EAI6DoyN,eAAgBA,GAAkBnxC,IAAe,EAEvHwxC,IAAY,IAAA7lC,WAAU4lC,IC3B7BE,GAAqB,IAAI,qDACzBC,GAAoB,KAAOjnO,IAAIq1L,WAAW,CAAEr6C,YAAa,oBAAqBs6C,YAAa,cAAgB,kGAAmGh1L,GAAUA,EAAMmX,MAAMm/K,MAAMhhB,sBAAuBt1K,GAAUA,EAAMmX,MAAMnb,KAAKsgD,oBAAoB,EAAGnlC,WAAYA,EAAMnb,KAAKwiH,KAAK/vG,iBAAkBzO,GAAUA,EAAMmX,MAAM4nF,OAAO31F,MAAMC,gCAAgCq9N,MAAuB1mO,GAAUA,EAAM6gM,SAAW6lC,KACrd,SAASE,GAAS5mO,GACrB,MAAM,SAAEyd,EAAQ,QAAEojL,GAAY7gM,EACxBi1L,GAAc,OAAej1L,GACnC,OAAQ,gBAAoB,IAAe,CAAEmX,MAAO,QAChD,gBAAoBwvN,GAAmBl9N,OAAOC,OAAO,CAAEm3L,QAASA,GAAW5L,GAAcx3K,GACjG,CCTO,SAASopN,GAAYj2L,GACxB,MAAM5nC,GAAM,IAAAmU,QAAOyzB,IACZ/1C,EAAO4qC,IAAY,IAAAtrC,UAASy2C,GAWnC,MAAO,CAAC/1C,GAVY,IAAAmL,cAAas/B,IAC7B,GAAsB,mBAAXA,EAAuB,CAC9B,MAAMwhM,EAAiBxhM,EACvBt8B,EAAIqU,QAAUypN,EAAe99N,EAAIqU,QACrC,MAEIrU,EAAIqU,QAAUioB,EAElBG,EAASz8B,EAAIqU,QAAQ,GACtB,IACyBrU,EAChC,CCdO,SAAS+9N,GAAuB/wG,EAAWgxG,GAC9C,MAAMC,GAAgB,IAAA9pN,QAAO,MACvB+pN,GAAa,IAAAlhO,cAAY,KACvBihO,EAAc5pN,UACd6L,OAAO9a,oBAAoB4nH,EAAWixG,EAAc5pN,SACpD4pN,EAAc5pN,QAAU,KAC5B,GACD,CAAC24G,IACE/2H,GAAW,IAAA+G,cAAawvG,IACtByxH,EAAc5pN,UAAYm4F,IAC1B0xH,IACAh+M,OAAO/a,iBAAiB6nH,EAAWxgB,GACnCyxH,EAAc5pN,QAAUm4F,EAC5B,GACD,CAACwgB,EAAWkxG,IAOf,OANA,IAAAnsO,YAAU,KACFisO,GACA/nO,EAAS+nO,EACb,GACD,CAAC/nO,EAAU+nO,KACd,IAAAjsO,YAAU,IAAMmsO,GAAY,CAACA,KACtB,IAAAC,UAAQ,KAAM,CAAGloO,WAAUioO,gBAAe,CAACjoO,EAAUioO,GAChE,CCjBO,MAAME,GAAa,GAEpBrpC,GAAgB/9L,GAAUA,EAAMqnO,WAChCrnO,EAAMmX,MAAMk0E,YAAYkzG,UAAU9vL,QAClCzO,EAAMmX,MAAMk0E,YAAYioE,UAAU7kJ,QAClC64N,GAAqB,KAAO5nO,IAAIo7G,OAAM,EAAG3jG,QAAOowN,YAAWC,gBAGtD,CACHxjO,MAAO,CACHyjO,WAAYD,EAAY,iBAAch1O,EACtC,gBAAoC,KALV,QAApB2kB,EAAM0iL,UACU,EAAI0tC,EAAYA,GAIrB,SAG1BxyC,WAAW,CAAEr6C,YAAa,qBAAsBs6C,YAAa,cAAgB,gKAAiKh1L,GAAWA,EAAM0nO,SAAW,OAAS,iBAAmB1nO,GAAWA,EAAMqnO,WAAa,cAAgB,WAAarnO,IAAWA,EAAMqnO,YACjX,yBAECM,uHAOU3nO,GAAUA,EAAM4nO,uDAAuD,EAAGP,aAAYlwN,WAAY4mL,GAAa,CAAEspC,aAAYlwN,aACtIwwN,GAAc,KAAOjoO,IAAIq1L,WAAW,CAAEr6C,YAAa,cAAes6C,YAAa,aAAe,UAAWh1L,GAAUA,EAAMmX,MAAMnb,KAAK+iG,OAAOo4F,mKAAoKn3L,GAAUA,EAAM0nO,UACjU,iJAI6DN,cAAsBA,oIAA6IpnO,GAAUA,EAAMmX,MAAMkgL,oBAAoBC,cAAc7oL,yEAA0EzO,GAAUA,EAAMmX,MAAMm/K,MAAMhhB,eAM5XuyD,GAA2B,KAAOnoO,IAAIq1L,WAAW,CAAEr6C,YAAa,2BAA4Bs6C,YAAa,cAAgB;WACpHoyC,SAAuBpnO,GAAUA,EAAMmX,MAAMnb,KAAK2B,qBAAqB,EAAG0pO,aAAYlwN,WAAY4mL,GAAa,CAAEspC,aAAYlwN,iCAAiCnX,GAAUA,EAAM+yC,WACnL,cACA/yC,EAAMmX,MAAMk0E,YAAYqwG,UAAUjtL,iHAAkHzO,GAAUA,EAAMmX,MAAMnb,KAAKoC,mBAAoB4B,GAAUA,EAAMmX,MAAMnb,KAAKoC,wHAAyH4B,GAAWA,EAAM+yC,WAAa,SAAW,oBAAsB/yC,GAA4BA,EAAMmX,MANpaqpL,QAAQsnC,SAASlzO,MAAM,oBAC9BiU,KAAKk/N,GAAW,eAAeA,OAAWx4M,KAAK,QAM5Dy4M,GAAoB,KAAOtoO,IAAIo7G,OAAO96G,IACxC,MAAM,MAAEmX,EAAK,UAAE8wN,EAAS,UAAEV,GAAcvnO,EAClCkoO,EAA4B,QAApB/wN,EAAM0iL,UAEpB,MAAO,CACH71L,MAAO,CACH,kBAHeojO,IAGQc,EAAQD,GAAa,EAAIV,GAAaU,EAAYV,GAAtD,KAEnB,mBALeH,IAKSc,EAAQD,EAAYV,EAAYU,GAAa,EAAIV,IAArD,MAG3B,IACFxyC,WAAW,CAAEr6C,YAAa,oBAAqBs6C,YAAa,cAAgB,6CAA8Ch1L,GAAU,GAAGA,EAAMmX,MAAMnb,KAAK0hL,aAAa19K,EAAMmX,MAAMnb,KAAK2B,mEAAoEqC,GAAUA,EAAMmX,MAAMnb,KAAKmH;4GAElRglO,GAA2B,CAC7B,CAAC,KAAY15N,SAAU,EAAAzQ,eAAe2J,SACtC,CAAC,KAAYoE,OAAQ,EAAA/N,eAAe4J,UAE3BwgO,GAAQ,EAAGnmO,QAAOomO,YAAWC,gBAAed,YAAWzpO,aAAY2pO,WAAUa,iBAAgBX,SAAQY,YAAWC,YAAWC,gBAAeC,gBAAetmN,UAASumN,WAAUC,WAAUv6N,YAAWyyL,iBAAgBD,kBAAiBgoC,oBAC3O,MAAMC,EAAW,SAAa,MACxBh2L,EAAah1C,IAAe,MAAgBguB,SAC5Ci9M,EAAajrO,IAAe,MAAgBigM,UAC3CiqC,EAAWgB,GAAgB,WAAe,KACjD,aAAgB,KACZ,IAAKV,EAAelrN,QAChB,OAEJ4rN,EAAaV,EAAelrN,QAAQmyD,wBAAwBvgE,OAC5D,MAAMghM,EAAK,IAAIv3G,sBAAsB6L,IACjC,MAAO5L,GAAS4L,EACZ5L,EAAMJ,gBACN0wI,EAAaV,EAAelrN,QAAQmyD,wBAAwBvgE,MAChE,IAGJ,OADAghM,EAAGr3G,QAAQ2vI,EAAelrN,SACnB,KACH4yL,EAAGp3G,YAAY,CAClB,GACF,CAAC0vI,IACJ,MAAMW,ECKH,SAA+B5kO,EAAKH,EAAKokO,EAAgBY,EAAiBC,EAAiBV,EAAerwN,GAAW,GACxH,MAAM6vN,EAAiC,SAAzB,UAAWruC,UACnBwvC,EAAY,WACZC,EAAoBvC,GAAuB,aAC3CwC,EAAwBxC,GAAuB,iBAC/CyC,EAAsBzC,GAAuB,eAC7C0C,EAA2B,eAAmBz1N,IAC5CA,EAAMq1N,YAAcA,EAAUhsN,UAC9B+rN,GAAgB,GAChBE,EAAkBpC,aAClBsC,EAAoBtC,aACpBqC,EAAsBrC,aACtBmC,EAAUhsN,aAAU7qB,EACxB,GACD,CACC42O,EACAE,EACAE,EACAD,IAEEG,EAAqB,eAAmB11N,IAC1C,GAAIA,EAAMq1N,YAAcA,EAAUhsN,SAAWkrN,EAAelrN,QAAS,CACjE,MAAM,KAAEhgB,EAAI,MAAEC,GAAUirO,EAAelrN,QAAQmyD,wBACzCm6J,EAAQzB,EAAQ5qO,EAAQ0W,EAAM41N,MAAQ51N,EAAM41N,MAAQvsO,EACpD4qO,EAAYM,EAAelrN,QAAQ6xD,YACzCw5J,GAAc,IA5B1B,SAAqCmB,EAAavlO,EAAKH,EAAK8jO,GACxD,OAAQ4B,EAAc5B,GAAc9jO,EAAMG,GAAOA,CACrD,CA0BgCwlO,CAA4BH,EAAOrlO,EAAKH,EAAK8jO,KACjEj0N,EAAM3V,iBACN2V,EAAMohE,iBACV,IACD,CAAC8yJ,EAAO/jO,EAAKG,EAAKokO,EAAeH,IACpC,OAAO,eAAmBv0N,IACtB,IAAIvlB,EACC4pB,IACD+wN,GAAgB,GAChBp1N,EAAMohE,kBAC6B,QAAlC3mF,EAAK06O,EAAgB9rN,eAA4B,IAAP5uB,GAAyBA,EAAG6nM,QACvE+yC,EAAUhsN,QAAUrJ,EAAMq1N,UAC1BC,EAAkBrqO,SAASwqO,GAC3BF,EAAsBtqO,SAASwqO,GAC/BD,EAAoBvqO,SAASyqO,GACjC,GACD,CACCrxN,EACA+wN,EACAD,EACAG,EACAG,EACAF,EACAC,EACAE,GAER,CDxD+BK,CAAsBvB,EAAWC,EAAWF,EAAgBQ,EAAUJ,EAAeD,EAAe31L,GAAci2L,GACvIgB,ECnFH,SAA6B1lO,EAAKH,EAAKiqC,EAAMg7L,EAAiBV,EAAerwN,GAAW,GAC3F,MAAM6vN,EAAiC,SAAzB,UAAWruC,UACnBowC,EAAc,SAAa,IAAIrjB,KAC/BsjB,EAAqB,cAAa13O,GAClC2iO,EAAO,eAAmB1nE,GAAe08E,IAC3C,IAAK38M,MAAMwT,QAAQoN,GACf,OAAO+7L,EAAM18E,EAAYr/G,EAE7B,MACM2oK,EADe3oK,EAAKvqB,WAAWuqB,GAASnL,KAAKytC,IAAIy5J,EAAM/7L,GAAQ,OACpCq/G,EACjC,OAAIspD,EAAY,EACLzyM,EAEPyyM,GAAa3oK,EAAKv1C,OAAS,EACpBsL,EAEJiqC,EAAK2oK,EAAU,GACvB,CAAC5yM,EAAKG,EAAK8pC,IACRg8L,EAAiB,eAAkB,KACrChB,GAAgB,GAChBlgN,OAAOg8C,aAAaglK,EAAmB7sN,SACvC4sN,EAAY5sN,QAAQ4sF,OAAO,GAC5B,CAACm/H,IA4DJ,MAAO,CAAExkJ,UA3DS,eAAmB5wE,IACjC,GAAIqE,EACA,OAEJ,IAAIgyN,EACJ,OAAQr2N,EAAM5I,KACV,IAAK,YACDi/N,EAASlV,EAAK+S,EAAQ,GAAK,GAC3B,MACJ,IAAK,YACDmC,EAASlV,GAAM,GACf,MACJ,IAAK,aACDkV,EAASlV,EAAK+S,GAAS,EAAI,GAC3B,MACJ,IAAK,UACDmC,EAASlV,EAAK,GACd,MACJ,IAAK,WACDkV,EAASlV,GAAM,IACf,MACJ,IAAK,SACDkV,EAASlV,EAAK,IACd,MACJ,IAAK,OACDkV,EAAS,IAAM/lO,EACf,MACJ,IAAK,MACD+lO,EAAS,IAAMlmO,EAGlBkmO,IAGLJ,EAAY5sN,QAAQ8wB,IAAIn6B,EAAM5I,KAC9B8d,OAAOg8C,aAAaglK,EAAmB7sN,SACvC6sN,EAAmB7sN,QAAU6L,OAAOvL,WAAWysN,EAAgB,KAC/DhB,GAAgB,GAChBV,EAAc2B,GACdr2N,EAAM3V,iBACN2V,EAAMohE,kBAAiB,GACxB,CACC/8D,EACA+xN,EACAhB,EACAV,EACAvT,EACA+S,EACA5jO,EACAH,IAUgB6pN,QARJ,eAAmBh6M,IAC3Bi2N,EAAY5sN,QAAQrhB,KAAO,IAC3BiuO,EAAY5sN,QAAQunG,OAAO5wG,EAAM5I,KACA,IAA7B6+N,EAAY5sN,QAAQrhB,MACpBouO,IAER,GACD,CAACA,IAER,CDAwBE,CAAoB9B,EAAWC,EAAWK,EAAeH,EAAeD,EAAe31L,GAAci2L,GACnHzB,GAAatlO,EAAQumO,IAAcC,EAAYD,GACrD,OAAQ,gBAAoBlB,GAAoB,CAAEE,UAAWA,EAAWE,SAAUA,EAAUH,UAAWA,EAAWK,OAAQA,EAAQP,WAAYt0L,GAAci2L,EAAYj2L,WAAYA,EAAYw3L,cAAerB,GAC3M,gBAAoBvB,GAAal+N,OAAOC,OAAO,CAAEi7E,SAAU5xC,OAAavgD,EAAY,EAAGwW,IAAK+/N,EAAUtuF,KAAM,SAAU,gBAAiBouF,EAAU,gBAAiBD,EAAU,gBAAiB3mO,EAAO,iBAAkBqmO,GAAiBD,EAAW,aAAc/5N,EAAW,kBAAmByyL,EAAgB,mBAAoBD,EAAiB,gBAAiB/tJ,EAAY,gBAAiBi2L,EAAYtB,SAAUA,EAAUrlN,QAASA,GAAW2nN,IACrb3B,GAAc,gBAAoB,IAAe,CAAElxN,MAAO,QACtD,gBAAoB0wN,GAA0B,CAAER,WAAYt0L,GAAci2L,EAAYj2L,WAAYA,GAC9F,gBAAoBi1L,GAAmB,CAAET,UAAWA,EAAWU,UAAWA,GACtE,gBAAoB,KAAM,CAAEnqO,MAAM,EAAMhC,IAAK,EAAAk8L,QAAQ1wL,KAAM8B,MAAO,KAAUgX,QAASriB,WAAYoqO,IAA4BE,MAAgB,EE1F3JmC,GAAQ,CAAClmO,EAAKrC,EAAOkC,KACvB,IAAIsmO,EAAUxoO,EAGd,OAFAwoO,EAAUxnM,KAAK3+B,IAAImmO,EAAStmO,GAC5BsmO,EAAUxnM,KAAK9+B,IAAIsmO,EAASnmO,GACrBmmO,CAAO,EAEZC,GAAe,CAACpmO,EAAKrC,EAAOkC,EAAKiqC,KACnC,IAAKA,EACD,OAAOo8L,GAAMlmO,EAAKrC,EAAOkC,GAE7B,GAAIqpB,MAAMwT,QAAQoN,GAAO,CACrB,MAAMu8L,EAAUv8L,EACXpuB,QAAQq6B,GAAMA,GAAK/1C,GAAO+1C,GAAKl2C,IAC/BvS,MAAK,CAACyrB,EAASzvB,EAAGypI,KACnB,GAAIzpI,IAAMypI,EAAIx+H,OAAS,EACnB,OAAO,EAEX,MAAM9J,EAAOsoI,EAAIzpI,EAAI,GAErB,OAAOqU,EADQob,GAAWtuB,EAAOsuB,GAAW,CACvB,IAEzB,MAAuB,iBAAZstN,EACArmO,EAEJkmO,GAAMlmO,EAAKqmO,EAASxmO,EAC/B,CACA,MAAMymO,EAAe3nM,KAAKspB,OAAOpoD,EAAMG,GAAO8pC,GAAQA,EAAO9pC,EAEvDumO,EAAe5oO,EADGkC,GAAOA,EAAMymO,GAAgB,EAE/CzmO,EACA8+B,KAAKkvB,OAAOlwD,EAAQqC,GAAO8pC,GAAQA,EAAO9pC,EAChD,OAAOkmO,GAAMlmO,EAAKumO,EAAc1mO,EAAI,EAU3B2mO,GAAS,EAAGC,wBAAuBC,SAAQ1mO,MAAKH,MAAK8mO,cAAa9oO,WAAU+oO,oBAAmB98L,OAAM+8L,eAAc7nE,aAAY8nE,mBAAkBtqC,kBAAiBynC,iBAAgBxqO,aAAYstO,cAAaC,iBAAgBC,iBAAgBC,oBACpP,MAAMC,EAAgB,WAAc,IAAMF,EAAeluN,QAAQxU,KAAI,CAACslB,EAAGplB,IAAU,KAC/E2iO,GAA4BvB,GAAQ,IAC7BA,EAAInqN,QAAQpyB,GAAMA,IAAMmb,IAC3BA,IACF,KACF,CAACwiO,KACEI,EAAcC,EAAiBC,GAAmBhF,GAAYmE,EAAOniO,KAAI,KAAM,KAChFijO,EAAsB,WAAc,IAAMP,EAAeluN,QAAQxU,KAAI,CAACslB,EAAGplB,IAAWy+N,IACtF,MAAMuE,EAAW,IAAIF,EAAgBxuN,SACrC0uN,EAAShjO,GAASy+N,EAClBoE,EAAgBG,GACXvE,GACDrlO,SAAoDA,EAASopO,EAAeluN,QAChF,KACA,CAACuuN,EAAiBC,EAAiBN,EAAgBppO,IACjD26I,EAAe,eAAmBsB,IACpC,IAAI3vJ,EAEkD,QAArDA,EADiBo9O,EAAgBxuN,QAAQvB,KAAKmxF,SAC5Bi+H,EAAoB/oO,SAA8B,IAAP1T,GAAyBA,EAAG2vJ,GAC1FktF,EAAeltF,EAAU,GAC1B,CAACytF,EAAiBX,EAAmB/oO,EAAUmpO,IAC5CU,EAAkB,WAAc,IAAMx+M,MAAMwT,QAAQoN,GACpD,CAAC9pC,KAAQ8pC,EAAMjqC,GACZsf,MAAK,CAAC91B,EAAG+1B,IAAM/1B,EAAI+1B,IACnB1D,QAAO,CAAC/d,EAAO8G,EAAOsuH,IAAQA,EAAI1iG,QAAQ1yB,KAAW8G,IACxDqlC,GAAM,CAACA,EAAM9pC,EAAKH,IAClB8nO,EAAsB,WAAc,IAAMV,EAAeluN,QAAQxU,KAAI,CAACslB,EAAGplB,IAAWu8B,IACtF,IAAI72C,EAAI0kD,EACR,MAAM+4L,EAAQlB,EAAOjiO,GACfojO,EAAmBzB,GAAkC,QAApBj8O,EAAKy9O,EAAM5nO,WAAwB,IAAP7V,EAAgBA,EAAK6V,EAAKghC,EAAOimM,EAAeluN,QAAQtU,IAA8B,QAApBoqC,EAAK+4L,EAAM/nO,WAAwB,IAAPgvC,EAAgBA,EAAKhvC,EAAK6nO,GAC3L,GAAIT,EAAeluN,QAAQtU,KAAWojO,EAClC,OAEJ,MAAM/tF,EAAY,IAAImtF,EAAeluN,SACrC+gI,EAAUr1I,GAASojO,EACdlB,GA5CY,EAACv3N,EAAQ04N,EAAW9nO,EAAKH,EAAKu8E,KACnD,IAAK,IAAI2rJ,EAAaD,EAAY,EAAGC,GAAc,EAAGA,IAClD34N,EAAO24N,GAAc3B,GAAapmO,EAAKoP,EAAO24N,GAAa34N,EAAO24N,EAAa,GAAI3rJ,GAEvF,IAAK,IAAI2rJ,EAAaD,EAAY,EAAGC,EAAa34N,EAAO7a,OAAQwzO,IAC7D34N,EAAO24N,GAAc3B,GAAah3N,EAAO24N,EAAa,GAAI34N,EAAO24N,GAAaloO,EAAKu8E,EACvF,EAuCQ4rJ,CAAiBluF,EAAWr1I,EAAOzE,EAAKH,EAAK6nO,GAEjD,MAAMpD,EAAW7/N,EAAQ,EAAIq1I,EAAUr1I,EAAQ,GAAKgiO,EAAwBzmO,EACtEukO,EAAW9/N,EAAQq1I,EAAUvlJ,OAAS,EACtCulJ,EAAUr1I,EAAQ,GAAKgiO,EACvB5mO,EAEN,OADAi6I,EAAUr1I,GAAS2hO,GAAa9B,EAAUxqF,EAAUr1I,GAAQ8/N,EAAUmD,GAC/DlvF,EAAasB,EAAU,KAC9B,CACAj6I,EACAG,EACAymO,EACAE,EACAM,EACAP,EACAluF,EACAkvF,IAEElD,EAAgB,WAAc,IAAMkD,QAAyDA,GAAmB7nO,EAAMG,GAAO,KAAK,CAAC0nO,EAAiB1nO,EAAKH,KACxJooO,EAAyBb,GAA8B,WAAeF,EAAc3iO,KAAI,CAACslB,EAAGvgC,IAAMA,IAAGggH,WACtG4+H,EAAoB,SAAahB,GAWvC,OAVA,aAAgB,MACIA,EAAc3yO,SAAW2zO,EAAkBnvN,QAAQxkB,QAC/D2yO,EAAc1vN,MAAK,CAAC7Z,EAAO8G,IAAU9G,IAAUuqO,EAAkBnvN,QAAQtU,QAEzEyjO,EAAkBnvN,QAAUmuN,EAC5B1uF,EAAa0uF,GACbI,EAAgBJ,EAAc3iO,KAAI,KAAM,KACxC6iO,EAA2BF,EAAc3iO,KAAI,CAACslB,EAAGvgC,IAAMA,IAAGggH,WAC9D,GACD,CAAC49H,EAAernO,EAAKynO,EAAiB9uF,IACjC,gBAAoB,WAAgB,KAAMkuF,EAAOniO,KAAI,CAACqjO,EAAOnjO,KACjE,IAAIta,EAAI0kD,EAAIiB,EACZ,MAAMnyC,EAAQopO,EAAYtiO,GACpBs/N,GAA2C,QAA7B55O,EAAKy9O,EAAMf,oBAAiC,IAAP18O,EAAgBA,EAAK08O,GAAclpO,GACtFwqO,EAAYnpE,EAAW1xK,MAAM66O,GAAcxpM,KAAKytC,IAAI+7J,EAAUxqO,MAAQA,GAAS,OAC/EqmO,EAAgB,CAACD,EAAWoE,aAA6C,EAASA,EAAU5qO,OAAOme,OAAOitF,SAAS19E,KAAK,aAC1H/8B,EACEk1O,EAAW2D,EAAYvvN,MAAK,CAAC4wN,EAAYC,IAAeA,IAAe5jO,GACzE2jO,IAAezqO,GACfsqO,EAAwB53M,QAAQg4M,GAC5BJ,EAAwB53M,QAAQ5rB,KAClC6jO,EAAoC,QAApBz5L,EAAK+4L,EAAM5nO,WAAwB,IAAP6uC,EAAgBA,EAAK7uC,EACjEskO,EAAW7/N,EAAQ,EACnBsiO,EAAYtiO,EAAQ,GAAKgiO,EACzB6B,EACAC,EAAoC,QAApBz4L,EAAK83L,EAAM/nO,WAAwB,IAAPiwC,EAAgBA,EAAKjwC,EACjE0kO,EAAW9/N,EAAQsiO,EAAYxyO,OAAS,EACxCwyO,EAAYtiO,EAAQ,GAAKgiO,EACzB8B,EACN,OAAQ,gBAAoBzE,GAAO,CAAEh9N,IAAKrC,EAAO9G,MAAOA,EAAOomO,UAAW+C,OAAmB54O,EAAY61O,EAAWC,cAAeA,EAAed,UAAWmE,EAAa5iO,GAAQuF,UAAW49N,EAAM59N,UAAWyyL,eAAgBmrC,EAAMv4B,eAAgB7S,gBAAiBA,EAAiBynC,eAAgBA,EAAgBK,SAAUA,EAAUC,SAAUA,EAAU9qO,WAAYA,EAAY6pO,OAAQ2E,EAAwB53M,QAAQ5rB,GAAS,EAAG2+N,SAAUA,EAAUc,UAAWlkO,EAAKmkO,UAAWtkO,EAAKukO,cAAeuD,EAAoBljO,GAAQ4/N,cAAemD,EAAoB/iO,GAAQsZ,QAASopN,EAAc1iO,GAAQ+/N,cAAeA,GAAiB,IACnnB,EChIR,MAAMgE,GAAc,KAAOptO,IAAIq1L,WAAW,CAAEr6C,YAAa,cAAes6C,YAAa,aAAe,8HAA+Hh1L,GAAUA,EAAMmX,MAAMnb,KAAKoC,aACxP2uO,GAAa,KAAOrtO,IAAIo7G,OAAM,EAAGysH,YAAWU,gBAEvC,CACHjkO,MAAO,CACH,iBAAiC,IAAZujO,EAAH,IAClB,mBAAuBU,EAAYV,EAJpBH,GAIK,KACpB,iBAAqBa,GAAa,EAAIV,GALvBH,GAKG,UAG3BryC,WAAW,CAAEr6C,YAAa,aAAcs6C,YAAa,cAAgB,kDAAmDh1L,GAAoC,QAA1BA,EAAMmX,MAAM0iL,UAC3I,8BACA,4CAA6C75L,GAAUA,EAAMysO,UAAYzsO,EAAMmX,MAAMnb,KAAKyP,UAAYzL,EAAMmX,MAAMnb,KAAK2B,mBAAoBqC,GAAUA,EAAMmX,MAAM/hB,KAAKgU,MAAMC,uCAAwCrJ,GAAWA,EAAMysO,UAAY,UAAY,gCAAkCzsO,GAAUA,EAAMmX,MAAMnb,KAAKsgD,4BAA6Bt8C,GAAUA,EAAMysO,UACvWzsO,EAAMmX,MAAMnb,KAAKoC,UACjB4B,EAAMmX,MAAMnb,KAAKgvB,yBAA0BhrB,GAAUA,EAAMmX,MAAMnb,KAAK+iG,OAAOm4F,eAAgBl3L,GAAUA,EAAMmX,MAAM/hB,KAAKgU,MAAMC,wBAAyBrJ,GAAWA,EAAMgtO,WAAa,OAAS;;MAE9L,EAAG71N,WAAiC,QAApBA,EAAM0iL,WAAuB,EAAI;+EAE1CozC,GAAQ,EAAG9B,eAAc7nE,aAAY2kE,YAAW3jO,MAAKH,MAAK6oO,iBACnE,MAAME,EAAK,eAAmBjrO,IAAWA,EAAQqC,IAAQH,EAAMG,IAAM,CAACA,EAAKH,IACrEgpO,EAAiB,WAAc,IAAM,IACpC7pE,EAAWz6J,KAAK4jO,GAAehjO,OAAOC,OAAOD,OAAOC,OAAO,CAAC,EAAG+iO,GAAY,CAAEA,WAAW,MAC3F,CACIxqO,MAAOqC,EACPzC,MAAOspO,EAAa7mO,IAExB,CACIrC,MAAOkC,EACPtC,MAAOspO,EAAahnO,KAGvB6b,QAAQjO,GAAMA,EAAElQ,QAChBme,QAAO,CAACotN,EAAIrkO,EAAOsuH,IAAQA,EAAIxzG,WAAWwpN,GAAOA,EAAGprO,QAAUmrO,EAAGnrO,UAAW8G,IAC5E0a,MAAK,CAAC91B,EAAG+1B,IAAM/1B,EAAEsU,MAAQyhB,EAAEzhB,SAAQ,CAACkpO,EAAc7nE,EAAYn/J,EAAKG,IACxE,OAAQ,gBAAoBwoO,GAAa,KAAMK,EAAetkO,KAAI,EAAG5G,QAAOJ,QAAO4qO,eAAiB,gBAAoBM,GAAY,CAAE3hO,IAAKnJ,EAAOslO,UAAW2F,EAAGjrO,GAAQwqO,UAAWA,EAAWxE,UAAWA,EAAW+E,WAAYA,GAAcnrO,GAAU,gBAAoB,KAAM,CAAE/F,IAAK,EAAAk8L,QAAQ1wL,KAAMvJ,WAAY,EAAAC,eAAe4J,SAAUE,YAAY,EAAMsB,MAAO,KAAUgX,SAAWve,MAAY,ECnCpYyrO,GAAa,KAAO5tO,IAAIq1L,WAAW,CAAEr6C,YAAa,aAAcs6C,YAAa,cAAgB,6DAA8Dh1L,GAAUA,EAAMmX,MAAMk0E,YAAY6yG,UAAU7lL,YAAarY,GAAUA,EAAMutO,UACtO,0DAEyD,QAA1BvtO,EAAMmX,MAAM0iL,UAAsB,OAAS,YAAY75L,EAAMutO,mBAE1FC,GAAwB,KAAO9tO,IAAIq1L,WAAW,CAAEr6C,YAAa,wBAAyBs6C,YAAa,aAAe,2EAClHy4C,GAAiB,KAAO/tO,IAAIq1L,WAAW,CAAEr6C,YAAa,iBAAkBs6C,YAAa,aAAe,qDAAsDh1L,GAAUA,EAAMqnO,WAC1KrnO,EAAMmX,MAAMk0E,YAAY6yG,UAAU7lL,SAClCrY,EAAMmX,MAAMk0E,YAAYioE,UAAU7kJ,WAClCi/N,GAAiB,KAAOhuO,IAAIo7G,OAAO96G,IAAU,CAC/CgE,MAAO,CACH,qBAE8B,KAFsB,QAA1BhE,EAAMmX,MAAM0iL,UAChC,EAAI75L,EAAM2tO,aACV3tO,EAAM4tO,gBAFU,IAGtB,WAAY,GAAG3qM,KAAKytC,IAAI1wE,EAAM2tO,aAAe3tO,EAAM4tO,uBAEvD74C,WAAW,CAAEr6C,YAAa,iBAAkBs6C,YAAa,aAAe,yEAA0Eh1L,GAAUA,EAAMqnO,WAChKrnO,EAAMmX,MAAMk0E,YAAYkzG,UAAU9vL,QAClCzO,EAAMmX,MAAMk0E,YAAYioE,UAAU7kJ,4GACjC,IAAIo/N,IACX,SAAWA,GACPA,EAAsB,KAAI,OAC1BA,EAAsB,KAAI,OAC1BA,EAAsB,KAAI,OAC1BA,EAAqB,IAAI,KAC5B,CALD,CAKGA,KAAoBA,GAAkB,CAAC,IACnC,MAAMC,GAAO,EAAGrwN,WAAU8qN,iBAAgBwF,qBAAoBC,YAAYH,GAAgB1zC,KAAMp8L,aAAYstO,cAAa/mO,MAAKH,MAAK8pO,gBAAe7/L,WACrJ,MAAM8/L,EAAkB,WAAc,KAClC,MAAMC,EAAQ,GACd,GAAIH,IAAcH,GAAgBO,KAC9B,OAAOD,EAEX,MAAME,EAAchD,EAAYxyO,OAC1Bq0O,EAAK,CAACjrO,EAAOqC,EAAKH,KAASlC,EAAQqC,IAAQH,EAAMG,GACjDgqO,EAAe,CAAChqO,KAAQ+mO,GAsB9B,OArBAiD,EAAazyK,SAAQ,CAAC0yK,EAAa3gP,KAC/B,IAAI4gP,GAAsB,EAC1B,OAAQR,GACJ,KAAKH,GAAgB1zC,KACjBq0C,EACW,IAAN5gP,GAA2B,IAAhBygP,GAA6B,IAANzgP,GAA2B,IAAhBygP,EAClD,MACJ,KAAKR,GAAgBY,KACjBD,GAAuB5gP,EAAI,GAAK,GAAM,EACtC,MACJ,KAAKigP,GAAgBa,IACjBF,GAAuB5gP,EAAI,GAAK,GAAM,EAG1C4gP,GACAL,EAAMp8O,KAAK,CACP8pC,MAAOqxM,EAAGqB,EAAajqO,EAAKH,GAC5By5C,IAAKhwD,EAAI0gP,EAAaz1O,OAAS,EAAIq0O,EAAGoB,EAAa1gP,EAAI,GAAI0W,EAAKH,GAAO,GAE/E,IAEGgqO,CAAK,GACb,CAACH,EAAW7pO,EAAKG,EAAK+mO,IACnBsD,EAAa,WAAc,KAC7B,MAAMA,EAAa,GACnB,IAAKnhN,MAAMwT,QAAQoN,GAAO,CACtB,MAAMwgM,EAAcX,GAAiB7/L,GAAQjqC,EAAMG,GAAO8pC,EAAO,EAAI,EACrE,IAAK,IAAIxgD,EAAI,EAAGA,EAAIghP,EAAahhP,IAAK,CAClC,MAAMy5O,EAAa6G,EAAgB,GAAGtwL,IAAMz5C,GAAOvW,GAAKwgD,GAAQ,GAChEugM,EAAW58O,KAAK,gBAAoB07O,GAAgB,CAAEpG,WAAYA,EAAYj8N,IAAKxd,IACvF,CACJ,CACA,OAAO+gP,CAAU,GAClB,CAACrqO,EAAKH,EAAKiqC,EAAM6/L,EAAeC,IAC7Bn7L,EAAah1C,IAAe,MAAgBguB,SAC5Ci9M,EAAajrO,IAAe,MAAgBigM,SAClD,OAAQ,gBAAoBsvC,GAAY,CAAEC,SAAUQ,EAAoB/kO,IAAKu/N,GACzE2F,EAAgBrlO,KAAI,EAAGgzB,QAAO+hB,OAAO70C,IAAW,gBAAoB2kO,GAAgB,CAAEtiO,IAAKrC,EAAO6kO,eAAgB/xM,EAAO8xM,aAAc/vL,EAAKypL,WAAYt0L,GAAci2L,MACtK,gBAAoBwE,GAAuB,KAAMmB,GACjDlxN,EAAU,EC7ElB,IAAI,GAAkC,SAAU48B,EAAG1+C,GAC/C,IAAImoB,EAAI,CAAC,EACT,IAAK,IAAIqJ,KAAKktB,EAAO5wC,OAAOgkB,UAAUoP,eAAenpC,KAAK2mD,EAAGltB,IAAMxxB,EAAEg5B,QAAQxH,GAAK,IAC9ErJ,EAAEqJ,GAAKktB,EAAEltB,IACb,GAAS,MAALktB,GAAqD,mBAAjC5wC,OAAOqsL,sBACtB,KAAIloM,EAAI,EAAb,IAAgBu/B,EAAI1jB,OAAOqsL,sBAAsBz7I,GAAIzsD,EAAIu/B,EAAEt0B,OAAQjL,IAC3D+N,EAAEg5B,QAAQxH,EAAEv/B,IAAM,GAAK6b,OAAOgkB,UAAUsoK,qBAAqBriM,KAAK2mD,EAAGltB,EAAEv/B,MACvEk2B,EAAEqJ,EAAEv/B,IAAMysD,EAAEltB,EAAEv/B,IAF4B,CAItD,OAAOk2B,CACX,EAYA,MAAM+qN,GAAsB,KAAOnvO,IAAIq1L,WAAW,CAAEr6C,YAAa,sBAAuBs6C,YAAa,cAAgB;KAChHoyC;MACEpnO,IAAUA,SAAMorO,iBACjBprO,EAAMmX,MAAMnb,KAAK0hL,ULYwB,aAAVvmK,EKXVnX,EAAMmX,OLWgCnb,KAAK2B,mBAAmBwZ,EAAMnb,KAAK0hL,oBAAhE,IAACvmK,CKXE;KAClCiwN,4BACQ0H,GAAe9uO,IACxB,IAAIvR,EAAI0kD,EACR,MAAMoO,GAAW,UAAWA,SACtBwtL,EAAwB,eAAmB9sO,GAAUA,EAAMmyF,eAAe7yC,EAAU,CACtFytL,sBAAuB,KACvB,CAACztL,KACC,IAAEj9C,EAAG,IAAEH,EAAG,KAAEiqC,EAAI,OAAE48L,EAAM,mBAAE+C,EAAkB,UAAEC,EAAS,SAAE7rO,EAAQ,kBAAE+oO,EAAiB,gBAAEpqC,EAAe,YAAEmqC,EAAW,aAAEE,EAAe4D,EAAqB,WAAEhxO,EAAa,MAAgBuS,QAAO,WAAEgzJ,EAAa,GAAE,iBAAE8nE,GAAmB,EAAK,sBAAEL,EAAwB,EAAC,cAAEkD,GAAgB,EAAK,WAAEjB,GAAgBhtO,EAC7Si1L,GAAc,OAAej1L,GAC7BuoO,EAAiB,SAAa,OCnCjC,SAAuCv/N,GAC1C,MAAMimO,EAAejmO,EAAIqU,QACnB6xN,GAAmB,IAAA/0O,UAAS,GAAG,IACe,oBAAX+uB,OAAyB,EAAA0gE,gBAAkB,EAAA7uF,YAC1D,KACF,MAAhBk0O,GAAwBjmO,EAAIqU,SAC5B6xN,GAAkB50L,GAAMA,EAAI,GAChC,GACD,CAAC20L,EAAcjmO,EAAKkmO,GAC3B,CD2BIC,CAA8B5G,GAC9B,MAAMiD,EAAgBR,EAAOniO,KAAKib,GAAMA,EAAE7G,gBACnCouN,EAAaC,EAAgBC,GAAkB1E,GAAY2E,GAC5DvD,EAA2H,QAA9G90L,EAAuC,QAAjC1kD,EAAK85O,EAAelrN,eAA4B,IAAP5uB,OAAgB,EAASA,EAAG+gF,wBAAwBvgE,aAA0B,IAAPkkC,EAAgBA,EAAK,IAC9J,OAAQ,gBAAoB07L,GAAqBplO,OAAOC,OAAO,CAAE0hO,iBAAkBA,GAAoBn2C,GACnG,gBAAoB64C,GAAM,CAAEvF,eAAgBA,EAAgBwF,mBAAoBA,EAAoBC,UAAWA,EAAW3C,YAAaA,EAAa/mO,IAAKA,EAAKH,IAAKA,EAAKpG,WAAYA,EAAYkwO,cAAeA,EAAe7/L,KAAMA,GAChO,gBAAoB08L,GAAQ,CAAEC,sBAAuBA,EAAuBC,OAAQA,EAAQ1mO,IAAKA,EAAKH,IAAKA,EAAK8mO,YAAaA,EAAa9oO,SAAUA,EAAU+oO,kBAAmBA,EAAmB98L,KAAMA,EAAM+8L,aAAcA,EAAc7nE,WAAYA,EAAY8nE,iBAAkBA,EAAkBtqC,gBAAiBA,EAAiBynC,eAAgBA,EAAgBxqO,WAAYA,EAAYstO,YAAaA,EAAaC,eAAgBA,EAAgBC,eAAgBA,EAAgBC,cAAeA,KAC/e,gBAAoByB,GAAO,CAAE9B,aAAcA,EAAc7nE,WAAYA,EAAY2kE,UAAWA,EAAW3jO,IAAKA,EAAKH,IAAKA,EAAK6oO,WAAYA,IAAe,EAEjJ/1J,GAAUxoF,IACnB,IAAI,aAAEwuB,EAAY,SAAE9a,EAAQ,kBAAE+oO,EAAiB,UAAE58N,EAAS,eAAEqlM,GAAmBllN,EAAI2gP,EAAa,GAAO3gP,EAAI,CAAC,eAAgB,WAAY,oBAAqB,YAAa,mBAC1K,MAAMu8O,EAAS,WAAc,IAAM,CAC/B,CACI/tN,eACA3O,YACAqlM,oBAEL,CAAC12L,EAAc3O,EAAWqlM,IACvB07B,EAAgB,eAAmB37N,GAAWvR,aAA2C,EAASA,EAASuR,EAAO,KAAK,CAACvR,IACxHmtO,EAAyB,eAAmB57N,GAAWw3N,aAA6D,EAASA,EAAkBx3N,EAAO,KAAK,CAACw3N,IAClK,OAAQ,gBAAoB4D,GAAarlO,OAAOC,OAAO,CAAEshO,OAAQA,EAAQ7oO,SAAUktO,EAAenE,kBAAmBoE,GAA0BF,GAAa,E,2DErDhK,MAAMhmO,GAAQ,IAAI,GAAIpJ,GAAUA,EAAMqY,SAChCrY,EAAMmX,MAAMk0E,YAAYioE,UAAUj7I,SAClCrY,EAAMmX,MAAMk0E,YAAYioE,UAAUv0I,UAClCwwN,GAAS,CAAChkC,EAAM,MAAOrzL,IACH,UAAbA,GAAgC,QAARqzL,GACf,QAAbrzL,GAA8B,QAARqzL,EAEzBikC,GAAkB,KAAOloO,KAAKytL,WAAW,CAAEr6C,YAAa,kBAAmBs6C,YAAa,aAAe,yCAA0Ch1L,GAAUA,EAAMmX,MAAMnb,KAAKyzO,oBAAqBzvO,GAAUA,EAAMmX,MAAMnb,KAAK4B,8BAA8BwL,iBAAqBpJ,GAAUA,EAAMmX,MAAMkvD,UAAU8zC,SAASu1H,iCAAkC1vO,GAAUA,EAAMmX,MAAMnb,KAAK4B,oBAAqBoC,GAAUA,EAAMmX,MAAMnb,KAAK+iG,OAAOo4F,eAAe/tL,oEAAwEpJ,GAAUA,EAAMmX,MAAMnb,KAAK+iG,OAAOo4F,oBAAqBn3L,GAAUuvO,GAAOvvO,EAAMmX,MAAM0iL,UAAW75L,EAAMkY,UACxmB,+DAEqBlY,EAAMmX,MAAMnb,KAAK+iG,OAAOo4F,qBAE7C,gEAEsBn3L,EAAMmX,MAAMnb,KAAK+iG,OAAOo4F,iCAClCn3L,EAAMmX,MAAMnb,KAAKyzO,oSAOlBzvO,GAAUA,EAAMmX,MAAMnb,KAAKsgD,mBAAoBt8C,GAAUA,EAAMmX,MAAMnb,KAAKsgD,8BAA+Bt8C,GAAUA,EAAMmX,MAAMk0E,YAAYqwG,UAAUjtL,wCAAyCzO,GAAUA,EAAMmX,MAAMkvD,UAAU8zC,SAASu1H,qEAClP52C,GAAc,KAAOj9K,MAAMk5K,WAAW,CAAEr6C,YAAa,cAAes6C,YAAa,aAAe,wFAAyFh1L,GAAqC,QAA1BA,EAAMmX,MAAM0iL,UAAsB,QAAU,YAChP,GAAc,KAAOh4L,MAAMkzL,WAAW,CAAEr6C,YAAa,cAAes6C,YAAa,cAAgB,0CAA0C5rL,iBAAqBpJ,GAAUA,EAAMmX,MAAMkvD,UAAU8zC,SAASu1H,6CAA8C1vO,GAAUA,EAAMmX,MAAMm/K,MAAMhhB,oBAAqBt1K,GAAUA,EAAMmX,MAAMm/K,MAAMC,eAAgBv2L,IAAWA,EAAM+e,SACvW,mHAMCwwN,GAAOvvO,EAAMmX,MAAM0iL,UAAW75L,EAAMkY,UAAY,OAAS,wGAI5ClY,EAAMmX,MAAMnb,KAAK2B,mBAAmBqC,EAAMmX,MAAMnb,KAAKyzO,2BAGjE,GAAgB,KAAO/vO,IAAIq1L,WAAW,CAAEr6C,YAAa,gBAAiBs6C,YAAa,aAAe,uCAAwCh1L,GAAUA,EAAMmX,MAAMnb,KAAK2B,yGAA0GqC,IAAWA,EAAMqY,UAAY,IAAI,8BAA8B,YAAqBrY,EAAMmX,MAAMk0E,YAAYioE,UAAU/nE,UAAUikJ,uBAAoCxvO,EAAMmX,MAAMk0E,YAAYioE,UAAU/nE,oCAAoCvrF,EAAMmX,MAAMk0E,YAAYqwG,UAAUnwG,eAAgBvrF,GAAUA,EAAMqY,UAC7jB,WACE,SAAkBygL,gEAGH02C,uBAAqCxvO,GAAUA,EAAMmX,MAAMm/K,MAAMhhB,mDAAoDt1K,GAAUA,EAAMmX,MAAMk0E,YAAYioE,UAAU7kJ,aACzKkhO,GAAU3vO,IACnB,MAAM,QAAEpN,EAAO,MAAEqP,EAAK,aAAEgb,EAAY,KAAExqB,EAAI,SAAE0P,EAAQ,SAAEkW,GAAW,EAAK,gBAAEyoL,GAAqB9gM,EACvFi1L,GAAc,OAAej1L,IAC5Bqd,EAASuyN,GAAc,WAAgB3tO,QAAqCA,EAAQgb,GACrF4yN,EAAwB,MAAT5tO,EACf6tO,EAASl9O,EAAQ,GAAGqP,MACpB8tO,EAASn9O,EAAQ,GAAGqP,MACpB+tO,EAAiB,eAAmBr0O,IACtC,MAAMsmB,EAAWtmB,EAAE2G,OAAOL,MAC1BE,SAAoDA,EAAS8f,GACxD4tN,GACDD,EAAW3tN,EACf,GACD,CAAC9f,EAAU0tO,IACRI,GAAehuO,QAAqCA,EAAQob,KAAayyN,EACzEI,GAAejuO,QAAqCA,EAAQob,KAAa0yN,EAC/E,OAAQ,gBAAoB,GAAetmO,OAAOC,OAAO,CAAE2O,SAAUA,GAAY48K,GAC7E,gBAAoB,GAAa,CAAE58K,SAAUA,EAAUH,SAAU,QAAS6G,QAASkxN,GAC/E,gBAAoBn3C,GAAa,CAAErmM,KAAMA,EAAMM,KAAM,QAASkP,MAAOrP,EAAQ,GAAGqP,MAAO8c,QAASkxN,EAAa9tO,SAAU6tO,EAAgB33N,SAAUA,EAAU,mBAAoByoL,IAC/K,gBAAoB,KAAM,CAAEhlM,IAAK,EAAAk8L,QAAQ1wL,KAAM8B,MAAO,KAAUgX,SAAWxtB,EAAQ,GAAGiP,QAC1F,gBAAoB2tO,GAAiB,CAAE,eAAe,EAAMn3N,SAAUA,EAAUH,SAAU+3N,EAAc,QAAU,QAClH,gBAAoB,GAAa,CAAE53N,SAAUA,EAAUH,SAAU,MAAO6G,QAASmxN,GAC7E,gBAAoBp3C,GAAa,CAAErmM,KAAMA,EAAMM,KAAM,QAASkP,MAAOrP,EAAQ,GAAGqP,MAAO8c,QAASmxN,EAAa/tO,SAAU6tO,EAAgB33N,SAAUA,EAAU,mBAAoByoL,IAC/K,gBAAoB,KAAM,CAAEhlM,IAAK,EAAAk8L,QAAQ1wL,KAAM8B,MAAO,KAAUgX,SAAWxtB,EAAQ,GAAGiP,QAAS,EClErGsuO,GAAgB,KAAOzwO,IAAIq1L,WAAW,CAAEr6C,YAAa,gBAAiBs6C,YAAa,cAAgB,WAAW,EAAG2K,YAAcA,EAAS,OAAS,iCAAkC,EAAGxoL,WAAYA,EAAMnb,KAAK0hL,uCAAuC,EAAGvmK,WAAYA,EAAMnb,KAAKgvB,aAAa,EAAG7T,WAAYA,EAAMnb,KAAK2B,2BAA2B,EAAGwZ,WAAYA,EAAMnb,KAAK0hL,gEAAgE,EAAGvmK,WAAYA,EAAMnb,KAAKo0O,+BAA+B,EAAGj5N,YAAc,IAAI1oB,EAAI,OAAgC,QAAxBA,EAAK0oB,EAAMk5N,eAA4B,IAAP5hP,OAAgB,EAASA,EAAGmtD,eAAe,WAAa,EAAGzkC,YAAc,IAAI1oB,EAAI,OAAgC,QAAxBA,EAAK0oB,EAAMk5N,eAA4B,IAAP5hP,OAAgB,EAASA,EAAGqiO,SAAS,sBAAwB,EAAGwf,sBAAuBA,GAAmB,IAAI,wEAAwE,EAAGp4N,WAAUf,WAAyB,QAAbe,EAC52B,IAAI,sBAAsBf,EAAMnb,KAAK2B,kDAAiE,SAAbua,EACzF,IAAI,kBAAkBf,EAAMnb,KAAK2B,yCAAwD,WAAbua,EAC5E,IAAI,mBAAmBf,EAAMnb,KAAK2B,kDAAoD,IAAI,6BAA6BwZ,EAAMnb,KAAK2B,4CAA4C,EAAGua,WAAUq4N,YAAWp5N,YACxM,IAAI1oB,EAAI0kD,EAAIiB,EAAIw/B,EAChB,OAAQ28J,GAAa,IAAI,gEAAgEp5N,EAAMnb,KAAK0hL,6CAA0D,QAAbxlK,EAC3I,IAAI,oBAA6C,QAAxBzpB,EAAK0oB,EAAMk5N,eAA4B,IAAP5hP,OAAgB,EAASA,EAAGmtD,mCAAmCzkC,EAAMnb,KAAK0hL,uBAAsC,SAAbxlK,EAC5J,IAAI,qBAA8C,QAAxBi7B,EAAKh8B,EAAMk5N,eAA4B,IAAPl9L,OAAgB,EAASA,EAAGyI,4CAA4CzkC,EAAMnb,KAAK0hL,cAA6B,WAAbxlK,EAC7J,IAAI,uBAAgD,QAAxBk8B,EAAKj9B,EAAMk5N,eAA4B,IAAPj8L,OAAgB,EAASA,EAAGwH,mCAAmCzkC,EAAMnb,KAAK0hL,0BAA4B,IAAI,sBAA+C,QAAxB9pG,EAAKz8D,EAAMk5N,eAA4B,IAAPz8J,OAAgB,EAASA,EAAGh4B,6CAA6CzkC,EAAMnb,KAAK0hL,gBAAgB,IAErU8yD,GAAiB,KAAO9wO,IAAIq1L,WAAW,CAAEr6C,YAAa,iBAAkBs6C,YAAa,aAAe,0CACpGl8K,GAAiB,KAAOpZ,IAAIq1L,WAAW,CAAEr6C,YAAa,iBAAkBs6C,YAAa,cAAgB,UAAU,EAAGy7C,gBAAkBA,EAAa,UAAY,aAAc,EAAGA,iBAAkBA,GAAc,IAAI,YAAYN,eAA0BA,sBACxPO,GAAe,KAAOhxO,IAAIq1L,WAAW,CAAEr6C,YAAa,eAAgBs6C,YAAa,aAAe,kBACzF27C,GAAU,EAAGz4N,WAAW,MAAOq4N,aAAY,EAAOD,kBAAiBl7O,OAAM6G,OAAMwhB,WAAUkiL,OAAQixC,EAAY7mE,UAAS8mE,SAAQ7pC,eAAc7vL,YACrJ,MAAOwoL,EAAQmxC,IAAa,IAAA32O,UAASy2O,SAA+CA,GAC9EH,EAAaxjI,QAAQ88D,GAAW8mE,GACtC,aAAgB,KACZ,IAAIpiP,EACiC,QAAhCA,EAAKkxM,IAAWixC,SAA+B,IAAPniP,GAAgBA,GACzDqiP,EAAUF,SAA+CA,EAC7D,GACD,CAACA,EAAYjxC,IAyBhB,OAAQ,gBAAoB6wC,GAAgB,KACxC,gBAAoB13N,GAAgB,CAAE23N,WAAYA,EAAY9rJ,SAAU,EAAGjpF,QAzB5D,KACf+0O,GAAcK,GAAU,GACxBD,GAAUA,GAAQ,EAuB8EjsJ,UAjBtEjpF,IACZ,MAAVA,EAAEyP,KACFqlO,GAAcK,GAAU,GACxBD,GAAUA,KAEK,WAAVl1O,EAAEyP,MACP0lO,GAAU,GACV/mE,GAAWA,IACf,EASiI,mBAAoBi9B,GAAgBvpL,GACrK,gBAAoB,IAAe,CAAEtG,MAAOA,GACxC,gBAAoBg5N,GAAe,CAAEj4N,SAAUA,EAAUq4N,UAAWA,EAAW5wC,OAAQA,EAAQllD,KAAM,UAAW13H,GAAIikL,EAAcspC,gBAAiBA,GAC/Ir0O,QAAczJ,EACd,gBAAoB,KAAM,CAAEsL,MAAOwyO,EAAiBlnO,MAAO,KAAUgX,QAASriB,WAAY,EAAAC,eAAesyO,EAAkB,WAAa,YAAax0O,IAAK,EAAAk8L,QAAQ1wL,MAAQlS,GAC1Kq7O,GAAe,gBAAoBC,GAAc,CAAEh1O,QA1B3C,KAChBo1O,GAAU,GACV/mE,GAAWA,GAAS,EAwB6DnlF,UAZzDjpF,IACV,MAAVA,EAAEyP,KAAyB,WAAVzP,EAAEyP,MACnB0lO,GAAU,GACV/mE,GAAWA,IACf,EAQgHplF,SAAU,GAC9G,gBAAoBhkF,EAAA,EAAO,CAAExE,QAAS,aAAgB,ECpDpE40O,GAAe,KAAOrxO,IAAIq1L,WAAW,CAAEr6C,YAAa,eAAgBs6C,YAAa,cAAgB,4DAA6Dh1L,GAAU,GAAGA,EAAMmX,MAAMkvD,UAAU8zC,SAAS5kG,SAASvV,EAAMmX,MAAMkvD,UAAUq6H,eAAemK,sBAAuB7qM,GAAUA,EAAMmX,MAAMk0E,YAAYyhH,UAAUr+L,4BAA6BzO,GAAUA,EAAMmX,MAAM0zL,WAAWjvJ,8BAA+B57C,GAAqD,EAA3Ck5C,SAASl5C,EAAMmX,MAAMnb,KAAKgvB,UAAW,IACzckuB,SAASl5C,EAAMmX,MAAMnb,KAAK4B,UAAW,SAAUoC,IAAWA,EAAMgxO,UAAY,IAAI,cAAyD,EAA3C93L,SAASl5C,EAAMmX,MAAMnb,KAAKgvB,UAAW,IACnIkuB,SAASl5C,EAAMmX,MAAMnb,KAAK4B,UAAW,IACrCs7C,SAASl5C,EAAMmX,MAAMnb,KAAKgU,UAAW,4BAA4B,KAAY3L,sBAAiE,EAA3C60C,SAASl5C,EAAMmX,MAAMnb,KAAKgvB,UAAW,IACxIkuB,SAASl5C,EAAMmX,MAAMnb,KAAK4B,UAAW,IACrCs7C,SAASl5C,EAAMmX,MAAMnb,KAAKyP,UAAW,6BAA6B,KAAYkD,sBAAiE,EAA3CuqC,SAASl5C,EAAMmX,MAAMnb,KAAKgvB,UAAW,IACzIkuB,SAASl5C,EAAMmX,MAAMnb,KAAK4B,UAAW,IACrCs7C,SAASl5C,EAAMmX,MAAMnb,KAAKy1M,UAAW,6BAA6B,KAAY5iM,uBAAkE,EAA3CqqC,SAASl5C,EAAMmX,MAAMnb,KAAKgvB,UAAW,IAC1IkuB,SAASl5C,EAAMmX,MAAMnb,KAAK4B,UAAW,IACrCs7C,SAASl5C,EAAMmX,MAAMnb,KAAKqhF,UAAW,YACnC4zJ,GAAkB,KAAOvxO,IAAIq1L,WAAW,CAAEr6C,YAAa,kBAAmBs6C,YAAa,cAAgB,+GAAgHh1L,GAAU,GAAGA,EAAMmX,MAAMkvD,UAAU8zC,SAAS5kG,SAASvV,EAAMmX,MAAMkvD,UAAUq6H,eAAemK,wBAAyB7qM,GAAUijC,KAAK9+B,IAA+C,GAA3C+0C,SAASl5C,EAAMmX,MAAMnb,KAAKgU,UAAW,IAAWkpC,SAASl5C,EAAMmX,MAAMnb,KAAKyP,UAAW,IACpbytC,SAASl5C,EAAMmX,MAAMnb,KAAKgvB,UAAW,IACM,GAA3CkuB,SAASl5C,EAAMmX,MAAMnb,KAAKgU,UAAW,YAAmBhQ,GAAqD,GAA3Ck5C,SAASl5C,EAAMmX,MAAMnb,KAAKgU,UAAW,4BAAkC,KAAY3L,mBAAoBrE,GAAUijC,KAAK9+B,IAA+C,GAA3C+0C,SAASl5C,EAAMmX,MAAMnb,KAAKyP,UAAW,IAAWytC,SAASl5C,EAAMmX,MAAMnb,KAAKyP,UAAW,IACjRytC,SAASl5C,EAAMmX,MAAMnb,KAAKgvB,UAAW,IACM,GAA3CkuB,SAASl5C,EAAMmX,MAAMnb,KAAKyP,UAAW,YAAmBzL,GAAqD,GAA3Ck5C,SAASl5C,EAAMmX,MAAMnb,KAAKyP,UAAW,6BAAmC,KAAYkD,mBAAoB3O,GAAqD,GAA3Ck5C,SAASl5C,EAAMmX,MAAMnb,KAAKy1M,UAAW,+BAAqC,KAAY5iM,oBAAqB7O,GAAqD,GAA3Ck5C,SAASl5C,EAAMmX,MAAMnb,KAAKqhF,UAAW,YAAmBr9E,GAAUA,EAAMgxO,UAAY,kCACpXE,GAAUlxO,IACnB,MAAM,MAAEwxN,EAAK,SAAEwf,EAAQ,KAAEvf,EAAI,SAAEh0M,GAAazd,EACtCi1L,GAAc,OAAej1L,GACnC,OAAQ,gBAAoB+wO,GAActnO,OAAOC,OAAO,CAAEsnO,SAAUA,GAAY/7C,GAC5E,gBAAoB,KAAW,CAAEl4L,QAAS,CAClCM,KAAM,KAAiBF,QACvBG,MAAO,KAAiBH,QACxBH,IAAK,KAAiBguB,UACtB5tB,OAAQ,KAAiB4tB,WAC1BvtB,OAAQ,KAAgBW,UAAWxP,KAAM,MAAcuP,MAAOo5D,cAAe,MAA2BxoD,OAAQjS,gBAAgB,GAAQ2gB,GAC/I,gBAAoBwzN,GAAiB,CAAED,SAAUA,GAC7C,gBAAoBzf,GAAa,CAAEE,KAAMA,EAAMD,MAAOA,KAAW,ECpBhE2f,GAAc,cAAiB,CAACnxO,EAAOgJ,KAChD,MAAM,SAAEyU,GAAazd,EACfi1L,GAAc,OAAej1L,GAC7BoxO,EAAc3zN,EAAS5U,KAAKipD,GAZd,CAACA,GACC,WAAfA,EAAM/+D,KAYLs+O,CAAgBv/K,GACR,gBAAoB,SAAUroD,OAAOC,OAAO,CAAC,EAAGooD,EAAM9xD,MAAO,CAAEoL,IAAK0mD,EAAM1mD,IAAKkmO,qBAAiB9+O,EAAW8sM,YAAQ9sM,EAAW,cAAes/D,EAAM9xD,MAAMs/L,UAXpJ,CAACxtI,GACfA,EAAM/+D,OAAS,MAYdw+O,CAAiBz/K,GACT,gBAAoB,MAAWroD,OAAOC,OAAO,CAAC,EAAGooD,EAAM9xD,MAAO,CAAEoL,IAAK0mD,EAAM1mD,IAAK8D,SAAK1c,EAAW8sM,YAAQ9sM,EAAW,WAAYs/D,EAAM9xD,MAAMkP,IAAK,cAAe4iD,EAAM9xD,MAAMs/L,OAAQE,kBAAkB,KAXtL,CAAC1tI,GACzBA,EAAM/+D,OAAS,MAYdy+O,CAA2B1/K,GACnB,gBAAoB,MAAqBroD,OAAOC,OAAO,CAAC,EAAGooD,EAAM9xD,MAAO,CAAEoL,IAAK0mD,EAAM1mD,IAAK8D,SAAK1c,EAAW8sM,YAAQ9sM,EAAW,WAAYs/D,EAAM9xD,MAAMkP,IAAK,cAAe4iD,EAAM9xD,MAAMs/L,OAAQE,kBAAkB,UAD3N,IAKJ,OAAQ,gBAAoB,WAAgB,KACxC,gBAAoB,WAAY,KAC5B,gBAAoB,UAAW,KAAM/hL,IACzC,gBAAoB,UAAWhU,OAAOC,OAAO,CAAEV,IAAKA,GAAOisL,GAAcm8C,GAAc,IAE/FD,GAAYz2F,YAAc,UC/BnB,MAAM+2F,GAAe,qBAAoBj/O,GACnCk/O,GAAkB,qBAAoBl/O,GACtCm/O,GAAwB3xO,IACjC,MAAO4xO,EAAOC,GAAY,aAC1B,OAAQ,gBAAoBH,GAAgBjgM,SAAU,CAAExvC,MAAO4vO,GAC3D,gBAAoBJ,GAAahgM,SAAU,CAAExvC,MAAO2vO,GAAS5xO,EAAMyd,UAAW,ECNtF,IAAI,GAAkC,SAAU48B,EAAG1+C,GAC/C,IAAImoB,EAAI,CAAC,EACT,IAAK,IAAIqJ,KAAKktB,EAAO5wC,OAAOgkB,UAAUoP,eAAenpC,KAAK2mD,EAAGltB,IAAMxxB,EAAEg5B,QAAQxH,GAAK,IAC9ErJ,EAAEqJ,GAAKktB,EAAEltB,IACb,GAAS,MAALktB,GAAqD,mBAAjC5wC,OAAOqsL,sBACtB,KAAIloM,EAAI,EAAb,IAAgBu/B,EAAI1jB,OAAOqsL,sBAAsBz7I,GAAIzsD,EAAIu/B,EAAEt0B,OAAQjL,IAC3D+N,EAAEg5B,QAAQxH,EAAEv/B,IAAM,GAAK6b,OAAOgkB,UAAUsoK,qBAAqBriM,KAAK2mD,EAAGltB,EAAEv/B,MACvEk2B,EAAEqJ,EAAEv/B,IAAMysD,EAAEltB,EAAEv/B,IAF4B,CAItD,OAAOk2B,CACX,EAKO,MAAMguN,GAA0B,qBAAoBt/O,GACrDu/O,GAAc,KAAO9nF,MAAM8qC,WAAW,CAAEr6C,YAAa,cAAes6C,YAAa,aAAe,0BAChGg9C,GAAqB,KAAOtyO,IAAIq1L,WAAW,CAAEr6C,YAAa,qBAAsBs6C,YAAa,cAAgB,kCAC7Gi9C,GAAoB,KAAOvyO,IAAIq1L,WAAW,CAAEr6C,YAAa,oBAAqBs6C,YAAa,cAAgB,qHACpGhrC,GAAShqJ,IAClB,MAAMvR,GAAK,OAAiBuR,IAAQ,SAAEyd,EAAQ,cAAEy0N,EAAa,mBAAEC,GAAuB1jP,EAAI0wM,EAAS,GAAO1wM,EAAI,CAAC,WAAY,gBAAiB,uBACtIwmM,GAAc,OAAej1L,GAC7B6xO,EAAW,aAAiBH,IAC5BU,EAAW,SAAa,OACvBC,EAAcC,GAAmB,aAClCC,EAAkB,SAAa,MAC/BC,EAAiB,SAAa,OAC7BC,EAAoBC,GAAyB,aACpD,aAAgB,KACZb,GAAYA,EAASO,EAAS/0N,QAAQ,GACvC,CAACw0N,EAAUO,IACd,aAAgB,KACZE,EAAgBF,EAAS/0N,QAAQ,GAClC,CAAC+0N,IACJ,aAAgB,KACZM,EAAsBF,EAAen1N,QAAQ,GAC9C,CAACm1N,IACJ,aAAgB,KACZ,IAAKL,IAAuBI,EAAgBl1N,QACxC,OAEJ,MAAMs1N,EAAsBJ,EAAgBl1N,QACtCu1N,EAAyB,KAC3BT,EAAmB,CACftjK,WAAY3gE,SAAS2kO,oBAAsBF,GAC7C,EAGN,OADAA,EAAoBxkO,iBAAiB,mBAAoBykO,GAClD,KACHD,EAAoBvkO,oBAAoB,mBAAoBwkO,EAAuB,CACtF,GACF,CAACL,EAAiBJ,IACrB,MAAMnlM,EAAc,eAAkB,KAClC,IAAKolM,IAAaA,EAAS/0N,QACvB,OAEW+0N,EAAS/0N,QAAQy1N,OAE5BV,EAAS/0N,QAAQ01N,OAGjBX,EAAS/0N,QAAQ21N,OACrB,GACD,CAACZ,IACJ,OAAQ,gBAAoBJ,GAAoBvoO,OAAOC,OAAO,CAAC,EAAGurL,EAAa,CAAEjsL,IAAKupO,IAClF,gBAAoBR,GAAatoO,OAAOC,OAAO,CAAEV,IAAKopO,GAAYjzC,GAAS+yC,GAC3E,gBAAoBT,GAAahgM,SAAU,CAAExvC,MAAOowO,GAChD,gBAAoBJ,GAAmB,CAAEv2O,QAASsxC,EAAahkC,IAAKwpO,GAChE,gBAAoB,IAAe,CAAEr7N,MAAO,SACxC,gBAAoB26N,GAAwBrgM,SAAU,CAAExvC,MAAOwwO,GAAsBh1N,MAAc,EAEvHusI,GAAMtP,YAAc,QCnEpB,MAAM,GAAqB,uCACrBu4F,GAAyB,KAAOvzO,IAAIq1L,WAAW,CAAEr6C,YAAa,yBAA0Bs6C,YAAa,aAAe,uCAAwCh1L,GAAUA,EAAMmX,MAAMnb,KAAKoC,8CAA+C4B,GAAUA,EAAMmX,MAAMnb,KAAK4B,wBAAyBoC,GAAUA,EAAMmX,MAAMmvN,KAAKC,0BAA0B,EAAG1lC,aAAcA,EAChW,gBAAgB,KAChB,qBAAqB,gBAAgC,EAAGA,cAAeA,GAAW,sBAAsB,EAAGA,cAAeA,GAAW,UAC9HqyC,GAAoBlzO,IAC7B,MAAMqyO,EAAe,aAAiBZ,IAChC0B,EAA0B,aAAiBrB,KAC1CsB,EAAWC,GAAgB,YAAe,IAC1CC,EAAUC,GAAe,YAAe,IACxCC,EAAYC,GAAiB,YAAe,GAC7CC,EAAY,WACZC,EAAa,eAAkB,KACjCN,GAAa,GACbE,GAAY,EAAK,GAClB,IACGK,EAAc,eAAkB,KAClCP,GAAa,EAAM,GACpB,IACGQ,EAAc,eAAkB,KAClCN,GAAY,EAAM,GACnB,IACGO,EAAoB,eAAkB,KACxCL,GAAc,GACdC,EAAUr2N,SAAW6nD,aAAawuK,EAAUr2N,SAC5Cq2N,EAAUr2N,QAAU6L,OAAOvL,YAAW,KAClC81N,GAAc,EAAM,GACrB,IAAK,GACT,IACH,aAAgB,KACZpB,SAA4DA,EAAalkO,iBAAiB,OAAQwlO,GAClGtB,SAA4DA,EAAalkO,iBAAiB,QAASylO,GACnGvB,SAA4DA,EAAalkO,iBAAiB,QAAS0lO,GACnGV,SAAkFA,EAAwBhlO,iBAAiB,YAAa2lO,GACxIX,SAAkFA,EAAwBhlO,iBAAiB,YAAa2lO,GACxIX,SAAkFA,EAAwBhlO,iBAAiB,QAAS2lO,GAAmB,GAChJ,KACHzB,SAA4DA,EAAajkO,oBAAoB,OAAQulO,GACrGtB,SAA4DA,EAAajkO,oBAAoB,OAAQwlO,GACrGT,SAAkFA,EAAwB/kO,oBAAoB,YAAa0lO,GAC3IX,SAAkFA,EAAwB/kO,oBAAoB,YAAa0lO,GAC3IX,SAAkFA,EAAwB/kO,oBAAoB,QAAS0lO,GAAmB,EAAK,IAEpK,CACCD,EACAC,EACAF,EACAD,EACAtB,EACAc,IAEJ,MAAMtyC,IAAYuyC,GAAaI,MAAiBxzO,EAAM+zO,eAAiBT,GACvE,OAAQ,gBAAoBL,GAAwB,CAAEpyC,QAASA,GAAW7gM,EAAMyd,SAAU,EAE9Fy1N,GAAiBx4F,YAAc,mBCrD/B,MAAMs5F,GAAkB,KAAOt0O,IAAIq1L,WAAW,CAAEr6C,YAAa,kBAAmBs6C,YAAa,aAAe,4FAA4F,EAAGriJ,YAAcA,EAAS,EAAI,KAChO,GAAkB,KAAOjzC,IAAIq1L,WAAW,CAAEr6C,YAAa,kBAAmBs6C,YAAa,cAAgB,qFAAsFh1L,GAAUA,EAAMmX,MAAMnb,KAAK2B,oBAAqBqC,GAAUA,EAAMmX,MAAMnb,KAAK2B,0CAA2CqC,GAAUA,EAAMmX,MAAMk0E,YAAYioE,UAAU3gH,+CAA+C,EAAGA,YAAcA,EAAS,IAAM,oGAC9ashM,GAAiB,KAAOv0O,IAAIo7G,OAAM,EAAGy6G,WAAU2e,oBAAoB,CACrElwO,MAAO,CACH,aAAc,mBAAmBuxN,MACjC,oBAAqB,qBAAqBA,OAC1C,kBAAmB,mBAAmB2e,WAE1Cn/C,WAAW,CAAEr6C,YAAa,iBAAkBs6C,YAAa,cAAgB,4BAA6Bh1L,GAAUA,EAAMmX,MAAMnb,KAAKwiH,KAAK7rE,gCAAiC3yC,GAAUA,EAAMmX,MAAMk0E,YAAYioE,UAAU7kJ,+FAAgGzO,GAAUA,EAAMmX,MAAMk0E,YAAYioE,UAAU3gH,gNAAgN,kBAC7iBwhM,GAAwB,KAAOz0O,IAAIq1L,WAAW,CAAEr6C,YAAa,wBAAyBs6C,YAAa,aAAe,gFAAgF,iBAA8Bi/C,2BACzNG,GAAW,KACpB,MAAMC,EAAqB,SAAa,MAClChC,EAAe,aAAiBZ,KAC/B6C,EAAWC,GAAgB,WAAe,IAC1Chf,EAAUif,GAAe,WAAe,IACxCN,EAAeO,GAAoB,WAAe,IAClD9hM,EAAQopI,GAAa,YAAe,GACrC24D,EAAmB,eAAkB,KACvCH,GAAclC,aAAmD,EAASA,EAAasC,cAAgB,EAAE,GAC1G,CAACtC,IACJ,aAAgB,KACZA,SAA4DA,EAAalkO,iBAAiB,aAAcumO,GACjG,KACHrC,SAA4DA,EAAajkO,oBAAoB,aAAcsmO,EAAiB,IAEjI,CAACA,EAAkBrC,IACtB,aAAgB,KACZmC,GAAcnC,aAAmD,EAASA,EAAal4H,WACnFm6H,GACCA,GAAajC,aAAmD,EAASA,EAAal4H,UAAa,KACpG,EAAE,GACP,CAACk4H,EAAciC,IAClB,MAAMtnM,EAAc,eAAmBh5B,IACnC,IAAIvlB,EAAI0kD,EACR,MAAM91C,GAA8C,QAArC5O,EAAK4lP,EAAmBh3N,eAA4B,IAAP5uB,OAAgB,EAASA,EAAG+gF,wBAAwBnyE,OAAS,EACnH4R,GAA+C,QAArCkkC,EAAKkhM,EAAmBh3N,eAA4B,IAAP81B,OAAgB,EAASA,EAAGq8B,wBAAwBvgE,QAAU,EACvHojO,IACAr+N,EAAM3V,iBACN2V,EAAMohE,kBACNi9J,EAAasC,aACP3gO,EAAM07D,QAAUryE,GAAQ4R,EAASojO,EAAal4H,SACxD,GACD,CAACk4H,IACEuC,EAAc,eAAmBj5O,IACnC,IAAIlN,EAAI0kD,EACR,MAAM91C,GAA8C,QAArC5O,EAAK4lP,EAAmBh3N,eAA4B,IAAP5uB,OAAgB,EAASA,EAAG+gF,wBAAwBnyE,OAAS,EACnH4R,GAA+C,QAArCkkC,EAAKkhM,EAAmBh3N,eAA4B,IAAP81B,OAAgB,EAASA,EAAGq8B,wBAAwBvgE,QAAU,EAC3HwlO,GAAmB94O,EAAE+zE,QAAUryE,GAAQ4R,EAAS,KAC5CojO,GAA8B,IAAd12O,EAAEk5O,UAClBL,GAAc74O,EAAE+zE,QAAUryE,GAAQ4R,EAAS,KAC3CojO,EAAasC,aACPh5O,EAAE+zE,QAAUryE,GAAQ4R,EAASojO,EAAal4H,SAChDo6H,GAAe54O,EAAE+zE,QAAUryE,GAAQ4R,EAASojO,EAAal4H,UAC7D,GACD,CAACk4H,IACEr2B,EAAkB,eAAmBrgN,IACvC,IAAIlN,EAAI0kD,EACR,IAAKk/L,GAAiD,IAAjCA,EAAayC,SAASj8O,OACvC,OAEJ,MAAMwE,GAA8C,QAArC5O,EAAK4lP,EAAmBh3N,eAA4B,IAAP5uB,OAAgB,EAASA,EAAG+gF,wBAAwBnyE,OAAS,EACnH4R,GAA+C,QAArCkkC,EAAKkhM,EAAmBh3N,eAA4B,IAAP81B,OAAgB,EAASA,EAAGq8B,wBAAwBvgE,QAAU,EAC3HwlO,GAAmB94O,EAAEo5O,cAAc,GAAGrlK,QAAUryE,GAAQ4R,EAAS,KACjEulO,GAAc74O,EAAEo5O,cAAc,GAAGrlK,QAAUryE,GAAQ4R,EAAS,KACxDojO,IACAA,EAAasC,aACPh5O,EAAEo5O,cAAc,GAAGrlK,QAAUryE,GAAQ4R,EAASojO,EAAal4H,SACjEo6H,GAAe54O,EAAEo5O,cAAc,GAAGrlK,QAAUryE,GAAQ4R,EAASojO,EAAal4H,UAC9E,GACD,CAACk4H,IACE2C,EAAmB,eAAkB,KACnC3C,GAAiD,IAAjCA,EAAayC,SAASj8O,QACtCw5O,EAAa5wL,OAEjBs6H,GAAU,EAAK,GAChB,CAACs2D,IACE4C,EAAiB,eAAkB,KACrCl5D,GAAU,EAAM,GACjB,IACGm5D,EAAgB,eAAmBlhO,IACrC,GAAIq+N,EAAc,CACd,MAAM8C,EAAanhO,EAAMohO,SAAW,IAAO,IACzB,cAAdphO,EAAM5I,MACN4I,EAAM3V,iBACNg0O,EAAasC,aAAetC,EAAal4H,SAAWg7H,EACpDX,EAAanC,EAAasC,YAActC,EAAal4H,SAAY,MAEnD,eAAdnmG,EAAM5I,MACN4I,EAAM3V,iBACNg0O,EAAasC,aAAetC,EAAal4H,SAAWg7H,EACpDX,EAAanC,EAAasC,YAActC,EAAal4H,SAAY,MAEnD,SAAdnmG,EAAM5I,MACN4I,EAAM3V,iBACNg0O,EAAasC,YAAc,EAC3BH,EAAY,IAEE,QAAdxgO,EAAM5I,MACN4I,EAAM3V,iBACNg0O,EAAasC,YAActC,EAAal4H,SACxCq6H,EAAY,KAEpB,IACD,CAACnC,IACEgD,EAAa,WAAc,KAC7B,MAAMC,EAAmBryM,KAAKkvB,MAAMlvB,KAAK9+B,IAAI,EAAG8+B,KAAK3+B,KAAK+tO,aAAmD,EAASA,EAAal4H,WAAa,EAAGm6H,KAGnJ,MAAO,GAFS,GAAGrxM,KAAKspB,MAAM+oL,EAAmB,MAAMC,SAAS,EAAG,SACnD,GAAGD,EAAmB,IAAKC,SAAS,EAAG,MACzB,GAC/B,CAACjB,EAAWjC,IACf,OAAQ,gBAAoB8B,GAAuB,CAAEz4O,QAASsxC,EAAaI,YAAawnM,EAAaY,YAAax5B,EAAiB7+H,aAAc63J,EAAkBS,WAAYR,EAAgB77C,YAAa47C,EAAkBU,UAAWT,EAAgBjsO,IAAKqrO,GAC1P,gBAAoBJ,GAAgB,CAAEx5F,KAAM,SAAU,gBAAiB,EAAG,iBAAkB43F,aAAmD,EAASA,EAAal4H,WAAa,EAAG,gBAAiBm6H,EAAW,iBAAkBe,EAAY9f,SAAUA,EAAU2e,cAAeA,EAAevvJ,SAAU,EAAGC,UAAWswJ,GACrT,gBAAoB,GAAiB,CAAEviM,OAAQA,GAC3C,gBAAoBqhM,GAAiB,CAAErhM,OAAQA,GAC3C,gBAAoB,KAAM,CAAE50C,WAAY,EAAAC,eAAe23O,UAAYN,MAAgB,EAEvGjB,GAAS15F,YAAc,WCvHhB,IAAIk7F,GAAQ,aAAiBnsO,OAAOC,QAAO,SAAU1J,EAAOu6I,GAC/D,IAAIp+I,EAAU6D,EAAM7D,SAAW,UAC/B,MAAgB,YAAZA,EACO,gBAAoB,MAAO,CAAEuG,UAAW1C,EAAM0C,UAAW,cAAe1C,EAAMw6I,WAAYC,KAAMz6I,EAAMw6I,gBAAahoJ,EAAY,MAAOmyF,SAAU3kF,EAAM2kF,SAAU,aAAc3kF,EAAMsO,UAAWtF,IAAKuxI,EAAYtnE,MAAO,6BAA8BhkE,MAAO,KAAMyB,OAAQ,KAAMsiE,QAAS,YAAa/5B,KAAM,gBAC/Sj5C,EAAM4D,OAAS,gBAAoB,QAAS,KAAM5D,EAAM4D,OACxD,gBAAoB,OAAQ,CAAEi7D,EAAG,yDAEzB,UAAZ1iE,EACO,gBAAoB,MAAO,CAAEuG,UAAW1C,EAAM0C,UAAW,cAAe1C,EAAMw6I,WAAYC,KAAMz6I,EAAMw6I,gBAAahoJ,EAAY,MAAOmyF,SAAU3kF,EAAM2kF,SAAU,aAAc3kF,EAAMsO,UAAWtF,IAAKuxI,EAAYtnE,MAAO,6BAA8BhkE,MAAO,KAAMyB,OAAQ,KAAMsiE,QAAS,YAAa/5B,KAAM,gBAC/Sj5C,EAAM4D,OAAS,gBAAoB,QAAS,KAAM5D,EAAM4D,OACxD,gBAAoB,OAAQ,CAAEi7D,EAAG,gDAElC,IACX,GAAG,CAAE67E,YAAa,WCbPm7F,GAAO,aAAiBpsO,OAAOC,QAAO,SAAU1J,EAAOu6I,GAC9D,IAAIp+I,EAAU6D,EAAM7D,SAAW,UAC/B,MAAgB,YAAZA,EACO,gBAAoB,MAAO,CAAEuG,UAAW1C,EAAM0C,UAAW,cAAe1C,EAAMw6I,WAAYC,KAAMz6I,EAAMw6I,gBAAahoJ,EAAY,MAAOmyF,SAAU3kF,EAAM2kF,SAAU,aAAc3kF,EAAMsO,UAAWtF,IAAKuxI,EAAYtnE,MAAO,6BAA8BhkE,MAAO,KAAMyB,OAAQ,KAAMsiE,QAAS,YAAa/5B,KAAM,gBAC/Sj5C,EAAM4D,OAAS,gBAAoB,QAAS,KAAM5D,EAAM4D,OACxD,gBAAoB,OAAQ,CAAEi7D,EAAG,iQAEzB,UAAZ1iE,EACO,gBAAoB,MAAO,CAAEuG,UAAW1C,EAAM0C,UAAW,cAAe1C,EAAMw6I,WAAYC,KAAMz6I,EAAMw6I,gBAAahoJ,EAAY,MAAOmyF,SAAU3kF,EAAM2kF,SAAU,aAAc3kF,EAAMsO,UAAWtF,IAAKuxI,EAAYtnE,MAAO,6BAA8BhkE,MAAO,KAAMyB,OAAQ,KAAMsiE,QAAS,YAAa/5B,KAAM,gBAC/Sj5C,EAAM4D,OAAS,gBAAoB,QAAS,KAAM5D,EAAM4D,OACxD,gBAAoB,OAAQ,CAAEi7D,EAAG,ueAEzB,UAAZ1iE,EACO,gBAAoB,MAAO,CAAEuG,UAAW1C,EAAM0C,UAAW,cAAe1C,EAAMw6I,WAAYC,KAAMz6I,EAAMw6I,gBAAahoJ,EAAY,MAAOmyF,SAAU3kF,EAAM2kF,SAAU,aAAc3kF,EAAMsO,UAAWtF,IAAKuxI,EAAYtnE,MAAO,6BAA8BhkE,MAAO,KAAMyB,OAAQ,KAAMsiE,QAAS,YAAa/5B,KAAM,gBAC/Sj5C,EAAM4D,OAAS,gBAAoB,QAAS,KAAM5D,EAAM4D,OACxD,gBAAoB,OAAQ,CAAEi7D,EAAG,+JAElC,IACX,GAAG,CAAE67E,YAAa,UCdlB,MAAMo7F,IAAmB,QAAO,MAAK/gD,WAAW,CAAEr6C,YAAa,mBAAoBs6C,YAAa,aAAe,iBAClG+gD,GAAc/1O,IACvB,MAAMqyO,EAAe,aAAiBZ,KAC/B2B,EAAWC,GAAgB,YAAe,GAC3CM,EAAa,eAAkB,KACjCN,GAAa,EAAK,GACnB,IACGO,EAAc,eAAkB,KAClCP,GAAa,EAAM,GACpB,IACH,aAAgB,KACZhB,SAA4DA,EAAalkO,iBAAiB,OAAQwlO,GAClGtB,SAA4DA,EAAalkO,iBAAiB,QAASylO,GAC5F,KACHvB,SAA4DA,EAAajkO,oBAAoB,OAAQulO,GACrGtB,SAA4DA,EAAajkO,oBAAoB,QAASwlO,EAAY,IAEvH,CAACA,EAAaD,EAAYtB,IAC7B,MAAMrlM,EAAc,eAAmBh5B,IAC/Bq+N,IACAr+N,EAAM3V,iBACN2V,EAAMohE,kBACNg+J,EAAYf,EAAaW,QAAUX,EAAaU,OACpD,GACD,CAACV,EAAce,IAClB,OAAQ,gBAAoB0C,GAAkB,CAAEh6O,IAAK,SAAUC,SAAU,WAAYL,QAASsxC,EAAappC,MAAOwvO,EAAYpzO,EAAMg2O,WAAah2O,EAAMi2O,UAAW3nO,UAAW8kO,EAAYpzO,EAAMg2O,WAAah2O,EAAMi2O,UAAWh6O,KAAMm3O,EAAY,gBAAoBwC,GAAO,MAAQ,gBAAoBC,GAAM,OAAS,EAEzTE,GAAWr7F,YAAc,aC3BzB,MAAMw7F,IAAyB,QAAO,MAAKnhD,WAAW,CAAEr6C,YAAa,yBAA0Bs6C,YAAa,cAAgB,sEAC/GmhD,GAAoBn2O,IAC7B,MAAMqyO,EAAe,aAAiBZ,KAC/B2B,EAAWC,GAAgB,YAAe,GAC3CM,EAAa,eAAkB,KACjCN,GAAa,EAAK,GACnB,IACGQ,EAAc,eAAkB,KAClCR,GAAa,EAAM,GACpB,IACH,aAAgB,KACZhB,SAA4DA,EAAalkO,iBAAiB,OAAQwlO,GAClGtB,SAA4DA,EAAalkO,iBAAiB,QAAS0lO,GAC5F,KACHxB,SAA4DA,EAAajkO,oBAAoB,OAAQulO,GACrGtB,SAA4DA,EAAajkO,oBAAoB,QAASylO,EAAY,IAEvH,CAACA,EAAaF,EAAYtB,IAC7B,MAAMrlM,EAAc,eAAmBh5B,IAC/Bq+N,IACAr+N,EAAM3V,iBACN2V,EAAMohE,kBACNi9J,EAAaU,OACjB,GACD,CAACV,IACJ,OAAIe,EACO,KAEH,gBAAoB8C,GAAwB,CAAEp6O,IAAK,SAAUC,SAAU,WAAYL,QAASsxC,EAAappC,MAAO5D,EAAMi2O,UAAW3nO,UAAWtO,EAAMi2O,UAAWh6O,KAAM,gBAAoB45O,GAAM,OAAS,EAElNM,GAAiBz7F,YAAc,mBChCxB,MAAM07F,GAAc,KACvB,MAAM/D,EAAe,aAAiBZ,KAC/B4D,EAAYgB,GAAiB,WAAe,SAC7C3B,EAAmB,eAAkB,KACvC,MAAMv6H,GAAYk4H,aAAmD,EAASA,EAAal4H,WAAa,EAClGw6H,GAAetC,aAAmD,EAASA,EAAasC,cAAgB,EACxGW,EAAmBryM,KAAKkvB,MAAMgoD,EAAWw6H,GACzC2B,EAAU,GAAGrzM,KAAKspB,MAAM+oL,EAAmB,MAAMC,SAAS,EAAG,KAC7DgB,GAAU,GAAGjB,EAAmB,IAAKC,SAAS,EAAG,KACvDc,EAAc,GAAGC,KAAWC,IAAU,GACvC,CAAClE,IAQJ,OAPA,aAAgB,KACZqC,IACArC,SAA4DA,EAAalkO,iBAAiB,aAAcumO,GACjG,KACHrC,SAA4DA,EAAajkO,oBAAoB,aAAcsmO,EAAiB,IAEjI,CAACA,EAAkBrC,IACf,gBAAoB,KAAM,CAAEt0O,WAAY,EAAAC,eAAeo/E,UAAYi4J,EAAW,EAEzFe,GAAY17F,YAAc,cCtBnB,IAAI87F,GAAiB,aAAiB/sO,OAAOC,QAAO,SAAU1J,EAAOu6I,GACxE,IAAIp+I,EAAU6D,EAAM7D,SAAW,UAC/B,MAAgB,YAAZA,EACO,gBAAoB,MAAO,CAAEuG,UAAW1C,EAAM0C,UAAW,cAAe1C,EAAMw6I,WAAYC,KAAMz6I,EAAMw6I,gBAAahoJ,EAAY,MAAOmyF,SAAU3kF,EAAM2kF,SAAU,aAAc3kF,EAAMsO,UAAWtF,IAAKuxI,EAAYtnE,MAAO,6BAA8BhkE,MAAO,KAAMyB,OAAQ,KAAMsiE,QAAS,YAAa/5B,KAAM,gBAC/Sj5C,EAAM4D,OAAS,gBAAoB,QAAS,KAAM5D,EAAM4D,OACxD,gBAAoB,OAAQ,CAAEi7D,EAAG,qLAEzB,UAAZ1iE,EACO,gBAAoB,MAAO,CAAEuG,UAAW1C,EAAM0C,UAAW,cAAe1C,EAAMw6I,WAAYC,KAAMz6I,EAAMw6I,gBAAahoJ,EAAY,MAAOmyF,SAAU3kF,EAAM2kF,SAAU,aAAc3kF,EAAMsO,UAAWtF,IAAKuxI,EAAYtnE,MAAO,6BAA8BhkE,MAAO,KAAMyB,OAAQ,KAAMsiE,QAAS,YAAa/5B,KAAM,gBAC/Sj5C,EAAM4D,OAAS,gBAAoB,QAAS,KAAM5D,EAAM4D,OACxD,gBAAoB,OAAQ,CAAEi7D,EAAG,+KAElC,IACX,GAAG,CAAE67E,YAAa,oBCbP+7F,GAAkB,aAAiBhtO,OAAOC,QAAO,SAAU1J,EAAOu6I,GACzE,IAAIp+I,EAAU6D,EAAM7D,SAAW,UAC/B,MAAgB,YAAZA,EACO,gBAAoB,MAAO,CAAEuG,UAAW1C,EAAM0C,UAAW,cAAe1C,EAAMw6I,WAAYC,KAAMz6I,EAAMw6I,gBAAahoJ,EAAY,MAAOmyF,SAAU3kF,EAAM2kF,SAAU,aAAc3kF,EAAMsO,UAAWtF,IAAKuxI,EAAYtnE,MAAO,6BAA8BhkE,MAAO,KAAMyB,OAAQ,KAAMsiE,QAAS,YAAa/5B,KAAM,gBAC/Sj5C,EAAM4D,OAAS,gBAAoB,QAAS,KAAM5D,EAAM4D,OACxD,gBAAoB,OAAQ,CAAEi7D,EAAG,oMAEzB,UAAZ1iE,EACO,gBAAoB,MAAO,CAAEuG,UAAW1C,EAAM0C,UAAW,cAAe1C,EAAMw6I,WAAYC,KAAMz6I,EAAMw6I,gBAAahoJ,EAAY,MAAOmyF,SAAU3kF,EAAM2kF,SAAU,aAAc3kF,EAAMsO,UAAWtF,IAAKuxI,EAAYtnE,MAAO,6BAA8BhkE,MAAO,KAAMyB,OAAQ,KAAMsiE,QAAS,YAAa/5B,KAAM,gBAC/Sj5C,EAAM4D,OAAS,gBAAoB,QAAS,KAAM5D,EAAM4D,OACxD,gBAAoB,OAAQ,CAAEi7D,EAAG,8KAElC,IACX,GAAG,CAAE67E,YAAa,qBCTlB,MAAMg8F,IAAyB,QAAO,MAAK3hD,WAAW,CAAEr6C,YAAa,yBAA0Bs6C,YAAa,aAAe,iBAkBpH,MAAM2hD,GAAoB32O,IAC7B,MAAMqyO,EAAe,aAAiBZ,KAC/B5iK,EAAY+nK,GAAiB,WAAe3pI,QAAQ/+F,SAAS2kO,mBAAqB3kO,SAAS2oO,0BAC5FjE,EAAyB,eAAkB,KAC7CgE,EAAc3pI,QAAQ/+F,SAAS2kO,mBAAqB3kO,SAAS2oO,yBAAyB,GACvF,IACH,aAAgB,KACZ3oO,SAASC,iBAAiB,mBAAoBykO,GAC9C1kO,SAASC,iBAAiB,yBAA0BykO,GAC7C,KACH1kO,SAASE,oBAAoB,mBAAoBwkO,GACjD1kO,SAASE,oBAAoB,yBAA0BwkO,EAAuB,IAEnF,CAACA,IACJ,MAAM5lM,EAAc,eAAmBh5B,IA/B3C,IAA2ByU,EAAS0pL,EAgCvBkgC,GAAiBA,EAAayE,gBAGnC9iO,EAAM3V,iBACN2V,EAAMohE,kBACNvG,GA3BA3gE,SAAS6oO,gBACT7oO,SAAS6oO,iBAET7oO,SAAS8oO,sBACT9oO,SAAS8oO,yBAdUvuN,EAuCK4pN,GAvCIlgC,EAuCUkgC,EAAayE,eAtC5CG,kBACP9kC,EAAO8kC,oBAGPxuN,EAAQyuN,uBACRzuN,EAAQyuN,yBAiCyD,GAClE,CAAC7E,EAAcxjK,IAClB,OAAQ,gBAAoB6nK,GAAwB,CAAE56O,IAAK,SAAUC,SAAU,WAAYL,QAASsxC,EAAappC,MAAOirE,EAAa7uE,EAAMm3O,WAAan3O,EAAMo3O,UAAWn7O,KAAM4yE,EAAa,gBAAoB2nK,GAAgB,MAAQ,gBAAoBC,GAAiB,OAAS,EAE1RE,GAAiBj8F,YAAc,mBChDxB,IAAI28F,GAAa,aAAiB5tO,OAAOC,QAAO,SAAU1J,EAAOu6I,GACpE,IAAIp+I,EAAU6D,EAAM7D,SAAW,UAC/B,MAAgB,YAAZA,EACO,gBAAoB,MAAO,CAAEuG,UAAW1C,EAAM0C,UAAW,cAAe1C,EAAMw6I,WAAYC,KAAMz6I,EAAMw6I,gBAAahoJ,EAAY,MAAOmyF,SAAU3kF,EAAM2kF,SAAU,aAAc3kF,EAAMsO,UAAWtF,IAAKuxI,EAAYtnE,MAAO,6BAA8BhkE,MAAO,KAAMyB,OAAQ,KAAMsiE,QAAS,YAAa/5B,KAAM,gBAC/Sj5C,EAAM4D,OAAS,gBAAoB,QAAS,KAAM5D,EAAM4D,OACxD,gBAAoB,OAAQ,CAAEi7D,EAAG,4hBAEzB,UAAZ1iE,EACO,gBAAoB,MAAO,CAAEuG,UAAW1C,EAAM0C,UAAW,cAAe1C,EAAMw6I,WAAYC,KAAMz6I,EAAMw6I,gBAAahoJ,EAAY,MAAOmyF,SAAU3kF,EAAM2kF,SAAU,aAAc3kF,EAAMsO,UAAWtF,IAAKuxI,EAAYtnE,MAAO,6BAA8BhkE,MAAO,KAAMyB,OAAQ,KAAMsiE,QAAS,YAAa/5B,KAAM,gBAC/Sj5C,EAAM4D,OAAS,gBAAoB,QAAS,KAAM5D,EAAM4D,OACxD,gBAAoB,OAAQ,CAAEi7D,EAAG,+jDAEzB,UAAZ1iE,EACO,gBAAoB,MAAO,CAAEuG,UAAW1C,EAAM0C,UAAW,cAAe1C,EAAMw6I,WAAYC,KAAMz6I,EAAMw6I,gBAAahoJ,EAAY,MAAOmyF,SAAU3kF,EAAM2kF,SAAU,aAAc3kF,EAAMsO,UAAWtF,IAAKuxI,EAAYtnE,MAAO,6BAA8BhkE,MAAO,KAAMyB,OAAQ,KAAMsiE,QAAS,YAAa/5B,KAAM,gBAC/Sj5C,EAAM4D,OAAS,gBAAoB,QAAS,KAAM5D,EAAM4D,OACxD,gBAAoB,OAAQ,CAAEi7D,EAAG,ghBAElC,IACX,GAAG,CAAE67E,YAAa,gBClBP48F,GAAgB,aAAiB7tO,OAAOC,QAAO,SAAU1J,EAAOu6I,GACvE,IAAIp+I,EAAU6D,EAAM7D,SAAW,UAC/B,MAAgB,YAAZA,EACO,gBAAoB,MAAO,CAAEuG,UAAW1C,EAAM0C,UAAW,cAAe1C,EAAMw6I,WAAYC,KAAMz6I,EAAMw6I,gBAAahoJ,EAAY,MAAOmyF,SAAU3kF,EAAM2kF,SAAU,aAAc3kF,EAAMsO,UAAWtF,IAAKuxI,EAAYtnE,MAAO,6BAA8BhkE,MAAO,KAAMyB,OAAQ,KAAMsiE,QAAS,YAAa/5B,KAAM,gBAC/Sj5C,EAAM4D,OAAS,gBAAoB,QAAS,KAAM5D,EAAM4D,OACxD,gBAAoB,OAAQ,CAAEi7D,EAAG,4sBAEzB,UAAZ1iE,EACO,gBAAoB,MAAO,CAAEuG,UAAW1C,EAAM0C,UAAW,cAAe1C,EAAMw6I,WAAYC,KAAMz6I,EAAMw6I,gBAAahoJ,EAAY,MAAOmyF,SAAU3kF,EAAM2kF,SAAU,aAAc3kF,EAAMsO,UAAWtF,IAAKuxI,EAAYtnE,MAAO,6BAA8BhkE,MAAO,KAAMyB,OAAQ,KAAMsiE,QAAS,YAAa/5B,KAAM,gBAC/Sj5C,EAAM4D,OAAS,gBAAoB,QAAS,KAAM5D,EAAM4D,OACxD,gBAAoB,OAAQ,CAAEi7D,EAAG,wyBACjC,gBAAoB,OAAQ,CAAEA,EAAG,+KAEzB,UAAZ1iE,EACO,gBAAoB,MAAO,CAAEuG,UAAW1C,EAAM0C,UAAW,cAAe1C,EAAMw6I,WAAYC,KAAMz6I,EAAMw6I,gBAAahoJ,EAAY,MAAOmyF,SAAU3kF,EAAM2kF,SAAU,aAAc3kF,EAAMsO,UAAWtF,IAAKuxI,EAAYtnE,MAAO,6BAA8BhkE,MAAO,KAAMyB,OAAQ,KAAMsiE,QAAS,YAAa/5B,KAAM,gBAC/Sj5C,EAAM4D,OAAS,gBAAoB,QAAS,KAAM5D,EAAM4D,OACxD,gBAAoB,OAAQ,CAAEi7D,EAAG,wiBACjC,gBAAoB,OAAQ,CAAEA,EAAG,8NAElC,IACX,GAAG,CAAE67E,YAAa,mBCpBP68F,GAAe,aAAiB9tO,OAAOC,QAAO,SAAU1J,EAAOu6I,GACtE,IAAIp+I,EAAU6D,EAAM7D,SAAW,UAC/B,MAAgB,YAAZA,EACO,gBAAoB,MAAO,CAAEuG,UAAW1C,EAAM0C,UAAW,cAAe1C,EAAMw6I,WAAYC,KAAMz6I,EAAMw6I,gBAAahoJ,EAAY,MAAOmyF,SAAU3kF,EAAM2kF,SAAU,aAAc3kF,EAAMsO,UAAWtF,IAAKuxI,EAAYtnE,MAAO,6BAA8BhkE,MAAO,KAAMyB,OAAQ,KAAMsiE,QAAS,YAAa/5B,KAAM,gBAC/Sj5C,EAAM4D,OAAS,gBAAoB,QAAS,KAAM5D,EAAM4D,OACxD,gBAAoB,OAAQ,CAAEi7D,EAAG,+iBAEzB,UAAZ1iE,EACO,gBAAoB,MAAO,CAAEuG,UAAW1C,EAAM0C,UAAW,cAAe1C,EAAMw6I,WAAYC,KAAMz6I,EAAMw6I,gBAAahoJ,EAAY,MAAOmyF,SAAU3kF,EAAM2kF,SAAU,aAAc3kF,EAAMsO,UAAWtF,IAAKuxI,EAAYtnE,MAAO,6BAA8BhkE,MAAO,KAAMyB,OAAQ,KAAMsiE,QAAS,YAAa/5B,KAAM,gBAC/Sj5C,EAAM4D,OAAS,gBAAoB,QAAS,KAAM5D,EAAM4D,OACxD,gBAAoB,OAAQ,CAAEi7D,EAAG,s0CAEzB,UAAZ1iE,EACO,gBAAoB,MAAO,CAAEuG,UAAW1C,EAAM0C,UAAW,cAAe1C,EAAMw6I,WAAYC,KAAMz6I,EAAMw6I,gBAAahoJ,EAAY,MAAOmyF,SAAU3kF,EAAM2kF,SAAU,aAAc3kF,EAAMsO,UAAWtF,IAAKuxI,EAAYtnE,MAAO,6BAA8BhkE,MAAO,KAAMyB,OAAQ,KAAMsiE,QAAS,YAAa/5B,KAAM,gBAC/Sj5C,EAAM4D,OAAS,gBAAoB,QAAS,KAAM5D,EAAM4D,OACxD,gBAAoB,OAAQ,CAAEi7D,EAAG,0iBAElC,IACX,GAAG,CAAE67E,YAAa,kBCdlB,MAAM,GAAkB,KAAOh7I,IAAIq1L,WAAW,CAAEr6C,YAAa,kBAAmBs6C,YAAa,aAAe,0EAA2Eh1L,GAAUA,EAAMmX,MAAMnb,KAAK2B,oBAAqBqC,GAAUA,EAAMmX,MAAMnb,KAAK2B,0CAA2CqC,GAAUA,EAAMmX,MAAMk0E,YAAYioE,UAAU3gH,yDAAyD,EAAGA,YAAcA,EAAS,IAAM,oGAC5a6kM,GAAqB,KAAO93O,IAAIo7G,OAAM,EAAG28H,SAAQvD,oBAAoB,CACvElwO,MAAO,CACH,WAAY,mBAAmByzO,MAC/B,kBAAmB,qBAAqBA,OACxC,kBAAmB,mBAAmBvD,WAE1Cn/C,WAAW,CAAEr6C,YAAa,qBAAsBs6C,YAAa,aAAe,uCAAwCh1L,GAAUA,EAAMmX,MAAMnb,KAAKwiH,KAAK7rE,qBAAsB3yC,GAAUA,EAAMmX,MAAMk0E,YAAYioE,UAAU7kJ,kGAAmGzO,GAAUA,EAAMmX,MAAMk0E,YAAYioE,UAAU3gH,wMACnW+kM,GAA4B,KAAOh4O,IAAIq1L,WAAW,CAAEr6C,YAAa,4BAA6Bs6C,YAAa,aAAe,uDAAwDh1L,GAAUA,EAAMmX,MAAMnb,KAAKmH,8BAA+BnD,GAAUA,EAAMmX,MAAMnb,KAAKoC,eAAgB4B,GAAUA,EAAMmX,MAAMnb,KAAK2B,sJAAuJqC,GAAUA,EAAMmX,MAAMmvN,KAAKC,sBAAsBiR,gDAAgE,kBAC1jBG,GAAsB,KAAOj4O,IAAIq1L,WAAW,CAAEr6C,YAAa,sBAAuBs6C,YAAa,aAAe,sFAAsF0iD,aAAqC13O,GAAUA,EAAMmX,MAAMnb,KAAK47O,yBAuJ7PC,GAAgB73O,IACzB,MAAM,UAAE83O,EAAS,YAAEC,GAAgB/3O,EAC7Bg4O,EAAkB,SAAa,MAC/BC,EAAyB,SAAa,MACtC5F,EAAe,aAAiBZ,KAC/BgG,EAAQS,GAAa,WAAe,IACpC3tF,EAAO4tF,GAAY,YAAe,IAClCjE,EAAeO,GAAoB,WAAe,IAClD9hM,EAAQopI,GAAa,YAAe,GACrCq8D,EA/JqB,MAC3B,MAAOA,EAAgBC,GAAqB,YAAe,GAQ3D,OAPA,aAAgB,KACZ,MAAMpuF,EAAQ/7I,SAASwqD,cAAc,SACrCuxF,EAAM97I,iBAAiB,gBAAgB,KACnCkqO,EAAmC,KAAjBpuF,EAAMwtF,OAAe,IAE3CxtF,EAAMwtF,OAAS,EAAG,GACnB,IACIW,CAAc,EAsJEE,GApJC,EAACjG,EAAc2F,EAAiBC,EAAwBxD,EAAkByD,KAClG,MAAMl8B,EAAkB,eAAmBrgN,IACvC,IAAIlN,EAAI0kD,EACR,IAAKk/L,GAAiD,IAAjCA,EAAayC,SAASj8O,OACvC,OAEJ,MAAMmE,GAA0C,QAAlCvO,EAAKupP,EAAgB36N,eAA4B,IAAP5uB,OAAgB,EAASA,EAAG+gF,wBAAwBxyE,MAAQ,EAC9G0T,GAA6C,QAAlCyiC,EAAK6kM,EAAgB36N,eAA4B,IAAP81B,OAAgB,EAASA,EAAGq8B,wBAAwB9+D,SAAW,EAC1H/U,EAAE0C,iBACF,MAAMo5O,EAASx0M,KAAK9+B,IAAI,EAAG8+B,KAAK3+B,IAAI,EAAG,GAAK3I,EAAEo5O,cAAc,GAAGnlK,QAAU5yE,GAAO0T,IAChF+jO,EAA0B,IAATgD,GACjBpF,EAAaoF,OAASA,EACtBpF,EAAa9nF,OAAQ,EACrB2tF,EAAmB,IAATT,EAAa,GACxB,CAACpF,EAAc2F,EAAiBvD,EAAkByD,IACrD,aAAgB,KACZ,MAAM76N,EAAU46N,aAAuE,EAASA,EAAuB56N,QAIvH,OAHAA,SAAkDA,EAAQlP,iBAAiB,YAAa6tM,EAAiB,CACrGz3I,SAAS,IAEN,KACHlnD,SAAkDA,EAAQjP,oBAAoB,YAAa4tM,EAAgB,CAC9G,GACF,CAACi8B,EAAwBj8B,GAAiB,EA8H7Cu8B,CAAoBlG,EAAc2F,EAAiBC,EAAwBxD,EAAkByD,GA5HlE,EAAC7F,EAAc6F,EAAWC,KACrD,MAAMK,EAAqB,eAAkB,KACzC,MAAMjuF,GAAS8nF,aAAmD,EAASA,EAAa9nF,SAAU,EAC5FktF,EAASpF,EAAqC,IAAtBA,EAAaoF,OAAe,EAC1DS,EAAU3tF,EAAQ,EAAItnH,KAAKkvB,MAAMslL,IACjCU,EAAS5tF,EAAM,GAChB,CAAC8nF,EAAc6F,EAAWC,IAC7B,aAAgB,KACZK,GAAoB,GACrB,CAACA,IACJ,aAAgB,KACZnG,SAA4DA,EAAalkO,iBAAiB,eAAgBqqO,GACnG,KACHnG,SAA4DA,EAAajkO,oBAAoB,eAAgBoqO,EAAmB,IAErI,CAACA,EAAoBnG,GAAc,EA8GtCoG,CAAuBpG,EAAc6F,EAAWC,GAChD,MAAMnrM,EA7Gc,EAACqlM,EAAc2F,IAC5B,eAAmBhkO,IACtB,IAAIvlB,EAAI0kD,EACR,IAAKk/L,GAAiD,IAAjCA,EAAayC,SAASj8O,OACvC,OAEJ,MAAMmE,GAA0C,QAAlCvO,EAAKupP,EAAgB36N,eAA4B,IAAP5uB,OAAgB,EAASA,EAAG+gF,wBAAwBxyE,MAAQ,EAC9G0T,GAA6C,QAAlCyiC,EAAK6kM,EAAgB36N,eAA4B,IAAP81B,OAAgB,EAASA,EAAGq8B,wBAAwB9+D,SAAW,EAC1HsD,EAAM3V,iBACN2V,EAAMohE,kBACNi9J,EAAaoF,OAASx0M,KAAK9+B,IAAI,EAAG8+B,KAAK3+B,IAAI,EAAG,GAAK0P,EAAM47D,QAAU5yE,GAAO0T,GAAQ,GACnF,CAAC2hO,EAAc2F,IAkGEU,CAAgBrG,EAAc2F,GAC5CpD,EAjGc,EAACvC,EAAc2F,EAAiBvD,EAAkByD,IAC/D,eAAmBv8O,IACtB,IAAIlN,EAAI0kD,EACR,MAAMn2C,GAA0C,QAAlCvO,EAAKupP,EAAgB36N,eAA4B,IAAP5uB,OAAgB,EAASA,EAAG+gF,wBAAwBxyE,MAAQ,EAC9G0T,GAA6C,QAAlCyiC,EAAK6kM,EAAgB36N,eAA4B,IAAP81B,OAAgB,EAASA,EAAGq8B,wBAAwB9+D,SAAW,EACpH+mO,EAASx0M,KAAK9+B,IAAI,EAAG8+B,KAAK3+B,IAAI,EAAG,GAAK3I,EAAEi0E,QAAU5yE,GAAO0T,IAC/D+jO,EAA0B,IAATgD,GACbpF,GAA8B,IAAd12O,EAAEk5O,UAClBxC,EAAaoF,OAASA,EACtBpF,EAAa9nF,OAAQ,EACrB2tF,EAAmB,IAATT,GACd,GACD,CAACpF,EAAcoC,EAAkByD,EAAWF,IAqF3BW,CAAgBtG,EAAc2F,EAAiBvD,EAAkByD,GAC/ElD,EApFmB,EAAC3C,EAAct2D,IACjC,eAAkB,KACjBs2D,GAAiD,IAAjCA,EAAayC,SAASj8O,QACtCw5O,EAAa5wL,OAEjBs6H,GAAU,EAAK,GAChB,CAACs2D,EAAct2D,IA8EO68D,CAAqBvG,EAAct2D,GACtDk5D,EA7EiB,CAACl5D,GACjB,eAAkB,KACrBA,GAAU,EAAM,GACjB,CAACA,IA0EmB88D,CAAmB98D,GACpCm5D,EAzEgB,CAAC7C,GAChB,eAAmBr+N,IACtB,GAAIq+N,EAAc,CACd,MAAMyG,EAAS9kO,EAAMohO,SAAW,GAAM,IACtC,GAAkB,YAAdphO,EAAM5I,KAAmC,eAAd4I,EAAM5I,IAAsB,CACvD4I,EAAM3V,iBACN,MAAM06O,EAAY91M,KAAK9+B,IAAI,EAAG8+B,KAAK3+B,IAAI,EAAG+tO,EAAaoF,OAASqB,IAChEzG,EAAaoF,OAASsB,EACtB1G,EAAa9nF,OAAQ,CACzB,CACA,GAAkB,cAAdv2I,EAAM5I,KAAqC,cAAd4I,EAAM5I,IAAqB,CACxD4I,EAAM3V,iBACN,MAAM06O,EAAY91M,KAAK9+B,IAAI,EAAG8+B,KAAK3+B,IAAI,EAAG+tO,EAAaoF,OAASqB,IAChEzG,EAAaoF,OAASsB,EACtB1G,EAAa9nF,OAAQ,CACzB,CACkB,SAAdv2I,EAAM5I,MACN4I,EAAM3V,iBACNg0O,EAAaoF,OAAS,GAER,QAAdzjO,EAAM5I,MACN4I,EAAM3V,iBACNg0O,EAAaoF,OAAS,EAE9B,IACD,CAACpF,IAgDkB2G,CAAkB3G,GAClC4G,EA/CuB,EAAC5G,EAAc4F,IACrC,eAAmBjkO,IACtB,MAAMklO,EAAsBjB,EAAuB56N,QAC9Cg1N,GAAiB6G,IAGtBllO,EAAM3V,iBACN2V,EAAMohE,kBAE+B,MADAlsD,OAAOioD,iBAAiB+nK,GAAqBlyJ,UAE9EqrJ,EAAa9nF,OAAS8nF,EAAa9nF,OACvC,GACD,CAAC8nF,EAAc4F,IAmCWkB,CAAyB9G,EAAc4F,GAC9DmB,EAlCc,CAAC3B,GACd,WAAc,IACV,GAAGx0M,KAAKkvB,MAAMslL,OACtB,CAACA,IA+BiB4B,CAAgB5B,GAC/B6B,EA9BY,EAAC7B,EAAQltF,IACpB,WAAc,IACF,IAAXktF,GAAgBltF,EACT,gBAAoB8sF,GAAY,MAEvCI,GAAU,GACH,gBAAoBH,GAAe,MAEvC,gBAAoBC,GAAc,OAC1C,CAACE,EAAQltF,IAqBOgvF,CAAc9B,EAAQltF,GACzC,OAAK6tF,EAGG,gBAAoBT,GAAqB,CAAE/yJ,UAAWswJ,EAAe/3J,aAAc63J,EAAkBS,WAAYR,EAAgB77C,YAAa47C,EAAkBU,UAAWT,GAC/K,gBAAoB,KAAK,CAAEn5O,IAAK,SAAUC,SAAU,WAAY6H,MAAO2mJ,EAAQwtF,EAAcD,EAAWxpO,UAAWi8I,EAAQwtF,EAAcD,EAAWp8O,QAASu9O,EAAsBh9O,KAAMq9O,IACzL,gBAAoB5B,GAA2B,CAAE1uO,IAAKivO,EAAwBv8O,QAASsxC,EAAaI,YAAawnM,GAC7G,gBAAoB4C,GAAoB,CAAE/8F,KAAM,SAAU,gBAAiB,EAAG,gBAAiB,IAAK,gBAAiBg9F,EAAQ,iBAAkB2B,EAAclF,cAAeA,EAAevvJ,SAAU,EAAG8yJ,OAAQA,EAAQzuO,IAAKgvO,GACzN,gBAAoB,GAAiB,CAAErlM,OAAQA,OANhD,gBAAoB,WAAgB,KAMyB,EAE5EklM,GAAan9F,YAAc,eCpHpB,MAAM8+F,GAA0B,S,4JCxEvC,MAAMC,EAAc,EAAAC,iBAAkB,GAAG,mCAC5BC,EAAoB,IAAI,m/DACxBC,EAAuB,KAAOl6O,IAAIq1L,WAAW,CAAEr6C,YAAa,uBAAwBs6C,YAAa,aAAe,GAAG2kD,oGAAmH,YAC5O,MAAM54L,UAAuB,YAChC,MAAA0X,GACI,MAAM,SAAElX,GAAazzD,KAAKkS,MACpBi1L,GAAc,OAAennM,KAAKkS,OACxC,OAAQ,gBAAoB45O,EAAsBnwO,OAAOC,OAAO,CAAE4hM,KAAM/pJ,GAAY0zI,GAChF,gBAAoBwkD,EAAa,MACjC3rP,KAAKkS,MAAMyd,SACnB,E,yICXG,MAAMo8N,EAAuB,CAChC1W,KAAM,CACF,CAAC,KAAY10N,SAAU,CAAC,CAAEhc,KAAM,IAAKic,QAAS,MAElDorO,KAAM,CACF,CAAC,KAAYrrO,SAAU,CACnB,CAAEhc,KAAM,IAAKic,QAAS,IACtB,CAAEjc,KAAM,IAAKic,QAAS,KAE1B,CAAC,KAAYC,MAAO,CAChB,CAAElc,KAAM,IAAKic,QAAS,IACtB,CAAEjc,KAAM,IAAKic,QAAS,OAI5BqrO,EAA2BC,GAAmC,MAApBA,EAAWvnP,KA8BrD6nM,EAAkB,KAAO56L,IAAIq1L,WAAW,CAAEr6C,YAAa,kBAAmBs6C,YAAa,aAAe,0BAA0B,KAAYlmL,uBAAwB9O,GAAUyJ,OAAO6lB,KAAKtvB,EAAMjC,YAAY8K,KAAKq0L,IACnN,MACM+8C,EA/BmC,EAACv1O,EAAQ7L,KAClD,MAAMqhP,EAA2Bx1O,EAAOsb,OAAO+5N,GAC/C,OAAOvsN,MAAM7nB,KAAK,CACd9M,OAAQoqC,KAAKukC,KAAK3uE,EAASqhP,EAAyBrhP,QAAU6L,EAAO7L,SACtE,CAACshP,EAASpxO,KACT,MAAMtW,EAAOiS,EAAOqE,EAAQrE,EAAO7L,QAAQpG,KACrCic,EAAUhK,EAAOqE,EAAQrE,EAAO7L,QAAQ6V,QAC9C,MAAa,MAATjc,EACO,CACHA,OACAic,WAGD,CACHjc,KAAM,GAAGA,IAAOwwC,KAAKspB,MAAMxjD,EAAQrE,EAAO7L,UAC1C6V,UACH,GACH,EAciB0rO,CADJp6O,EAAMjC,WAAWm/L,GACyBl9L,EAAMnH,QACzDwhP,EAboC,CAAC31O,GAAWA,EAAOoiD,QAAO,CAACC,EAAK4lK,KAC1E,MAAM2tB,EAAW9sN,MAAM7nB,KAAK,CAAE9M,OAAQ8zN,EAAKj+M,UAAWuqC,KAAK0zK,EAAKl6N,MAOhE,OANmB,IAAfs0D,EAAIluD,QAAgBkuD,EAAIA,EAAIluD,OAAS,GAAGA,OAAS8zN,EAAKj+M,QAAU,GAChEq4C,EAAIh1D,KAAKuoP,GAGTvzL,EAAIA,EAAIluD,OAAS,GAAG9G,QAAQuoP,GAEzBvzL,CAAG,GACX,IAIqBwzL,CAA+BN,GAC7C1V,EAAO,uFAEW8V,EACnBxxO,KAAK21G,GAAS,IAAIA,EAAKjvF,KAAK,UAC5BA,KAAK,kBAEV,OAAI2pB,SAASgkJ,EAAY,MAAQ,KAAYzuL,QAClC81N,EAEJ,gCACcrnC,qBAClBqnC,sBAEH,eACWvkO,GAAUA,EAAMo8C,QAAUp8C,EAAMmX,MAAMnb,KAAKgE,EAAMo8C,WAChEk+I,EAAgB5/C,YAAc,kBAC9B,MAaMw/C,EAAqB,KAAOx6L,IAAIq1L,WAAW,CAAEr6C,YAAa,qBAAsBs6C,YAAa,aAAe,GAAIh1L,IAClH,MAAM,WAAEjC,EAAU,MAAEgL,EAAQ,GAAM/I,EAClC,MAfiC,EAAC0E,EAAQqE,IAAUU,OAAO6lB,KAAK5qB,GAAQmE,KAAKq0L,IAC7E,MAAMs9C,EAAsB91O,EAAOw4L,GAAYl9K,OAAO+5N,GAEhDxV,EAAO,cADsB7/N,EAAO,KAAY+J,SAASuR,OAAO+5N,GAChBhxO,EAAQyxO,EAAoB3hP,QAAQpG,OAAOwwC,KAAKspB,MAAMxjD,EAAQyxO,EAAoB3hP,WACxI,OAAIqgD,SAASgkJ,EAAY,MAAQ,KAAYzuL,QAClC81N,EAEJ,8BACarnC,mBAClBqnC,kBAEH,IAIQkW,CAA6B18O,EAAYgL,EAAM,cAC3C/I,GAAUA,EAAMwO,wBAA0B,UAAY,YACrE0rL,EAAmBx/C,YAAc,qBAC1B,MAAMnsI,EAAUvO,IACnB,MAAM,SAAEyd,EAAQ,OAAE2+B,EAAM,wBAAE5tC,EAAuB,WAAEzQ,EAAa87O,EAAqB1W,MAAUnjO,EACzFi1L,GAAc,OAAej1L,GAC7B06O,EAAmB,WAAe5/C,QAAQr9K,GAAUuC,OAAO,kBACjE,GAAgC,IAA5B06N,EAAiB7hP,OACjB,OAAO,KAEX,MAAM8hP,EAAkBD,EAAiB7xO,KAAI,CAACipD,EAAO/oD,KACjD,IAAIta,EACJ,MAAM2c,EAA2B,QAApB3c,EAAKqjE,EAAM1mD,WAAwB,IAAP3c,EAAgBA,OAAK+D,EAC9D,OAAQ,gBAAoB0nM,EAAoB,CAAEn8L,WAAYA,EAAYqN,IAAKA,EAAKrC,MAAOA,EAAOyF,wBAAyBA,GAA2BsjD,EAAO,IAEjK,OAAQ,gBAAoBwoI,EAAiB7wL,OAAOC,OAAO,CAAE3L,WAAYA,EAAYq+C,OAAQA,EAAQvjD,OAAQ6hP,EAAiB7hP,QAAUo8L,GAAc0lD,EAAiB,EAE3KpsO,EAAOmsI,YAAc,Q,oICjGrB,MAAMkgG,EAA4B,KAAOl7O,IAAIq1L,WAAW,CAAEr6C,YAAa,4BAA6Bs6C,YAAa,cAAgB,kFAAkF,cAA8B,EAAG79K,WAAYA,EAAMk0E,YAAY4yG,UAAUxvL,qBAAqB,EAAG0I,WAAYA,EAAMnb,KAAK0hL,2BAA2B,EAAGvmK,WAAYA,EAAMnb,KAAK0hL,wBAAwB,EAAGvmK,WAAYA,EAAMnb,KAAK4B,uBAAuB,EAAGuZ,WAAYA,EAAMnb,KAAK4B,aACtdi9O,EAAuB76O,IAChC,MAAM,WAAEjC,EAAa,KAAgBuS,QAAO,SAAEmN,GAAazd,EACrDi1L,GAAc,OAAej1L,GACnC,OAAQ,gBAAoB,MAAOyJ,OAAOC,OAAO,CAAE,YAAa3L,IAAe,KAAgBlK,MAAQ,YAAc,SAAU,gBAAiB,kBAAoBohM,GAAc,WAAehiI,MAAMx1C,GAAa,gBAAoB,IAAe,CAAEtG,MAAO,YAC5P,gBAAoByjO,EAA2B,CAAE78O,WAAYA,GACzD,gBAAoB,KAAM,CAAEA,WAAY,EAAAC,eAAekvC,SAAUpxC,IAAK,EAAAk8L,QAAQ7qK,GAAK1P,UAAejrB,EAAW,C,kFCV9GsoP,EAAmB,aAAiBrxO,OAAOC,QAAO,SAAU1J,EAAOu6I,GAE1E,MAAgB,aADFv6I,EAAM7D,SAAW,WAEpB,gBAAoB,MAAO,CAAEuG,UAAW1C,EAAM0C,UAAW,cAAe1C,EAAMw6I,WAAYC,KAAMz6I,EAAMw6I,gBAAahoJ,EAAY,MAAOmyF,SAAU3kF,EAAM2kF,SAAU,aAAc3kF,EAAMsO,UAAWtF,IAAKuxI,EAAYtnE,MAAO,6BAA8BhkE,MAAO,KAAMyB,OAAQ,KAAMsiE,QAAS,YAAa/5B,KAAM,gBAC/Sj5C,EAAM4D,OAAS,gBAAoB,QAAS,KAAM5D,EAAM4D,OACxD,gBAAoB,OAAQ,CAAEi7D,EAAG,4DAElC,IACX,GAAG,CAAE67E,YAAa,sBCRPqgG,EAAoB,aAAiBtxO,OAAOC,QAAO,SAAU1J,EAAOu6I,GAE3E,MAAgB,aADFv6I,EAAM7D,SAAW,WAEpB,gBAAoB,MAAO,CAAEuG,UAAW1C,EAAM0C,UAAW,cAAe1C,EAAMw6I,WAAYC,KAAMz6I,EAAMw6I,gBAAahoJ,EAAY,MAAOmyF,SAAU3kF,EAAM2kF,SAAU,aAAc3kF,EAAMsO,UAAWtF,IAAKuxI,EAAYtnE,MAAO,6BAA8BhkE,MAAO,KAAMyB,OAAQ,KAAMsiE,QAAS,YAAa/5B,KAAM,gBAC/Sj5C,EAAM4D,OAAS,gBAAoB,QAAS,KAAM5D,EAAM4D,OACxD,gBAAoB,OAAQ,CAAEi7D,EAAG,mLAElC,IACX,GAAG,CAAE67E,YAAa,uB,8BCJlB,MAAMw9C,EAAO,KAAe,EACtBC,EAAc,KAAOt2L,MAAMkzL,WAAW,CAAEr6C,YAAa,cAAes6C,YAAa,cAAgB,2BAA4Bh1L,GAAUA,EAAMmX,MAAMk0E,YAAYioE,UAAU7kJ,0BACzKusO,EAAqB,KAAO1zO,KAAKytL,WAAW,CAAEr6C,YAAa,qBAAsBs6C,YAAa,cAAgB;IAChH,EAAGqD,iBAAgBlhL,YACnB,MAAM,WAAEmhL,GAAenhL,EAAMohL,gBAAgBF,GAC7C,MAAO,SAASC,OAAgBnhL,EAAMnb,KAAK4B,iBAAiB;KAG1Dq9O,GAAmB,QAAOH,GAAkB/lD,WAAW,CAAEr6C,YAAa,mBAAoBs6C,YAAa,cAAgB,6CACvH0D,EAAqB,KAAOpxL,KAAKytL,WAAW,CAAEr6C,YAAa,qBAAsBs6C,YAAa,cAAgB,kDAAmDh1L,GAAUA,EAAMmX,MAAMnb,KAAK2B,mFAAmFq9O,iDAAmEh7O,GAAUA,EAAMmX,MAAMnb,KAAKgvB,mBAAoBhrB,GAAUA,EAAMmX,MAAMnb,KAAKgvB,oBAAqBhrB,GAAU,eAAeA,EAAMmX,MAAMnb,KAAKsgD,sBAAuBt8C,GAAU,eAAeA,EAAMmX,MAAMnb,KAAKsgD,iCAAkCt8C,GAAUA,EAAMmX,MAAMkgL,oBAAoBE,gBAAgB9oL,sBAAuBzO,GAAUA,EAAMmX,MAAMkvD,UAAU8zC,SAASw+E,oCACxrBG,EAAc,KAAOj9K,MAAMk5K,WAAW,CAAEr6C,YAAa,cAAes6C,YAAa,aAAe,yFAAyF0D,WAA6B14L,GAAUA,EAAMmX,MAAMk0E,YAAYioE,UAAUv0I,WAAWi8N,KAAsBC,4BAA2CviD,KAAsBsiD,sBAAuC,EAAG7jO,WAAYA,EAAMm/K,MAAMhhB,+DAAgEt1K,GAAUA,EAAMmX,MAAMk0E,YAAYioE,UAAU7kJ,WAAWwsO,WAA0B,EAAG9jO,WAAYA,EAAMm/K,MAAMC,gCAAgCmC,8BAAgD14L,GAAUA,EAAMmX,MAAMk0E,YAAYioE,UAAUj7I,cACvsBoyH,EAAezqI,IACxB,MAAMoQ,EAAe,eAAmBzU,IACpC,MAAM,SAAEwG,EAAW+1L,GAASl4L,EAC5BmC,EAASxG,EAAGqE,EAAM,GACnB,CAACA,IACEg5L,EAAa,eAAmBr9L,IAClC,MAAM,OAAEumB,EAASg2K,GAASl4L,EAC1BkiB,EAAOvmB,EAAGqE,EAAM,GACjB,CAACA,IACEi5L,EAAc,eAAmBt9L,IACnC,MAAM,QAAE0mB,EAAU61K,GAASl4L,EAC3BqiB,EAAQ1mB,EAAGqE,EAAM,GAClB,CAACA,IACEgtC,EAAc,eAAmBrxC,IACnC,MAAM,QAAED,EAAUw8L,GAASl4L,EAC3BtE,EAAQC,EAAGqE,EAAM,GAClB,CAACA,KACE,eAAEu9I,EAAc,QAAEx+H,EAAO,SAAE1G,EAAQ,GAAE0K,EAAE,KAAEtwB,EAAI,eAAE4lM,EAAiB,EAAAr6L,eAAe2J,SAAQ,MAAE1F,EAAK,MAAEJ,EAAQ,IAAQ7B,EAChHi1L,GAAc,OAAej1L,GACnC,OAAQ,gBAAoBm4L,EAAa1uL,OAAOC,OAAO,CAAC,EAAGurL,GACvD,gBAAoB6D,EAAa,CAAEv7C,eAAgBA,EAAgBx+H,QAASA,EAAS1G,SAAUA,EAAU0K,GAAIA,EAAItwB,KAAMA,EAAMyvB,OAAQ82K,EAAY72L,SAAUiO,EAAc1U,QAASsxC,EAAa3qB,QAAS42K,EAAalmM,KAAM,QAASkP,MAAOA,IAC3O,gBAAoBy2L,EAAoB,KACpC,gBAAoBsiD,EAAoB,CAAE3iD,eAAgBA,GACtD,gBAAoB0iD,EAAmB,CAAE5+O,QAAS,UAAWq+I,YAAY,IACzE,gBAAoBygG,EAAkB,CAAE9+O,QAAS,UAAWq+I,YAAY,KAC5E,gBAAoB,OAAQ,KAAM34I,IACZ,iBAAVA,EAAsB,gBAAoB,KAAM,CAAE/F,IAAK,EAAAk8L,QAAQ1wL,KAAM8B,MAAO,KAAUgX,QAASriB,WAAYs6L,GAAkBx2L,GAAU,KAAY,C,oICpC3K,MACM+9L,EAAoB,KAAOt4L,KAAKytL,WAAW,CAAEr6C,YAAa,oBAAqBs6C,YAAa,aAAe,4BAA6Bh1L,GAAU,GAAGk5C,SAASl5C,EAAMmX,MAAMnb,KAAKgvB,0EAA2EhrB,GAAUA,EAAMmX,MAAMnb,KAAK4B,4CAA6CoC,GAAU,8DAA0CA,EAAMmX,MAAMkvD,UAAUq6H,eAAeqD,YAAY/jM,EAAMmX,MAAMkvD,UAAU8zC,SAAS/wG,iDACtcs2L,EAAa,KAAOp4L,KAAKytL,WAAW,CAAEr6C,YAAa,aAAcs6C,YAAa,aAAe,iFAAkFh1L,GAAU,SAASA,EAAMmX,MAAMkvD,UAAUq6H,eAAeqD,YAAY/jM,EAAMmX,MAAMkvD,UAAU8zC,SAAS/wG,yKAA0KpJ,GAAUA,EAAMmX,MAAMnb,KAAK2B,gCACvdq0N,EAAkB,KAAO1qN,KAAKytL,WAAW,CAAEr6C,YAAa,kBAAmBs6C,YAAa,aAAe,aAAa,EAAG79K,WAAYA,EAAMohL,gBAAgBrrJ,SAASxiC,0EAClKunN,GAA8B,QAAOD,GAAiBj9B,WAAW,CAAEr6C,YAAa,8BAA+Bs6C,YAAa,YAAc,cAAeh1L,GAAU,SAASA,EAAMmX,MAAMkvD,UAAUq6H,eAAeqD,YAAY/jM,EAAMmX,MAAMkvD,UAAU8zC,SAAS/wG,iDAAiD,EAAG+N,QAAOrV,aAAYowN,WAAUC,iBAAkBrwN,IAAeowN,EAC9W,IAAI,aAAa/6M,EAAMohL,gBAAgB5wL,SAAS+C,sFAAsFyM,EAAMnb,KAAKgT,mEAAmEmjN,kBAA4Bh7M,EAAMnb,KAAK0hL,wBAAwBxkI,SAAS/hC,EAAMnb,KAAKoC,WAAa,6BAA0B5L,IAC9U0oP,EAAe,KAAO18D,OAAOuW,WAAW,CAAEr6C,YAAa,eAAgBs6C,YAAa,cAAgB,wDAAyDh1L,GAAUA,EAAMmX,MAAMnb,KAAKgvB,6BAA8BhrB,GAAoC,QAA1BA,EAAMmX,MAAM0iL,UAC5O,IAAI,WAAW75L,EAAMmX,MAAMnb,KAAKgvB,eAAehrB,EAAMmX,MAAMnb,KAAKgvB,aAAahrB,EAAMmX,MAAMnb,KAAKgU,aAAe,IAAI,WAAWhQ,EAAMmX,MAAMnb,KAAKgvB,aAAahrB,EAAMmX,MAAMnb,KAAKgU,aAAahQ,EAAMmX,MAAMnb,KAAKgvB,wDAAwD,EAAG7T,WAAYA,EAAMnb,KAAKwiH,KAAK/vG,eAAe,uDAAqEzO,GAAUA,EAAMmX,MAAMohL,gBAAgB5wL,SAAS+C,wBAAyB1K,GAAUA,EAAMmX,MAAMohL,gBAAgB5wL,SAASopN,kCAAmC/wN,GAAWA,EAAMqY,SAAW,cAAgB,8BAA+B45M,uCAAkEjyN,GAAUA,EAAMmX,MAAMohL,gBAAgBnhI,QAAQ1sD,6DACzsBytL,EAAc,KAAOt2L,MAAMkzL,WAAW,CAAEr6C,YAAa,cAAes6C,YAAa,cAAgB,yCAAyC,EAAG79K,WAAYA,EAAMk0E,YAAYioE,UAAU7kJ,WAAW,EAAG4J,WAAUlB,WAAYkB,EACzN,IAAI,4BAA4BlB,EAAMk0E,YAAYioE,UAAUj7I,YAAc,IAAI,qBAAsBrY,IAAWA,EAAMqY,UAAY,IAAI,WAAWunL,gCAAgD,EAAGzoL,WAAYA,EAAMsrF,OAAO04I,uJAAuJv7C,WAA2B,EAAGzoL,WAAYA,EAAMk0E,YAAY+vJ,UAAUr8N,qBAAsB/e,GAAUA,EAAMqY,SAAW,aAAe,yEACzfugL,EAAkB,KAAOl5L,IAAIq1L,WAAW,CAAEr6C,YAAa,kBAAmBs6C,YAAa,aAAe,4BAA4B,EAAG79K,WAAYA,EAAMnb,KAAK0hL,aACrJ7/J,EAAU7d,IACnB,MAAMgJ,EAAM,cACNiqN,EAAW,eACX,WAAEl1N,EAAU,SAAE0f,EAAQ,SAAEpF,EAAQ,MAAExW,EAAK,aAAEob,EAAY,MAAEhb,EAAK,QAAE1O,EAAO,QAAE8uB,EAAO,SAAElgB,EAAQ,OAAE+f,EAAM,SAAElgB,EAAQ,KAAEvP,EAAI,aAAE4oP,EAAY,UAAEv9N,EAAS,WAAEhc,GAAgB9B,GAC1JkyN,EAAU0B,GAAe,YAAe,GACzCxjN,EAAe,eAAmBzU,IAChCwG,GACAA,EAASxG,EAAGqE,GAEhB4zN,GAAY,EAAK,GAClB,CAACzxN,EAAUnC,IACd,aAAgB,KACRgJ,EAAIqU,SACJrU,EAAIqU,QAAQi+N,eAAiB,GAC7BtyO,EAAIqU,QAAQ23E,cAAc,+BAC1BhsF,EAAIqU,QAAQi+N,eAAiB,EAG7B1nB,GAAY,EAChB,GACD,CAAC5qN,IACJ,MAAOmpN,EAAawB,GAAkB,WAAe,GACrD,aAAgB,KACZ,IAAIllO,EACJklO,GAA4C,QAA3BllO,EAAKwkO,EAAS51M,eAA4B,IAAP5uB,OAAgB,EAASA,EAAG0hD,eAAiB,EAAE,GACpG,CAAC8iL,IACJ,MAAM9b,EAAe,eAAkB,KAAQ,IAAI1oN,EAAI,OAAOklO,GAA4C,QAA3BllO,EAAKwkO,EAAS51M,eAA4B,IAAP5uB,OAAgB,EAASA,EAAG0hD,eAAiB,EAAE,GAAK,CAACwjL,EAAgBV,IACvL,aAAgB,KACZ/pM,OAAO/a,iBAAiB,SAAUgpM,GAC3B,IAAMjuL,OAAO9a,oBAAoB,SAAU+oM,KACnD,CAACA,IACJ,MAAMliB,GAAc,OAAej1L,GAC7B6Y,EAAe9a,GAAcxK,EAAW,gBAAoBqlM,EAAiB,KAC/E,gBAAoB,IAAY,CAAE76L,WAAYA,EAAY3I,KAAM7B,UAAef,EACnF,OAAQ,gBAAoB,WAAgB,KACxC,gBAAoB2lM,EAAa1uL,OAAOC,OAAO,CAAE2O,SAAUA,GAAY48K,GACnEpzL,GAAU,gBAAoBmwN,EAAiB,CAAE,eAAe,EAAMhpN,IAAKiqN,GACvEpxN,EACAG,GAAY,KAChB,gBAAoBk5O,EAAc,CAAEG,aAAcA,EAAchjO,SAAUA,EAAUrW,SAAUA,EAAUgH,IAAKA,QAAOxW,EAAWyqB,aAAcA,EAAchb,MAAOA,EAAOE,SAAUiO,EAAciS,QAASA,EAASH,OAAQA,EAAQzvB,KAAMA,EAAMqrB,UAAWA,GAAaL,GACvQ5b,GAAU,gBAAoBowN,EAA6B,CAAEnwN,WAAYA,EAAYowN,SAAUA,EAAUC,YAAaA,GAClHtwN,EACAG,GAAY,KAChB,gBAAoB49L,EAAmB,KACnC,gBAAoBF,EAAY,CAAE/6G,SAAU,GACxC,gBAAoB,IAAa,CAAExoF,QAAS,UAAWq+I,YAAY,OAC/E3hI,EAAc,C,gHC3DtB,MACM0iO,EAAgB,EAAIt4M,KAAKowB,GADhB,EAETmoL,EAAO,EAAAv4N,SAAU,yDACjBw4N,EAAS,EAAAx4N,SAAU,wBAAwBs4N,4BAAwCA,EAAgB,6BAA6BA,MAChIG,EAAgB,KAAOntF,IAAIwmC,WAAW,CAAEr6C,YAAa,gBAAiBs6C,YAAa,aAAe,GAAIh1L,GAA4B,YAAlBA,EAAM7D,SAAyB,IAAI,SAAS6D,EAAMmX,MAAMnb,KAAK4B,oBAAoBoC,EAAMmX,MAAMnb,KAAK4B,0BAA2B,IAAMs7C,SAASl5C,EAAMmX,MAAMnb,KAAK4B,UAAW,IAAO,SAAUoC,GAA4B,UAAlBA,EAAM7D,SAAuB,IAAI,SAAS6D,EAAMmX,MAAMnb,KAAKy1M,oBAAoBzxM,EAAMmX,MAAMnb,KAAKy1M,0BAA2B,IAAMv4J,SAASl5C,EAAMmX,MAAMnb,KAAKy1M,UAAW,IAAO,SAAUzxM,GAA4B,YAAlBA,EAAM7D,SAAyB,IAAI,SAAS6D,EAAMmX,MAAMnb,KAAK2/O,oBAAoB37O,EAAMmX,MAAMnb,KAAK2/O,0BAA2B,IAAMziM,SAASl5C,EAAMmX,MAAMnb,KAAK2/O,UAAW,IAAO,QACnqBC,EAAiB,KAAO9pI,KAAKijF,WAAW,CAAEr6C,YAAa,iBAAkBs6C,YAAa,aAAe,UAAWh1L,GAAUA,EAAMmX,MAAMk0E,YAAYkwG,UAAUljL,YAC5JwjO,EAAiB,KAAO/pI,KAAKijF,WAAW,CAAEr6C,YAAa,iBAAkBs6C,YAAa,YAAc,UAAWh1L,GAAUA,EAAMmX,MAAMk0E,YAAYkwG,UAAU9sL,4BAA4B8sO,KAAiBA,6EAAyFC,+CAAkDC,cACnVK,EAAiB,uCACVr4O,EAAWzD,GAAW,gBAAoB07O,EAAejyO,OAAOC,OAAO,CAAEupE,MAAO,6BAA8B2lG,WAAY,+BAAgC3/H,KAAM,OAAQ+5B,QAAS,YAAa72E,QAAS6D,EAAM7D,SAAW,YAAa,OAAe6D,IAC7PA,EAAM4D,OAAS,gBAAoB,QAAS,KAAM5D,EAAM4D,OACxD,gBAAoBg4O,EAAgB,CAAE/8K,EAAGi9K,IACzC,gBAAoBD,EAAgB,CAAEh9K,EAAGi9K,I,gHCX7C,MAAM1yO,EAAQ,IAAI,GAAIpJ,GAAUA,EAAMqY,SAChCrY,EAAMmX,MAAMk0E,YAAYioE,UAAUj7I,SAClCrY,EAAMmX,MAAMk0E,YAAYioE,UAAU7kJ,UAClCstO,EAAoB,KAAOz0O,KAAKytL,WAAW,CAAEr6C,YAAa,oBAAqBs6C,YAAa,cAAgB,SAAS5rL,KACrHomO,EAAkB,KAAOloO,KAAKytL,WAAW,CAAEr6C,YAAa,kBAAmBs6C,YAAa,aAAe,yCAA0Ch1L,GAAUA,EAAMmX,MAAMnb,KAAKyzO,oBAAqBzvO,GAAUA,EAAMmX,MAAMnb,KAAK4B,8BAA+BoC,GAAUA,EAAMmX,MAAMk0E,YAAYqwG,UAAUjtL,sBAAuBzO,GAAUA,EAAMmX,MAAMkvD,UAAU8zC,SAASu1H,iCAAkC1vO,GAAUA,EAAMmX,MAAMnb,KAAK4B,oBAAqBoC,GAAUA,EAAMmX,MAAMnb,KAAK+iG,OAAOo4F,eAAe/tL,mEAAwEpJ,GAAUA,EAAMmX,MAAMnb,KAAK+iG,OAAOo4F,wDAAyDn3L,GAAUA,EAAMmX,MAAMnb,KAAK+iG,OAAOo4F,kBAAmBn3L,GAAUA,EAAMmX,MAAMnb,KAAKsgD,mBAAoBt8C,GAAUA,EAAMmX,MAAMnb,KAAKsgD,8BAA8BlzC,gBAAqBpJ,GAAUA,EAAMmX,MAAMkvD,UAAU8zC,SAASu1H,sCACx2B52C,EAAc,KAAOj9K,MAAMk5K,WAAW,CAAEr6C,YAAa,cAAes6C,YAAa,aAAe,wFAAwFw6C,gCAA8C,EAAGr4N,WAAYA,EAAMm/K,MAAMhhB,yCAAyC,EAAGn+J,WAAYA,EAAMk0E,YAAYioE,UAAU7kJ,0BAA0BstO,WAA4B/7O,GAAUA,EAAMqY,SAC3ZrY,EAAMmX,MAAMk0E,YAAYioE,UAAUj7I,SAClCrY,EAAMmX,MAAMk0E,YAAYioE,UAAUv0I,cAAcywN,sBAAoCpmO,gCAAqCpJ,GAAUA,EAAMmX,MAAMk0E,YAAYqwG,UAAUjtL,gDAAiDzO,GAAUA,EAAMmX,MAAMnb,KAAKyzO,mDAAoDzvO,GAAUA,EAAMmX,MAAMnb,KAAK+iG,OAAOo4F,uBAAuBq4C,sBAAoC,EAAGr4N,WAAYA,EAAMm/K,MAAMhhB,yCAA0Ct1K,GAAUA,EAAMmX,MAAMk0E,YAAYqwG,UAAU/oJ,cACnfwlJ,EAAc,KAAOt2L,MAAMkzL,WAAW,CAAEr6C,YAAa,cAAes6C,YAAa,aAAe,uCAAwCh1L,GAAUA,EAAMmX,MAAMnb,KAAK2B,8EAA+EqC,GAAWA,EAAMqY,SAAW,cAAgB,aAAerY,IAAWA,EAAMqY,UAAY,IAAI,WAAWygL,kBAA4BijD,WAA2B/7O,EAAMmX,MAAMk0E,YAAYioE,UAAU/nE,UAAUutG,kBAA4B02C,sBAAoCxvO,EAAMmX,MAAMk0E,YAAYqwG,UAAUnwG,sBAAsBvrF,EAAMmX,MAAMk0E,YAAYioE,UAAU/nE,oCAAoCvrF,EAAMmX,MAAMk0E,YAAYioE,UAAU/nE,WAAWutG,2BAAqC02C,sBAAoCxvO,EAAMmX,MAAMk0E,YAAYioE,UAAU/nE,oCAAoCvrF,EAAMmX,MAAMk0E,YAAYqwG,UAAUnwG,eACj1Bh9C,EAAUvuC,IACnB,MAAM,gBAAE8gM,EAAe,QAAE/hL,EAAO,SAAEtB,EAAQ,eAAE8/H,EAAc,SAAEllI,EAAQ,SAAElW,GAAcnC,EAC9Ei1L,GAAc,OAAej1L,GACnC,OAAQ,gBAAoBm4L,EAAa1uL,OAAOC,OAAO,CAAE2O,SAAUA,GAAY48K,GAC3E,gBAAoB6D,EAAa,CAAE/lM,KAAM,WAAYgsB,QAASA,EAASw+H,eAAgBA,EAAgBp7I,SAAUA,EAAUkW,SAAUA,EAAU,mBAAoByoL,IACnK,gBAAoB0uC,EAAiB,CAAEn3N,SAAUA,IACjDoF,GAAa,gBAAoBs+N,EAAmB,CAAE1jO,SAAUA,GAAgC,iBAAboF,EAAyB,gBAAoB,KAAM,CAAE3hB,IAAK,EAAAk8L,QAAQ1wL,KAAM8B,MAAO,KAAUgX,SAAW3C,GAAa,GAAc,C,gHCf1N,MAAMu+N,EAA0BjzO,IAC5B,MAAMkzO,EAAgBh5M,KAAKspB,MAAMxjD,EAAQ,IAEzC,MAAO,GADekzO,EAAgB,EAAID,EAAuBC,EAAgB,GAAK,KAC5DzoO,OAAO6sB,aAAct3B,EAAQ,GAAM,KAAK,EAEhEmzO,EAAY,KAAO9xM,GAAG2qJ,WAAW,CAAEr6C,YAAa,YAAas6C,YAAa,aAAe,aAAch1L,GAAUg8O,EAAuBh8O,EAAM+I,UAC9IozO,EAAe,KAAOnyM,GAAG8wE,OAAM,EAAGshI,kBAAmB/+O,EAAMg/O,eAAgBptO,MAAY,CACzFjL,MAAO,CACH,6BAA8B,cAAc3G,eAAkB4R,EAAQ,YAE1E8lL,WAAW,CAAEr6C,YAAa,eAAgBs6C,YAAa,cAAgB;KACrEh1L,GAAUA,EAAMizD;iBACJjzD,GAAUA,EAAMmX,MAAMnb,KAAK+/C;8BACd/7C,GAAU,IAAIwtB,MAAM7nB,KAAK,CAAE9M,OAAQmH,EAAMizD,QACnEpqD,KAAI,CAACskG,EAAImvI,IACH,GAAGN,EAAuBM,SAEhC/sN,KAAK,wBAAyBvvB,GAAUA,EAAMmX,MAAMnb,KAAKsgD,6BAA6B,EAAGnlC,WAAYA,EAAMnb,KAAKwiH,KAAK/vG,iBAAkBzO,GAAUA,EAAMmX,MAAMk0E,YAAY+vJ,UAAU3sO,+GAAgHzO,GAAU,aAAaA,EAAMmX,MAAMkvD,UAAUq6H,eAAeqD,qBAC9V/jM,EAAMmX,MAAMkvD,UAAU8zC,SAASoiI,kBAAkB,EAAGplO,WAAgC,QAApBA,EAAM0iL,UACtE,YACA,2CAA2C,EAAG1iL,WAAgC,QAApBA,EAAM0iL,UAAsB,QAAU,+CAA+C,EAAG1iL,WAAYA,EAAMnb,KAAKwiH,KAAK/vG,4DAA4D,EAAG0I,WAAYA,EAAMnb,KAAKwiH,KAAK7rE,qBAAsB3yC,GAAUA,EAAMmX,MAAMk0E,YAAY+vJ,UAAUr8N,wDAAyD/e,GAAUA,EAAMmX,MAAMk0E,YAAY+vJ,UAAUr8N,YAChby9N,EAA6B,KAAOl1O,KAAKytL,WAAW,CAAEr6C,YAAa,6BAA8Bs6C,YAAa,cAAgB,uBAAwBh1L,GAAUA,EAAMmX,MAAMk0E,YAAYyhH,UAAUr+L,WAClMguO,EAAkB,KAAO38O,OAAOi1L,WAAW,CAAEr6C,YAAa,kBAAmBs6C,YAAa,cAAgB,6FAA8Fh1L,GAAUA,EAAMmX,MAAMnb,KAAKsgD,sEAAsEkgM,sBAAgDx8O,GAAUA,EAAMmX,MAAMkgL,oBAAoBE,gBAAgB9oL,gCAAgC+tO,WAAqCx8O,GAAUA,EAAMmX,MAAMm/K,MAAMC,+BAAgCv2L,GAAUA,EAAMmX,MAAMm/K,MAAMhhB,gBACziB73H,EAAQz9C,IACjB,MAAM,aAAEo9C,EAAe,EAAC,SAAE3/B,EAAQ,SAAEigC,EAAQ,SAAEv7C,EAAW,MAAe,IAAMnC,EACxEmX,GAAQ,UACR89K,GAAc,OAAej1L,IAC5Bo8O,EAAmBM,GAAwB,WAAe,IAC1DL,EAAgBM,GAAqB,WAAe,IACpDv0B,EAAaw0B,GAAkB,WAAex/L,GAC/CvG,EAAU,SAAa,IACvBgmM,EAAY,cAClB,aAAgB,KACZD,EAAex/L,EAAa,GAC7B,CAAC3/B,EAAU2/B,IACd,MAAM0/L,EAAkB,eAAmB10B,IACvC,MAAM20B,EAAmBlmM,EAAQx5B,QAAQ+qM,IAAgBvxK,EAAQx5B,QAAQ,GACnE2/N,EAAgBD,GAAoBA,EAAiBvtK,wBACrDytK,EAAepmM,EAAQx5B,QAAQ,GAAGmyD,wBAClC0tK,GAAgBD,aAAmD,EAASA,EAAa5/O,OAAS,EAClGA,EAAQ2/O,GAAiBC,GAAgBD,EAAc3/O,KAAO6/O,GAAiB,EAC/EjuO,EAAS+tO,GAAiBA,EAAc/tO,OAAU,EACxDytO,EAAqBr/O,GACrBs/O,EAAkB1tO,EAAM,GACzB,IACH,aAAgB,KACZ6tO,EAAgB10B,EAAY,GAC7B,CAACA,EAAa00B,EAAiBr/N,IAClC,MAAM0/N,EAAc,eAAmB/0B,IACnC,MAAM20B,EAAmBlmM,EAAQx5B,QAAQ+qM,IAAgBvxK,EAAQx5B,QAAQ,GACpE0/N,GAGLA,EAAiBzmD,OAAO,GACzB,IACGtpJ,EAAc,eAAkB,CAACh5B,EAAO+iM,KAC1C/iM,EAAM3V,iBACNu+O,EAAe7lC,GACf50M,EAAS40M,GACT,MAAMgmC,EAAmBlmM,EAAQx5B,QAAQ05L,IAAclgK,EAAQx5B,QAAQ,GACjE+/N,EAAaP,EAAUx/N,QAC7B,IAAK0/N,IAAqBK,EACtB,OAEJ,MAAMC,EAAkBD,EAAW5tK,wBAAwBvgE,MACrDquO,EAAWP,EAAiBvtK,wBAAwBvgE,MACpDsuO,EAAYR,EAAiBvtK,wBAAwBnyE,KACvD+/O,EAAW5tK,wBAAwBnyE,KACnCkgP,EAAYD,EAAWD,EACvBD,EAAWt0J,SAAS,CAChBvsC,SAAU,SACVl/C,KAAMkgP,EAAYH,EAAWz3K,WAAa23K,EAAWD,IAIzDE,EAAY,GACZH,EAAWt0J,SAAS,CAChBvsC,SAAU,SACVl/C,KAAM+/O,EAAWz3K,WAAa43K,GAEtC,GACD,CAACp7O,EAAU06O,IACRjvB,EAAc,eAAmB55M,IACnC,MAAMwpO,EAAsBp1B,EACtBq1B,EAAwC,QAApBtmO,EAAM0iL,WAAuB,EAAI,EAE3D,GADA7lL,EAAM3V,iBACY,cAAd2V,EAAM5I,IAAqB,CAC3B,MAAMsyO,GAAkBF,EAAsBC,EAAoBhgO,EAAS5kB,QACvE4kB,EAAS5kB,OACb+jP,EAAec,GACfP,EAAYO,GACZv7O,EAASu7O,EACb,MACK,GAAkB,eAAd1pO,EAAM5I,IAAsB,CACjC,MAAMsyO,GAAkBF,EAAsBC,EAAoBhgO,EAAS5kB,QACvE4kB,EAAS5kB,OACb+jP,EAAec,GACfP,EAAYO,GACZv7O,EAASu7O,EACb,IACD,CAACt1B,EAAa3qM,EAAS5kB,OAAQsJ,EAAUgV,EAAM0iL,UAAWsjD,IACvDhmC,EAAe,eAAkB,IAAM2lC,EAAgB10B,IAAc,CAACA,EAAa00B,IAKzF,OAJA,aAAgB,KACZ5zN,OAAO/a,iBAAiB,SAAUgpM,GAC3B,IAAMjuL,OAAO9a,oBAAoB,SAAU+oM,KACnD,CAACA,IACI,gBAAoB,WAAgB,KACxC,gBAAoBglC,EAAc1yO,OAAOC,OAAO,CAAE+wI,KAAM,UAAW2hG,kBAAmBA,EAAmBC,eAAgBA,EAAgBppL,MAAOx1C,EAAS5kB,OAAQmQ,IAAK6zO,GAAa5nD,GAAcx3K,EAAS5U,KAAI,CAAC80O,EAAK50O,IAAW,gBAAoBmzO,EAAW,CAAEzhG,KAAM,eAAgBrvI,IAAKuyO,EAAIvyO,IAAK2X,GAAI,GAAG26B,SAAgB30C,IAAS,gBAAiB,GAAG20C,aAAoB30C,IAASA,MAAOA,GACxX,gBAAoB0zO,EAAiBhzO,OAAOC,OAAO,CAAEhO,QAAUsY,GAAUg5B,EAAYh5B,EAAOjL,GAAQ47E,SAAUyjI,IAAgBr/M,EAAQ,GAAK,EAAGC,IAAMkgE,IACxIA,IACAryB,EAAQx5B,QAAQtU,GAASmgE,EAC7B,EACD8kJ,QAASJ,GAAgB+vB,EAAIC,cAAe,OAAeD,EAAIC,cAClE,gBAAoBpB,EAA4B,KAC5C,gBAAoB,KAAY/qM,SAAU,CAAExvC,MAAO,CAAEnE,KAAMsqN,IAAgBr/M,IAAgC,iBAAd40O,EAAI/5O,MAAsB,gBAAoB,KAAM,CAAE9H,IAAK,EAAAk8L,QAAQ1wL,KAAM8B,MAAO,KAAUgX,SAAWu9N,EAAI/5O,OAAW+5O,EAAS,aACtOlgO,EAAS5U,KAAI,CAAC80O,EAAK50O,IAAW,gBAAoB,MAAO,CAAE0xI,KAAM,WAAY3xH,OAAQ/f,IAAUq/M,EAAah9M,IAAKuyO,EAAIvyO,IAAK2X,GAAI,GAAG26B,aAAoB30C,IAAS,gBAAiB,GAAG20C,SAAgB30C,KAAW40O,EAAIppP,WAAY,C,yHClHrO,MAAMy9N,EAAkB,KAAO1qN,KAAKytL,WAAW,CAAEr6C,YAAa,kBAAmBs6C,YAAa,aAAe,aAAa,EAAG79K,WAAYA,EAAMohL,gBAAgBrrJ,SAASxiC,2GAClKunN,GAA8B,QAAOD,GAAiBj9B,WAAW,CAAEr6C,YAAa,8BAA+Bs6C,YAAa,aAAe,aAAa,EAAG79K,QAAOrV,gBAAiBA,EACnLqV,EAAMohL,gBAAgB5wL,SAAS+C,SAC/ByM,EAAMohL,gBAAgBrrJ,SAASxiC,uBAAwB1K,GAAU,SAASA,EAAMmX,MAAMkvD,UAAUq6H,eAAeqD,YAAY/jM,EAAMmX,MAAMkvD,UAAU8zC,SAAS/wG,iDAAiD,EAAG+N,QAAOrV,aAAYowN,WAAUC,iBAAkBrwN,IAAeowN,EAC5Q,IAAI,sFAAsF/6M,EAAMnb,KAAKgT,mEAAmEmjN,kBAA4Bh7M,EAAMohL,gBAAgBrrJ,SAASxiC,kBAAelY,IAClPqrP,EAAiB,KAAOC,SAAS/oD,WAAW,CAAEr6C,YAAa,iBAAkBs6C,YAAa,cAAgB,yCAA0Ch1L,GAAU,QAAQA,EAAMmX,MAAMnb,KAAKgvB,mBAAmBhrB,EAAMmX,MAAMohL,gBAAgB5wL,SAAS2wL,uDAAuD,eAAuB,EAAGv6L,gBAAiBA,IAAe,KAAgBguB,SAAW,cAAgB,cAAe/rB,GAAUA,EAAMmX,MAAMnb,KAAKgvB,mCAAoChrB,GAAUA,EAAMmX,MAAMohL,gBAAgB5wL,SAAS+C,wBAAyB1K,GAAUA,EAAMmX,MAAMohL,gBAAgB5wL,SAAS2wL;IACjlBt4L,GAAUA,EAAMmyN,YAAc;KAC7BnyN,GAAUA,EAAMmX,MAAMnb,KAAKsgD;kBACf,EAAGnlC,WAAYA,EAAMnb,KAAKwiH,KAAK/vG,eAAe,QAAqB,EAAG1Q,gBAAiBA,IAAe,KAAgBigM,UAAY,sDAAuDh+L,GAAUA,EAAMmX,MAAMk0E,YAAYkzG,UAAU9vL,YAAazO,GAAUA,EAAMkyN,UAAY,IAAI,OAAOD,uCAAiEjyN,EAAMmX,MAAMohL,gBAAgBnhI,QAAQ1sD,gBAAgB,EAAG3M,gBAAiBA,IAAe,KAAgBsgM,SAC/ctgM,IAAe,KAAgBlK,OAC/BkK,IAAe,KAAgBugM,YAC7B,IAAI,uCAAuC,EAAGnnL,WAAYA,EAAMnb,KAAKwiH,KAAK/vG,eAAe,6CAA0D,EAAG0I,WAAYA,EAAMnb,KAAKwiH,KAAK7rE,cAAc,SAAwB,IAAI,iHAAiH,EAAGx7B,WAAYA,EAAMnb,KAAKwiH,KAAK/vG,eAAe,EAAG0I,WAAYA,EAAMk0E,YAAY6yG,UAAU3yG,mCAAmC,EAAGp0E,QAAOpZ,gBAAiBA,IAAe,KAAgBuS,SACrgB,wBAAwB6G,EAAMk0E,YAAY+vJ,UAAUr8N,2CAA2C,EAAG5H,WAAYA,EAAMnb,KAAKwiH,KAAK7rE,cAAc,EAAGx7B,WAAYA,EAAM4vL,qCAAsC/mM,GAAUA,EAAMmX,MAAM4nF,OAAO31F,MAAMC,cAAc4oN,uCAAkEjyN,GAAUA,EAAMmX,MAAMohL,gBAAgBnhI,QAAQ1sD,cACtWytL,EAAc,KAAOt2L,MAAMkzL,WAAW,CAAEr6C,YAAa,cAAes6C,YAAa,aAAe,0DAA2Dh1L,GAAUA,EAAMmX,MAAMnb,KAAKsgD,mBAAmB,QACzMyhM,EAAuB,KAAOr+O,IAAIq1L,WAAW,CAAEr6C,YAAa,uBAAwBs6C,YAAa,aAAe,+CAA+C,EAAG79K,WAAYA,EAAMnb,KAAK0hL,mBAAmB,QACrM7zI,EAAY7pC,IACrB,MAAMizN,EAAW,eACX,MAAEpxN,EAAK,WAAE9D,EAAa,KAAgBuS,QAAO,KAAE7d,EAAI,OAAEyvB,EAAM,SAAE/f,EAAQ,QAAEkgB,EAAO,MAAEpgB,EAAK,aAAEgb,EAAY,YAAE+E,EAAW,KAAE4nB,EAAO,EAAC,UAAEnB,EAAS,UAAEjmC,EAAS,SAAER,EAAQ,WAAEF,EAAU,QAAEvO,EAAO,UAAEyqP,EAAS,oBAAEC,EAAsBz7O,EAAS,SAAE07O,GAAcl+O,EAC3Oi1L,GAAc,OAAej1L,IAC5Bm+O,EAAgBC,GAAqB,YAAgBn8O,aAAqC,EAASA,EAAMpJ,UAAYokB,aAAmD,EAASA,EAAapkB,SAAW,IACzMq5N,EAAU0B,GAAe,YAAe,IACxCzB,EAAawB,GAAkB,WAAe,GACrD,aAAgB,KACZyqB,GAAmBn8O,aAAqC,EAASA,EAAMpJ,SAAW,EAAE,GACrF,CAACoJ,IACJ,aAAgB,KACZ,IAAIxT,EACJklO,GAA4C,QAA3BllO,EAAKwkO,EAAS51M,eAA4B,IAAP5uB,OAAgB,EAASA,EAAG0hD,eAAiB,EAAE,GACpG,CAAC8iL,IACJ,MAAM9b,EAAe,eAAkB,KAAQ,IAAI1oN,EAAI,OAAOklO,GAA4C,QAA3BllO,EAAKwkO,EAAS51M,eAA4B,IAAP5uB,OAAgB,EAASA,EAAG0hD,eAAiB,EAAE,GAAK,CAACwjL,EAAgBV,IACvL,aAAgB,KACZ/pM,OAAO/a,iBAAiB,SAAUgpM,GAC3B,IAAMjuL,OAAO9a,oBAAoB,SAAU+oM,KACnD,CAACA,IACJ,MAAM/mM,EAAe,eAAmB4D,IACpC,MAAMqqO,EAAqBrqO,EAAM7D,cAAclO,MAAMpJ,OACrDulP,EAAkBC,GAClBzqB,EAAYyqB,EAAqB,GAC7Bl8O,GACAA,EAAS6R,EACb,GACD,CAAC7R,IACEm8O,EAA8C,UAAhC,KAAgBvgP,GAC9B+iM,EAAkD,UAAhC,KAAgB/iM,GAClC,gBAAgBmgP,IACgB,YAAhC,KAAgBngP,GACZ,kBAAkBmgP,IACc,gBAAhC,KAAgBngP,GACZ,sBAAsBmgP,SACtB1rP,EACd,OAAQ,gBAAoB2lM,EAAa1uL,OAAOC,OAAO,CAAE3L,WAAYA,GAAck3L,GAC/EpzL,GAAU,gBAAoBmwN,EAAiB,CAAE,eAAe,EAAMhpN,IAAKiqN,GACvEpxN,EACAG,GAAY,KAChB,gBAAoB67O,EAAgB,CAAEhc,SAAU9jO,IAAe,KAAgBigM,SAAU3lL,SAAUta,IAAe,KAAgBguB,SAAU,mBAAoB+0K,EAAiB,eAAgBw9C,EAAa10M,KAAMA,EAAM7rC,WAAYA,EAAY0qC,UAAWA,EAAWjmC,UAAWA,EAAW/P,KAAMA,EAAM0P,SAAUiO,EAAc8R,OAAQA,EAAQG,QAASA,EAASL,YAAaA,EAAa/f,MAAOA,EAAOgb,aAAcA,EAAcjb,SAAUA,EAAU,gBAAiBA,EAAUkwN,SAAUisB,EAAiB,EAAGH,UAAWA,EAAW7rB,YAAaA,IACxhBtwN,GAAU,gBAAoBowN,EAA6B,CAAEnwN,WAAYA,EAAYowN,SAAUA,EAAUC,YAAaA,GAClHtwN,EACAG,GAAY,KAChB,gBAAoB+7O,EAAsB,CAAEhgP,WAAYA,GACpDxK,GAAY,gBAAoB,KAAqB,CAAEwK,WAAYA,EAAY8gM,oBAAqBtrM,EAASwvB,GAAI+9K,IACjHm9C,GAAwB,gBAAoB,IAAkB,CAAEh8O,MAAOk8O,EAAgB/sL,MAAO6sL,KAA0B,C,yGChEzHM,EAAY,aAAiB90O,OAAOC,QAAO,SAAU1J,EAAOu6I,GAEnE,MAAgB,aADFv6I,EAAM7D,SAAW,WAEpB,gBAAoB,MAAO,CAAEuG,UAAW1C,EAAM0C,UAAW,cAAe1C,EAAMw6I,WAAYC,KAAMz6I,EAAMw6I,gBAAahoJ,EAAY,MAAOmyF,SAAU3kF,EAAM2kF,SAAU,aAAc3kF,EAAMsO,UAAWtF,IAAKuxI,EAAYtnE,MAAO,6BAA8BhkE,MAAO,KAAMyB,OAAQ,KAAMsiE,QAAS,YAAa/5B,KAAM,gBAC/Sj5C,EAAM4D,OAAS,gBAAoB,QAAS,KAAM5D,EAAM4D,OACxD,gBAAoB,OAAQ,CAAEi7D,EAAG,mcAElC,IACX,GAAG,CAAE67E,YAAa,eCRP8jG,EAAY,aAAiB/0O,OAAOC,QAAO,SAAU1J,EAAOu6I,GAEnE,MAAgB,aADFv6I,EAAM7D,SAAW,WAEpB,gBAAoB,MAAO,CAAEuG,UAAW1C,EAAM0C,UAAW,cAAe1C,EAAMw6I,WAAYC,KAAMz6I,EAAMw6I,gBAAahoJ,EAAY,MAAOmyF,SAAU3kF,EAAM2kF,SAAU,aAAc3kF,EAAMsO,UAAWtF,IAAKuxI,EAAYtnE,MAAO,6BAA8BhkE,MAAO,KAAMyB,OAAQ,KAAMsiE,QAAS,YAAa/5B,KAAM,gBAC/Sj5C,EAAM4D,OAAS,gBAAoB,QAAS,KAAM5D,EAAM4D,OACxD,gBAAoB,OAAQ,CAAEi7D,EAAG,0zBAElC,IACX,GAAG,CAAE67E,YAAa,e,iDCHlB,MAAM+jG,EAAyB,QAIzBC,EAAoBvnO,GAAUA,EAAMohL,gBAAgBrrJ,SAASxiC,SAC7Di0O,EAAoBxnO,GAAUA,EAAMohL,gBAAgB5wL,SAAS+C,SAC7Dk0O,EAAuBznO,GAAUA,EAAMnb,KAAKgvB,UAC5C6zN,EAAuB1nO,GAAUA,EAAMnb,KAAKgU,UAC5C8uO,EAAoB,OACpBhmD,EAAc,KAAOj9K,MAAMk5K,WAAW,CAAEr6C,YAAa,cAAes6C,YAAa,YAAc,sBAAsB,EAAG79K,WAAYynO,EAAoBznO,6BAAiC,EAAGlb,OAAMi2N,WAAUlwM,cAAa7K,WAAYlb,IAASi2N,GAAYlwM,EAAc68N,EAAoB1nO,GAAS,0BAA2BnX,GAAUA,EAAM++O,eAAiBD,EAAoB,8DAA+D9+O,GAAUA,EAAMjC,aAAe,KAAgBguB,SAAW,cAAgB,YAAY,uDAA+D,EAAG5U,WAAYwnO,EAAiBxnO,uCAA2C,EAAGA,WAAYA,EAAMnb,KAAKwiH,KAAK/vG,eAAe,QAAqB,EAAG1Q,gBAAiBA,IAAe,KAAgBigM,UAAY,kCAAmCh+L,GAAUA,EAAMkyN,SAAW,OAAS,WAAWusB,kDAAwEz+O,GAAUA,EAAMmX,MAAMk0E,YAAYkzG,UAAU9vL,wCAAwC,EAAG1Q,gBAAiBA,IAAe,KAAgBsgM,SACzjCtgM,IAAe,KAAgBlK,OAC/BkK,IAAe,KAAgBugM,YAC7B,IAAI,wCAAwC,EAAGnnL,WAAYA,EAAMnb,KAAKwiH,KAAK/vG,eAAe,6CAA0D,EAAG0I,WAAYA,EAAMnb,KAAKwiH,KAAK7rE,cAAc,SAAwB,IAAI,kHAAkH,EAAGx7B,WAAYA,EAAMnb,KAAKwiH,KAAK/vG,eAAe,EAAG0I,WAAYA,EAAMk0E,YAAY6yG,UAAU3yG,8CAA8C,EAAGp0E,WAAYA,EAAMnb,KAAKwiH,KAAK7rE,cAAc,EAAGx7B,WAAYA,EAAM4vL,8CAA8C,EAAG5vL,QAAOpZ,gBAAiBA,IAAe,KAAgBuS,SACloB,wBAAwB6G,EAAMk0E,YAAY+vJ,UAAUr8N,oBAAoB,EAAG5H,WAAYA,EAAMk0E,YAAYioE,UAAU7kJ,qDAAqDgwO,iBAAsCA,sOAA2P,EAAGtnO,WAAYA,EAAMk0E,YAAYysG,UAAUrpL,YAClf0pL,EAAc,KAAOt2L,MAAMkzL,WAAW,CAAEr6C,YAAa,cAAes6C,YAAa,cAAgB,oDAAoD,QACrJgqD,EAAuB,KAAO7xN,EAAE4nK,WAAW,CAAEr6C,YAAa,uBAAwBs6C,YAAa,cAAgB,aAAa,EAAG79K,WAAYunO,EAAiBvnO,oCAAwC,EAAG8nO,cAAgBA,EAAW,SAAW,aAAc9mD,iCAA2C,EAAGhhL,WAAYA,EAAMm/K,MAAMhhB,oBAAoB,EAAGn+J,WAAYA,EAAMm/K,MAAMC,eAChX2oD,EAA0B,KAAO/xN,EAAE4nK,WAAW,CAAEr6C,YAAa,0BAA2Bs6C,YAAa,aAAe,+DAA+D,EAAGk9B,WAAUitB,UAAShoO,QAAO4nO,oBAAqB7sB,EAEnO,+EAGUwsB,EAAiBvnO,yCAK3B,yEAGUwnO,EAAiBxnO,2BACnBynO,EAAoBznO,2CACPgoO,IAAYjtB,EAAW2sB,EAAoB1nO,GAAS,uCACtD4nO,EAAiBD,EAAoB,gBACzDhmD,8DAAwE,EAAG3hL,WAAYunO,EAAiBvnO,gCAAoC,EAAGA,WAAYA,EAAMioO,0BAA0B,SAC5L1/C,EAAa,KAAOhgM,IAAIq1L,WAAW,CAAEr6C,YAAa,aAAcs6C,YAAa,cAAgB,oEAAqEh1L,GAAWA,EAAMkyN,SAAW,EAAI,gBAAkBlyN,GAAUA,EAAMkyN,SACpO,OACA,OAAOusB,sBACTA,OAA4BtmD,6CAAuDsmD,kBACjFV,EAAuB,KAAOr+O,IAAIq1L,WAAW,CAAEr6C,YAAa,uBAAwBs6C,YAAa,cAAgB,6EAA6E,EAAG79K,WAAYA,EAAMnb,KAAK0hL,mBAAmB,YAA6B,EAAGvmK,WAAYA,EAAMnb,KAAKgvB,aAClSq0N,EAAoB,KAAOv/O,OAAOi1L,WAAW,CAAEr6C,YAAa,oBAAqBs6C,YAAa,aAAe,2BAtCxF;IAuCvB,EAAG79K,WAAgC,QAApBA,EAAM0iL,UACnB,QACA;uEACiE,EAAGxhL,cAAgBA,EAAW,cAAgB,qIAAsI,EAAGA,WAAUlB,WAAYA,EAAMk0E,YAAYioE,UAAUj7I,EAAW,WAAa,cAAc,EAAGA,WAAUlB,YAAakB,GAAY,IAAI,uHAAuHlB,EAAMkgL,oBAAoBE,gBAC5gB9oL,4BAA4B0I,EAAMkgL,oBAAoBE,gBAAgB9oL,+BAA+B0I,EAAMm/K,MAAMhhB,oBAAoBn+J,EAAMm/K,MAAMC,+BAA+Bp/K,EAAMk0E,YAAYioE,UAAU7kJ,cAC3M6wO,EAA2B,KAAO5/O,IAAIq1L,WAAW,CAAEr6C,YAAa,2BAA4Bs6C,YAAa,aAAe,mIACxHuqD,EAAyB,KAAO7/O,IAAIq1L,WAAW,CAAEr6C,YAAa,yBAA0Bs6C,YAAa,cAAgB,qBAAqB,EAAG2J,YAAW5gM,iBAAkB4gM,GAC5I,gBAAhC,KAAgB5gM,IAChB,kBACSyhP,EAAkBx/O,IAC3B,IAAIvR,EACJ,MAAM,mBAAEgxP,EAAkB,WAAE1hP,EAAa,KAAgBuS,QAAO,UAAEwN,EAAS,eAAE4hO,EAAiB,GAAE,SAAExB,EAAQ,aAAEjhO,EAAY,eAAE8hO,EAAc,KAAE9iP,EAAI,SAAE8F,EAAQ,qBAAE49O,EAAoB,MAAE99O,EAAQ,GAAE,UAAEW,EAAS,KAAE/P,EAAI,OAAEyvB,EAAM,SAAE/f,EAAQ,UAAEyiF,EAAS,QAAEg7J,EAAO,QAAEv9N,EAAO,WAAEvgB,EAAU,QAAEvO,EAAO,YAAEyuB,EAAW,SAAEhgB,GAAW,EAAK,kCAAE69O,EAAoC,GAAE,KAAE9sP,EAAI,MAAEkP,EAAK,aAAEo5O,EAAY,UAAE2C,EAAS,oBAAEC,EAAmB,IAAE95O,EAAG,IAAEG,GAAStE,GAC1ZkyN,EAAU0B,GAAe,WAAe3mH,QAAQhrG,GAASgb,KACzD6iO,EAAkBC,GAAuB,WAAehtP,IACxDorP,EAAgBC,GAAqB,YAAgBn8O,aAAqC,EAASA,EAAMpJ,UAAYokB,aAAmD,EAASA,EAAapkB,SAAW,IACzM8lM,GAAWqhD,IAAgB,YAAe,GAC3C/qD,IAAc,OAAej1L,GAC7BigP,GAA2B,aAATltP,EAClBmtP,GAAa,gBAAoB,WAAgB,KACnDr+O,EACAG,GAAY,KACV+wC,GAAah1C,IAAe,KAAgBguB,SAC5Ci9M,GAAajrO,IAAe,KAAgBigM,SAuB5CsgD,GAA8C,UAAhC,KAAgBvgP,GAC9B+iM,GAAkD,UAAhC,KAAgB/iM,GAClC,gBAAgBmgP,IACgB,YAAhC,KAAgBngP,GACZ,kBAAkBmgP,IACc,gBAAhC,KAAgBngP,GACZ,sBAAsBmgP,SACtB1rP,EACRqsM,GAIa,QAJUpwM,EAAsC,gBAAhC,KAAgBsP,IAE7C4gM,GADAprM,EAGI,UAAwB,IAAP9E,EAAgBA,EAAK,GAChD,OAAQ,gBAAoB0pM,EAAa1uL,OAAOC,OAAO,CAAE3L,WAAYA,GAAck3L,IAC/E,gBAAoB+pD,EAAsB,CAAEC,SAAUn9O,GAAco+O,IACpE,gBAAoBX,EAAwB,CAAE5gD,UAAWA,GAAW5gM,WAAYA,GAC5E9B,GAAQ,gBAAoByjM,EAAY,CAAEwyB,SAAUA,GAAYj2N,GAChE,gBAAoB68L,EAAa,CAAE/6L,WAAYA,EAAY+f,UAAWA,EAAWb,aAAcA,EAAc,gBAAiBjb,EAAUA,SAAUA,EAAUqW,SAAU06B,GAAY92C,KAAMA,EAAMuG,UAAWA,EAAW/P,KAAMA,EAAMyvB,OApCpNlO,IAHO,CAACA,IACxB4/M,EAAY3mH,QAAQj5F,EAAM7D,cAAclO,OAAO,EAG/Ck+O,CAAmBnsO,GACnBgsO,IAAa,GACT99N,GACAA,EAAOlO,EACX,EA+BwP7R,SA7BtO6R,IAClBoqO,EAAkBpqO,EAAM7D,cAAclO,MAAMpJ,QACxCsJ,GACAA,EAAS6R,EACb,EAyBgRqO,QAvB/PrO,IACjBgsO,IAAa,GACT39N,GACAA,EAAQrO,EACZ,EAmBsS4wE,UAAWA,EAAW5iE,YAAaA,EAAa6/M,SAAUmH,GAAY,gBAAiBA,GAAY,mBAAoBloC,GAAiB,eAAgBw9C,GAAat1O,IAAKjH,EAAUhP,KAAM+sP,EAAkB79O,MAAOA,EAAOo5O,aAAcA,EAAcnpB,SAAUA,EAAU6sB,eAAgBA,EAAgBf,UAAWA,EAAW75O,IAAKA,EAAKG,IAAKA,IACjnB27O,IAAwC,aAArBH,GAAoC,gBAAoBR,EAA0B,KACjG,gBAAoBD,EAAmB,CAAE,aAAcQ,EAAmCj8O,MAAOi8O,EAAmCnkP,QAAS,IAAMqkP,EAAoB,QAAShtP,KAAM,SAAUslB,SAAUta,IAAe,KAAgBguB,UACrO,gBAAoBwyN,EAAW,QACvC0B,IAAwC,SAArBH,GAAgC,gBAAoBR,EAA0B,KAC7F,gBAAoBD,EAAmB,CAAE,aAAcQ,EAAmCj8O,MAAOi8O,EAAmCnkP,QAAS,IAAMqkP,EAAoB,YAAahtP,KAAM,SAAUslB,SAAUta,IAAe,KAAgBguB,UACzO,gBAAoByyN,EAAW,SACtCyB,IAAmBlB,GAAkBY,GAAyB,gBAAoBL,EAA0B,KACzG,gBAAoBD,EAAmB,CAAE,aAAcK,EAAgB97O,MAAO87O,EAAgBhkP,QAASkkP,EAAS7sP,KAAM,SAAUslB,SAAUta,IAAe,KAAgBguB,UACrK,gBAAoBprB,EAAA,EAAO,CAAExE,QAAS,UAAWq+I,YAAY,MACrE14I,GAAe,gBAAoBo9O,EAAyB,CAAEC,QAASlyI,QAAQhxG,GAAOi2N,SAAUA,EAAU6sB,eAAgBA,GAAkBmB,IAC5I,gBAAoB,KAAqB,CAAEniP,WAAYA,EAAY8gM,oBAAqBA,GAAqBF,UAAWA,GAAW57K,GAAI+9K,MAC3I,gBAAoBi9C,EAAsB,CAAEhgP,WAAYA,GAAeyE,IAAcy7O,SAAiEA,IAA6BA,EAAuB,gBAAoB,IAAkB,CAAEh8O,MAAOk8O,EAAgB/sL,MAAO6sL,GAAuBz7O,GAAa,SAAQhQ,GAC5TitP,EAAoB,EAEfx0N,EAAY,cAAiB,CAACjrB,EAAOgJ,IAAQ,gBAAoBw2O,EAAgB/1O,OAAOC,OAAO,CAAC,EAAG1J,EAAO,CAAE+B,SAAUiH,M,yOCtHxHhL,EAyCAg6L,EAkBA90L,EAQAmE,EAMA8oJ,E,mDAxEX,SAAWnyJ,GACPA,EAA4B,YAAI,cAChCA,EAA4B,YAAI,cAChCA,EAA4B,YAAI,cAChCA,EAA4B,YAAI,cAChCA,EAA4B,YAAI,cAChCA,EAA4B,YAAI,cAChCA,EAA4B,YAAI,cAChCA,EAA4B,YAAI,cAChCA,EAA4B,YAAI,cAChCA,EAAyB,SAAI,WAC7BA,EAAyB,SAAI,WAC7BA,EAAyB,SAAI,WAC7BA,EAAyB,SAAI,WAC7BA,EAAyB,SAAI,WAC7BA,EAAwB,QAAI,UAC5BA,EAAwB,QAAI,UAC5BA,EAAwB,QAAI,UAC5BA,EAAwB,QAAI,UAC5BA,EAAwB,QAAI,UAC5BA,EAA6B,aAAI,cACjCA,EAA6B,aAAI,cACjCA,EAA6B,aAAI,cACjCA,EAA6B,aAAI,cACjCA,EAA6B,aAAI,cACjCA,EAA6B,aAAI,cACjCA,EAA6B,aAAI,cACjCA,EAA6B,aAAI,cACjCA,EAA6B,aAAI,cACjCA,EAA0B,UAAI,WAC9BA,EAA0B,UAAI,WAC9BA,EAA0B,UAAI,WAC9BA,EAA0B,UAAI,WAC9BA,EAA0B,UAAI,WAC9BA,EAAyB,SAAI,UAC7BA,EAAyB,SAAI,UAC7BA,EAAyB,SAAI,UAC7BA,EAAyB,SAAI,UAC7BA,EAAyB,SAAI,SAChC,CAvCD,CAuCGA,IAAmBA,EAAiB,CAAC,IAExC,SAAWg6L,GACPA,EAAc,KAAI,OAClBA,EAAa,IAAI,MACjBA,EAAW,EAAI,IACfA,EAAY,GAAI,KAChBA,EAAY,GAAI,KAChBA,EAAY,GAAI,KAChBA,EAAY,GAAI,KAChBA,EAAY,GAAI,KAChBA,EAAa,IAAI,MACjBA,EAAa,IAAI,MACjBA,EAAgB,OAAI,SACpBA,EAAa,IAAI,MACjBA,EAAgB,OAAI,SACpBA,EAAY,GAAI,KAChBA,EAAY,GAAI,IACnB,CAhBD,CAgBGA,IAAYA,EAAU,CAAC,IAE1B,SAAW90L,GACPA,EAAsB,OAAI,SAC1BA,EAAoB,KAAI,OACxBA,EAAqB,MAAI,QACzBA,EAAqB,MAAI,QACzBA,EAAmB,IAAI,KAC1B,CAND,CAMGA,IAAkBA,EAAgB,CAAC,IAEtC,SAAWmE,GACPA,EAAmB,QAAI,UACvBA,EAAqB,UAAI,YACzBA,EAAmB,QAAI,SAC1B,CAJD,CAIGA,IAAcA,EAAY,CAAC,IAE9B,SAAW8oJ,GACPA,EAAmB,OAAI,SACvBA,EAAmB,OAAI,SACvBA,EAAgB,IAAI,MACpBA,EAAoB,QAAI,WACxBA,EAAoB,QAAI,WACxBA,EAAoB,QAAI,UACxBA,EAAoB,QAAI,SAC3B,CARD,CAQGA,IAAeA,EAAa,CAAC,IAChC,MAAMiwF,EAAqB,CACvBpiP,EAAeqiP,YACfriP,EAAesiP,YACftiP,EAAeuiP,YACfviP,EAAe8jL,YACf9jL,EAAeg9K,YACfh9K,EAAeoR,YACfpR,EAAegF,YACfhF,EAAek/I,YACfl/I,EAAemnJ,YACfnnJ,EAAewiP,aACfxiP,EAAeyiP,aACfziP,EAAe0iP,aACf1iP,EAAekyJ,aACflyJ,EAAeysJ,aACfzsJ,EAAe8N,aACf9N,EAAeC,aACfD,EAAe6V,aACf7V,EAAeqR,cAEnB,SAAS4hN,EAAiBjxN,GACtB,MAAM,KAAElC,EAAI,WAAEgK,EAAU,IAAEu4D,EAAG,IAAEsgL,EAAG,WAAE5iP,EAAU,MAAEoZ,GAAUnX,EACpDq4L,EAAiBlhL,EAAMohL,gBAAgBx6L,GAC7C,IAAKs6L,EAED,OADA,OAAc,sBAAsBt6L,wBAC7B,GAEX,MAAM,WAAEgzN,GAAe14B,GACjB,SAAE3tL,EAAQ,cAAEsmN,EAAa,WAAE14B,EAAU,gBAAEg4C,GAAoBxoO,EAC3DuwL,EAAes9B,OACft9B,EACAuoD,EAAaR,EAAmB1nP,SAASqF,GACzC8iP,EAAa/iP,EACbqZ,EAAM/hB,KAAKu0E,OAAO7rE,KAClB8iP,EACIzpO,EAAM/hB,KAAKu0E,OAAOutH,MAClB//K,EAAM/hB,KAAKu0E,OAAOm3K,QACtBC,GAAej5O,GAAcu4D,GAAOsgL,EACpC,SACA,GAAGj2O,GAAYu4B,KAAKkvB,MAA+B,IAAzBjZ,SAASxuC,EAAU,IAAa,GAAK,MAErE,MAAO,iBADQ,IAAIq2O,OAAiBA,4BAGvBhwB,wBACA8vB,sBACFxgL,GAAOsgL,EAAMrQ,EAAkB5lO,wBAC7B21D,GAAOsgL,EAAM,IAAMroD,2BAChB04B,QAEpB,CAkBA,MAAMgwB,EAAsB,KAAO15O,KAAKytL,WAAW,CAAEr6C,YAAa,sBAAuBs6C,YAAa,aAAe,YAAah1L,IAAWA,EAAMqgE,KAAOrgE,EAAM2gP,MAAQ,2BAA4B3gP,GAC5LA,EAAM2gP,IACC,QAEP3gP,EAAMqgE,IACC,MAEJ,YACCrgE,GAAUA,EAAM8wN,YAAczpN,EAAU+Y,QAC9C,UACApgB,EAAM8wN,YAAczpN,EAAUqjI,UAC1B1qI,EAAMmX,MAAM/hB,KAAKgU,MAAMshI,UACvB1qI,EAAMmX,MAAM/hB,KAAKgU,MAAMC,WAAYrJ,GAAUA,EAAMolJ,WAAa,IAAI,+EA7B9E,SAAwCplJ,GACpC,OAAI,QAAmBA,EAAMjC,aAClB,QAA2BiC,EAAMjC,YAAaA,GAC1CkzN,EAAiBxnN,OAAOC,OAAOD,OAAOC,OAAO,CAAC,EAAG1J,GAAQ,CAAEjC,WAAYA,OAG/EkzN,EAAiBxnN,OAAOC,OAAOD,OAAOC,OAAO,CAAC,EAAG1J,GAAQ,CAAEjC,WAAYiC,EAAMjC,aACxF,KACA,SAA6CiC,GACzC,OAAKA,EAAMiD,WAGP,QAAmBjD,EAAMiD,YAClB,QAA2BjD,EAAMiD,WAAYA,GAAc,eAAeA,OAE9E,eAAejD,EAAMiD,aALjB,EAMf,qBAauPjD,IAAkC,IAAxBA,EAAMihP,cACjQ,gBACwB,IAAxBjhP,EAAMihP,cACF,eACAzuP,iBAA0BwN,GAAUA,EAAMyK,cACpDu2O,EAAoBtmG,YAAc,sBAC3B,MAAMwmG,EAAc,gBAAoB,CAAC,GACnCrjP,EAAO,QAAYmC,IAC5B,MAAMi/B,EAAU,aAAiBiiN,IAC3B,WAAEnjP,EAAakhC,EAAQo5J,gBAAkBr6L,EAAe2J,SAAQ,KAAE7J,EAAOmhC,EAAQnhC,KAAI,SAAE2f,EAAQ,UAAE/a,EAAS,GAAEqgB,EAAE,MAAE3Z,EAAQ61B,EAAQ6xL,UAAS,WAAEhpN,EAAam3B,EAAQn3B,WAAU,cAAEm5O,EAAa,IAAE5gL,EAAG,IAAEsgL,EAAG,IAAE7kP,EAAOukE,GAAO23H,EAAQ33H,KAC5NsgL,GAAO3oD,EAAQ2oD,KACf1hN,EAAQo5J,gBAAkBL,EAAQ1wL,MACnC0wL,EAAQt4L,IAAG,UAAEuD,EAAS,UAAEmiJ,EAAS,WAAE36I,GAAgBzK,EACjDi1L,GAAc,OAAej1L,GAC7BmhP,EAAoB,WAAc,KAAM,CAC1C9oD,eAAgBt6L,EAChBD,OACAgzN,UAAW1nN,EACXtB,gBACA,CAAC/J,EAAYD,EAAMsL,EAAOtB,IAC9B,OAAQ,gBAAoBk5O,EAAqBv3O,OAAOC,OAAO,CAAEmiB,GAAI/vB,EAAKiC,WAAYA,EAAYD,KAAMA,EAAMgzN,UAAW1nN,EAAOtB,WAAYA,EAAYm5O,cAAeA,EAAe5gL,IAAKA,EAAKsgL,IAAKA,EAAK19O,UAAWA,EAAWmiJ,UAAWA,EAAW36I,WAAYA,EAAY/H,UAAWA,EAAWqgB,GAAIA,GAAMkyK,GAC1S,gBAAoBisD,EAAYzvM,SAAU,CAAExvC,MAAOk/O,GAAqB1jO,GAAW,IAE3F5f,EAAK68I,YAAc,M,oCC9LZ,SAAS0mG,EAAiB/xP,EAAM43C,GACnC,IAAK53C,GAAqC,IAA7Boa,OAAO6lB,KAAKjgC,GAAMwJ,OAC3B,MAAM,IAAIhF,MAAM,gBAUpB,MAAO,KARM,IACLozC,EAAS,CAACA,GAAU,MACJ,iBAAT53C,EACL,CAACA,GACDoa,OAAO6lB,KAAKjgC,GACTo0B,OACAqjC,QAAO,CAACC,EAAK37C,IAAQ,IAAI27C,EAAK37C,EAAK/b,EAAK+b,KAAO,KAGvDmkB,KAAK,KACL1pB,cACA7Q,QAAQ,eAAgB,MACjC,C,mEChBO,IAAIqsP,EAsEAC,E,uDArEX,SAAWD,GACPA,EAA6B,QAAI,UACjCA,EAA+B,UAAI,YACnCA,EAA+B,UAAI,YACnCA,EAA+B,UAAI,YACnCA,EAA+B,UAAI,YACnCA,EAA+B,UAAI,YACnCA,EAA+B,UAAI,YACnCA,EAA+B,UAAI,YACnCA,EAA+B,UAAI,YACnCA,EAA+B,UAAI,YACnCA,EAA+B,UAAI,YACnCA,EAA+B,UAAI,YACnCA,EAA+B,UAAI,YACnCA,EAA+B,UAAI,YACnCA,EAA+B,UAAI,YACnCA,EAA+B,UAAI,YACnCA,EAA+B,UAAI,YACnCA,EAA+B,UAAI,YACnCA,EAA+B,UAAI,YACnCA,EAA+B,UAAI,YACnCA,EAA+B,UAAI,YACnCA,EAA+B,UAAI,YACnCA,EAA+B,UAAI,YACnCA,EAA+B,UAAI,YACnCA,EAA+B,UAAI,YACnCA,EAA+B,UAAI,YACnCA,EAAgC,WAAI,aACpCA,EAAgC,WAAI,aACpCA,EAAgC,WAAI,aACpCA,EAA6B,QAAI,UACjCA,EAA6B,QAAI,UACjCA,EAA6B,QAAI,UACjCA,EAA6B,QAAI,UACjCA,EAA6B,QAAI,UACjCA,EAA6B,QAAI,UACjCA,EAA6B,QAAI,UACjCA,EAA6B,QAAI,UACjCA,EAA6B,QAAI,UACjCA,EAA6B,QAAI,UACjCA,EAA6B,QAAI,UACjCA,EAA6B,QAAI,UACjCA,EAA6B,QAAI,UACjCA,EAA6B,QAAI,UACjCA,EAA6B,QAAI,UACjCA,EAA6B,QAAI,UACjCA,EAA6B,QAAI,UACjCA,EAA6B,QAAI,UACjCA,EAA6B,QAAI,UACjCA,EAA6B,QAAI,UACjCA,EAA6B,QAAI,UACjCA,EAA6B,QAAI,UACjCA,EAA6B,QAAI,UACjCA,EAA6B,QAAI,UACjCA,EAAiC,YAAI,cACrCA,EAAiC,YAAI,cACrCA,EAAiC,YAAI,cACrCA,EAAiC,YAAI,cACrCA,EAAiC,YAAI,cACrCA,EAAiC,YAAI,cACrCA,EAAiC,YAAI,cACrCA,EAAiC,YAAI,cACrCA,EAAiC,YAAI,cACrCA,EAAiC,YAAI,cACrCA,EAAiC,YAAI,cACrCA,EAAiC,YAAI,cACrCA,EAAiC,YAAI,cACrCA,EAAiC,YAAI,aACxC,CApED,CAoEGA,IAAwBA,EAAsB,CAAC,IAElD,SAAWC,GACPA,EAA+B,SAAI,WACnCA,EAA+B,SAAI,WACnCA,EAA+B,SAAI,WACnCA,EAA+B,SAAI,WACnCA,EAA+B,SAAI,WACnCA,EAA+B,SAAI,WACnCA,EAA+B,SAAI,WACnCA,EAA+B,SAAI,WACnCA,EAA+B,SAAI,WACnCA,EAA+B,SAAI,WACnCA,EAA+B,SAAI,UACtC,CAZD,CAYGA,IAAyBA,EAAuB,CAAC,G,sGChFpD,MAAMC,EAAY,CACdC,SAAU,CACN,CAAC,KAAY/yO,SAAU,GACvB,CAAC,KAAY1C,OAAQ,IAEzB01O,SAAU,CACN,CAAC,KAAYhzO,SAAU,GACvB,CAAC,KAAY1C,OAAQ,IAEzB21O,SAAU,CACN,CAAC,KAAYjzO,SAAU,GACvB,CAAC,KAAY1C,OAAQ,IAEzB41O,SAAU,CACN,CAAC,KAAYlzO,SAAU,GACvB,CAAC,KAAY1C,OAAQ,IAEzB61O,SAAU,CACN,CAAC,KAAYnzO,SAAU,GACvB,CAAC,KAAY1C,OAAQ,IAEzB81O,SAAU,CACN,CAAC,KAAYpzO,SAAU,GACvB,CAAC,KAAYpK,MAAO,GACpB,CAAC,KAAY0H,OAAQ,IAEzB+1O,SAAU,CACN,CAAC,KAAYrzO,SAAU,GACvB,CAAC,KAAYpK,MAAO,GACpB,CAAC,KAAY0H,OAAQ,IAEzBg2O,SAAU,CACN,CAAC,KAAYtzO,SAAU,GACvB,CAAC,KAAYpK,MAAO,GACpB,CAAC,KAAY0H,OAAQ,IAEzBi2O,SAAU,CACN,CAAC,KAAYvzO,SAAU,GACvB,CAAC,KAAYpK,MAAO,GACpB,CAAC,KAAY0H,OAAQ,IAEzBk2O,SAAU,CACN,CAAC,KAAYxzO,SAAU,GACvB,CAAC,KAAYpK,MAAO,GACpB,CAAC,KAAY0H,OAAQ,KAEzBm2O,SAAU,CACN,CAAC,KAAYzzO,SAAU,IACvB,CAAC,KAAYpK,MAAO,IACpB,CAAC,KAAY0H,OAAQ,MAG7B,IAAIo2O,GACJ,SAAWA,GACPA,EAAWA,EAAiB,KAAI,GAAK,OACrCA,EAAWA,EAAqB,SAAI,GAAK,WACzCA,EAAWA,EAAkB,MAAI,GAAK,OACzC,CAJD,CAIGA,IAAeA,EAAa,CAAC,IAChC,MAAMC,EAAsB,CAAC13O,EAAUs4D,IAAOv5D,OAAOiK,OAAO,MAAaozC,QAAO,CAACC,EAAKm2I,IAC9ExyL,EAASwyL,GACF,IACAn2I,EACH,CACIm2I,WAAYA,IAAe,KAAYzuL,QAAUyuL,EAAa,GAAGA,MACjEj7L,MAAO+gE,EAAGt4D,EAASwyL,MAIxBn2I,GACR,IACGs7L,EAAmB,CAACrmP,EAAMgI,KAC5B,MAAMs+O,EAAmBt+O,IAAUm+O,EAAWI,KAAO,IAAM,IAGrDC,EAAyB93O,GAA+D,EAA/Cu4B,KAAKukC,KAAM98D,EAAW43O,EAAoB,GAA7C,KACtCG,EAA4B/3O,GAAa,KAHnB,KAGwBA,EAF/B,GAEyD,IAA0Bk1E,QAAQ,OAC1G8iK,EAA8Bh4O,GAAa,GAAGu4B,KAAK9+B,IAAkC,EAA9B8+B,KAAKukC,KAAK98D,EAAW,EAAI,GAAQ,QAI9F,MAAO,CACHqmN,WAJe/sN,IAAUm+O,EAAWQ,SAClC,kEACA,kEAGFj4O,SAAU03O,EAAoBb,EAAUvlP,IAAQL,GAAM,GAAGA,QACzD20O,gBAAiB8R,EAAoBb,EAAUvlP,GAAO0mP,GACtDpqD,WAAY8pD,EAAoBb,EAAUvlP,GAAOwmP,GACjD7sB,OAAQ,CACJjrN,SAAU,GAAG62O,EAAUvlP,GAAM,KAAYyS,aACzC6pL,WAAYkqD,EAAsBjB,EAAUvlP,GAAM,KAAYyS,UAC9DuiN,cAAeyxB,EAAyBlB,EAAUvlP,GAAM,KAAYyS,UACpE6hO,gBAAiBoS,EAA2BnB,EAAUvlP,GAAM,KAAYyS,WAE5EuiN,cAAeoxB,EAAoBb,EAAUvlP,GAAOymP,GACvD,EAECljD,EAAQ,CACV90K,QAAS,IACTizJ,UAAW,MACX1yJ,UAAW,MACXrtB,UAAW,OACX2+C,UAAW,OACXl+C,UAAW,OACXR,UAAW,OACXiqM,UAAW,OACX73L,UAAW,OACXvE,UAAW,OACXtI,UAAW,OACXsuM,UAAW,OACXziM,UAAW,OACXquE,UAAW,OACXoyJ,UAAW,OACXmT,UAAW,OACXhmM,UAAW,OACXimM,UAAW,OACXC,UAAW,OACXC,UAAW,OACXpH,UAAW,OACX/D,UAAW,QACXoL,UAAW,QACXC,UAAW,QACXC,UAAW,QACXC,WAAY,QACZC,WAAY,QACZhT,WAAY,QACZjzO,QAAS,CACL,CAAE+/L,WAAY,GAAG,KAAYzuL,UAAWxM,OAAO,OAAc,IAC7D,CACIi7L,WAAY,GAAG,KAAYpuL,UAC3B7M,OAAO,OAA6B,EAAG,KAAY6M,SAG3D5R,QAAS,CACL,CAAEggM,WAAY,GAAG,KAAYzuL,UAAWxM,OAAO,OAAc,IAC7D,CACIi7L,WAAY,GAAG,KAAYpuL,UAC3B7M,OAAO,OAA6B,EAAG,KAAY6M,SAG3Du0O,QAAS,CACL,CAAEnmD,WAAY,GAAG,KAAYzuL,UAAWxM,OAAO,OAAc,IAC7D,CACIi7L,WAAY,GAAG,KAAYpuL,UAC3B7M,OAAO,OAA6B,EAAG,KAAY6M,SAG3DkmM,QAAS,CACL,CAAE9X,WAAY,GAAG,KAAYzuL,UAAWxM,OAAO,OAAc,IAC7D,CACIi7L,WAAY,GAAG,KAAYpuL,UAC3B7M,OAAO,OAA6B,EAAG,KAAY6M,SAG3Dw0O,QAAS,CACL,CAAEpmD,WAAY,GAAG,KAAYzuL,UAAWxM,OAAO,OAAc,IAC7D,CACIi7L,WAAY,GAAG,KAAYpuL,UAC3B7M,OAAO,OAA6B,EAAG,KAAY6M,SAG3Dy0O,QAAS,CACL,CAAErmD,WAAY,GAAG,KAAYzuL,UAAWxM,OAAO,OAAc,IAC7D,CACIi7L,WAAY,GAAG,KAAYpuL,UAC3B7M,OAAO,OAA6B,EAAG,KAAY6M,SAG3D00O,QAAS,CACL,CAAEtmD,WAAY,GAAG,KAAYzuL,UAAWxM,OAAO,OAAc,IAC7D,CACIi7L,WAAY,GAAG,KAAYpuL,UAC3B7M,OAAO,OAA6B,EAAG,KAAY6M,SAG3D20O,QAAS,CACL,CAAEvmD,WAAY,GAAG,KAAYzuL,UAAWxM,OAAO,OAAc,IAC7D,CACIi7L,WAAY,GAAG,KAAYpuL,UAC3B7M,OAAO,OAA6B,EAAG,KAAY6M,SAG3D40O,QAAS,CACL,CAAExmD,WAAY,GAAG,KAAYzuL,UAAWxM,OAAO,OAAc,IAC7D,CACIi7L,WAAY,GAAG,KAAYpuL,UAC3B7M,OAAO,OAA6B,EAAG,KAAY6M,SAG3D60O,QAAS,CACL,CAAEzmD,WAAY,GAAG,KAAYzuL,UAAWxM,OAAO,OAAc,KAC7D,CACIi7L,WAAY,GAAG,KAAYpuL,UAC3B7M,OAAO,OAA6B,GAAI,KAAY6M,SAG5D80O,QAAS,CACL,CAAE1mD,WAAY,GAAG,KAAYzuL,UAAWxM,OAAO,OAAc,KAC7D,CACIi7L,WAAY,GAAG,KAAYpuL,UAC3B7M,OAAO,OAA6B,GAAI,KAAY6M,SAG5D+0O,QAAS,CACL,CAAE3mD,WAAY,GAAG,KAAYzuL,UAAWxM,OAAO,OAAc,KAC7D,CACIi7L,WAAY,GAAG,KAAYpuL,UAC3B7M,OAAO,OAA6B,GAAI,KAAY6M,SAG5Dg1O,QAAS,CACL,CAAE5mD,WAAY,GAAG,KAAYzuL,UAAWxM,OAAO,OAAc,KAC7D,CACIi7L,WAAY,GAAG,KAAYpuL,UAC3B7M,OAAO,OAA6B,GAAI,KAAY6M,SAG5Di1O,QAAS,CACL,CAAE7mD,WAAY,GAAG,KAAYzuL,UAAWxM,OAAO,OAAc,KAC7D,CACIi7L,WAAY,GAAG,KAAYpuL,UAC3B7M,OAAO,OAA6B,GAAI,KAAY6M,SAG5Dk1O,QAAS,CACL,CAAE9mD,WAAY,GAAG,KAAYzuL,UAAWxM,OAAO,OAAc,KAC7D,CACIi7L,WAAY,GAAG,KAAYpuL,UAC3B7M,OAAO,OAA6B,GAAI,KAAY6M,SAG5DwiN,QAAS,CACL,CAAEp0B,WAAY,GAAG,KAAYzuL,UAAWxM,OAAO,OAAc,KAC7D,CACIi7L,WAAY,GAAG,KAAYpuL,UAC3B7M,OAAO,OAA6B,GAAI,KAAY6M,SAG5Dm1O,QAAS,CACL,CAAE/mD,WAAY,GAAG,KAAYzuL,UAAWxM,OAAO,OAAc,KAC7D,CACIi7L,WAAY,GAAG,KAAYpuL,UAC3B7M,OAAO,OAA6B,GAAI,KAAY6M,SAG5Do1O,QAAS,CACL,CAAEhnD,WAAY,GAAG,KAAYzuL,UAAWxM,OAAO,OAAc,KAC7D,CACIi7L,WAAY,GAAG,KAAYpuL,UAC3B7M,OAAO,OAA6B,GAAI,KAAY6M,SAG5Dq1O,QAAS,CACL,CAAEjnD,WAAY,GAAG,KAAYzuL,UAAWxM,OAAO,OAAc,KAC7D,CACIi7L,WAAY,GAAG,KAAYpuL,UAC3B7M,OAAO,OAA6B,GAAI,KAAY6M,SAG5D29L,QAAS,CACL,CAAEvP,WAAY,GAAG,KAAYzuL,UAAWxM,OAAO,OAAc,KAC7D,CACIi7L,WAAY,GAAG,KAAYpuL,UAC3B7M,OAAO,OAA6B,GAAI,KAAY6M,SAG5Ds1O,QAAS,CACL,CAAElnD,WAAY,GAAG,KAAYzuL,UAAWxM,OAAO,OAAc,KAC7D,CACIi7L,WAAY,GAAG,KAAYpuL,UAC3B7M,OAAO,OAA6B,GAAI,KAAY6M,SAG5Du1O,QAAS,CACL,CAAEnnD,WAAY,GAAG,KAAYzuL,UAAWxM,OAAO,OAAc,KAC7D,CACIi7L,WAAY,GAAG,KAAYpuL,UAC3B7M,OAAO,OAA6B,GAAI,KAAY6M,SAG5Dw1O,QAAS,CACL,CAAEpnD,WAAY,GAAG,KAAYzuL,UAAWxM,OAAO,OAAc,KAC7D,CACIi7L,WAAY,GAAG,KAAYpuL,UAC3B7M,OAAO,OAA6B,GAAI,KAAY6M,SAG5Dy1O,QAAS,CACL,CAAErnD,WAAY,GAAG,KAAYzuL,UAAWxM,OAAO,OAAc,KAC7D,CACIi7L,WAAY,GAAG,KAAYpuL,UAC3B7M,OAAO,OAA6B,GAAI,KAAY6M,SAG5DwlJ,YAAa,CACT,CAAE4oC,WAAY,GAAG,KAAYzuL,UAAWxM,MAAO,OAC/C,CAAEi7L,WAAY,GAAG,KAAY74L,SAAUpC,MAAO,OAC9C,CAAEi7L,WAAY,GAAG,KAAYnxL,UAAW9J,MAAO,QAEnD89L,YAAa,CACT,CAAE7C,WAAY,GAAG,KAAYzuL,UAAWxM,MAAO,QAC/C,CAAEi7L,WAAY,GAAG,KAAY74L,SAAUpC,MAAO,QAC9C,CAAEi7L,WAAY,GAAG,KAAYnxL,UAAW9J,MAAO,QAC/C,CAAEi7L,WAAY,GAAG,KAAYpuL,UAAW7M,MAAO,SAEnDya,YAAa,CACT,CAAEwgL,WAAY,GAAG,KAAYzuL,UAAWxM,MAAO,QAC/C,CAAEi7L,WAAY,GAAG,KAAY74L,SAAUpC,MAAO,QAC9C,CAAEi7L,WAAY,GAAG,KAAYnxL,UAAW9J,MAAO,SAEnDsB,YAAa,CACT,CAAE25L,WAAY,GAAG,KAAYzuL,UAAWxM,MAAO,QAC/C,CAAEi7L,WAAY,GAAG,KAAY74L,SAAUpC,MAAO,QAC9C,CAAEi7L,WAAY,GAAG,KAAYnxL,UAAW9J,MAAO,SAEnDuiP,YAAa,CACT,CAAEtnD,WAAY,GAAG,KAAYzuL,UAAWxM,MAAO,QAC/C,CAAEi7L,WAAY,GAAG,KAAY74L,SAAUpC,MAAO,QAC9C,CAAEi7L,WAAY,GAAG,KAAYnxL,UAAW9J,MAAO,SAEnDo9F,YAAa,CACT,CAAE69F,WAAY,GAAG,KAAYzuL,UAAWxM,MAAO,QAC/C,CAAEi7L,WAAY,GAAG,KAAY74L,SAAUpC,MAAO,QAC9C,CAAEi7L,WAAY,GAAG,KAAYnxL,UAAW9J,MAAO,SAEnDwiP,YAAa,CACT,CAAEvnD,WAAY,GAAG,KAAYzuL,UAAWxM,MAAO,QAC/C,CAAEi7L,WAAY,GAAG,KAAY74L,SAAUpC,MAAO,QAC9C,CAAEi7L,WAAY,GAAG,KAAYnxL,UAAW9J,MAAO,SAEnDgjI,YAAa,CACT,CAAEi4D,WAAY,GAAG,KAAYzuL,UAAWxM,MAAO,QAC/C,CAAEi7L,WAAY,GAAG,KAAY74L,SAAUpC,MAAO,QAC9C,CAAEi7L,WAAY,GAAG,KAAYnxL,UAAW9J,MAAO,SAEnDuiM,YAAa,CACT,CAAEtH,WAAY,GAAG,KAAYzuL,UAAWxM,MAAO,QAC/C,CAAEi7L,WAAY,GAAG,KAAY74L,SAAUpC,MAAO,QAC9C,CAAEi7L,WAAY,GAAG,KAAYnxL,UAAW9J,MAAO,SAEnD85C,YAAa,CACT,CAAEmhJ,WAAY,GAAG,KAAYzuL,UAAWxM,MAAO,QAC/C,CAAEi7L,WAAY,GAAG,KAAY74L,SAAUpC,MAAO,QAC9C,CAAEi7L,WAAY,GAAG,KAAYnxL,UAAW9J,MAAO,SAEnDyiP,YAAa,CACT,CAAExnD,WAAY,GAAG,KAAYzuL,UAAWxM,MAAO,QAC/C,CAAEi7L,WAAY,GAAG,KAAY74L,SAAUpC,MAAO,QAC9C,CAAEi7L,WAAY,GAAG,KAAYnxL,UAAW9J,MAAO,UAEnD0oM,YAAa,CACT,CAAEzN,WAAY,GAAG,KAAYzuL,UAAWxM,MAAO,QAC/C,CAAEi7L,WAAY,GAAG,KAAY74L,SAAUpC,MAAO,QAC9C,CAAEi7L,WAAY,GAAG,KAAYnxL,UAAW9J,MAAO,UAEnDs1K,YAAa,CACT,CAAE2lB,WAAY,GAAG,KAAYzuL,UAAWxM,MAAO,SAC/C,CAAEi7L,WAAY,GAAG,KAAY74L,SAAUpC,MAAO,SAC9C,CAAEi7L,WAAY,GAAG,KAAYnxL,UAAW9J,MAAO,UAEnD0iP,YAAa,CACT,CAAEznD,WAAY,GAAG,KAAYzuL,UAAWxM,MAAO,SAC/C,CAAEi7L,WAAY,GAAG,KAAY74L,SAAUpC,MAAO,SAC9C,CAAEi7L,WAAY,GAAG,KAAYnxL,UAAW9J,MAAO,UAEnD2iP,QAAS,MACTC,QAAS,OAEAC,EAAe,CACxBz+K,UAAW,CACP8zC,SAAU,CACN4qI,YAAa,QACbpsD,YAAa,QACbqsD,YAAa,QACbC,YAAa,QACbC,aAAc,UAElBxkD,eAAgB,CACZykD,UAAW,OACXC,UAAW,SACXC,UAAW,sCACXC,UAAW,YAGnBl8O,MAAO,CACH,YAAa,UACb,YAAa,UACb,WAAY,UACZ,WAAY,UACZ,WAAY,UACZ,WAAY,UACZ,WAAY,UACZ,WAAY,UACZ,WAAY,UACZ,WAAY,UACZ,WAAY,UACZ,WAAY,UACZ,WAAY,UACZ,WAAY,UACZ,WAAY,UACZ,WAAY,UACZ,UAAW,UACX,UAAW,UACX,aAAc,UACd,YAAa,UACb,YAAa,UACb,aAAc,UACdm8O,YAAa,cACb,2BAA4B,sBAC5B,2BAA4B,qBAC5B,2BAA4B,qBAC5B,2BAA4B,qBAC5B,2BAA4B,qBAC5B,0BAA2B,2BAC3B,0BAA2B,2BAC3B,2BAA4B,2BAC5B,2BAA4B,2BAC5B,2BAA4B,6BAEhC/kD,QAAS,CACLsnC,SAAU,mFACV0d,SAAU,wDACV/kD,SAAU,wDACVmxB,SAAU,sEAEdr5B,gBAAiB,CACbnhI,QAASirL,EAAiB,IAAqBb,SAAUW,EAAWI,MACpE/xO,QAAS6xO,EAAiB,IAAqBZ,SAAUU,EAAWI,MACpErkP,QAASmkP,EAAiB,IAAqBX,SAAUS,EAAWI,MACpEtnE,QAASonE,EAAiB,IAAqBV,SAAUQ,EAAWI,MACpEznE,QAASunE,EAAiB,IAAqBT,SAAUO,EAAWI,MACpEp9F,YAAak9F,EAAiB,IAAqBX,SAAUS,EAAWQ,UACxEzlG,YAAamlG,EAAiB,IAAqBV,SAAUQ,EAAWQ,UACxE3/O,YAAaq/O,EAAiB,IAAqBT,SAAUO,EAAWQ,UACxEvzO,YAAaizO,EAAiB,IAAqBR,SAAUM,EAAWQ,UACxE3nE,YAAaqnE,EAAiB,IAAqBP,SAAUK,EAAWQ,UACxE7gE,YAAaugE,EAAiB,IAAqBN,SAAUI,EAAWQ,UACxEpC,YAAa8B,EAAiB,IAAqBL,SAAUG,EAAWQ,UACxErC,YAAa+B,EAAiB,IAAqBJ,SAAUE,EAAWQ,UACxEtC,YAAagC,EAAiB,IAAqBH,SAAUC,EAAWQ,UACxEhN,SAAU0M,EAAiB,IAAqBb,SAAUW,EAAWsD,OACrEroK,SAAUilK,EAAiB,IAAqBZ,SAAUU,EAAWsD,OACrEC,SAAUrD,EAAiB,IAAqBX,SAAUS,EAAWsD,OACrEE,SAAUtD,EAAiB,IAAqBV,SAAUQ,EAAWsD,OACrEG,SAAUvD,EAAiB,IAAqBT,SAAUO,EAAWsD,QAEzEI,KAAM,CACFl8K,OAAQ,CACJm3K,QAAS,SACT5pD,MAAO,MACPp5L,KAAM,SAGd9B,KAAMujM,E,kFClcH,SAASumD,EAAiBC,EAAQj0I,GACrC,OAAOroG,OAAO6lB,KAAKy2N,GAAQj/L,QAAO,CAAC5+B,EAAQ9c,KACvC,MAAM46O,EAAUl0I,EAAO,GAAGA,KAAQ1mG,IAAQA,EACpC66O,EAAeF,EAAO36O,GAC5B,GAAIoiB,MAAMwT,QAAQilN,GAKd,OAJAA,EAAapqL,SAASqqL,IAClBh+N,EAAOg+N,EAAQhpD,YAAch1K,EAAOg+N,EAAQhpD,aAAe,CAAC,EAC5Dh1K,EAAOg+N,EAAQhpD,YAAczzL,OAAOC,OAAOD,OAAOC,OAAO,CAAC,EAAGwe,EAAOg+N,EAAQhpD,aAAc,CAAE,CAAC8oD,GAAUE,EAAQjkP,OAAQ,IAEpHimB,EAEX,GAduBkrL,EAcG6yC,GAbtBz4N,MAAMwT,QAAQoyK,IAA+B,iBAAZA,EAaI,CACrC,MAAM+yC,EAAiBL,EAAiBG,EAAcD,GAItD,OAHAv8O,OAAO6lB,KAAK62N,GAAgBtqL,SAASqhI,IACjCh1K,EAAOg1K,GAAczzL,OAAOC,OAAOD,OAAOC,OAAO,CAAC,EAAIwe,EAAOg1K,IAAe,CAAC,GAAKipD,EAAejpD,GAAY,IAE1Gh1K,CACX,CApBR,IAA+BkrL,EAqBvB,OAAOlrL,CAAM,GACd,CAAC,EACR,C,wBCnBO,SAASk+N,EAAkBC,GAC9B,MAGMC,EAAgBR,GAHPO,EACTA,EAAgBN,YAChBvzP,IAC2C,KACjD,OAAOiX,OAAO6lB,KAAKg3N,GACd7iO,KAAK,MACLqjC,QAAO,CAAC5+B,EAAQg1K,KACjB,MAAM5yH,EAAS7gE,OAAO6lB,KAAKg3N,EAAcppD,IAAap2I,QAAO,CAACy/L,EAASz0I,IAAS,aAClFy0I,eACA,OAAiBz0I,OAAUw0I,EAAcppD,GAAYprF,eACrD,IACE,MAAsB,MAAforF,EACD,GAAG5yH,gBACVpiD,IACO,GAAGA,mCACSg1K,qBAClB5yH,gBACD,GACA,GACP,C,sTCnBO,MAAM7qE,EAAS,IACTw4D,EAAM,MACNuuL,EAAW,KAAM,IAAAC,YAAW,EAAAC,a,6HCPlC,MAAMC,EAAe,GCAtB14N,EAAY86B,GAAmB,iBAANA,IAAmBv7B,MAAMwT,QAAQ+nB,GACzD,SAAS75D,EAAIsqE,EAAKs4C,GACrB,MAAMkU,EAAQlU,EAAKl9G,MAAM,KACnBwW,EAAM46G,EAAMu2D,QAClB,GAAInxK,QAAoB5Y,IAAbgnE,EAAIpuD,GAAoB,CAC/B,MAAM8c,EAASsxC,EAAIpuD,GACnB,OAAI6iB,EAAS/F,GACFh5B,EAAIg5B,EAAQ89F,EAAMz2F,KAAK,MAE3BrH,CACX,CAEJ,C,wBCRO,SAAS0+N,EAAoBC,EAAe,GAAIC,GACnD,IAAKD,EAED,YADA,OAAc,0CAA0CA,KAG5D,MAAME,EAAmB73P,EAAI43P,GAAkB,IAAcD,GAC7D,OAAIr5N,MAAMwT,QAAQ+lN,GACP,QAAO,OAAiBF,MAE5BE,CACX,C,ICdIt4P,EAAI0kD,EAAIiB,EAAIw/B,E,UAehB,SAASozK,EAAuBv0P,GAC5B,MAAO,CACHs+N,WAAY,mBAAmBt+N,eAC/BiY,SAAU,mBAAmBjY,aAC7B69O,gBAAiB,mBAAmB79O,oBACpC6lM,WAAY,mBAAmB7lM,eAC/Bu+N,cAAe,mBAAmBv+N,kBAClCkjO,OAAQ,CACJjrN,SAAU,mBAAmBjY,oBAC7B6lM,WAAY,mBAAmB7lM,sBAC/Bu+N,cAAe,mBAAmBv+N,yBAClC69O,gBAAiB,mBAAmB79O,4BAGhD,CACA,MAuSMw0P,EAAW,CACbxkJ,OAAQ,CACJ7mD,gBAAiB,iBACjBsrM,yBAA0B,iBAC1BC,UAAW,kCAEf9vD,oBAAqB,CACjBC,cAAe,CACX7oL,QAAS,gCACTkkC,OAAQ,mCAGhB04C,YAAa,CACT4yG,UAAW,CACPxvL,QAAS,kBACT88E,MAAO,iBACP54C,OAAQ,iBACRt6B,SAAU,iBACV0G,QAAS,mBAEbq8N,UAAW,CACP3sO,QAAS,kBACT88E,MAAO,kBACP54C,OAAQ,kBACRt6B,SAAU,iBACV0G,QAAS,kBAEbw/K,UAAW,CACP9vL,QAAS,iBACT88E,MAAO,iBACP54C,OAAQ,iBACRt6B,SAAU,iBACV0G,QAAS,kBAEb+tL,UAAW,CACPr+L,QAAS,iBACT88E,MAAO,iBACP54C,OAAQ,iBACRt6B,SAAU,iBACV0G,QAAS,kBAEbu0I,UAAW,CACP7kJ,QAAS,kBACT88E,MAAO,iBACP54C,OAAQ,iBACRt6B,SAAU,iBACV0G,QAAS,mBAEbm/K,UAAW,CACPzvL,QAAS,kBACT88E,MAAO,kBACP54C,OAAQ,kBACRt6B,SAAU,iBACV0G,QAAS,mBAEb28K,UAAW,CACPjtL,QAAS,iBACT88E,MAAO,iBACP54C,OAAQ,iBACRt6B,SAAU,iBACV0G,QAAS,mBAGjB3pB,KAAM,CACFgU,MAAO,CAAEC,QAAS,kBAAmBqhI,UAAW,kBAChD4qC,WAAY,CACRjsK,QAAS,oBAGjBwhM,WAAY,CACRjvJ,gBAAiB,kBAErBg6K,eAAgB,CACZh6K,gBAAiB,CACbntC,QAAS,iBACTkkC,OAAQ,mBAEZm+K,UAAW,CACPriN,QAAS,kBACTkkC,OAAQ,kBAEZkjL,aAAc,mBAElBwa,QAAS,CACLz0L,gBAAiB,iBACjBk1K,UAAW,oBAqDN,EAAW,CACpBs2B,KAlbS,CACT/gL,UAAW,CACPq6H,eAAgB,CACZtkH,GAAI,qCACJmxB,IAAK,qCACL85I,OAAQ,qCACRtjD,SAAU,qCACV8G,WAAY,sCAEhB1wF,SAAU,CACN2qF,YAAa,iCACb17L,MAAO,iCACPmM,MAAO,iCACP+xO,gBAAiB,kCACjBxjD,IAAK,iCACLy4C,aAAc,iCACd7M,gBAAiB,mCAGzBjtI,OAAQ,CACJ7mD,gBAAiB,kBACjBsrM,yBAA0B,iBAC1BC,UAAW,iCACXhsD,gBAAiB,iBACjBggD,gBAAiB,iCACjB9/C,oBAAqB,iBACrBo3B,gBAAiB,kBAErB5nB,WAAY,CACRjvJ,gBAAiB,kBACjBkvJ,uBAAwB,kCAE5Bs0C,iBAAkB,oBAClB/nD,oBAAqB,CACjBC,cAAe,CACX7oL,QAAS,iCACTkkC,OAAQ,kCAEZ4kJ,gBAAiB,CACb9oL,QAAS,gCACTkkC,OAAQ,mCAGhBo0J,eAAgB,iBAChBwgD,WAAY,iBACZjxD,MAAO,CACHhhB,WAAY,iBACZihB,WAAY,mBAEhB2F,eAAgB,iBAChB6xC,mBAAoB,CAChByZ,UAAW,iBACXC,WAAY,kBAEhBC,WAAY,CACR3gH,QAAS,kBACTr3I,MAAO,iBAEXu6J,MAAO,CACHqrB,WAAY,mBAEhBgxD,KAAM,CACFqhB,YAAa,iCACbphB,YAAa,iCACbqhB,gBAAiB,kCAErBv8J,YAAa,CACT4yG,UAAW,CACPxvL,QAAS,kBACT88E,MAAO,iBACP54C,OAAQ,iBACRt6B,SAAU,iBACV0G,QAAS,mBAEbq8N,UAAW,CACP3sO,QAAS,iBACT88E,MAAO,iBACP54C,OAAQ,iBACRt6B,SAAU,iBACV0G,QAAS,kBAEbw/K,UAAW,CACP9vL,QAAS,iBACT88E,MAAO,iBACP54C,OAAQ,iBACRt6B,SAAU,iBACV0G,QAAS,kBAEbusE,UAAW,CACP78E,QAAS,iBACT88E,MAAO,iBACP54C,OAAQ,iBACRt6B,SAAU,iBACV0G,QAAS,kBAEbulL,UAAW,CACP71L,QAAS,iBACT88E,MAAO,iBACP54C,OAAQ,iBACRt6B,SAAU,iBACV0G,QAAS,kBAEbu8K,UAAW,CACP7sL,QAAS,kBACT88E,MAAO,kBACP54C,OAAQ,kBACRt6B,SAAU,kBACV0G,QAAS,mBAEb85K,UAAW,CACPpqL,QAAS,gBACT88E,MAAO,gBACP54C,OAAQ,gBACRt6B,SAAU,gBACV0G,QAAS,iBAEbw8K,UAAW,CACP9sL,QAAS,mBACT88E,MAAO,mBACP54C,OAAQ,mBACRt6B,SAAU,iBACV0G,QAAS,oBAEbq8K,UAAW,CACP3sL,QAAS,mBACT88E,MAAO,mBACP54C,OAAQ,mBACRt6B,SAAU,iBACV0G,QAAS,oBAEb+tL,UAAW,CACPr+L,QAAS,iBACT88E,MAAO,iBACP54C,OAAQ,iBACRt6B,SAAU,iBACV0G,QAAS,kBAEbu0I,UAAW,CACP7kJ,QAAS,iBACT88E,MAAO,iBACP54C,OAAQ,iBACRt6B,SAAU,iBACV0G,QAAS,kBAEbm/K,UAAW,CACPzvL,QAAS,iBACT88E,MAAO,iBACP54C,OAAQ,iBACRt6B,SAAU,iBACV0G,QAAS,kBAEb+nL,UAAW,CACPr4L,QAAS,iBACT88E,MAAO,iBACP54C,OAAQ,iBACR5zB,QAAS,kBAEb+4K,UAAW,CACPrpL,QAAS,iBACT88E,MAAO,iBACP54C,OAAQ,iBACR5zB,QAAS,kBAEby8K,UAAW,CACP/sL,QAAS,iBACT88E,MAAO,iBACP54C,OAAQ,iBACRt6B,SAAU,iBACV0G,QAAS,kBAEb28K,UAAW,CACPjtL,QAAS,kBACT88E,MAAO,kBACP54C,OAAQ,kBACRt6B,SAAU,kBACV0G,QAAS,mBAEb8oO,UAAW,CACPp5O,QAAS,kBACT88E,MAAO,kBACP54C,OAAQ,kBACRt6B,SAAU,iBACV0G,QAAS,kBAEb+oO,UAAW,CACPr5O,QAAS,kBACT88E,MAAO,kBACP54C,OAAQ,kBACRt6B,SAAU,kBACV0G,QAAS,mBAEb48K,UAAW,CACPltL,QAAS,iBACT88E,MAAO,iBACP54C,OAAQ,iBACRt6B,SAAU,iBACV0G,QAAS,kBAEb6oL,UAAW,CACPn5L,QAAS,kBACT88E,MAAO,kBACP54C,OAAQ,kBACRt6B,SAAU,kBACV0G,QAAS,oBAGjB/iB,KA1OqByN,OAAO6lB,KAAK,KAAqBw3B,QAAO,CAACC,EAAK37C,KACnE27C,EAAI37C,GAAO,QAAQA,IACZ27C,IACR,CACCy3D,KAAM,CACF/vG,QAAS,eACTkkC,OAAQ,gBAEZosD,OAAQ,CACJm4F,MAAO,eACPC,MAAO,kBAiOXqJ,QAAS,CACLsnC,SAAU,mBACV0d,SAAU,mBACV/kD,SAAU,mBACVmxB,SAAU,oBAEdr5B,gBAAiB,CACbnhI,QAAS4vL,EAAuB,WAChCx2O,QAASw2O,EAAuB,WAChC9oP,QAAS8oP,EAAuB,WAChC/rE,QAAS+rE,EAAuB,WAChClsE,QAASksE,EAAuB,WAChC7hG,YAAa6hG,EAAuB,eACpC9pG,YAAa8pG,EAAuB,eACpChkP,YAAagkP,EAAuB,eACpC53O,YAAa43O,EAAuB,eACpChsE,YAAagsE,EAAuB,eACpCllE,YAAaklE,EAAuB,eACpCzG,YAAayG,EAAuB,eACpC1G,YAAa0G,EAAuB,eACpC3G,YAAa2G,EAAuB,eACpCrR,SAAUqR,EAAuB,YACjC5pK,SAAU4pK,EAAuB,YACjCtB,SAAUsB,EAAuB,YACjCrB,SAAUqB,EAAuB,YACjCpB,SAAUoB,EAAuB,YACjC95M,SAAU85M,EAAuB,WACjCp/O,SAAUo/O,EAAuB,WACjCr/O,SAAUq/O,EAAuB,WACjC76G,SAAU66G,EAAuB,WACjCe,SAAUf,EAAuB,WACjC33O,aAAc23O,EAAuB,eACrCnzO,aAAcmzO,EAAuB,eACrC/oP,aAAc+oP,EAAuB,eACrCl7O,aAAck7O,EAAuB,eACrCv8F,aAAcu8F,EAAuB,eACrC92F,aAAc82F,EAAuB,eACrCtG,aAAcsG,EAAuB,eACrCvG,aAAcuG,EAAuB,eACrCxG,aAAcwG,EAAuB,eACrCtxB,UAAWsxB,EAAuB,YAClC9pM,UAAW8pM,EAAuB,YAClCrqE,UAAWqqE,EAAuB,YAClCgB,UAAWhB,EAAuB,YAClCiB,UAAWjB,EAAuB,aAEtC5xP,KAAM,CACFgU,MAAO,CACHC,QAAS,kBACT6+O,aAAc,iBACdx9G,UAAW,kBAEf/gE,OAAQ,CACJm3K,QAAS,sBACT5pD,MAAO,oBACPp5L,KAAM,oBAEVw3K,WAAY,CACRjsK,QAAS,oBAGjB01F,OAAQ,CACJ31F,MAAO,CACHC,QAAS,iBACTqhI,UAAW,mBAGnBkrF,eAAgB,CACZh6K,gBAAiB,CACbntC,QAAS,iBACTkkC,OAAQ,kBAEZm+K,UAAW,CACPriN,QAAS,kBACTkkC,OAAQ,mBAEZkjL,aAAc,qBAElB5xB,eAAgB,CACZvH,WAAY,CACR9gJ,gBAAiB,oBAGzBy0L,QAAS,CACLz0L,gBAAiB,kBACjBk1K,UAAW,oBA+Ifm2B,WACA37N,MArDU,CACV+/D,YAAa,CACT4yG,UAAW,CACPxvL,QAAS,kBACT88E,MAAO,iBACP54C,OAAQ,iBACRt6B,SAAU,iBACV0G,QAAS,mBAEbq8N,UAAW,CACP3sO,QAAS,kBACT88E,MAAO,kBACP54C,OAAQ,kBACRt6B,SAAU,iBACV0G,QAAS,mBAEbw/K,UAA+F,QAAnF9vM,EAAKw4P,aAA2C,EAASA,EAAS57J,mBAAgC,IAAP58F,OAAgB,EAASA,EAAG8vM,UACnIuO,UAAW,CACPr+L,QAAS,kBACT88E,MAAO,iBACP54C,OAAQ,iBACRt6B,SAAU,iBACV0G,QAAS,mBAEbu0I,UAA+F,QAAnFngH,EAAK8zM,aAA2C,EAASA,EAAS57J,mBAAgC,IAAPl4C,OAAgB,EAASA,EAAGmgH,UACnI4qC,UAA+F,QAAnF9pJ,EAAK6yM,aAA2C,EAASA,EAAS57J,mBAAgC,IAAPj3C,OAAgB,EAASA,EAAG8pJ,UACnIxC,UAA+F,QAAnF9nH,EAAKqzK,aAA2C,EAASA,EAAS57J,mBAAgC,IAAPzX,OAAgB,EAASA,EAAG8nH,WAEvItmM,KAAM,CACFgU,MAAO,CAAEC,QAAS,kBAAmBqhI,UAAW,mBAChD4qC,WAAY,CACRjsK,QAAS,oBAGjBwhM,WAAY,CACRjvJ,gBAAiB,qBAErB2rM,WAAY,kBACZ3xB,eAAgB,CACZh6K,gBAAiB,CACbntC,QAAS,iCACTkkC,OAAQ,kBAEZm+K,UAAW,CACPriN,QAAS,kBACTkkC,OAAQ,mBAEZkjL,aAAc,uBC9btB,SAASsyB,EAASC,EAAcC,EAAmB,MAAe,GAAEv2I,GAChE,OAAO,IAAIw2I,MAAMF,EAAc,CAC3Bl5P,IAAK,CAACoT,EAAQ8I,KACV,GAAmB,iBAARA,EACP,OAEJ,GAAI3B,OAAOozB,eAAenpC,KAAK4O,EAAQ8I,GAEnC,OAfhB,SAA0B0mG,GACtB60I,EAAa9qL,SAAS0sL,IACdz2I,EAAKnwG,MAAM4mP,EAAYC,aACvB,OAAcD,EAAYh1P,QAC9B,GAER,CAQgBk1P,CAAiB32I,EAAO,GAAGA,KAAQ1mG,IAAQ,GAAGA,KACvC9I,EAAO8I,GAElB,MAAMs9O,EAAgBL,IACtB,OAAOK,GAAiBA,EAAct9O,EAAI,GAGtD,CACA,SAASu9O,EAAsBP,EAAcC,EAAmB,MAAe,GAAEv2I,GAC7E,MAAM5pF,EAAS,CAAC,EAYhB,OAXAze,OAAO86F,QAAQ6jJ,GAAcvsL,SAAQ,EAAEzwD,EAAKnJ,MAEpCimB,EAAO9c,GADU,iBAAVnJ,GAAsBA,EACf0mP,EAAsB1mP,GAAO,KACvC,MAAMymP,EAAgBL,IACtB,OAAOK,GAAiBA,EAAct9O,EAAI,GAC3C0mG,EAAO,GAAGA,KAAQ1mG,IAAQA,GAGfnJ,CAClB,IAEGkmP,EAASjgO,EAAQmgO,EAAkBv2I,EAC9C,CACA,SAAS82I,EAAyBC,EAAc/B,GAC5C,MAAMgC,EAAgB,CAAC,EAYvB,OAXAr/O,OAAO86F,QAAQskJ,GAAchtL,SAAQ,EAAEzwD,EAAKnJ,MACpCA,UAQJ6mP,EAAc19O,GALO,iBAAVnJ,EAKU2kP,EAAoB3kP,EAAO6kP,GAHxC8B,EAAyB3mP,EAAO6kP,IAAmB,CAAC,EAGG,IAE5DgC,CACX,CAWO,SAASC,EAASC,EAAcC,EAAU1nM,EAAUs4I,EAAWwsD,GAClE,MACM6C,EADkB7C,GAAmBA,EAAgB6C,UACvB,EAC9BC,EAAcH,GAAgBv/O,OAAO6lB,KAAK05N,GAAcnwP,OAAS,EACjEmwP,EACAL,EAAsBC,EAAyBM,EAAS9B,KAAMf,GAAmBA,EAAgBN,SAEvG,MACMqD,EAlBV,SAAwCjyO,EAAOoqC,EAAUs4I,GACrD,IAAI3xK,EAAS/Q,EAOb,OANIoqC,IACAr5B,EAASze,OAAOC,OAAOD,OAAOC,OAAO,CAAC,EAAGwe,GAAS,CAAEq5B,cAEpDs4I,IACA3xK,EAASze,OAAOC,OAAOD,OAAOC,OAAO,CAAC,EAAGwe,GAAS,CAAE2xK,eAEjD3xK,CACX,CAS0CmhO,CADAT,GADvBK,GAtEQ,iBAsEgBA,EAAYC,EAASD,GAAYA,IAAa,CAAC,EAChB5C,GAAmBA,EAAgBN,QACLxkM,EAAUs4I,GAC9G,OAAO8uD,EAAsBS,GAA+B,IAAMD,GACtE,CC5EO,MAAMG,EAAuB,gBAAoB,CAAC,GAClD,SAASxmO,EAAc9iB,GAC1B,MAAM,SAAEyd,EAAQ,UAAEo8K,EAAS,SAAEt4I,EAAUpqC,MAAO8xO,EAAQ,oBAAEM,GAAyBvpP,EAC3EwpP,EAAgB,WAAe1uD,QAAQr9K,GAAUuC,OAAO,kBAC9D,OAA6B,IAAzBwpO,EAAc3wP,OACP,KAEH,gBAAoBywP,EAAqBrwC,SAAU,MAAOh6K,GAAa,gBAAoBqqN,EAAqB73M,SAAU,CAAExvC,MAAOwH,OAAOC,OAAOD,OAAOC,OAAO,CAAC,EAAGu1B,GAAUsqN,IACjL,gBAAoB,gBAA+B,CAAEpyO,MAAQ6xO,GAAiBD,EAASC,EAAcC,EAAU1nM,EAAUs4I,IACrH,gBAAoB,WAAgB,KAAM2vD,MACtD,C,kFCZWvlP,EAAQ,aAAiBwF,OAAOC,QAAO,SAAU1J,EAAOu6I,GAC/D,IAAIp+I,EAAU6D,EAAM7D,SAAW,UAC/B,MAAgB,YAAZA,EACO,gBAAoB,MAAO,CAAEuG,UAAW1C,EAAM0C,UAAW,cAAe1C,EAAMw6I,WAAYC,KAAMz6I,EAAMw6I,gBAAahoJ,EAAY,MAAOmyF,SAAU3kF,EAAM2kF,SAAU,aAAc3kF,EAAMsO,UAAWtF,IAAKuxI,EAAYtnE,MAAO,6BAA8BhkE,MAAO,KAAMyB,OAAQ,KAAMsiE,QAAS,YAAa/5B,KAAM,gBAC/Sj5C,EAAM4D,OAAS,gBAAoB,QAAS,KAAM5D,EAAM4D,OACxD,gBAAoB,OAAQ,CAAEi7D,EAAG,mGACjC,gBAAoB,UAAW,CAAEqU,GAAI,SAAUC,GAAI,SAAUs2K,GAAI,MAAOC,GAAI,SAC5E,gBAAoB,OAAQ,CAAE7qL,EAAG,4UAEzB,UAAZ1iE,EACO,gBAAoB,MAAO,CAAEuG,UAAW1C,EAAM0C,UAAW,cAAe1C,EAAMw6I,WAAYC,KAAMz6I,EAAMw6I,gBAAahoJ,EAAY,MAAOmyF,SAAU3kF,EAAM2kF,SAAU,aAAc3kF,EAAMsO,UAAWtF,IAAKuxI,EAAYtnE,MAAO,6BAA8BhkE,MAAO,KAAMyB,OAAQ,KAAMsiE,QAAS,YAAa/5B,KAAM,gBAC/Sj5C,EAAM4D,OAAS,gBAAoB,QAAS,KAAM5D,EAAM4D,OACxD,gBAAoB,OAAQ,CAAEi7D,EAAG,uEACjC,gBAAoB,UAAW,CAAEqU,GAAI,KAAMC,GAAI,SAAUs2K,GAAI,QAASC,GAAI,SAC1E,gBAAoB,OAAQ,CAAE7qL,EAAG,4VAEzB,UAAZ1iE,EACO,gBAAoB,MAAO,CAAEuG,UAAW1C,EAAM0C,UAAW,cAAe1C,EAAMw6I,WAAYC,KAAMz6I,EAAMw6I,gBAAahoJ,EAAY,MAAOmyF,SAAU3kF,EAAM2kF,SAAU,aAAc3kF,EAAMsO,UAAWtF,IAAKuxI,EAAYtnE,MAAO,6BAA8BhkE,MAAO,KAAMyB,OAAQ,KAAMsiE,QAAS,YAAa/5B,KAAM,gBAC/Sj5C,EAAM4D,OAAS,gBAAoB,QAAS,KAAM5D,EAAM4D,OACxD,gBAAoB,OAAQ,CAAEi7D,EAAG,qGACjC,gBAAoB,UAAW,CAAEqU,GAAI,QAASC,GAAI,SAAUs2K,GAAI,MAAOC,GAAI,UAE5E,IACX,GAAG,CAAEhvG,YAAa,U,kFCvBP+9C,EAAoB,aAAiBhvL,OAAOC,QAAO,SAAU1J,EAAOu6I,GAC3E,IAAIp+I,EAAU6D,EAAM7D,SAAW,UAC/B,MAAgB,YAAZA,EACO,gBAAoB,MAAO,CAAEuG,UAAW1C,EAAM0C,UAAW,cAAe1C,EAAMw6I,WAAYC,KAAMz6I,EAAMw6I,gBAAahoJ,EAAY,MAAOmyF,SAAU3kF,EAAM2kF,SAAU,aAAc3kF,EAAMsO,UAAWtF,IAAKuxI,EAAYtnE,MAAO,6BAA8BhkE,MAAO,KAAMyB,OAAQ,KAAMsiE,QAAS,YAAa/5B,KAAM,gBAC/Sj5C,EAAM4D,OAAS,gBAAoB,QAAS,KAAM5D,EAAM4D,OACxD,gBAAoB,OAAQ,CAAEi7D,EAAG,sIAEzB,UAAZ1iE,EACO,gBAAoB,MAAO,CAAEuG,UAAW1C,EAAM0C,UAAW,cAAe1C,EAAMw6I,WAAYC,KAAMz6I,EAAMw6I,gBAAahoJ,EAAY,MAAOmyF,SAAU3kF,EAAM2kF,SAAU,aAAc3kF,EAAMsO,UAAWtF,IAAKuxI,EAAYtnE,MAAO,6BAA8BhkE,MAAO,KAAMyB,OAAQ,KAAMsiE,QAAS,YAAa/5B,KAAM,gBAC/Sj5C,EAAM4D,OAAS,gBAAoB,QAAS,KAAM5D,EAAM4D,OACxD,gBAAoB,OAAQ,CAAEi7D,EAAG,gIAElC,IACX,GAAG,CAAE67E,YAAa,sB,kFCbPpxD,EAAY,aAAiB7/E,OAAOC,QAAO,SAAU1J,EAAOu6I,GACnE,IAAIp+I,EAAU6D,EAAM7D,SAAW,UAC/B,MAAgB,YAAZA,EACO,gBAAoB,MAAO,CAAEuG,UAAW1C,EAAM0C,UAAW,cAAe1C,EAAMw6I,WAAYC,KAAMz6I,EAAMw6I,gBAAahoJ,EAAY,MAAOmyF,SAAU3kF,EAAM2kF,SAAU,aAAc3kF,EAAMsO,UAAWtF,IAAKuxI,EAAYtnE,MAAO,6BAA8BhkE,MAAO,KAAMyB,OAAQ,KAAMsiE,QAAS,YAAa/5B,KAAM,gBAC/Sj5C,EAAM4D,OAAS,gBAAoB,QAAS,KAAM5D,EAAM4D,OACxD,gBAAoB,OAAQ,CAAEi7D,EAAG,0IAEzB,UAAZ1iE,EACO,gBAAoB,MAAO,CAAEuG,UAAW1C,EAAM0C,UAAW,cAAe1C,EAAMw6I,WAAYC,KAAMz6I,EAAMw6I,gBAAahoJ,EAAY,MAAOmyF,SAAU3kF,EAAM2kF,SAAU,aAAc3kF,EAAMsO,UAAWtF,IAAKuxI,EAAYtnE,MAAO,6BAA8BhkE,MAAO,KAAMyB,OAAQ,KAAMsiE,QAAS,YAAa/5B,KAAM,gBAC/Sj5C,EAAM4D,OAAS,gBAAoB,QAAS,KAAM5D,EAAM4D,OACxD,gBAAoB,OAAQ,CAAEi7D,EAAG,iGAElC,IACX,GAAG,CAAE67E,YAAa,c,kFCbPC,EAAc,aAAiBlxI,OAAOC,QAAO,SAAU1J,EAAOu6I,GACrE,IAAIp+I,EAAU6D,EAAM7D,SAAW,UAC/B,MAAgB,YAAZA,EACO,gBAAoB,MAAO,CAAEuG,UAAW1C,EAAM0C,UAAW,cAAe1C,EAAMw6I,WAAYC,KAAMz6I,EAAMw6I,gBAAahoJ,EAAY,MAAOmyF,SAAU3kF,EAAM2kF,SAAU,aAAc3kF,EAAMsO,UAAWtF,IAAKuxI,EAAYtnE,MAAO,6BAA8BhkE,MAAO,KAAMyB,OAAQ,KAAMsiE,QAAS,YAAa/5B,KAAM,gBAC/Sj5C,EAAM4D,OAAS,gBAAoB,QAAS,KAAM5D,EAAM4D,OACxD,gBAAoB,OAAQ,CAAEi7D,EAAG,kLAEzB,UAAZ1iE,EACO,gBAAoB,MAAO,CAAEuG,UAAW1C,EAAM0C,UAAW,cAAe1C,EAAMw6I,WAAYC,KAAMz6I,EAAMw6I,gBAAahoJ,EAAY,MAAOmyF,SAAU3kF,EAAM2kF,SAAU,aAAc3kF,EAAMsO,UAAWtF,IAAKuxI,EAAYtnE,MAAO,6BAA8BhkE,MAAO,KAAMyB,OAAQ,KAAMsiE,QAAS,YAAa/5B,KAAM,gBAC/Sj5C,EAAM4D,OAAS,gBAAoB,QAAS,KAAM5D,EAAM4D,OACxD,gBAAoB,OAAQ,CAAEi7D,EAAG,iLAEzB,UAAZ1iE,EACO,gBAAoB,MAAO,CAAEuG,UAAW1C,EAAM0C,UAAW,cAAe1C,EAAMw6I,WAAYC,KAAMz6I,EAAMw6I,gBAAahoJ,EAAY,MAAOmyF,SAAU3kF,EAAM2kF,SAAU,aAAc3kF,EAAMsO,UAAWtF,IAAKuxI,EAAYtnE,MAAO,6BAA8BhkE,MAAO,KAAMyB,OAAQ,KAAMsiE,QAAS,YAAa/5B,KAAM,gBAC/Sj5C,EAAM4D,OAAS,gBAAoB,QAAS,KAAM5D,EAAM4D,OACxD,gBAAoB,OAAQ,CAAEi7D,EAAG,8IAElC,IACX,GAAG,CAAE67E,YAAa,gB,kFClBP/5I,EAAQ,aAAiB8I,OAAOC,QAAO,SAAU1J,EAAOu6I,GAC/D,IAAIp+I,EAAU6D,EAAM7D,SAAW,UAC/B,MAAgB,YAAZA,EACO,gBAAoB,MAAO,CAAEuG,UAAW1C,EAAM0C,UAAW,cAAe1C,EAAMw6I,WAAYC,KAAMz6I,EAAMw6I,gBAAahoJ,EAAY,MAAOmyF,SAAU3kF,EAAM2kF,SAAU,aAAc3kF,EAAMsO,UAAWtF,IAAKuxI,EAAYtnE,MAAO,6BAA8BhkE,MAAO,KAAMyB,OAAQ,KAAMsiE,QAAS,YAAa/5B,KAAM,gBAC/Sj5C,EAAM4D,OAAS,gBAAoB,QAAS,KAAM5D,EAAM4D,OACxD,gBAAoB,OAAQ,CAAEi7D,EAAG,oIAEzB,UAAZ1iE,EACO,gBAAoB,MAAO,CAAEuG,UAAW1C,EAAM0C,UAAW,cAAe1C,EAAMw6I,WAAYC,KAAMz6I,EAAMw6I,gBAAahoJ,EAAY,MAAOmyF,SAAU3kF,EAAM2kF,SAAU,aAAc3kF,EAAMsO,UAAWtF,IAAKuxI,EAAYtnE,MAAO,6BAA8BhkE,MAAO,KAAMyB,OAAQ,KAAMsiE,QAAS,YAAa/5B,KAAM,gBAC/Sj5C,EAAM4D,OAAS,gBAAoB,QAAS,KAAM5D,EAAM4D,OACxD,gBAAoB,OAAQ,CAAEi7D,EAAG,oHAElC,IACX,GAAG,CAAE67E,YAAa,U,iFCbP/5I,EAAQ,aAAiB8I,OAAOC,QAAO,SAAU1J,EAAOu6I,GAC/D,IAAIp+I,EAAU6D,EAAM7D,SAAW,UAC/B,MAAgB,YAAZA,EACO,gBAAoB,MAAO,CAAEuG,UAAW1C,EAAM0C,UAAW,cAAe1C,EAAMw6I,WAAYC,KAAMz6I,EAAMw6I,gBAAahoJ,EAAY,MAAOmyF,SAAU3kF,EAAM2kF,SAAU,aAAc3kF,EAAMsO,UAAWtF,IAAKuxI,EAAYtrI,MAAO,KAAMyB,OAAQ,KAAMsiE,QAAS,YAAaC,MAAO,6BAA8Bh6B,KAAM,gBAC/Sj5C,EAAM4D,OAAS,gBAAoB,QAAS,KAAM5D,EAAM4D,OACxD,gBAAoB,OAAQ,CAAEi7D,EAAG,oIAEzB,UAAZ1iE,EACO,gBAAoB,MAAO,CAAEuG,UAAW1C,EAAM0C,UAAW,cAAe1C,EAAMw6I,WAAYC,KAAMz6I,EAAMw6I,gBAAahoJ,EAAY,MAAOmyF,SAAU3kF,EAAM2kF,SAAU,aAAc3kF,EAAMsO,UAAWtF,IAAKuxI,EAAYtrI,MAAO,KAAMyB,OAAQ,KAAMsiE,QAAS,YAAaC,MAAO,6BAA8Bh6B,KAAM,gBAC/Sj5C,EAAM4D,OAAS,gBAAoB,QAAS,KAAM5D,EAAM4D,OACxD,gBAAoB,OAAQ,CAAEi7D,EAAG,oHAElC,IACX,GAAG,CAAE67E,YAAa,U,kFCbP/xI,EAAO,aAAiBc,OAAOC,QAAO,SAAU1J,EAAOu6I,GAC9D,IAAIp+I,EAAU6D,EAAM7D,SAAW,UAC/B,MAAgB,YAAZA,EACO,gBAAoB,MAAO,CAAEuG,UAAW1C,EAAM0C,UAAW,cAAe1C,EAAMw6I,WAAYC,KAAMz6I,EAAMw6I,gBAAahoJ,EAAY,MAAOmyF,SAAU3kF,EAAM2kF,SAAU,aAAc3kF,EAAMsO,UAAWtF,IAAKuxI,EAAYvnE,QAAS,YAAa/jE,MAAO,KAAMyB,OAAQ,KAAMuiE,MAAO,6BAA8Bh6B,KAAM,gBAC/Sj5C,EAAM4D,OAAS,gBAAoB,QAAS,KAAM5D,EAAM4D,OACxD,gBAAoB,OAAQ,CAAEi7D,EAAG,yKACjC,gBAAoB,OAAQ,CAAEA,EAAG,+KAEzB,UAAZ1iE,EACO,gBAAoB,MAAO,CAAEuG,UAAW1C,EAAM0C,UAAW,cAAe1C,EAAMw6I,WAAYC,KAAMz6I,EAAMw6I,gBAAahoJ,EAAY,MAAOmyF,SAAU3kF,EAAM2kF,SAAU,aAAc3kF,EAAMsO,UAAWtF,IAAKuxI,EAAYvnE,QAAS,YAAa/jE,MAAO,KAAMyB,OAAQ,KAAMuiE,MAAO,6BAA8Bh6B,KAAM,gBAC/Sj5C,EAAM4D,OAAS,gBAAoB,QAAS,KAAM5D,EAAM4D,OACxD,gBAAoB,OAAQ,CAAEi7D,EAAG,yBACjC,gBAAoB,OAAQ,CAAEA,EAAG,+FACjC,gBAAoB,SAAU,CAAEqU,GAAI,IAAKC,GAAI,IAAK5kB,EAAG,SAEtD,IACX,GAAG,CAAEmsF,YAAa,S,oCCflB,IAAI1/I,EAAQ,EAAQ,MACpB1N,EAAQ,EAAM0N,EAAMu/I,WAAW9wI,OAAOC,QAAO,SAAU1J,EAAOu6I,GAC1D,IAAIp+I,EAAU6D,EAAM7D,SAAW,UAC/B,MAAgB,YAAZA,EACOnB,EAAM09D,cAAc,MAAO,CAAEh2D,UAAW1C,EAAM0C,UAAW,cAAe1C,EAAMw6I,WAAYC,KAAMz6I,EAAMw6I,gBAAahoJ,EAAY,MAAOmyF,SAAU3kF,EAAM2kF,SAAU,aAAc3kF,EAAMsO,UAAWtF,IAAKuxI,EAAYtrI,MAAO,KAAMyB,OAAQ,KAAMsiE,QAAS,YAAaC,MAAO,6BAA8Bh6B,KAAM,gBAC/Sj5C,EAAM4D,OAAS5I,EAAM09D,cAAc,QAAS,KAAM14D,EAAM4D,OACxD5I,EAAM09D,cAAc,OAAQ,CAAEmG,EAAG,wDAEzB,UAAZ1iE,EACOnB,EAAM09D,cAAc,MAAO,CAAEh2D,UAAW1C,EAAM0C,UAAW,cAAe1C,EAAMw6I,WAAYC,KAAMz6I,EAAMw6I,gBAAahoJ,EAAY,MAAOmyF,SAAU3kF,EAAM2kF,SAAU,aAAc3kF,EAAMsO,UAAWtF,IAAKuxI,EAAYtrI,MAAO,KAAMyB,OAAQ,KAAMsiE,QAAS,YAAaC,MAAO,6BAA8Bh6B,KAAM,gBAC/Sj5C,EAAM4D,OAAS5I,EAAM09D,cAAc,QAAS,KAAM14D,EAAM4D,OACxD5I,EAAM09D,cAAc,OAAQ,CAAEmG,EAAG,yDAEzB,UAAZ1iE,EACOnB,EAAM09D,cAAc,MAAO,CAAEh2D,UAAW1C,EAAM0C,UAAW,cAAe1C,EAAMw6I,WAAYC,KAAMz6I,EAAMw6I,gBAAahoJ,EAAY,MAAOmyF,SAAU3kF,EAAM2kF,SAAU,aAAc3kF,EAAMsO,UAAWtF,IAAKuxI,EAAYtrI,MAAO,KAAMyB,OAAQ,KAAMsiE,QAAS,YAAaC,MAAO,6BAA8Bh6B,KAAM,gBAC/Sj5C,EAAM4D,OAAS5I,EAAM09D,cAAc,QAAS,KAAM14D,EAAM4D,OACxD5I,EAAM09D,cAAc,OAAQ,CAAEmG,EAAG,oDAElC,IACX,GAAG,CAAE67E,YAAa,Q,mCCnBlB,IAAI1/I,EAAQ,EAAQ,MACpB1N,EAAQ,EAAQ0N,EAAMu/I,WAAW9wI,OAAOC,QAAO,SAAU1J,EAAOu6I,GAC5D,IAAIp+I,EAAU6D,EAAM7D,SAAW,UAC/B,MAAgB,YAAZA,EACOnB,EAAM09D,cAAc,MAAO,CAAEh2D,UAAW1C,EAAM0C,UAAW,cAAe1C,EAAMw6I,WAAYC,KAAMz6I,EAAMw6I,gBAAahoJ,EAAY,MAAOmyF,SAAU3kF,EAAM2kF,SAAU,aAAc3kF,EAAMsO,UAAWtF,IAAKuxI,EAAYtrI,MAAO,KAAMyB,OAAQ,KAAMsiE,QAAS,YAAaC,MAAO,6BAA8Bh6B,KAAM,gBAC/Sj5C,EAAM4D,OAAS5I,EAAM09D,cAAc,QAAS,KAAM14D,EAAM4D,OACxD5I,EAAM09D,cAAc,OAAQ,CAAEmG,EAAG,mGACjC7jE,EAAM09D,cAAc,UAAW,CAAEwa,GAAI,SAAUC,GAAI,SAAUs2K,GAAI,MAAOC,GAAI,SAC5E1uP,EAAM09D,cAAc,OAAQ,CAAEmG,EAAG,4UAEzB,UAAZ1iE,EACOnB,EAAM09D,cAAc,MAAO,CAAEh2D,UAAW1C,EAAM0C,UAAW,cAAe1C,EAAMw6I,WAAYC,KAAMz6I,EAAMw6I,gBAAahoJ,EAAY,MAAOmyF,SAAU3kF,EAAM2kF,SAAU,aAAc3kF,EAAMsO,UAAWtF,IAAKuxI,EAAYtrI,MAAO,KAAMyB,OAAQ,KAAMsiE,QAAS,YAAaC,MAAO,6BAA8Bh6B,KAAM,gBAC/Sj5C,EAAM4D,OAAS5I,EAAM09D,cAAc,QAAS,KAAM14D,EAAM4D,OACxD5I,EAAM09D,cAAc,OAAQ,CAAEmG,EAAG,uEACjC7jE,EAAM09D,cAAc,UAAW,CAAEwa,GAAI,KAAMC,GAAI,SAAUs2K,GAAI,QAASC,GAAI,SAC1E1uP,EAAM09D,cAAc,OAAQ,CAAEmG,EAAG,4VAEzB,UAAZ1iE,EACOnB,EAAM09D,cAAc,MAAO,CAAEh2D,UAAW1C,EAAM0C,UAAW,cAAe1C,EAAMw6I,WAAYC,KAAMz6I,EAAMw6I,gBAAahoJ,EAAY,MAAOmyF,SAAU3kF,EAAM2kF,SAAU,aAAc3kF,EAAMsO,UAAWtF,IAAKuxI,EAAYtrI,MAAO,KAAMyB,OAAQ,KAAMsiE,QAAS,YAAaC,MAAO,6BAA8Bh6B,KAAM,gBAC/Sj5C,EAAM4D,OAAS5I,EAAM09D,cAAc,QAAS,KAAM14D,EAAM4D,OACxD5I,EAAM09D,cAAc,OAAQ,CAAEmG,EAAG,qGACjC7jE,EAAM09D,cAAc,UAAW,CAAEwa,GAAI,QAASC,GAAI,SAAUs2K,GAAI,MAAOC,GAAI,UAE5E,IACX,GAAG,CAAEhvG,YAAa,U,oCCxBlB,IAAI1/I,EAAQ,EAAQ,MACpB1N,EAAQ,EAAY0N,EAAMu/I,WAAW9wI,OAAOC,QAAO,SAAU1J,EAAOu6I,GAChE,IAAIp+I,EAAU6D,EAAM7D,SAAW,UAC/B,MAAgB,YAAZA,EACOnB,EAAM09D,cAAc,MAAO,CAAEh2D,UAAW1C,EAAM0C,UAAW,cAAe1C,EAAMw6I,WAAYC,KAAMz6I,EAAMw6I,gBAAahoJ,EAAY,MAAOmyF,SAAU3kF,EAAM2kF,SAAU,aAAc3kF,EAAMsO,UAAWtF,IAAKuxI,EAAYtrI,MAAO,KAAMyB,OAAQ,KAAMsiE,QAAS,YAAaC,MAAO,6BAA8Bh6B,KAAM,gBAC/Sj5C,EAAM4D,OAAS5I,EAAM09D,cAAc,QAAS,KAAM14D,EAAM4D,OACxD5I,EAAM09D,cAAc,OAAQ,CAAEmG,EAAG,oKAEzB,UAAZ1iE,EACOnB,EAAM09D,cAAc,MAAO,CAAEh2D,UAAW1C,EAAM0C,UAAW,cAAe1C,EAAMw6I,WAAYC,KAAMz6I,EAAMw6I,gBAAahoJ,EAAY,MAAOmyF,SAAU3kF,EAAM2kF,SAAU,aAAc3kF,EAAMsO,UAAWtF,IAAKuxI,EAAYtrI,MAAO,KAAMyB,OAAQ,KAAMsiE,QAAS,YAAaC,MAAO,6BAA8Bh6B,KAAM,gBAC/Sj5C,EAAM4D,OAAS5I,EAAM09D,cAAc,QAAS,KAAM14D,EAAM4D,OACxD5I,EAAM09D,cAAc,OAAQ,CAAEmG,EAAG,sKAElC,IACX,GAAG,CAAE67E,YAAa,c,oCCdlB,IAAI1/I,EAAQ,EAAQ,MACpB1N,EAAQ,EAAY0N,EAAMu/I,WAAW9wI,OAAOC,QAAO,SAAU1J,EAAOu6I,GAChE,IAAIp+I,EAAU6D,EAAM7D,SAAW,UAC/B,MAAgB,YAAZA,EACOnB,EAAM09D,cAAc,MAAO,CAAEh2D,UAAW1C,EAAM0C,UAAW,cAAe1C,EAAMw6I,WAAYC,KAAMz6I,EAAMw6I,gBAAahoJ,EAAY,MAAOmyF,SAAU3kF,EAAM2kF,SAAU,aAAc3kF,EAAMsO,UAAWtF,IAAKuxI,EAAYtrI,MAAO,KAAMyB,OAAQ,KAAMsiE,QAAS,YAAaC,MAAO,6BAA8Bh6B,KAAM,gBAC/Sj5C,EAAM4D,OAAS5I,EAAM09D,cAAc,QAAS,KAAM14D,EAAM4D,OACxD5I,EAAM09D,cAAc,OAAQ,CAAEmG,EAAG,qKAEzB,UAAZ1iE,EACOnB,EAAM09D,cAAc,MAAO,CAAEh2D,UAAW1C,EAAM0C,UAAW,cAAe1C,EAAMw6I,WAAYC,KAAMz6I,EAAMw6I,gBAAahoJ,EAAY,MAAOmyF,SAAU3kF,EAAM2kF,SAAU,aAAc3kF,EAAMsO,UAAWtF,IAAKuxI,EAAYtrI,MAAO,KAAMyB,OAAQ,KAAMsiE,QAAS,YAAaC,MAAO,6BAA8Bh6B,KAAM,gBAC/Sj5C,EAAM4D,OAAS5I,EAAM09D,cAAc,QAAS,KAAM14D,EAAM4D,OACxD5I,EAAM09D,cAAc,OAAQ,CAAEmG,EAAG,6KAElC,IACX,GAAG,CAAE67E,YAAa,c,oCCdlB,IAAI1/I,EAAQ,EAAQ,MACpB1N,EAAQ,EAAa0N,EAAMu/I,WAAW9wI,OAAOC,QAAO,SAAU1J,EAAOu6I,GACjE,IAAIp+I,EAAU6D,EAAM7D,SAAW,UAC/B,MAAgB,YAAZA,EACOnB,EAAM09D,cAAc,MAAO,CAAEh2D,UAAW1C,EAAM0C,UAAW,cAAe1C,EAAMw6I,WAAYC,KAAMz6I,EAAMw6I,gBAAahoJ,EAAY,MAAOmyF,SAAU3kF,EAAM2kF,SAAU,aAAc3kF,EAAMsO,UAAWtF,IAAKuxI,EAAYtrI,MAAO,KAAMyB,OAAQ,KAAMsiE,QAAS,YAAaC,MAAO,6BAA8Bh6B,KAAM,gBAC/Sj5C,EAAM4D,OAAS5I,EAAM09D,cAAc,QAAS,KAAM14D,EAAM4D,OACxD5I,EAAM09D,cAAc,OAAQ,CAAEmG,EAAG,sKAEzB,UAAZ1iE,EACOnB,EAAM09D,cAAc,MAAO,CAAEh2D,UAAW1C,EAAM0C,UAAW,cAAe1C,EAAMw6I,WAAYC,KAAMz6I,EAAMw6I,gBAAahoJ,EAAY,MAAOmyF,SAAU3kF,EAAM2kF,SAAU,aAAc3kF,EAAMsO,UAAWtF,IAAKuxI,EAAYtrI,MAAO,KAAMyB,OAAQ,KAAMsiE,QAAS,YAAaC,MAAO,6BAA8Bh6B,KAAM,gBAC/Sj5C,EAAM4D,OAAS5I,EAAM09D,cAAc,QAAS,KAAM14D,EAAM4D,OACxD5I,EAAM09D,cAAc,OAAQ,CAAEmG,EAAG,mLAElC,IACX,GAAG,CAAE67E,YAAa,e,oCCdlB,IAAI1/I,EAAQ,EAAQ,MACpB1N,EAAQ,EAAU0N,EAAMu/I,WAAW9wI,OAAOC,QAAO,SAAU1J,EAAOu6I,GAC9D,IAAIp+I,EAAU6D,EAAM7D,SAAW,UAC/B,MAAgB,YAAZA,EACOnB,EAAM09D,cAAc,MAAO,CAAEh2D,UAAW1C,EAAM0C,UAAW,cAAe1C,EAAMw6I,WAAYC,KAAMz6I,EAAMw6I,gBAAahoJ,EAAY,MAAOmyF,SAAU3kF,EAAM2kF,SAAU,aAAc3kF,EAAMsO,UAAWtF,IAAKuxI,EAAYtrI,MAAO,KAAMyB,OAAQ,KAAMsiE,QAAS,YAAaC,MAAO,6BAA8Bh6B,KAAM,gBAC/Sj5C,EAAM4D,OAAS5I,EAAM09D,cAAc,QAAS,KAAM14D,EAAM4D,OACxD5I,EAAM09D,cAAc,OAAQ,CAAEmG,EAAG,mLAEzB,UAAZ1iE,EACOnB,EAAM09D,cAAc,MAAO,CAAEh2D,UAAW1C,EAAM0C,UAAW,cAAe1C,EAAMw6I,WAAYC,KAAMz6I,EAAMw6I,gBAAahoJ,EAAY,MAAOmyF,SAAU3kF,EAAM2kF,SAAU,aAAc3kF,EAAMsO,UAAWtF,IAAKuxI,EAAYtrI,MAAO,KAAMyB,OAAQ,KAAMsiE,QAAS,YAAaC,MAAO,6BAA8Bh6B,KAAM,gBAC/Sj5C,EAAM4D,OAAS5I,EAAM09D,cAAc,QAAS,KAAM14D,EAAM4D,OACxD5I,EAAM09D,cAAc,OAAQ,CAAEmG,EAAG,8KAElC,IACX,GAAG,CAAE67E,YAAa,Y,oCCdlB,IAAI1/I,EAAQ,EAAQ,MACpB1N,EAAQ,EAAO0N,EAAMu/I,WAAW9wI,OAAOC,QAAO,SAAU1J,EAAOu6I,GAC3D,IAAIp+I,EAAU6D,EAAM7D,SAAW,UAC/B,MAAgB,YAAZA,EACOnB,EAAM09D,cAAc,MAAO,CAAEh2D,UAAW1C,EAAM0C,UAAW,cAAe1C,EAAMw6I,WAAYC,KAAMz6I,EAAMw6I,gBAAahoJ,EAAY,MAAOmyF,SAAU3kF,EAAM2kF,SAAU,aAAc3kF,EAAMsO,UAAWtF,IAAKuxI,EAAYvnE,QAAS,YAAa/jE,MAAO,KAAMyB,OAAQ,KAAMuiE,MAAO,6BAA8Bh6B,KAAM,gBAC/Sj5C,EAAM4D,OAAS5I,EAAM09D,cAAc,QAAS,KAAM14D,EAAM4D,OACxD5I,EAAM09D,cAAc,OAAQ,CAAEmG,EAAG,qKACjC7jE,EAAM09D,cAAc,OAAQ,CAAEmG,EAAG,iPACjC7jE,EAAM09D,cAAc,OAAQ,CAAEmG,EAAG,8CAEzB,UAAZ1iE,EACOnB,EAAM09D,cAAc,MAAO,CAAEh2D,UAAW1C,EAAM0C,UAAW,cAAe1C,EAAMw6I,WAAYC,KAAMz6I,EAAMw6I,gBAAahoJ,EAAY,MAAOmyF,SAAU3kF,EAAM2kF,SAAU,aAAc3kF,EAAMsO,UAAWtF,IAAKuxI,EAAYvnE,QAAS,YAAa/jE,MAAO,KAAMyB,OAAQ,KAAMuiE,MAAO,6BAA8Bh6B,KAAM,gBAC/Sj5C,EAAM4D,OAAS5I,EAAM09D,cAAc,QAAS,KAAM14D,EAAM4D,OACxD5I,EAAM09D,cAAc,OAAQ,CAAEmG,EAAG,yFACjC7jE,EAAM09D,cAAc,OAAQ,CAAEmG,EAAG,42CAEzB,UAAZ1iE,EACOnB,EAAM09D,cAAc,MAAO,CAAEh2D,UAAW1C,EAAM0C,UAAW,cAAe1C,EAAMw6I,WAAYC,KAAMz6I,EAAMw6I,gBAAahoJ,EAAY,MAAOmyF,SAAU3kF,EAAM2kF,SAAU,aAAc3kF,EAAMsO,UAAWtF,IAAKuxI,EAAYtrI,MAAO,KAAMyB,OAAQ,KAAMsiE,QAAS,YAAaC,MAAO,6BAA8Bh6B,KAAM,gBAC/Sj5C,EAAM4D,OAAS5I,EAAM09D,cAAc,QAAS,KAAM14D,EAAM4D,OACxD5I,EAAM09D,cAAc,OAAQ,CAAEmG,EAAG,yGACjC7jE,EAAM09D,cAAc,OAAQ,CAAEmG,EAAG,8CAElC,IACX,GAAG,CAAE67E,YAAa,S,oCCvBlB,IAAI1/I,EAAQ,EAAQ,MACpB1N,EAAQ,EAAW0N,EAAMu/I,WAAW9wI,OAAOC,QAAO,SAAU1J,EAAOu6I,GAC/D,IAAIp+I,EAAU6D,EAAM7D,SAAW,UAC/B,MAAgB,YAAZA,EACOnB,EAAM09D,cAAc,MAAO,CAAEh2D,UAAW1C,EAAM0C,UAAW,cAAe1C,EAAMw6I,WAAYC,KAAMz6I,EAAMw6I,gBAAahoJ,EAAY,MAAOmyF,SAAU3kF,EAAM2kF,SAAU,aAAc3kF,EAAMsO,UAAWtF,IAAKuxI,EAAY7pI,OAAQ,KAAMsiE,QAAS,YAAa/jE,MAAO,KAAMgkE,MAAO,6BAA8Bh6B,KAAM,gBAC/Sj5C,EAAM4D,OAAS5I,EAAM09D,cAAc,QAAS,KAAM14D,EAAM4D,OACxD5I,EAAM09D,cAAc,OAAQ,CAAEmG,EAAG,oqBAEzB,UAAZ1iE,EACOnB,EAAM09D,cAAc,MAAO,CAAEh2D,UAAW1C,EAAM0C,UAAW,cAAe1C,EAAMw6I,WAAYC,KAAMz6I,EAAMw6I,gBAAahoJ,EAAY,MAAOmyF,SAAU3kF,EAAM2kF,SAAU,aAAc3kF,EAAMsO,UAAWtF,IAAKuxI,EAAY7pI,OAAQ,KAAMsiE,QAAS,YAAa/jE,MAAO,KAAMgkE,MAAO,6BAA8Bh6B,KAAM,gBAC/Sj5C,EAAM4D,OAAS5I,EAAM09D,cAAc,QAAS,KAAM14D,EAAM4D,OACxD5I,EAAM09D,cAAc,OAAQ,CAAEmG,EAAG,4iCAElC,IACX,GAAG,CAAE67E,YAAa,a,oCCdlB,IAAI1/I,EAAQ,EAAQ,MACpB1N,EAAQ,EAAmB0N,EAAMu/I,WAAW9wI,OAAOC,QAAO,SAAU1J,EAAOu6I,GAEvE,MAAgB,aADFv6I,EAAM7D,SAAW,WAEpBnB,EAAM09D,cAAc,MAAO,CAAEh2D,UAAW1C,EAAM0C,UAAW,cAAe1C,EAAMw6I,WAAYC,KAAMz6I,EAAMw6I,gBAAahoJ,EAAY,MAAOmyF,SAAU3kF,EAAM2kF,SAAU,aAAc3kF,EAAMsO,UAAWtF,IAAKuxI,EAAY7pI,OAAQ,KAAMsiE,QAAS,YAAa/jE,MAAO,KAAMgkE,MAAO,6BAA8Bh6B,KAAM,gBAC/Sj5C,EAAM4D,OAAS5I,EAAM09D,cAAc,QAAS,KAAM14D,EAAM4D,OACxD5I,EAAM09D,cAAc,OAAQ,CAAEmG,EAAG,k8BAElC,IACX,GAAG,CAAE67E,YAAa,qB,oCCTlB,IAAI1/I,EAAQ,EAAQ,MACpB1N,EAAQ,EAAY0N,EAAMu/I,WAAW9wI,OAAOC,QAAO,SAAU1J,EAAOu6I,GAChE,IAAIp+I,EAAU6D,EAAM7D,SAAW,UAC/B,MAAgB,YAAZA,EACOnB,EAAM09D,cAAc,MAAO,CAAEh2D,UAAW1C,EAAM0C,UAAW,cAAe1C,EAAMw6I,WAAYC,KAAMz6I,EAAMw6I,gBAAahoJ,EAAY,MAAOmyF,SAAU3kF,EAAM2kF,SAAU,aAAc3kF,EAAMsO,UAAWtF,IAAKuxI,EAAYvnE,QAAS,YAAa/jE,MAAO,KAAMyB,OAAQ,KAAMuiE,MAAO,6BAA8Bh6B,KAAM,gBAC/Sj5C,EAAM4D,OAAS5I,EAAM09D,cAAc,QAAS,KAAM14D,EAAM4D,OACxD5I,EAAM09D,cAAc,OAAQ,CAAEmG,EAAG,0IAEzB,UAAZ1iE,EACOnB,EAAM09D,cAAc,MAAO,CAAEh2D,UAAW1C,EAAM0C,UAAW,cAAe1C,EAAMw6I,WAAYC,KAAMz6I,EAAMw6I,gBAAahoJ,EAAY,MAAOmyF,SAAU3kF,EAAM2kF,SAAU,aAAc3kF,EAAMsO,UAAWtF,IAAKuxI,EAAYvnE,QAAS,YAAa/jE,MAAO,KAAMyB,OAAQ,KAAMuiE,MAAO,6BAA8Bh6B,KAAM,gBAC/Sj5C,EAAM4D,OAAS5I,EAAM09D,cAAc,QAAS,KAAM14D,EAAM4D,OACxD5I,EAAM09D,cAAc,OAAQ,CAAEmG,EAAG,iGAElC,IACX,GAAG,CAAE67E,YAAa,c,oCCdlB,IAAI1/I,EAAQ,EAAQ,MACpB1N,EAAQ,EAAc0N,EAAMu/I,WAAW9wI,OAAOC,QAAO,SAAU1J,EAAOu6I,GAClE,IAAIp+I,EAAU6D,EAAM7D,SAAW,UAC/B,MAAgB,YAAZA,EACOnB,EAAM09D,cAAc,MAAO,CAAEh2D,UAAW1C,EAAM0C,UAAW,cAAe1C,EAAMw6I,WAAYC,KAAMz6I,EAAMw6I,gBAAahoJ,EAAY,MAAOmyF,SAAU3kF,EAAM2kF,SAAU,aAAc3kF,EAAMsO,UAAWtF,IAAKuxI,EAAYtrI,MAAO,KAAMyB,OAAQ,KAAMsiE,QAAS,YAAaC,MAAO,6BAA8Bh6B,KAAM,gBAC/Sj5C,EAAM4D,OAAS5I,EAAM09D,cAAc,QAAS,KAAM14D,EAAM4D,OACxD5I,EAAM09D,cAAc,OAAQ,CAAEmG,EAAG,sGAEzB,UAAZ1iE,EACOnB,EAAM09D,cAAc,MAAO,CAAEh2D,UAAW1C,EAAM0C,UAAW,cAAe1C,EAAMw6I,WAAYC,KAAMz6I,EAAMw6I,gBAAahoJ,EAAY,MAAOmyF,SAAU3kF,EAAM2kF,SAAU,aAAc3kF,EAAMsO,UAAWtF,IAAKuxI,EAAYtrI,MAAO,KAAMyB,OAAQ,KAAMsiE,QAAS,YAAaC,MAAO,6BAA8Bh6B,KAAM,gBAC/Sj5C,EAAM4D,OAAS5I,EAAM09D,cAAc,QAAS,KAAM14D,EAAM4D,OACxD5I,EAAM09D,cAAc,OAAQ,CAAEmG,EAAG,iGAElC,IACX,GAAG,CAAE67E,YAAa,gB,oCCdlB,IAAI1/I,EAAQ,EAAQ,MACpB1N,EAAQ,EAAe0N,EAAMu/I,WAAW9wI,OAAOC,QAAO,SAAU1J,EAAOu6I,GACnE,IAAIp+I,EAAU6D,EAAM7D,SAAW,UAC/B,MAAgB,YAAZA,EACOnB,EAAM09D,cAAc,MAAO,CAAEh2D,UAAW1C,EAAM0C,UAAW,cAAe1C,EAAMw6I,WAAYC,KAAMz6I,EAAMw6I,gBAAahoJ,EAAY,MAAOmyF,SAAU3kF,EAAM2kF,SAAU,aAAc3kF,EAAMsO,UAAWtF,IAAKuxI,EAAYtrI,MAAO,KAAMyB,OAAQ,KAAMsiE,QAAS,YAAaC,MAAO,6BAA8Bh6B,KAAM,gBAC/Sj5C,EAAM4D,OAAS5I,EAAM09D,cAAc,QAAS,KAAM14D,EAAM4D,OACxD5I,EAAM09D,cAAc,OAAQ,CAAEmG,EAAG,0IAEzB,UAAZ1iE,EACOnB,EAAM09D,cAAc,MAAO,CAAEh2D,UAAW1C,EAAM0C,UAAW,cAAe1C,EAAMw6I,WAAYC,KAAMz6I,EAAMw6I,gBAAahoJ,EAAY,MAAOmyF,SAAU3kF,EAAM2kF,SAAU,aAAc3kF,EAAMsO,UAAWtF,IAAKuxI,EAAYtrI,MAAO,KAAMyB,OAAQ,KAAMsiE,QAAS,YAAaC,MAAO,6BAA8Bh6B,KAAM,gBAC/Sj5C,EAAM4D,OAAS5I,EAAM09D,cAAc,QAAS,KAAM14D,EAAM4D,OACxD5I,EAAM09D,cAAc,OAAQ,CAAEmG,EAAG,yHAElC,IACX,GAAG,CAAE67E,YAAa,iB,oCCdlB,IAAI1/I,EAAQ,EAAQ,MACpB1N,EAAQ,EAAQ0N,EAAMu/I,WAAW9wI,OAAOC,QAAO,SAAU1J,EAAOu6I,GAC5D,IAAIp+I,EAAU6D,EAAM7D,SAAW,UAC/B,MAAgB,YAAZA,EACOnB,EAAM09D,cAAc,MAAO,CAAEh2D,UAAW1C,EAAM0C,UAAW,cAAe1C,EAAMw6I,WAAYC,KAAMz6I,EAAMw6I,gBAAahoJ,EAAY,MAAOmyF,SAAU3kF,EAAM2kF,SAAU,aAAc3kF,EAAMsO,UAAWtF,IAAKuxI,EAAYtrI,MAAO,KAAMyB,OAAQ,KAAMsiE,QAAS,YAAaC,MAAO,6BAA8Bh6B,KAAM,gBAC/Sj5C,EAAM4D,OAAS5I,EAAM09D,cAAc,QAAS,KAAM14D,EAAM4D,OACxD5I,EAAM09D,cAAc,OAAQ,CAAEmG,EAAG,oIAEzB,UAAZ1iE,EACOnB,EAAM09D,cAAc,MAAO,CAAEh2D,UAAW1C,EAAM0C,UAAW,cAAe1C,EAAMw6I,WAAYC,KAAMz6I,EAAMw6I,gBAAahoJ,EAAY,MAAOmyF,SAAU3kF,EAAM2kF,SAAU,aAAc3kF,EAAMsO,UAAWtF,IAAKuxI,EAAYtrI,MAAO,KAAMyB,OAAQ,KAAMsiE,QAAS,YAAaC,MAAO,6BAA8Bh6B,KAAM,gBAC/Sj5C,EAAM4D,OAAS5I,EAAM09D,cAAc,QAAS,KAAM14D,EAAM4D,OACxD5I,EAAM09D,cAAc,OAAQ,CAAEmG,EAAG,oHAElC,IACX,GAAG,CAAE67E,YAAa,U,oCCdlB,IAAI1/I,EAAQ,EAAQ,MACpB1N,EAAQ,EAAgB0N,EAAMu/I,WAAW9wI,OAAOC,QAAO,SAAU1J,EAAOu6I,GACpE,IAAIp+I,EAAU6D,EAAM7D,SAAW,UAC/B,MAAgB,YAAZA,EACOnB,EAAM09D,cAAc,MAAO,CAAEh2D,UAAW1C,EAAM0C,UAAW,cAAe1C,EAAMw6I,WAAYC,KAAMz6I,EAAMw6I,gBAAahoJ,EAAY,MAAOmyF,SAAU3kF,EAAM2kF,SAAU,aAAc3kF,EAAMsO,UAAWtF,IAAKuxI,EAAYvnE,QAAS,YAAa/jE,MAAO,KAAMyB,OAAQ,KAAMuiE,MAAO,6BAA8Bh6B,KAAM,gBAC/Sj5C,EAAM4D,OAAS5I,EAAM09D,cAAc,QAAS,KAAM14D,EAAM4D,OACxD5I,EAAM09D,cAAc,OAAQ,CAAEmG,EAAG,0oBACjC7jE,EAAM09D,cAAc,OAAQ,CAAEmG,EAAG,yDAEzB,UAAZ1iE,EACOnB,EAAM09D,cAAc,MAAO,CAAEh2D,UAAW1C,EAAM0C,UAAW,cAAe1C,EAAMw6I,WAAYC,KAAMz6I,EAAMw6I,gBAAahoJ,EAAY,MAAOmyF,SAAU3kF,EAAM2kF,SAAU,aAAc3kF,EAAMsO,UAAWtF,IAAKuxI,EAAYvnE,QAAS,YAAa/jE,MAAO,KAAMyB,OAAQ,KAAMuiE,MAAO,6BAA8Bh6B,KAAM,gBAC/Sj5C,EAAM4D,OAAS5I,EAAM09D,cAAc,QAAS,KAAM14D,EAAM4D,OACxD5I,EAAM09D,cAAc,OAAQ,CAAEmG,EAAG,sdACjC7jE,EAAM09D,cAAc,OAAQ,CAAEmG,EAAG,0DAElC,IACX,GAAG,CAAE67E,YAAa,kB,oCChBlB,IAAI1/I,EAAQ,EAAQ,MACpB1N,EAAQ,EAAO0N,EAAMu/I,WAAW9wI,OAAOC,QAAO,SAAU1J,EAAOu6I,GAC3D,IAAIp+I,EAAU6D,EAAM7D,SAAW,UAC/B,MAAgB,YAAZA,EACOnB,EAAM09D,cAAc,MAAO,CAAEh2D,UAAW1C,EAAM0C,UAAW,cAAe1C,EAAMw6I,WAAYC,KAAMz6I,EAAMw6I,gBAAahoJ,EAAY,MAAOmyF,SAAU3kF,EAAM2kF,SAAU,aAAc3kF,EAAMsO,UAAWtF,IAAKuxI,EAAYtrI,MAAO,KAAMyB,OAAQ,KAAMsiE,QAAS,YAAaC,MAAO,6BAA8Bh6B,KAAM,gBAC/Sj5C,EAAM4D,OAAS5I,EAAM09D,cAAc,QAAS,KAAM14D,EAAM4D,OACxD5I,EAAM09D,cAAc,OAAQ,CAAEmG,EAAG,uRAEzB,UAAZ1iE,EACOnB,EAAM09D,cAAc,MAAO,CAAEh2D,UAAW1C,EAAM0C,UAAW,cAAe1C,EAAMw6I,WAAYC,KAAMz6I,EAAMw6I,gBAAahoJ,EAAY,MAAOmyF,SAAU3kF,EAAM2kF,SAAU,aAAc3kF,EAAMsO,UAAWtF,IAAKuxI,EAAYtrI,MAAO,KAAMyB,OAAQ,KAAMsiE,QAAS,YAAaC,MAAO,6BAA8Bh6B,KAAM,gBAC/Sj5C,EAAM4D,OAAS5I,EAAM09D,cAAc,QAAS,KAAM14D,EAAM4D,OACxD5I,EAAM09D,cAAc,OAAQ,CAAEmG,EAAG,2OAElC,IACX,GAAG,CAAE67E,YAAa,S,oCCdlB,IAAI1/I,EAAQ,EAAQ,MACpB1N,EAAQ,EAAsB0N,EAAMu/I,WAAW9wI,OAAOC,QAAO,SAAU1J,EAAOu6I,GAE1E,MAAgB,aADFv6I,EAAM7D,SAAW,WAEpBnB,EAAM09D,cAAc,MAAO,CAAEh2D,UAAW1C,EAAM0C,UAAW,cAAe1C,EAAMw6I,WAAYC,KAAMz6I,EAAMw6I,gBAAahoJ,EAAY,MAAOmyF,SAAU3kF,EAAM2kF,SAAU,aAAc3kF,EAAMsO,UAAWtF,IAAKuxI,EAAYtrI,MAAO,KAAMyB,OAAQ,KAAMsiE,QAAS,YAAaC,MAAO,6BAA8Bh6B,KAAM,gBAC/Sj5C,EAAM4D,OAAS5I,EAAM09D,cAAc,QAAS,KAAM14D,EAAM4D,OACxD5I,EAAM09D,cAAc,OAAQ,CAAEmG,EAAG,yoBACjC7jE,EAAM09D,cAAc,OAAQ,CAAEmG,EAAG,4xBAElC,IACX,GAAG,CAAE67E,YAAa,wB,oCCVlB,IAAI1/I,EAAQ,EAAQ,MACpB1N,EAAQ,EAAO0N,EAAMu/I,WAAW9wI,OAAOC,QAAO,SAAU1J,EAAOu6I,GAC3D,IAAIp+I,EAAU6D,EAAM7D,SAAW,UAC/B,MAAgB,YAAZA,EACOnB,EAAM09D,cAAc,MAAO,CAAEh2D,UAAW1C,EAAM0C,UAAW,cAAe1C,EAAMw6I,WAAYC,KAAMz6I,EAAMw6I,gBAAahoJ,EAAY,MAAOmyF,SAAU3kF,EAAM2kF,SAAU,aAAc3kF,EAAMsO,UAAWtF,IAAKuxI,EAAYvnE,QAAS,YAAa/jE,MAAO,KAAMyB,OAAQ,KAAMuiE,MAAO,6BAA8Bh6B,KAAM,gBAC/Sj5C,EAAM4D,OAAS5I,EAAM09D,cAAc,QAAS,KAAM14D,EAAM4D,OACxD5I,EAAM09D,cAAc,OAAQ,CAAEmG,EAAG,yKACjC7jE,EAAM09D,cAAc,OAAQ,CAAEmG,EAAG,+KAEzB,UAAZ1iE,EACOnB,EAAM09D,cAAc,MAAO,CAAEh2D,UAAW1C,EAAM0C,UAAW,cAAe1C,EAAMw6I,WAAYC,KAAMz6I,EAAMw6I,gBAAahoJ,EAAY,MAAOmyF,SAAU3kF,EAAM2kF,SAAU,aAAc3kF,EAAMsO,UAAWtF,IAAKuxI,EAAYvnE,QAAS,YAAa/jE,MAAO,KAAMyB,OAAQ,KAAMuiE,MAAO,6BAA8Bh6B,KAAM,gBAC/Sj5C,EAAM4D,OAAS5I,EAAM09D,cAAc,QAAS,KAAM14D,EAAM4D,OACxD5I,EAAM09D,cAAc,OAAQ,CAAEmG,EAAG,yBACjC7jE,EAAM09D,cAAc,OAAQ,CAAEmG,EAAG,+FACjC7jE,EAAM09D,cAAc,SAAU,CAAEwa,GAAI,IAAKC,GAAI,IAAK5kB,EAAG,SAEtD,IACX,GAAG,CAAEmsF,YAAa,S,oCCjBlB,IAAI1/I,EAAQ,EAAQ,MACpB1N,EAAQ,EAAW0N,EAAMu/I,WAAW9wI,OAAOC,QAAO,SAAU1J,EAAOu6I,GAC/D,IAAIp+I,EAAU6D,EAAM7D,SAAW,UAC/B,MAAgB,YAAZA,EACOnB,EAAM09D,cAAc,MAAO,CAAEh2D,UAAW1C,EAAM0C,UAAW,cAAe1C,EAAMw6I,WAAYC,KAAMz6I,EAAMw6I,gBAAahoJ,EAAY,MAAOmyF,SAAU3kF,EAAM2kF,SAAU,aAAc3kF,EAAMsO,UAAWtF,IAAKuxI,EAAYtrI,MAAO,KAAMyB,OAAQ,KAAMsiE,QAAS,YAAaC,MAAO,6BAA8Bh6B,KAAM,gBAC/Sj5C,EAAM4D,OAAS5I,EAAM09D,cAAc,QAAS,KAAM14D,EAAM4D,OACxD5I,EAAM09D,cAAc,OAAQ,CAAEmG,EAAG,yVAEzB,UAAZ1iE,EACOnB,EAAM09D,cAAc,MAAO,CAAEh2D,UAAW1C,EAAM0C,UAAW,cAAe1C,EAAMw6I,WAAYC,KAAMz6I,EAAMw6I,gBAAahoJ,EAAY,MAAOmyF,SAAU3kF,EAAM2kF,SAAU,aAAc3kF,EAAMsO,UAAWtF,IAAKuxI,EAAYtrI,MAAO,KAAMyB,OAAQ,KAAMsiE,QAAS,YAAaC,MAAO,6BAA8Bh6B,KAAM,gBAC/Sj5C,EAAM4D,OAAS5I,EAAM09D,cAAc,QAAS,KAAM14D,EAAM4D,OACxD5I,EAAM09D,cAAc,OAAQ,CAAEmG,EAAG,0TAElC,IACX,GAAG,CAAE67E,YAAa,a,oCCdlB,IAAI1/I,EAAQ,EAAQ,MACpB1N,EAAQ,EAAS0N,EAAMu/I,WAAW9wI,OAAOC,QAAO,SAAU1J,EAAOu6I,GAC7D,IAAIp+I,EAAU6D,EAAM7D,SAAW,UAC/B,MAAgB,YAAZA,EACOnB,EAAM09D,cAAc,MAAO,CAAEh2D,UAAW1C,EAAM0C,UAAW,cAAe1C,EAAMw6I,WAAYC,KAAMz6I,EAAMw6I,gBAAahoJ,EAAY,MAAOmyF,SAAU3kF,EAAM2kF,SAAU,aAAc3kF,EAAMsO,UAAWtF,IAAKuxI,EAAYvnE,QAAS,YAAa/jE,MAAO,KAAMyB,OAAQ,KAAMuiE,MAAO,6BAA8Bh6B,KAAM,gBAC/Sj5C,EAAM4D,OAAS5I,EAAM09D,cAAc,QAAS,KAAM14D,EAAM4D,OACxD5I,EAAM09D,cAAc,OAAQ,CAAEmG,EAAG,uRAEzB,UAAZ1iE,EACOnB,EAAM09D,cAAc,MAAO,CAAEh2D,UAAW1C,EAAM0C,UAAW,cAAe1C,EAAMw6I,WAAYC,KAAMz6I,EAAMw6I,gBAAahoJ,EAAY,MAAOmyF,SAAU3kF,EAAM2kF,SAAU,aAAc3kF,EAAMsO,UAAWtF,IAAKuxI,EAAYvnE,QAAS,YAAa/jE,MAAO,KAAMyB,OAAQ,KAAMuiE,MAAO,6BAA8Bh6B,KAAM,gBAC/Sj5C,EAAM4D,OAAS5I,EAAM09D,cAAc,QAAS,KAAM14D,EAAM4D,OACxD5I,EAAM09D,cAAc,OAAQ,CAAEmG,EAAG,+SAElC,IACX,GAAG,CAAE67E,YAAa,W,oCCdlB,IAAI1/I,EAAQ,EAAQ,MACpB1N,EAAQ,EAAY0N,EAAMu/I,WAAW9wI,OAAOC,QAAO,SAAU1J,EAAOu6I,GAChE,IAAIp+I,EAAU6D,EAAM7D,SAAW,UAC/B,MAAgB,YAAZA,EACOnB,EAAM09D,cAAc,MAAO,CAAEh2D,UAAW1C,EAAM0C,UAAW,cAAe1C,EAAMw6I,WAAYC,KAAMz6I,EAAMw6I,gBAAahoJ,EAAY,MAAOmyF,SAAU3kF,EAAM2kF,SAAU,aAAc3kF,EAAMsO,UAAWtF,IAAKuxI,EAAYvnE,QAAS,YAAa/jE,MAAO,KAAMyB,OAAQ,KAAMuiE,MAAO,6BAA8Bh6B,KAAM,gBAC/Sj5C,EAAM4D,OAAS5I,EAAM09D,cAAc,QAAS,KAAM14D,EAAM4D,OACxD5I,EAAM09D,cAAc,OAAQ,CAAEmG,EAAG,oRAEzB,UAAZ1iE,EACOnB,EAAM09D,cAAc,MAAO,CAAEh2D,UAAW1C,EAAM0C,UAAW,cAAe1C,EAAMw6I,WAAYC,KAAMz6I,EAAMw6I,gBAAahoJ,EAAY,MAAOmyF,SAAU3kF,EAAM2kF,SAAU,aAAc3kF,EAAMsO,UAAWtF,IAAKuxI,EAAYvnE,QAAS,YAAa/jE,MAAO,KAAMyB,OAAQ,KAAMuiE,MAAO,6BAA8Bh6B,KAAM,gBAC/Sj5C,EAAM4D,OAAS5I,EAAM09D,cAAc,QAAS,KAAM14D,EAAM4D,OACxD5I,EAAM09D,cAAc,OAAQ,CAAEmG,EAAG,kIAElC,IACX,GAAG,CAAE67E,YAAa,c,oCCdlB,IAAI1/I,EAAQ,EAAQ,MACpB1N,EAAQq8P,EAAO3uP,EAAMu/I,WAAW9wI,OAAOC,QAAO,SAAU1J,EAAOu6I,GAC3D,IAAIp+I,EAAU6D,EAAM7D,SAAW,UAC/B,MAAgB,YAAZA,EACOnB,EAAM09D,cAAc,MAAO,CAAEh2D,UAAW1C,EAAM0C,UAAW,cAAe1C,EAAMw6I,WAAYC,KAAMz6I,EAAMw6I,gBAAahoJ,EAAY,MAAOmyF,SAAU3kF,EAAM2kF,SAAU,aAAc3kF,EAAMsO,UAAWtF,IAAKuxI,EAAYvnE,QAAS,YAAa/jE,MAAO,KAAMyB,OAAQ,KAAMuiE,MAAO,6BAA8Bh6B,KAAM,gBAC/Sj5C,EAAM4D,OAAS5I,EAAM09D,cAAc,QAAS,KAAM14D,EAAM4D,OACxD5I,EAAM09D,cAAc,OAAQ,CAAEmG,EAAG,yMAEzB,UAAZ1iE,EACOnB,EAAM09D,cAAc,MAAO,CAAEh2D,UAAW1C,EAAM0C,UAAW,cAAe1C,EAAMw6I,WAAYC,KAAMz6I,EAAMw6I,gBAAahoJ,EAAY,MAAOmyF,SAAU3kF,EAAM2kF,SAAU,aAAc3kF,EAAMsO,UAAWtF,IAAKuxI,EAAYvnE,QAAS,YAAa/jE,MAAO,KAAMyB,OAAQ,KAAMuiE,MAAO,6BAA8Bh6B,KAAM,gBAC/Sj5C,EAAM4D,OAAS5I,EAAM09D,cAAc,QAAS,KAAM14D,EAAM4D,OACxD5I,EAAM09D,cAAc,OAAQ,CAAEmG,EAAG,kNAElC,IACX,GAAG,CAAE67E,YAAa,S,mCCdlB,IAAI1/I,EAAQ,EAAQ,MACpB1N,EAAQ,EAAQ0N,EAAMu/I,WAAW9wI,OAAOC,QAAO,SAAU1J,EAAOu6I,GAC5D,IAAIp+I,EAAU6D,EAAM7D,SAAW,UAC/B,MAAgB,YAAZA,EACOnB,EAAM09D,cAAc,MAAO,CAAEh2D,UAAW1C,EAAM0C,UAAW,cAAe1C,EAAMw6I,WAAYC,KAAMz6I,EAAMw6I,gBAAahoJ,EAAY,MAAOmyF,SAAU3kF,EAAM2kF,SAAU,aAAc3kF,EAAMsO,UAAWtF,IAAKuxI,EAAYtrI,MAAO,KAAMyB,OAAQ,KAAMsiE,QAAS,YAAaC,MAAO,6BAA8Bh6B,KAAM,gBAC/Sj5C,EAAM4D,OAAS5I,EAAM09D,cAAc,QAAS,KAAM14D,EAAM4D,OACxD5I,EAAM09D,cAAc,OAAQ,CAAEmG,EAAG,qeAEzB,UAAZ1iE,EACOnB,EAAM09D,cAAc,MAAO,CAAEh2D,UAAW1C,EAAM0C,UAAW,cAAe1C,EAAMw6I,WAAYC,KAAMz6I,EAAMw6I,gBAAahoJ,EAAY,MAAOmyF,SAAU3kF,EAAM2kF,SAAU,aAAc3kF,EAAMsO,UAAWtF,IAAKuxI,EAAYtrI,MAAO,KAAMyB,OAAQ,KAAMsiE,QAAS,YAAaC,MAAO,6BAA8Bh6B,KAAM,gBAC/Sj5C,EAAM4D,OAAS5I,EAAM09D,cAAc,QAAS,KAAM14D,EAAM4D,OACxD5I,EAAM09D,cAAc,OAAQ,CAAEmG,EAAG,wtBAElC,IACX,GAAG,CAAE67E,YAAa,U,oCCdlB,IAAI1/I,EAAQ,EAAQ,MACpB1N,EAAQ,EAAS0N,EAAMu/I,WAAW9wI,OAAOC,QAAO,SAAU1J,EAAOu6I,GAC7D,IAAIp+I,EAAU6D,EAAM7D,SAAW,UAC/B,MAAgB,YAAZA,EACOnB,EAAM09D,cAAc,MAAO,CAAEh2D,UAAW1C,EAAM0C,UAAW,cAAe1C,EAAMw6I,WAAYC,KAAMz6I,EAAMw6I,gBAAahoJ,EAAY,MAAOmyF,SAAU3kF,EAAM2kF,SAAU,aAAc3kF,EAAMsO,UAAWtF,IAAKuxI,EAAYtrI,MAAO,KAAMyB,OAAQ,KAAMsiE,QAAS,YAAaC,MAAO,6BAA8Bh6B,KAAM,gBAC/Sj5C,EAAM4D,OAAS5I,EAAM09D,cAAc,QAAS,KAAM14D,EAAM4D,OACxD5I,EAAM09D,cAAc,OAAQ,CAAEmG,EAAG,qZAEzB,UAAZ1iE,EACOnB,EAAM09D,cAAc,MAAO,CAAEh2D,UAAW1C,EAAM0C,UAAW,cAAe1C,EAAMw6I,WAAYC,KAAMz6I,EAAMw6I,gBAAahoJ,EAAY,MAAOmyF,SAAU3kF,EAAM2kF,SAAU,aAAc3kF,EAAMsO,UAAWtF,IAAKuxI,EAAYtrI,MAAO,KAAMyB,OAAQ,KAAMsiE,QAAS,YAAaC,MAAO,6BAA8Bh6B,KAAM,gBAC/Sj5C,EAAM4D,OAAS5I,EAAM09D,cAAc,QAAS,KAAM14D,EAAM4D,OACxD5I,EAAM09D,cAAc,OAAQ,CAAEmG,EAAG,mYAElC,IACX,GAAG,CAAE67E,YAAa,W,oCCdlB,IAAI1/I,EAAQ,EAAQ,MACpB1N,EAAQ,EAAS0N,EAAMu/I,WAAW9wI,OAAOC,QAAO,SAAU1J,EAAOu6I,GAC7D,IAAIp+I,EAAU6D,EAAM7D,SAAW,UAC/B,MAAgB,YAAZA,EACOnB,EAAM09D,cAAc,MAAO,CAAEh2D,UAAW1C,EAAM0C,UAAW,cAAe1C,EAAMw6I,WAAYC,KAAMz6I,EAAMw6I,gBAAahoJ,EAAY,MAAOmyF,SAAU3kF,EAAM2kF,SAAU,aAAc3kF,EAAMsO,UAAWtF,IAAKuxI,EAAYtrI,MAAO,KAAMyB,OAAQ,KAAMsiE,QAAS,YAAaC,MAAO,6BAA8Bh6B,KAAM,gBAC/Sj5C,EAAM4D,OAAS5I,EAAM09D,cAAc,QAAS,KAAM14D,EAAM4D,OACxD5I,EAAM09D,cAAc,OAAQ,CAAEmG,EAAG,kCAEzB,UAAZ1iE,EACOnB,EAAM09D,cAAc,MAAO,CAAEh2D,UAAW1C,EAAM0C,UAAW,cAAe1C,EAAMw6I,WAAYC,KAAMz6I,EAAMw6I,gBAAahoJ,EAAY,MAAOmyF,SAAU3kF,EAAM2kF,SAAU,aAAc3kF,EAAMsO,UAAWtF,IAAKuxI,EAAYtrI,MAAO,KAAMyB,OAAQ,KAAMsiE,QAAS,YAAaC,MAAO,6BAA8Bh6B,KAAM,gBAC/Sj5C,EAAM4D,OAAS5I,EAAM09D,cAAc,QAAS,KAAM14D,EAAM4D,OACxD5I,EAAM09D,cAAc,OAAQ,CAAEmG,EAAG,4BAEzB,UAAZ1iE,EACOnB,EAAM09D,cAAc,MAAO,CAAEh2D,UAAW1C,EAAM0C,UAAW,cAAe1C,EAAMw6I,WAAYC,KAAMz6I,EAAMw6I,gBAAahoJ,EAAY,MAAOmyF,SAAU3kF,EAAM2kF,SAAU,aAAc3kF,EAAMsO,UAAWtF,IAAKuxI,EAAYtrI,MAAO,KAAMyB,OAAQ,KAAMsiE,QAAS,YAAaC,MAAO,6BAA8Bh6B,KAAM,gBAC/Sj5C,EAAM4D,OAAS5I,EAAM09D,cAAc,QAAS,KAAM14D,EAAM4D,OACxD5I,EAAM09D,cAAc,OAAQ,CAAEmG,EAAG,kCAElC,IACX,GAAG,CAAE67E,YAAa,W,oCCnBlB,IAAI1/I,EAAQ,EAAQ,MACpB1N,EAAQ,EAAQ0N,EAAMu/I,WAAW9wI,OAAOC,QAAO,SAAU1J,EAAOu6I,GAC5D,IAAIp+I,EAAU6D,EAAM7D,SAAW,UAC/B,MAAgB,YAAZA,EACOnB,EAAM09D,cAAc,MAAO,CAAEh2D,UAAW1C,EAAM0C,UAAW,cAAe1C,EAAMw6I,WAAYC,KAAMz6I,EAAMw6I,gBAAahoJ,EAAY,MAAOmyF,SAAU3kF,EAAM2kF,SAAU,aAAc3kF,EAAMsO,UAAWtF,IAAKuxI,EAAYtrI,MAAO,KAAMyB,OAAQ,KAAMsiE,QAAS,YAAaC,MAAO,6BAA8Bh6B,KAAM,gBAC/Sj5C,EAAM4D,OAAS5I,EAAM09D,cAAc,QAAS,KAAM14D,EAAM4D,OACxD5I,EAAM09D,cAAc,OAAQ,CAAEmG,EAAG,6nBAEzB,UAAZ1iE,EACOnB,EAAM09D,cAAc,MAAO,CAAEh2D,UAAW1C,EAAM0C,UAAW,cAAe1C,EAAMw6I,WAAYC,KAAMz6I,EAAMw6I,gBAAahoJ,EAAY,MAAOmyF,SAAU3kF,EAAM2kF,SAAU,aAAc3kF,EAAMsO,UAAWtF,IAAKuxI,EAAYtrI,MAAO,KAAMyB,OAAQ,KAAMsiE,QAAS,YAAaC,MAAO,6BAA8Bh6B,KAAM,gBAC/Sj5C,EAAM4D,OAAS5I,EAAM09D,cAAc,QAAS,KAAM14D,EAAM4D,OACxD5I,EAAM09D,cAAc,OAAQ,CAAEmG,EAAG,whBAElC,IACX,GAAG,CAAE67E,YAAa,U,oCCdlB,IAAI1/I,EAAQ,EAAQ,MACpB1N,EAAQ,EAAa0N,EAAMu/I,WAAW9wI,OAAOC,QAAO,SAAU1J,EAAOu6I,GACjE,IAAIp+I,EAAU6D,EAAM7D,SAAW,UAC/B,MAAgB,YAAZA,EACOnB,EAAM09D,cAAc,MAAO,CAAEh2D,UAAW1C,EAAM0C,UAAW,cAAe1C,EAAMw6I,WAAYC,KAAMz6I,EAAMw6I,gBAAahoJ,EAAY,MAAOmyF,SAAU3kF,EAAM2kF,SAAU,aAAc3kF,EAAMsO,UAAWtF,IAAKuxI,EAAYvnE,QAAS,YAAa/jE,MAAO,KAAMyB,OAAQ,KAAMuiE,MAAO,6BAA8Bh6B,KAAM,gBAC/Sj5C,EAAM4D,OAAS5I,EAAM09D,cAAc,QAAS,KAAM14D,EAAM4D,OACxD5I,EAAM09D,cAAc,OAAQ,CAAEmG,EAAG,+IAEzB,UAAZ1iE,EACOnB,EAAM09D,cAAc,MAAO,CAAEh2D,UAAW1C,EAAM0C,UAAW,cAAe1C,EAAMw6I,WAAYC,KAAMz6I,EAAMw6I,gBAAahoJ,EAAY,MAAOmyF,SAAU3kF,EAAM2kF,SAAU,aAAc3kF,EAAMsO,UAAWtF,IAAKuxI,EAAYvnE,QAAS,YAAa/jE,MAAO,KAAMyB,OAAQ,KAAMuiE,MAAO,6BAA8Bh6B,KAAM,gBAC/Sj5C,EAAM4D,OAAS5I,EAAM09D,cAAc,QAAS,KAAM14D,EAAM4D,OACxD5I,EAAM09D,cAAc,OAAQ,CAAEmG,EAAG,qPAEzB,UAAZ1iE,EACOnB,EAAM09D,cAAc,MAAO,CAAEh2D,UAAW1C,EAAM0C,UAAW,cAAe1C,EAAMw6I,WAAYC,KAAMz6I,EAAMw6I,gBAAahoJ,EAAY,MAAOmyF,SAAU3kF,EAAM2kF,SAAU,aAAc3kF,EAAMsO,UAAWtF,IAAKuxI,EAAYvnE,QAAS,YAAa/jE,MAAO,KAAMyB,OAAQ,KAAMuiE,MAAO,6BAA8Bh6B,KAAM,gBAC/Sj5C,EAAM4D,OAAS5I,EAAM09D,cAAc,QAAS,KAAM14D,EAAM4D,OACxD5I,EAAM09D,cAAc,OAAQ,CAAEmG,EAAG,0IAElC,IACX,GAAG,CAAE67E,YAAa,e,oCCnBlB,IAAI1/I,EAAQ,EAAQ,MACpB1N,EAAQ,EAAc0N,EAAMu/I,WAAW9wI,OAAOC,QAAO,SAAU1J,EAAOu6I,GAClE,IAAIp+I,EAAU6D,EAAM7D,SAAW,UAC/B,MAAgB,YAAZA,EACOnB,EAAM09D,cAAc,MAAO,CAAEh2D,UAAW1C,EAAM0C,UAAW,cAAe1C,EAAMw6I,WAAYC,KAAMz6I,EAAMw6I,gBAAahoJ,EAAY,MAAOmyF,SAAU3kF,EAAM2kF,SAAU,aAAc3kF,EAAMsO,UAAWtF,IAAKuxI,EAAYvnE,QAAS,YAAa/jE,MAAO,KAAMyB,OAAQ,KAAMuiE,MAAO,6BAA8Bh6B,KAAM,gBAC/Sj5C,EAAM4D,OAAS5I,EAAM09D,cAAc,QAAS,KAAM14D,EAAM4D,OACxD5I,EAAM09D,cAAc,OAAQ,CAAEmG,EAAG,uVAEzB,UAAZ1iE,EACOnB,EAAM09D,cAAc,MAAO,CAAEh2D,UAAW1C,EAAM0C,UAAW,cAAe1C,EAAMw6I,WAAYC,KAAMz6I,EAAMw6I,gBAAahoJ,EAAY,MAAOmyF,SAAU3kF,EAAM2kF,SAAU,aAAc3kF,EAAMsO,UAAWtF,IAAKuxI,EAAYvnE,QAAS,YAAa/jE,MAAO,KAAMyB,OAAQ,KAAMuiE,MAAO,6BAA8Bh6B,KAAM,gBAC/Sj5C,EAAM4D,OAAS5I,EAAM09D,cAAc,QAAS,KAAM14D,EAAM4D,OACxD5I,EAAM09D,cAAc,OAAQ,CAAEmG,EAAG,0eAEzB,UAAZ1iE,EACOnB,EAAM09D,cAAc,MAAO,CAAEh2D,UAAW1C,EAAM0C,UAAW,cAAe1C,EAAMw6I,WAAYC,KAAMz6I,EAAMw6I,gBAAahoJ,EAAY,MAAOmyF,SAAU3kF,EAAM2kF,SAAU,aAAc3kF,EAAMsO,UAAWtF,IAAKuxI,EAAYvnE,QAAS,YAAa/jE,MAAO,KAAMyB,OAAQ,KAAMuiE,MAAO,6BAA8Bh6B,KAAM,gBAC/Sj5C,EAAM4D,OAAS5I,EAAM09D,cAAc,QAAS,KAAM14D,EAAM4D,OACxD5I,EAAM09D,cAAc,OAAQ,CAAEmG,EAAG,4OAElC,IACX,GAAG,CAAE67E,YAAa,gB,oCC4FlB,IAAkB97I,EAwBA8qK,EAQAG,EAgBA+/E,E,iFAhDlB,SAAkBhrP,GAChB,QACA,QACA,QACA,aACD,CALD,CAAkBA,IAAAA,EAAgB,KAwBlC,SAAkB8qK,GAChB,QACA,QACA,QACA,QACA,OACD,CAND,CAAkBA,IAAAA,EAAsB,KAQxC,SAAkBG,GAChB,kBACA,2BACD,CAHD,CAAkBA,IAAAA,EAAoB,KAgBtC,SAAkB+/E,GAChB,cACA,eACD,CAHD,CAAkBA,IAAAA,EAA2B,I,oCChK7C,IAAIC,EAAmB/7P,MAAQA,KAAK+7P,kBAAqBpgP,OAAOszB,OAAS,SAAU+sN,EAAG/3O,EAAGm6C,EAAG69L,QAC7Ev3P,IAAPu3P,IAAkBA,EAAK79L,GAC3BziD,OAAO66D,eAAewlL,EAAGC,EAAI,CAAEt5D,YAAY,EAAMvhM,IAAK,WAAa,OAAO6iB,EAAEm6C,EAAI,GACnF,EAAI,SAAU49L,EAAG/3O,EAAGm6C,EAAG69L,QACTv3P,IAAPu3P,IAAkBA,EAAK79L,GAC3B49L,EAAEC,GAAMh4O,EAAEm6C,EACb,GACG89L,EAAsBl8P,MAAQA,KAAKk8P,qBAAwBvgP,OAAOszB,OAAS,SAAU+sN,EAAGt4I,GACxF/nG,OAAO66D,eAAewlL,EAAG,UAAW,CAAEr5D,YAAY,EAAMxuL,MAAOuvG,GAClE,EAAI,SAASs4I,EAAGt4I,GACbs4I,EAAW,QAAIt4I,CACnB,GACIy4I,EAAgBn8P,MAAQA,KAAKm8P,cAAiB,SAAU98E,GACxD,GAAIA,GAAOA,EAAI+8E,WAAY,OAAO/8E,EAClC,IAAIjlJ,EAAS,CAAC,EACd,GAAW,MAAPilJ,EAAa,IAAK,IAAIjhH,KAAKihH,EAAe,YAANjhH,GAAmBziD,OAAOozB,eAAenpC,KAAKy5K,EAAKjhH,IAAI29L,EAAgB3hO,EAAQilJ,EAAKjhH,GAE5H,OADA89L,EAAmB9hO,EAAQilJ,GACpBjlJ,CACX,EACIiiO,EAAmBr8P,MAAQA,KAAKq8P,iBAAoB,SAAUh9E,GAC9D,OAAQA,GAAOA,EAAI+8E,WAAc/8E,EAAM,CAAE,QAAWA,EACxD,EACA1jK,OAAO66D,eAAeh3E,EAAS,aAAc,CAAE2U,OAAO,IACtD3U,EAAQwxG,cAAgBxxG,EAAQutL,OAASvtL,EAAQ0xG,cAAW,EAC5D,MAAMhkG,EAAQivP,EAAa,EAAQ,OAC7BG,EAAsBD,EAAgB,EAAQ,OAC9CE,EAAoB,EAAQ,OAElC,SAAWrrJ,GACPA,EAASA,EAAY,EAAI,GAAK,IAC9BA,EAASA,EAAY,EAAI,GAAK,GACjC,CAHD,CAGc1xG,EAAQ0xG,WAAa1xG,EAAQ0xG,SAAW,CAAC,IACvD1xG,EAAQutL,OAASuvE,EAAoB37O,QAAQ/O,GAAI;yBACxB2qP,EAAkBjmP,YAAYC;4BAC3BrE,GAASA,EAAMmX,MAAMk0E,YAAYC,UAAU78E;;;EAIvEnhB,EAAQwxG,cAAgB9+F,IACpB,MAAMsqP,EAAgB,CAClBnyO,SAAU,SACVoyO,WAAY,QAAQvqP,EAAMhE,OAC1BwuP,cAAe,UAEnB,OAAIxqP,EAAM++F,OACC/jG,EAAM09D,cAAc,MAAO,CAAE10D,MAAOsmP,GACvCtvP,EAAM09D,cAAcprE,EAAQutL,OAAQ,KAAM76K,EAAMyd,WAEjDziB,EAAM09D,cAAc,MAAO,CAAE10D,MAAOsmP,GAAiBtqP,EAAMyd,SAAS,EAE/EnwB,EAAQwxG,cAAc47C,YAAc,e,oCClDpC,IAAImvG,EAAmB/7P,MAAQA,KAAK+7P,kBAAqBpgP,OAAOszB,OAAS,SAAU+sN,EAAG/3O,EAAGm6C,EAAG69L,QAC7Ev3P,IAAPu3P,IAAkBA,EAAK79L,GAC3BziD,OAAO66D,eAAewlL,EAAGC,EAAI,CAAEt5D,YAAY,EAAMvhM,IAAK,WAAa,OAAO6iB,EAAEm6C,EAAI,GACnF,EAAI,SAAU49L,EAAG/3O,EAAGm6C,EAAG69L,QACTv3P,IAAPu3P,IAAkBA,EAAK79L,GAC3B49L,EAAEC,GAAMh4O,EAAEm6C,EACb,GACG89L,EAAsBl8P,MAAQA,KAAKk8P,qBAAwBvgP,OAAOszB,OAAS,SAAU+sN,EAAGt4I,GACxF/nG,OAAO66D,eAAewlL,EAAG,UAAW,CAAEr5D,YAAY,EAAMxuL,MAAOuvG,GAClE,EAAI,SAASs4I,EAAGt4I,GACbs4I,EAAW,QAAIt4I,CACnB,GACIy4I,EAAgBn8P,MAAQA,KAAKm8P,cAAiB,SAAU98E,GACxD,GAAIA,GAAOA,EAAI+8E,WAAY,OAAO/8E,EAClC,IAAIjlJ,EAAS,CAAC,EACd,GAAW,MAAPilJ,EAAa,IAAK,IAAIjhH,KAAKihH,EAAe,YAANjhH,GAAmBziD,OAAOozB,eAAenpC,KAAKy5K,EAAKjhH,IAAI29L,EAAgB3hO,EAAQilJ,EAAKjhH,GAE5H,OADA89L,EAAmB9hO,EAAQilJ,GACpBjlJ,CACX,EACAze,OAAO66D,eAAeh3E,EAAS,aAAc,CAAE2U,OAAO,IACtD3U,EAAQ6xG,uBAAoB,EAC5B,MAAMnkG,EAAQivP,EAAa,EAAQ,OACnC38P,EAAQ6xG,kBAAqBn/F,IACzB,MAAMyqP,EAAqB,CACvBC,WAAY,GAAG1qP,EAAMo/F,aAAe,YAAYp/F,EAAM0O,SAAW,KACjEi8O,QAAS,GAAG3qP,EAAM4qP,UAAY,YAAY5qP,EAAM4pC,MAAQ,KAE5D,OAAO5uC,EAAM09D,cAAc,MAAO,CAAE10D,MAAOymP,GAAsBzqP,EAAMyd,SAAS,EAEpFnwB,EAAQ6xG,kBAAkBu7C,YAAc,mB,oCC7BxC,IAAIyvG,EAAmBr8P,MAAQA,KAAKq8P,iBAAoB,SAAUh9E,GAC9D,OAAQA,GAAOA,EAAI+8E,WAAc/8E,EAAM,CAAE,QAAWA,EACxD,EACA1jK,OAAO66D,eAAeh3E,EAAS,aAAc,CAAE2U,OAAO,IACtD3U,EAAQ4xG,oBAAiB,EACzB,MAAMkrJ,EAAsBD,EAAgB,EAAQ,OACpD78P,EAAQ4xG,eAAiBkrJ,EAAoB37O,QAAQ/O,GAAI;;;sBCPzD;;;;;GAOC,WACA,aAEA,IAAImrP,EAAS,CAAC,EAAEhuN,eAGhB,SAASw/C,IAGR,IAFA,IAAIyxB,EAAU,GAELlgH,EAAI,EAAGA,EAAImC,UAAU8I,OAAQjL,IAAK,CAC1C,IAAI88H,EAAM36H,UAAUnC,GACpB,GAAK88H,EAAL,CAEA,IAAIogI,SAAiBpgI,EAErB,GAAgB,WAAZogI,GAAoC,WAAZA,EAC3Bh9I,EAAQ/7G,KAAK24H,QACP,GAAIl9F,MAAMwT,QAAQ0pF,IACxB,GAAIA,EAAI7xH,OAAQ,CACf,IAAI4rH,EAAQpoC,EAAWvsF,MAAM,KAAM46H,GAC/BjG,GACH3W,EAAQ/7G,KAAK0yH,EAEf,OACM,GAAgB,WAAZqmI,EAAsB,CAChC,GAAIpgI,EAAIx3G,WAAazJ,OAAOgkB,UAAUva,WAAaw3G,EAAIx3G,SAASA,WAAWxa,SAAS,iBAAkB,CACrGo1G,EAAQ/7G,KAAK24H,EAAIx3G,YACjB,QACD,CAEA,IAAK,IAAI9H,KAAOs/G,EACXmgI,EAAOn3P,KAAKg3H,EAAKt/G,IAAQs/G,EAAIt/G,IAChC0iG,EAAQ/7G,KAAKqZ,EAGhB,CAxBkB,CAyBnB,CAEA,OAAO0iG,EAAQv+E,KAAK,IACrB,CAEqChiC,EAAOD,SAC3C+uF,EAAW5tE,QAAU4tE,EACrB9uF,EAAOD,QAAU+uF,QAKhB,KAFwB,EAAF,WACtB,OAAOA,CACP,UAFoB,OAEpB,YAIH,CApDA,E,qBCPA,IAAIomB,EAAyB,oBAAT50G,KAAuBA,KAAOC,KAC9Ci9P,EAAW,WACf,SAASz7B,IACTxhO,KAAKkJ,OAAQ,EACblJ,KAAKk9P,aAAevoJ,EAAOuoJ,YAC3B,CAEA,OADA17B,EAAE7hM,UAAYg1E,EACP,IAAI6sH,CACV,CAPc,IAQf,SAAUzhO,IAEO,SAAWP,GAE1B,IAAI29P,EACY,oBAAqBp9P,EADjCo9P,EAEQ,WAAYp9P,GAAQ,aAAcq9P,OAF1CD,EAIA,eAAgBp9P,GAChB,SAAUA,GACV,WACE,IAEE,OADA,IAAIs9P,MACG,CACT,CAAE,MAAOxvP,GACP,OAAO,CACT,CACD,CAPD,GANAsvP,EAcQ,aAAcp9P,EAdtBo9P,EAeW,gBAAiBp9P,EAOhC,GAAIo9P,EACF,IAAIG,EAAc,CAChB,qBACA,sBACA,6BACA,sBACA,uBACA,sBACA,uBACA,wBACA,yBAGEC,EACFC,YAAYC,QACZ,SAAS/xL,GACP,OAAOA,GAAO4xL,EAAYz2N,QAAQlrB,OAAOgkB,UAAUva,SAASxf,KAAK8lE,KAAS,CAC5E,EAGJ,SAASgyL,EAAc/4P,GAIrB,GAHoB,iBAATA,IACTA,EAAO+gB,OAAO/gB,IAEZ,4BAA4BupB,KAAKvpB,GACnC,MAAM,IAAIu7B,UAAU,0CAEtB,OAAOv7B,EAAKoT,aACd,CAEA,SAAS4lP,EAAexpP,GAItB,MAHqB,iBAAVA,IACTA,EAAQuR,OAAOvR,IAEVA,CACT,CAGA,SAASypP,EAAY/2H,GACnB,IAAIg3H,EAAW,CACb58P,KAAM,WACJ,IAAIkT,EAAQ0yH,EAAM4nD,QAClB,MAAO,CAACjtI,UAAgB98C,IAAVyP,EAAqBA,MAAOA,EAC5C,GASF,OANIgpP,IACFU,EAAST,OAAOS,UAAY,WAC1B,OAAOA,CACT,GAGKA,CACT,CAEA,SAAS1sI,EAAQhoH,GACfnJ,KAAK+a,IAAM,CAAC,EAER5R,aAAmBgoH,EACrBhoH,EAAQ4kE,SAAQ,SAAS55D,EAAOxP,GAC9B3E,KAAKs0J,OAAO3vJ,EAAMwP,EACpB,GAAGnU,MACM0/B,MAAMwT,QAAQ/pC,GACvBA,EAAQ4kE,SAAQ,SAASi8D,GACvBhqI,KAAKs0J,OAAOtqB,EAAO,GAAIA,EAAO,GAChC,GAAGhqI,MACMmJ,GACTwS,OAAOw/L,oBAAoBhyM,GAAS4kE,SAAQ,SAASppE,GACnD3E,KAAKs0J,OAAO3vJ,EAAMwE,EAAQxE,GAC5B,GAAG3E,KAEP,CA8DA,SAAS89P,EAAStgP,GAChB,GAAIA,EAAKugP,SACP,OAAOl4L,QAAQE,OAAO,IAAI7lC,UAAU,iBAEtC1iB,EAAKugP,UAAW,CAClB,CAEA,SAASC,EAAgBC,GACvB,OAAO,IAAIp4L,SAAQ,SAASC,EAASC,GACnCk4L,EAAO1gI,OAAS,WACdz3D,EAAQm4L,EAAO7jO,OACjB,EACA6jO,EAAOhpI,QAAU,WACflvD,EAAOk4L,EAAOr8P,MAChB,CACF,GACF,CAEA,SAASs8P,EAAsBC,GAC7B,IAAIF,EAAS,IAAIG,WACbz3H,EAAUq3H,EAAgBC,GAE9B,OADAA,EAAOI,kBAAkBF,GAClBx3H,CACT,CAmBA,SAAS23H,EAAYC,GACnB,GAAIA,EAAI9lP,MACN,OAAO8lP,EAAI9lP,MAAM,GAEjB,IAAI2lI,EAAO,IAAIogH,WAAWD,EAAIE,YAE9B,OADArgH,EAAK5rE,IAAI,IAAIgsL,WAAWD,IACjBngH,EAAKxV,MAEhB,CAEA,SAAS81H,IA0FP,OAzFA1+P,KAAK+9P,UAAW,EAEhB/9P,KAAK2+P,UAAY,SAASnhP,GAhM5B,IAAoBkuD,EAiMhB1rE,KAAK4+P,UAAYphP,EACZA,EAEsB,iBAATA,EAChBxd,KAAK6+P,UAAYrhP,EACR2/O,GAAgBE,KAAK19N,UAAUm/N,cAActhP,GACtDxd,KAAK++P,UAAYvhP,EACR2/O,GAAoB9oG,SAAS10H,UAAUm/N,cAActhP,GAC9Dxd,KAAKg/P,cAAgBxhP,EACZ2/O,GAAwBv4J,gBAAgBjlE,UAAUm/N,cAActhP,GACzExd,KAAK6+P,UAAYrhP,EAAK4H,WACb+3O,GAAuBA,KA5MlBzxL,EA4M6CluD,IA3MjDyhP,SAASt/N,UAAUm/N,cAAcpzL,KA4M3C1rE,KAAKk/P,iBAAmBZ,EAAY9gP,EAAKorH,QAEzC5oI,KAAK4+P,UAAY,IAAIvB,KAAK,CAACr9P,KAAKk/P,oBACvB/B,IAAwBK,YAAY79N,UAAUm/N,cAActhP,IAAS+/O,EAAkB//O,IAChGxd,KAAKk/P,iBAAmBZ,EAAY9gP,GAEpCxd,KAAK6+P,UAAYrhP,EAAO7B,OAAOgkB,UAAUva,SAASxf,KAAK4X,GAhBvDxd,KAAK6+P,UAAY,GAmBd7+P,KAAKmJ,QAAQ/H,IAAI,kBACA,iBAAToc,EACTxd,KAAKmJ,QAAQqpE,IAAI,eAAgB,4BACxBxyE,KAAK++P,WAAa/+P,KAAK++P,UAAU95P,KAC1CjF,KAAKmJ,QAAQqpE,IAAI,eAAgBxyE,KAAK++P,UAAU95P,MACvCk4P,GAAwBv4J,gBAAgBjlE,UAAUm/N,cAActhP,IACzExd,KAAKmJ,QAAQqpE,IAAI,eAAgB,mDAGvC,EAEI2qL,IACFn9P,KAAKm+P,KAAO,WACV,IAAIv9D,EAAWk9D,EAAS99P,MACxB,GAAI4gM,EACF,OAAOA,EAGT,GAAI5gM,KAAK++P,UACP,OAAOl5L,QAAQC,QAAQ9lE,KAAK++P,WACvB,GAAI/+P,KAAKk/P,iBACd,OAAOr5L,QAAQC,QAAQ,IAAIu3L,KAAK,CAACr9P,KAAKk/P,oBACjC,GAAIl/P,KAAKg/P,cACd,MAAM,IAAIj5P,MAAM,wCAEhB,OAAO8/D,QAAQC,QAAQ,IAAIu3L,KAAK,CAACr9P,KAAK6+P,YAE1C,EAEA7+P,KAAKm/P,YAAc,WACjB,OAAIn/P,KAAKk/P,iBACApB,EAAS99P,OAAS6lE,QAAQC,QAAQ9lE,KAAKk/P,kBAEvCl/P,KAAKm+P,OAAO/0P,KAAK80P,EAE5B,GAGFl+P,KAAKsH,KAAO,WACV,IA3FoB62P,EAClBF,EACAt3H,EAyFEi6D,EAAWk9D,EAAS99P,MACxB,GAAI4gM,EACF,OAAOA,EAGT,GAAI5gM,KAAK++P,UACP,OAjGkBZ,EAiGIn+P,KAAK++P,UAhG3Bd,EAAS,IAAIG,WACbz3H,EAAUq3H,EAAgBC,GAC9BA,EAAOmB,WAAWjB,GACXx3H,EA8FE,GAAI3mI,KAAKk/P,iBACd,OAAOr5L,QAAQC,QA5FrB,SAA+By4L,GAI7B,IAHA,IAAIngH,EAAO,IAAIogH,WAAWD,GACtBc,EAAQ,IAAI3/N,MAAM0+G,EAAKrzI,QAElBjL,EAAI,EAAGA,EAAIs+I,EAAKrzI,OAAQjL,IAC/Bu/P,EAAMv/P,GAAK4lB,OAAO6sB,aAAa6rG,EAAKt+I,IAEtC,OAAOu/P,EAAM59N,KAAK,GACpB,CAoF6B69N,CAAsBt/P,KAAKk/P,mBAC7C,GAAIl/P,KAAKg/P,cACd,MAAM,IAAIj5P,MAAM,wCAEhB,OAAO8/D,QAAQC,QAAQ9lE,KAAK6+P,UAEhC,EAEI1B,IACFn9P,KAAKmC,SAAW,WACd,OAAOnC,KAAKsH,OAAO8B,KAAKm2P,EAC1B,GAGFv/P,KAAKqJ,KAAO,WACV,OAAOrJ,KAAKsH,OAAO8B,KAAKgqC,KAAK5F,MAC/B,EAEOxtC,IACT,CA3MAmxH,EAAQxxF,UAAU20H,OAAS,SAAS3vJ,EAAMwP,GACxCxP,EAAO+4P,EAAc/4P,GACrBwP,EAAQwpP,EAAexpP,GACvB,IAAIqrP,EAAWx/P,KAAK+a,IAAIpW,GACxB3E,KAAK+a,IAAIpW,GAAQ66P,EAAWA,EAAW,KAAOrrP,EAAQA,CACxD,EAEAg9G,EAAQxxF,UAAkB,OAAI,SAASh7B,UAC9B3E,KAAK+a,IAAI2iP,EAAc/4P,GAChC,EAEAwsH,EAAQxxF,UAAUv+B,IAAM,SAASuD,GAE/B,OADAA,EAAO+4P,EAAc/4P,GACd3E,KAAK62H,IAAIlyH,GAAQ3E,KAAK+a,IAAIpW,GAAQ,IAC3C,EAEAwsH,EAAQxxF,UAAUk3F,IAAM,SAASlyH,GAC/B,OAAO3E,KAAK+a,IAAIg0B,eAAe2uN,EAAc/4P,GAC/C,EAEAwsH,EAAQxxF,UAAU6yC,IAAM,SAAS7tE,EAAMwP,GACrCnU,KAAK+a,IAAI2iP,EAAc/4P,IAASg5P,EAAexpP,EACjD,EAEAg9G,EAAQxxF,UAAUouC,QAAU,SAAS4G,EAAU+gC,GAC7C,IAAK,IAAI/wG,KAAQ3E,KAAK+a,IAChB/a,KAAK+a,IAAIg0B,eAAepqC,IAC1BgwE,EAAS/uE,KAAK8vG,EAAS11G,KAAK+a,IAAIpW,GAAOA,EAAM3E,KAGnD,EAEAmxH,EAAQxxF,UAAU6B,KAAO,WACvB,IAAIqlG,EAAQ,GAIZ,OAHA7mI,KAAK+tE,SAAQ,SAAS55D,EAAOxP,GAC3BkiI,EAAM5iI,KAAKU,EACb,IACOi5P,EAAY/2H,EACrB,EAEA1V,EAAQxxF,UAAU/Z,OAAS,WACzB,IAAIihH,EAAQ,GAIZ,OAHA7mI,KAAK+tE,SAAQ,SAAS55D,GACpB0yH,EAAM5iI,KAAKkQ,EACb,IACOypP,EAAY/2H,EACrB,EAEA1V,EAAQxxF,UAAU82E,QAAU,WAC1B,IAAIowB,EAAQ,GAIZ,OAHA7mI,KAAK+tE,SAAQ,SAAS55D,EAAOxP,GAC3BkiI,EAAM5iI,KAAK,CAACU,EAAMwP,GACpB,IACOypP,EAAY/2H,EACrB,EAEIs2H,IACFhsI,EAAQxxF,UAAUy9N,OAAOS,UAAY1sI,EAAQxxF,UAAU82E,SAqJzD,IAAIxjB,EAAU,CAAC,SAAU,MAAO,OAAQ,UAAW,OAAQ,OAO3D,SAASm+B,EAAQrjG,EAAOjpB,GAEtB,IAPuBwqH,EACnBmwI,EAMAjiP,GADJ1Y,EAAUA,GAAW,CAAC,GACH0Y,KAEnB,GAAIuQ,aAAiBqjG,EAAS,CAC5B,GAAIrjG,EAAMgwO,SACR,MAAM,IAAI79N,UAAU,gBAEtBlgC,KAAKk8B,IAAMnO,EAAMmO,IACjBl8B,KAAKkrI,YAAcn9G,EAAMm9G,YACpBpmI,EAAQqE,UACXnJ,KAAKmJ,QAAU,IAAIgoH,EAAQpjG,EAAM5kB,UAEnCnJ,KAAKsvH,OAASvhG,EAAMuhG,OACpBtvH,KAAK+3B,KAAOhK,EAAMgK,KAClB/3B,KAAK0/P,OAAS3xO,EAAM2xO,OACfliP,GAA2B,MAAnBuQ,EAAM6wO,YACjBphP,EAAOuQ,EAAM6wO,UACb7wO,EAAMgwO,UAAW,EAErB,MACE/9P,KAAKk8B,IAAMxW,OAAOqI,GAYpB,GATA/tB,KAAKkrI,YAAcpmI,EAAQomI,aAAelrI,KAAKkrI,aAAe,eAC1DpmI,EAAQqE,SAAYnJ,KAAKmJ,UAC3BnJ,KAAKmJ,QAAU,IAAIgoH,EAAQrsH,EAAQqE,UAErCnJ,KAAKsvH,QAjCkBA,EAiCOxqH,EAAQwqH,QAAUtvH,KAAKsvH,QAAU,MAhC3DmwI,EAAUnwI,EAAO92G,cACdy6E,EAAQpsD,QAAQ44N,IAAY,EAAIA,EAAUnwI,GAgCjDtvH,KAAK+3B,KAAOjzB,EAAQizB,MAAQ/3B,KAAK+3B,MAAQ,KACzC/3B,KAAK0/P,OAAS56P,EAAQ46P,QAAU1/P,KAAK0/P,OACrC1/P,KAAKmmG,SAAW,MAEK,QAAhBnmG,KAAKsvH,QAAoC,SAAhBtvH,KAAKsvH,SAAsB9xG,EACvD,MAAM,IAAI0iB,UAAU,6CAEtBlgC,KAAK2+P,UAAUnhP,EACjB,CAMA,SAAS+hP,EAAO/hP,GACd,IAAI80E,EAAO,IAAI+hE,SAYf,OAXA72I,EACGwU,OACAlrB,MAAM,KACNinE,SAAQ,SAAS4xL,GAChB,GAAIA,EAAO,CACT,IAAI74P,EAAQ64P,EAAM74P,MAAM,KACpBnC,EAAOmC,EAAM2nL,QAAQvnL,QAAQ,MAAO,KACpCiN,EAAQrN,EAAM26B,KAAK,KAAKv6B,QAAQ,MAAO,KAC3CorF,EAAKgiE,OAAOo8E,mBAAmB/rO,GAAO+rO,mBAAmBv8N,GAC3D,CACF,IACKm+E,CACT,CAoBA,SAAS++B,EAASuuI,EAAU96P,GACrBA,IACHA,EAAU,CAAC,GAGb9E,KAAKiF,KAAO,UACZjF,KAAK2K,YAA4BjG,IAAnBI,EAAQ6F,OAAuB,IAAM7F,EAAQ6F,OAC3D3K,KAAKq6I,GAAKr6I,KAAK2K,QAAU,KAAO3K,KAAK2K,OAAS,IAC9C3K,KAAKutI,WAAa,eAAgBzoI,EAAUA,EAAQyoI,WAAa,KACjEvtI,KAAKmJ,QAAU,IAAIgoH,EAAQrsH,EAAQqE,SACnCnJ,KAAKk8B,IAAMp3B,EAAQo3B,KAAO,GAC1Bl8B,KAAK2+P,UAAUiB,EACjB,CAlDAxuI,EAAQzxF,UAAUolC,MAAQ,WACxB,OAAO,IAAIqsD,EAAQpxH,KAAM,CAACwd,KAAMxd,KAAK4+P,WACvC,EAkCAF,EAAK94P,KAAKwrH,EAAQzxF,WAgBlB++N,EAAK94P,KAAKyrH,EAAS1xF,WAEnB0xF,EAAS1xF,UAAUolC,MAAQ,WACzB,OAAO,IAAIssD,EAASrxH,KAAK4+P,UAAW,CAClCj0P,OAAQ3K,KAAK2K,OACb4iI,WAAYvtI,KAAKutI,WACjBpkI,QAAS,IAAIgoH,EAAQnxH,KAAKmJ,SAC1B+yB,IAAKl8B,KAAKk8B,KAEd,EAEAm1F,EAASzvH,MAAQ,WACf,IAAIS,EAAW,IAAIgvH,EAAS,KAAM,CAAC1mH,OAAQ,EAAG4iI,WAAY,KAE1D,OADAlrI,EAAS4C,KAAO,QACT5C,CACT,EAEA,IAAIw9P,EAAmB,CAAC,IAAK,IAAK,IAAK,IAAK,KAE5CxuI,EAASyuI,SAAW,SAAS5jO,EAAKvxB,GAChC,IAA0C,IAAtCk1P,EAAiBh5N,QAAQl8B,GAC3B,MAAM,IAAIo1P,WAAW,uBAGvB,OAAO,IAAI1uI,EAAS,KAAM,CAAC1mH,OAAQA,EAAQxB,QAAS,CAAC23C,SAAU5kB,IACjE,EAEA18B,EAAQ09P,aAAen9P,EAAKm9P,aAC5B,IACE,IAAI19P,EAAQ09P,YACd,CAAE,MAAO3zP,GACP/J,EAAQ09P,aAAe,SAASz3P,EAASd,GACvC3E,KAAKyF,QAAUA,EACfzF,KAAK2E,KAAOA,EACZ,IAAI/C,EAAQmE,MAAMN,GAClBzF,KAAKqgE,MAAQz+D,EAAMy+D,KACrB,EACA7gE,EAAQ09P,aAAav9N,UAAYhkB,OAAOszB,OAAOlpC,MAAM45B,WACrDngC,EAAQ09P,aAAav9N,UAAUkB,YAAcrhC,EAAQ09P,YACvD,CAEA,SAASh0P,EAAM6kB,EAAOu+F,GACpB,OAAO,IAAIzmD,SAAQ,SAASC,EAASC,GACnC,IAAI86D,EAAU,IAAIzP,EAAQrjG,EAAOu+F,GAEjC,GAAIuU,EAAQ6+H,QAAU7+H,EAAQ6+H,OAAOM,QACnC,OAAOj6L,EAAO,IAAIvmE,EAAQ09P,aAAa,UAAW,eAGpD,IAAIrqI,EAAM,IAAIF,eAEd,SAASstI,IACPptI,EAAIqtI,OACN,CAEArtI,EAAI0K,OAAS,WACX,IAxFgB4iI,EAChBh3P,EAuFIrE,EAAU,CACZ6F,OAAQkoH,EAAIloH,OACZ4iI,WAAY1a,EAAI0a,WAChBpkI,SA3Fcg3P,EA2FQttI,EAAIutI,yBAA2B,GA1FvDj3P,EAAU,IAAIgoH,EAGQgvI,EAAWj5P,QAAQ,eAAgB,KACzCJ,MAAM,SAASinE,SAAQ,SAAS2iD,GAClD,IAAIwH,EAAQxH,EAAK5pH,MAAM,KACnBwW,EAAM46G,EAAMu2D,QAAQz8J,OACxB,GAAI1U,EAAK,CACP,IAAInJ,EAAQ+jH,EAAMz2F,KAAK,KAAKzP,OAC5B7oB,EAAQmrJ,OAAOh3I,EAAKnJ,EACtB,CACF,IACOhL,IAgFHrE,EAAQo3B,IAAM,gBAAiB22F,EAAMA,EAAIwtI,YAAcv7P,EAAQqE,QAAQ/H,IAAI,iBAC3E,IAAIoc,EAAO,aAAcq1G,EAAMA,EAAIxwH,SAAWwwH,EAAIytI,aAClDx6L,EAAQ,IAAIurD,EAAS7zG,EAAM1Y,GAC7B,EAEA+tH,EAAIoC,QAAU,WACZlvD,EAAO,IAAI7lC,UAAU,0BACvB,EAEA2yF,EAAI0tI,UAAY,WACdx6L,EAAO,IAAI7lC,UAAU,0BACvB,EAEA2yF,EAAI2tI,QAAU,WACZz6L,EAAO,IAAIvmE,EAAQ09P,aAAa,UAAW,cAC7C,EAEArqI,EAAIqa,KAAKrM,EAAQvR,OAAQuR,EAAQ3kG,KAAK,GAEV,YAAxB2kG,EAAQqK,YACVrY,EAAI4tI,iBAAkB,EACW,SAAxB5/H,EAAQqK,cACjBrY,EAAI4tI,iBAAkB,GAGpB,iBAAkB5tI,GAAOsqI,IAC3BtqI,EAAI6tI,aAAe,QAGrB7/H,EAAQ13H,QAAQ4kE,SAAQ,SAAS55D,EAAOxP,GACtCkuH,EAAIsa,iBAAiBxoI,EAAMwP,EAC7B,IAEI0sH,EAAQ6+H,SACV7+H,EAAQ6+H,OAAOr/O,iBAAiB,QAAS4/O,GAEzCptI,EAAIS,mBAAqB,WAEA,IAAnBT,EAAIK,YACN2N,EAAQ6+H,OAAOp/O,oBAAoB,QAAS2/O,EAEhD,GAGFptI,EAAI4V,UAAkC,IAAtB5H,EAAQ+9H,UAA4B,KAAO/9H,EAAQ+9H,UACrE,GACF,CAEA11P,EAAMy3P,UAAW,EAEZ5gQ,EAAKmJ,QACRnJ,EAAKmJ,MAAQA,EACbnJ,EAAKoxH,QAAUA,EACfpxH,EAAKqxH,QAAUA,EACfrxH,EAAKsxH,SAAWA,GAGlB7xH,EAAQ2xH,QAAUA,EAClB3xH,EAAQ4xH,QAAUA,EAClB5xH,EAAQ6xH,SAAWA,EACnB7xH,EAAQ0J,MAAQA,EAEhByS,OAAO66D,eAAeh3E,EAAS,aAAc,CAAE2U,OAAO,GAIvD,CAhhBgB,CAghBd,CAAC,EACH,CAnhBD,CAmhBG8oP,GACHA,EAAS/zP,MAAM03P,UAAW,SAEnB3D,EAAS/zP,MAAMy3P,SAGtB,IAAIE,EAAM5D,GACVz9P,EAAUqhQ,EAAI33P,OACd,QAAkB23P,EAAI33P,MACtB1J,EAAQ0J,MAAQ23P,EAAI33P,MACpB1J,EAAQ2xH,QAAU0vI,EAAI1vI,QACtB3xH,EAAQ4xH,QAAUyvI,EAAIzvI,QACtB5xH,EAAQ6xH,SAAWwvI,EAAIxvI,SACvB5xH,EAAOD,QAAUA,C,mBCziBmDC,EAAOD,QAAkI,WAAY,aAAa,IAAIw2B,EAAE,IAAInoB,EAAE,IAAI2+C,EAAE,KAAKiU,EAAE,cAAc3gE,EAAE,SAASysD,EAAE,SAASu0M,EAAE,OAAOjhQ,EAAE,MAAMm8P,EAAE,OAAOtuO,EAAE,QAAQq/B,EAAE,UAAUgyC,EAAE,OAAOhuB,EAAE,OAAOgoJ,EAAE,eAAehwF,EAAE,6FAA6FhuE,EAAE,sFAAsF8gM,EAAE,CAACl3P,KAAK,KAAKo8P,SAAS,2DAA2Dj6P,MAAM,KAAKk6P,OAAO,wFAAwFl6P,MAAM,KAAKm6P,QAAQ,SAASjrO,GAAG,IAAInoB,EAAE,CAAC,KAAK,KAAK,KAAK,MAAM2+C,EAAEx2B,EAAE,IAAI,MAAM,IAAIA,GAAGnoB,GAAG2+C,EAAE,IAAI,KAAK3+C,EAAE2+C,IAAI3+C,EAAE,IAAI,GAAG,GAAGoW,EAAE,SAAS+R,EAAEnoB,EAAE2+C,GAAG,IAAIiU,EAAE/6C,OAAOsQ,GAAG,OAAOyqC,GAAGA,EAAE11D,QAAQ8C,EAAEmoB,EAAE,GAAG0J,MAAM7xB,EAAE,EAAE4yD,EAAE11D,QAAQ02B,KAAK+qB,GAAGx2B,CAAC,EAAE0tF,EAAE,CAACn3D,EAAEtoC,EAAEq6C,EAAE,SAAStoC,GAAG,IAAInoB,GAAGmoB,EAAEkrO,YAAY10M,EAAErX,KAAKytC,IAAI/0E,GAAG4yD,EAAEtrB,KAAKspB,MAAMjS,EAAE,IAAI1sD,EAAE0sD,EAAE,GAAG,OAAO3+C,GAAG,EAAE,IAAI,KAAKoW,EAAEw8C,EAAE,EAAE,KAAK,IAAIx8C,EAAEnkB,EAAE,EAAE,IAAI,EAAEmkB,EAAE,SAAS+R,EAAEnoB,EAAE2+C,GAAG,GAAG3+C,EAAEm9C,OAAOwB,EAAExB,OAAO,OAAOh1B,EAAEw2B,EAAE3+C,GAAG,IAAI4yD,EAAE,IAAIjU,EAAE3oC,OAAOhW,EAAEgW,SAAS2oC,EAAEtpC,QAAQrV,EAAEqV,SAASpjB,EAAE+N,EAAEk3D,QAAQ1kB,IAAIogB,EAAE/yC,GAAG6+B,EAAEC,EAAE1sD,EAAE,EAAEghQ,EAAEjzP,EAAEk3D,QAAQ1kB,IAAIogB,GAAGlU,GAAG,EAAE,GAAG7+B,GAAG,UAAU+yC,GAAGjU,EAAE1sD,IAAIysD,EAAEzsD,EAAEghQ,EAAEA,EAAEhhQ,KAAK,EAAE,EAAED,EAAE,SAASm2B,GAAG,OAAOA,EAAE,EAAEmf,KAAKukC,KAAK1jD,IAAI,EAAEmf,KAAKspB,MAAMzoC,EAAE,EAAEqJ,EAAE,SAASrJ,GAAG,MAAM,CAAC6lO,EAAEnuO,EAAEqtC,EAAEgkC,EAAEoiK,EAAEnF,EAAEjrL,EAAElxE,EAAEg8K,EAAE9qG,EAAEguB,EAAE+hK,EAAE78O,EAAEsoC,EAAEA,EAAEzsD,EAAEuyG,GAAG5xC,EAAE2gM,EAAEr0M,GAAG/2B,IAAItQ,OAAOsQ,GAAG,IAAIje,cAAc7Q,QAAQ,KAAK,GAAG,EAAE45P,EAAE,SAAS9qO,GAAG,YAAO,IAASA,CAAC,GAAGmhG,EAAE,KAAK0kD,EAAE,CAAC,EAAEA,EAAE1kD,GAAG0kI,EAAE,IAAIx8N,EAAE,SAASrJ,GAAG,OAAOA,aAAaJ,CAAC,EAAEyrO,EAAE,SAASrrO,EAAEnoB,EAAE2+C,EAAEiU,GAAG,IAAI3gE,EAAE,IAAI+N,EAAE,OAAOspH,EAAE,GAAG,iBAAiBtpH,EAAE,CAAC,IAAI0+C,EAAE1+C,EAAEkK,cAAc8jK,EAAEtvH,KAAKzsD,EAAEysD,GAAGC,IAAIqvH,EAAEtvH,GAAGC,EAAE1sD,EAAEysD,GAAG,IAAIu0M,EAAEjzP,EAAE/G,MAAM,KAAK,IAAIhH,GAAGghQ,EAAE/1P,OAAO,EAAE,OAAOirB,EAAE8qO,EAAE,GAAG,KAAK,CAAC,IAAIjhQ,EAAEgO,EAAElJ,KAAKk3K,EAAEh8K,GAAGgO,EAAE/N,EAAED,CAAC,CAAC,OAAO4gE,GAAG3gE,IAAIq3H,EAAEr3H,GAAGA,IAAI2gE,GAAG02D,CAAC,EAAEgqI,EAAE,SAASnrO,EAAEnoB,GAAG,GAAGwxB,EAAErJ,GAAG,OAAOA,EAAE+uC,QAAQ,IAAIvY,EAAE,iBAAiB3+C,EAAEA,EAAE,CAAC,EAAE,OAAO2+C,EAAExB,KAAKh1B,EAAEw2B,EAAE/sB,KAAKx9B,UAAU,IAAI2zB,EAAE42B,EAAE,EAAE80M,EAAE59I,EAAE49I,EAAEvoC,EAAEsoC,EAAEC,EAAExhQ,EAAEu/B,EAAEiiO,EAAEH,EAAE,SAASnrO,EAAEnoB,GAAG,OAAOszP,EAAEnrO,EAAE,CAACrS,OAAO9V,EAAE0zP,GAAGt1M,IAAIp+C,EAAE2zP,GAAGvmM,EAAEptD,EAAE4zP,GAAGC,QAAQ7zP,EAAE6zP,SAAS,EAAE,IAAI9rO,EAAE,WAAW,SAASimO,EAAE7lO,GAAGh2B,KAAKuhQ,GAAGF,EAAErrO,EAAErS,OAAO,MAAK,GAAI3jB,KAAKwtC,MAAMxX,EAAE,CAAC,IAAI/R,EAAE43O,EAAEl8N,UAAU,OAAO1b,EAAEupB,MAAM,SAASxX,GAAGh2B,KAAK2hQ,GAAG,SAAS3rO,GAAG,IAAInoB,EAAEmoB,EAAEg1B,KAAKwB,EAAEx2B,EAAEi2B,IAAI,GAAG,OAAOp+C,EAAE,OAAO,IAAI6hD,KAAK42J,KAAK,GAAGg7C,EAAER,EAAEjzP,GAAG,OAAO,IAAI6hD,KAAK,GAAG7hD,aAAa6hD,KAAK,OAAO,IAAIA,KAAK7hD,GAAG,GAAG,iBAAiBA,IAAI,MAAMqgB,KAAKrgB,GAAG,CAAC,IAAI4yD,EAAE5yD,EAAEgG,MAAMk1H,GAAG,GAAGtoE,EAAE,CAAC,IAAI3gE,EAAE2gE,EAAE,GAAG,GAAG,EAAElU,GAAGkU,EAAE,IAAI,KAAK1zB,UAAU,EAAE,GAAG,OAAOyf,EAAE,IAAIkD,KAAKA,KAAKkyM,IAAInhM,EAAE,GAAG3gE,EAAE2gE,EAAE,IAAI,EAAEA,EAAE,IAAI,EAAEA,EAAE,IAAI,EAAEA,EAAE,IAAI,EAAElU,IAAI,IAAImD,KAAK+Q,EAAE,GAAG3gE,EAAE2gE,EAAE,IAAI,EAAEA,EAAE,IAAI,EAAEA,EAAE,IAAI,EAAEA,EAAE,IAAI,EAAElU,EAAE,CAAC,CAAC,OAAO,IAAImD,KAAK7hD,EAAE,CAA3X,CAA6XmoB,GAAGh2B,KAAKyhQ,GAAGzrO,EAAEilC,GAAG,CAAC,EAAEj7D,KAAKssH,MAAM,EAAEroG,EAAEqoG,KAAK,WAAW,IAAIt2F,EAAEh2B,KAAK2hQ,GAAG3hQ,KAAK6hQ,GAAG7rO,EAAE8rO,cAAc9hQ,KAAK+hQ,GAAG/rO,EAAEgsO,WAAWhiQ,KAAKiiQ,GAAGjsO,EAAEksO,UAAUliQ,KAAKmiQ,GAAGnsO,EAAEosO,SAASpiQ,KAAKqiQ,GAAGrsO,EAAEssO,WAAWtiQ,KAAKuiQ,GAAGvsO,EAAEwsO,aAAaxiQ,KAAKyiQ,GAAGzsO,EAAE0sO,aAAa1iQ,KAAK2iQ,IAAI3sO,EAAE4sO,iBAAiB,EAAE3+O,EAAE4+O,OAAO,WAAW,OAAOvB,CAAC,EAAEr9O,EAAEoE,QAAQ,WAAW,QAAQroB,KAAK2hQ,GAAGv8O,aAAa2zM,EAAE,EAAE90M,EAAE81K,OAAO,SAAS/jK,EAAEnoB,GAAG,IAAI2+C,EAAE20M,EAAEnrO,GAAG,OAAOh2B,KAAKmwD,QAAQtiD,IAAI2+C,GAAGA,GAAGxsD,KAAKowD,MAAMviD,EAAE,EAAEoW,EAAEy1K,QAAQ,SAAS1jK,EAAEnoB,GAAG,OAAOszP,EAAEnrO,GAAGh2B,KAAKmwD,QAAQtiD,EAAE,EAAEoW,EAAE21K,SAAS,SAAS5jK,EAAEnoB,GAAG,OAAO7N,KAAKowD,MAAMviD,GAAGszP,EAAEnrO,EAAE,EAAE/R,EAAE6+O,GAAG,SAAS9sO,EAAEnoB,EAAE2+C,GAAG,OAAO80M,EAAER,EAAE9qO,GAAGh2B,KAAK6N,GAAG7N,KAAKwyE,IAAIhmB,EAAEx2B,EAAE,EAAE/R,EAAE8+O,KAAK,WAAW,OAAO5tN,KAAKspB,MAAMz+D,KAAK8gM,UAAU,IAAI,EAAE78K,EAAE68K,QAAQ,WAAW,OAAO9gM,KAAK2hQ,GAAG9iL,SAAS,EAAE56D,EAAEksC,QAAQ,SAASn6B,EAAEnoB,GAAG,IAAI2+C,EAAExsD,KAAKygE,IAAI6gM,EAAER,EAAEjzP,IAAIA,EAAEk/C,EAAEu0M,EAAEjiO,EAAErJ,GAAG+iM,EAAE,SAAS/iM,EAAEnoB,GAAG,IAAI/N,EAAEwhQ,EAAEH,EAAE30M,EAAEg1M,GAAG9xM,KAAKkyM,IAAIp1M,EAAEq1M,GAAGh0P,EAAEmoB,GAAG,IAAI05B,KAAKlD,EAAEq1M,GAAGh0P,EAAEmoB,GAAGw2B,GAAG,OAAOiU,EAAE3gE,EAAEA,EAAEswD,MAAMvwD,EAAE,EAAEkpI,EAAE,SAAS/yG,EAAEnoB,GAAG,OAAOyzP,EAAEH,EAAE30M,EAAEisI,SAASziK,GAAGh0B,MAAMwqD,EAAEisI,OAAO,MAAMh4H,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,GAAG,GAAG,GAAG,MAAMhoD,MAAM5K,IAAI2+C,EAAE,EAAEuO,EAAE/6D,KAAKmiQ,GAAGtG,EAAE77P,KAAK+hQ,GAAG99O,EAAEjkB,KAAKiiQ,GAAGv+I,EAAE,OAAO1jH,KAAKwhQ,GAAG,MAAM,IAAI,OAAOz0M,GAAG,KAAKgyC,EAAE,OAAOt+B,EAAEs4J,EAAE,EAAE,GAAGA,EAAE,GAAG,IAAI,KAAKrrM,EAAE,OAAO+yC,EAAEs4J,EAAE,EAAE8iC,GAAG9iC,EAAE,EAAE8iC,EAAE,GAAG,KAAKG,EAAE,IAAI7kI,EAAEn3H,KAAKgjQ,UAAUC,WAAW,EAAEpnF,GAAG9gH,EAAEo8D,EAAEp8D,EAAE,EAAEA,GAAGo8D,EAAE,OAAO4hG,EAAEt4J,EAAEx8C,EAAE43J,EAAE53J,GAAG,EAAE43J,GAAGggF,GAAG,KAAKh8P,EAAE,KAAKkxE,EAAE,OAAOg4D,EAAErlB,EAAE,QAAQ,GAAG,KAAKo9I,EAAE,OAAO/3H,EAAErlB,EAAE,UAAU,GAAG,KAAKn3D,EAAE,OAAOw8E,EAAErlB,EAAE,UAAU,GAAG,KAAK5jH,EAAE,OAAOipI,EAAErlB,EAAE,eAAe,GAAG,QAAQ,OAAO1jH,KAAK+kE,QAAQ,EAAE9gD,EAAEmsC,MAAM,SAASp6B,GAAG,OAAOh2B,KAAKmwD,QAAQn6B,GAAE,EAAG,EAAE/R,EAAEi/O,KAAK,SAASltO,EAAEnoB,GAAG,IAAI2+C,EAAEwvM,EAAEsF,EAAEjiO,EAAErJ,GAAG+2B,EAAE,OAAO/sD,KAAKwhQ,GAAG,MAAM,IAAIzoC,GAAGvsK,EAAE,CAAC,EAAEA,EAAE3sD,GAAGktD,EAAE,OAAOP,EAAEukB,GAAGhkB,EAAE,OAAOP,EAAE9+B,GAAGq/B,EAAE,QAAQP,EAAEuyC,GAAGhyC,EAAE,WAAWP,EAAEs0M,GAAG/zM,EAAE,QAAQP,EAAED,GAAGQ,EAAE,UAAUP,EAAE1sD,GAAGitD,EAAE,UAAUP,EAAEiU,GAAG1T,EAAE,eAAeP,GAAGwvM,GAAGjzH,EAAEizH,IAAIn8P,EAAEG,KAAKiiQ,IAAIp0P,EAAE7N,KAAKmiQ,IAAIt0P,EAAE,GAAGmuP,IAAItuO,GAAGsuO,IAAIj9J,EAAE,CAAC,IAAIhkC,EAAE/6D,KAAK+kE,QAAQyN,IAAIzB,EAAE,GAAGhW,EAAE4mM,GAAG5oC,GAAGhwF,GAAGhuE,EAAEuxD,OAAOtsH,KAAK2hQ,GAAG5mM,EAAEyX,IAAIzB,EAAE57B,KAAK3+B,IAAIxW,KAAKiiQ,GAAGlnM,EAAE9P,gBAAgB02M,EAAE,MAAM5oC,GAAG/4N,KAAK2hQ,GAAG5oC,GAAGhwF,GAAG,OAAO/oI,KAAKssH,OAAOtsH,IAAI,EAAEikB,EAAEuuD,IAAI,SAASx8C,EAAEnoB,GAAG,OAAO7N,KAAK+kE,QAAQm+L,KAAKltO,EAAEnoB,EAAE,EAAEoW,EAAE7iB,IAAI,SAAS40B,GAAG,OAAOh2B,KAAKshQ,EAAEjiO,EAAErJ,KAAK,EAAE/R,EAAEo8B,IAAI,SAASogB,EAAE1T,GAAG,IAAIgkB,EAAEgoJ,EAAE/4N,KAAKygE,EAAEhpC,OAAOgpC,GAAG,IAAIsoE,EAAEu4H,EAAEjiO,EAAE0tB,GAAGgO,EAAE,SAAS/kC,GAAG,IAAInoB,EAAEszP,EAAEpoC,GAAG,OAAOuoC,EAAEH,EAAEtzP,EAAEm9C,KAAKn9C,EAAEm9C,OAAO7V,KAAKkvB,MAAMruC,EAAEyqC,IAAIs4J,EAAE,EAAE,GAAGhwF,IAAIr7G,EAAE,OAAO1tB,KAAKwyE,IAAI9kD,EAAE1tB,KAAK+hQ,GAAGthM,GAAG,GAAGsoE,IAAIhqC,EAAE,OAAO/+F,KAAKwyE,IAAIusB,EAAE/+F,KAAK6hQ,GAAGphM,GAAG,GAAGsoE,IAAIlpI,EAAE,OAAOk7D,EAAE,GAAG,GAAGguE,IAAIizH,EAAE,OAAOjhM,EAAE,GAAG,IAAI8gM,GAAG9qL,EAAE,CAAC,EAAEA,EAAExkB,GAAG1+C,EAAEkjE,EAAE+vL,GAAGt0M,EAAEukB,EAAEjxE,GAAGk2B,EAAE+6C,GAAGg4D,IAAI,EAAE9kH,EAAEjkB,KAAK2hQ,GAAG9iL,UAAUpe,EAAEo7L,EAAE,OAAOyF,EAAEH,EAAEl9O,EAAEjkB,KAAK,EAAEikB,EAAEP,SAAS,SAASsS,EAAEnoB,GAAG,OAAO7N,KAAKqgD,KAAK,EAAErqB,EAAEnoB,EAAE,EAAEoW,EAAEL,OAAO,SAASoS,GAAG,IAAInoB,EAAE7N,KAAKwsD,EAAExsD,KAAKgjQ,UAAU,IAAIhjQ,KAAKqoB,UAAU,OAAOmkC,EAAE22M,aAAapqC,EAAE,IAAIt4J,EAAEzqC,GAAG,uBAAuBl2B,EAAEwhQ,EAAEhjM,EAAEt+D,MAAMusD,EAAEvsD,KAAKqiQ,GAAGvB,EAAE9gQ,KAAKuiQ,GAAG1iQ,EAAEG,KAAK+hQ,GAAG/F,EAAExvM,EAAEu0M,SAASrzO,EAAE8+B,EAAEw0M,OAAOj0M,EAAEP,EAAE42M,SAASrkK,EAAE,SAAS/oE,EAAEw2B,EAAE1sD,EAAEysD,GAAG,OAAOv2B,IAAIA,EAAEw2B,IAAIx2B,EAAEnoB,EAAE4yD,KAAK3gE,EAAE0sD,GAAG/zC,MAAM,EAAE8zC,EAAE,EAAEwkB,EAAE,SAAS/6C,GAAG,OAAOsrO,EAAE/0M,EAAEA,EAAE,IAAI,GAAGv2B,EAAE,IAAI,EAAE+yG,EAAEh8E,GAAG,SAAS/2B,EAAEnoB,EAAE2+C,GAAG,IAAIiU,EAAEzqC,EAAE,GAAG,KAAK,KAAK,OAAOw2B,EAAEiU,EAAE1oD,cAAc0oD,CAAC,EAAE,OAAOA,EAAEv5D,QAAQ6zD,GAAE,SAAU/kC,EAAEyqC,GAAG,OAAOA,GAAG,SAASzqC,GAAG,OAAOA,GAAG,IAAI,KAAK,OAAOtQ,OAAO7X,EAAEg0P,IAAIppP,OAAO,GAAG,IAAI,OAAO,OAAO6oP,EAAE/0M,EAAE1+C,EAAEg0P,GAAG,EAAE,KAAK,IAAI,IAAI,OAAOhiQ,EAAE,EAAE,IAAI,KAAK,OAAOyhQ,EAAE/0M,EAAE1sD,EAAE,EAAE,EAAE,KAAK,IAAI,MAAM,OAAOk/F,EAAEvyC,EAAE62M,YAAYxjQ,EAAE6tB,EAAE,GAAG,IAAI,OAAO,OAAOqxE,EAAErxE,EAAE7tB,GAAG,IAAI,IAAI,OAAOgO,EAAEo0P,GAAG,IAAI,KAAK,OAAOX,EAAE/0M,EAAE1+C,EAAEo0P,GAAG,EAAE,KAAK,IAAI,IAAI,OAAOv8O,OAAO7X,EAAEs0P,IAAI,IAAI,KAAK,OAAOpjK,EAAEvyC,EAAE82M,YAAYz1P,EAAEs0P,GAAGnG,EAAE,GAAG,IAAI,MAAM,OAAOj9J,EAAEvyC,EAAE+2M,cAAc11P,EAAEs0P,GAAGnG,EAAE,GAAG,IAAI,OAAO,OAAOA,EAAEnuP,EAAEs0P,IAAI,IAAI,IAAI,OAAOz8O,OAAO6mC,GAAG,IAAI,KAAK,OAAO+0M,EAAE/0M,EAAEA,EAAE,EAAE,KAAK,IAAI,IAAI,OAAOwkB,EAAE,GAAG,IAAI,KAAK,OAAOA,EAAE,GAAG,IAAI,IAAI,OAAOg4D,EAAEx8E,EAAEu0M,GAAE,GAAI,IAAI,IAAI,OAAO/3H,EAAEx8E,EAAEu0M,GAAE,GAAI,IAAI,IAAI,OAAOp7O,OAAOo7O,GAAG,IAAI,KAAK,OAAOQ,EAAE/0M,EAAEu0M,EAAE,EAAE,KAAK,IAAI,IAAI,OAAOp7O,OAAO7X,EAAE40P,IAAI,IAAI,KAAK,OAAOnB,EAAE/0M,EAAE1+C,EAAE40P,GAAG,EAAE,KAAK,IAAI,MAAM,OAAOnB,EAAE/0M,EAAE1+C,EAAE80P,IAAI,EAAE,KAAK,IAAI,IAAI,OAAO7iQ,EAAE,OAAO,IAAI,CAAptB,CAAstBk2B,IAAIl2B,EAAEoH,QAAQ,IAAI,GAAI,GAAE,EAAE+c,EAAEi9O,UAAU,WAAW,OAAO,IAAI/rN,KAAKkvB,MAAMrkE,KAAK2hQ,GAAG6B,oBAAoB,GAAG,EAAEv/O,EAAE22H,KAAK,SAASn6E,EAAEsQ,EAAEgoJ,GAAG,IAAIhwF,EAAEhuE,EAAE/6D,KAAK67P,EAAEyF,EAAEjiO,EAAE0xC,GAAG9sD,EAAEk9O,EAAE1gM,GAAGijD,GAAGz/F,EAAEi9O,YAAYlhQ,KAAKkhQ,aAAarzP,EAAEspH,EAAEn3H,KAAKikB,EAAE43J,EAAE,WAAW,OAAOylF,EAAEr9O,EAAE82C,EAAE92C,EAAE,EAAE,OAAO43O,GAAG,KAAK98J,EAAEgqC,EAAE8yC,IAAI,GAAG,MAAM,KAAKnuJ,EAAEq7G,EAAE8yC,IAAI,MAAM,KAAK9uH,EAAEg8E,EAAE8yC,IAAI,EAAE,MAAM,KAAKmgF,EAAEjzH,GAAG5R,EAAEzT,GAAG,OAAO,MAAM,KAAK7jH,EAAEkpI,GAAG5R,EAAEzT,GAAG,MAAM,MAAM,KAAKo9I,EAAE/3H,EAAE5R,EAAE3qE,EAAE,MAAM,KAAKD,EAAEw8E,EAAE5R,EAAEtpH,EAAE,MAAM,KAAK/N,EAAEipI,EAAE5R,EAAEnhG,EAAE,MAAM,QAAQ+yG,EAAE5R,EAAE,OAAO4hG,EAAEhwF,EAAEu4H,EAAEzhQ,EAAEkpI,EAAE,EAAE9kH,EAAEgnC,YAAY,WAAW,OAAOjrD,KAAKowD,MAAM1iC,GAAGu0O,EAAE,EAAEh+O,EAAE++O,QAAQ,WAAW,OAAOnnF,EAAE77K,KAAKuhQ,GAAG,EAAEt9O,EAAEN,OAAO,SAASqS,EAAEnoB,GAAG,IAAImoB,EAAE,OAAOh2B,KAAKuhQ,GAAG,IAAI/0M,EAAExsD,KAAK+kE,QAAQtE,EAAE4gM,EAAErrO,EAAEnoB,GAAE,GAAI,OAAO4yD,IAAIjU,EAAE+0M,GAAG9gM,GAAGjU,CAAC,EAAEvoC,EAAE8gD,MAAM,WAAW,OAAOu8L,EAAEH,EAAEnhQ,KAAK2hQ,GAAG3hQ,KAAK,EAAEikB,EAAEw0K,OAAO,WAAW,OAAO,IAAI/oI,KAAK1vD,KAAK8gM,UAAU,EAAE78K,EAAE8oG,OAAO,WAAW,OAAO/sH,KAAKqoB,UAAUroB,KAAKqmG,cAAc,IAAI,EAAEpiF,EAAEoiF,YAAY,WAAW,OAAOrmG,KAAK2hQ,GAAGt7J,aAAa,EAAEpiF,EAAEmB,SAAS,WAAW,OAAOplB,KAAK2hQ,GAAG8B,aAAa,EAAE5H,CAAC,CAA3rJ,GAA+rJx7N,EAAEzK,EAAE+J,UAAU,OAAOwhO,EAAExhO,UAAUU,EAAE,CAAC,CAAC,MAAMogC,GAAG,CAAC,KAAK3gE,GAAG,CAAC,KAAKysD,GAAG,CAAC,KAAKu0M,GAAG,CAAC,KAAKjhQ,GAAG,CAAC,KAAK6tB,GAAG,CAAC,KAAKqxE,GAAG,CAAC,KAAKhuB,IAAIhD,SAAQ,SAAU/3C,GAAGqK,EAAErK,EAAE,IAAI,SAASnoB,GAAG,OAAO7N,KAAK8iQ,GAAGj1P,EAAEmoB,EAAE,GAAGA,EAAE,GAAG,CAAE,IAAGmrO,EAAE5/L,OAAO,SAASvrC,EAAEnoB,GAAG,OAAOmoB,EAAE0tO,KAAK1tO,EAAEnoB,EAAE+nB,EAAEurO,GAAGnrO,EAAE0tO,IAAG,GAAIvC,CAAC,EAAEA,EAAEx9O,OAAO09O,EAAEF,EAAEwC,QAAQtkO,EAAE8hO,EAAE4B,KAAK,SAAS/sO,GAAG,OAAOmrO,EAAE,IAAInrO,EAAE,EAAEmrO,EAAE/iD,GAAGviC,EAAE1kD,GAAGgqI,EAAEyC,GAAG/nF,EAAEslF,EAAE9hO,EAAE,CAAC,EAAE8hO,CAAE,CAA72NtzP,E,uBCAfpO,EAAOD,QAA6K,SAAUqO,GAAG,aAAa,SAASmuP,EAAEnuP,GAAG,OAAOA,GAAG,iBAAiBA,GAAG,YAAYA,EAAEA,EAAE,CAAC8S,QAAQ9S,EAAE,CAAC,IAAI0+C,EAAEyvM,EAAEnuP,GAAGkjE,EAAE,CAACpsE,KAAK,KAAK0+P,YAAY,kDAAkDv8P,MAAM,KAAKi6P,SAAS,uDAAuDj6P,MAAM,KAAKy8P,cAAc,qCAAqCz8P,MAAM,KAAKw8P,YAAY,uBAAuBx8P,MAAM,KAAKk6P,OAAO,2FAA2Fl6P,MAAM,KAAKm8P,UAAU,EAAE9/N,QAAQ,CAAC0gO,GAAG,OAAOC,IAAI,UAAU3yJ,EAAE,aAAa4yJ,GAAG,wBAAwBC,IAAI,6BAA6BC,KAAK,oCAAoCC,aAAa,CAACC,OAAO,QAAQC,KAAK,UAAU73M,EAAE,gBAAgBtoC,EAAE,YAAYogP,GAAG,aAAatlK,EAAE,WAAWulK,GAAG,WAAWvzL,EAAE,SAASmuI,GAAG,UAAU28C,EAAE,SAAS0I,GAAG,WAAWxpM,EAAE,SAASypM,GAAG,WAAWvD,QAAQ,SAASpzP,GAAG,OAAOA,EAAE,GAAG,GAAG,OAAO0+C,EAAE5rC,QAAQgD,OAAOotD,EAAE,MAAK,GAAIA,CAAE,CAAtjCirL,CAAE,EAAQ,M,mBCAzBv8P,EAAOD,QAAwJ,WAAY,aAAa,OAAO,SAASqO,EAAEmoB,GAAG,IAAIyqC,EAAEzqC,EAAE2J,UAAU6sB,EAAEiU,EAAE78C,OAAO68C,EAAE78C,OAAO,SAAS/V,GAAG,IAAImoB,EAAEh2B,KAAKygE,EAAEzgE,KAAKgjQ,UAAU,IAAIhjQ,KAAKqoB,UAAU,OAAOmkC,EAAEylE,KAAKjyH,KAAPwsD,CAAa3+C,GAAG,IAAI0+C,EAAEvsD,KAAK6iQ,SAAShjQ,GAAGgO,GAAG,wBAAwB3G,QAAQ,+DAA8D,SAAU2G,GAAG,OAAOA,GAAG,IAAI,IAAI,OAAOsnC,KAAKukC,MAAM1jD,EAAE+rO,GAAG,GAAG,GAAG,IAAI,KAAK,OAAOthM,EAAEwgM,QAAQjrO,EAAEisO,IAAI,IAAI,OAAO,OAAOjsO,EAAEyuO,WAAW,IAAI,OAAO,OAAOzuO,EAAE0uO,cAAc,IAAI,KAAK,OAAOjkM,EAAEwgM,QAAQjrO,EAAE2uO,OAAO,KAAK,IAAI,IAAI,IAAI,KAAK,OAAOp4M,EAAEA,EAAEv2B,EAAE2uO,OAAO,MAAM92P,EAAE,EAAE,EAAE,KAAK,IAAI,IAAI,IAAI,KAAK,OAAO0+C,EAAEA,EAAEv2B,EAAE4uO,UAAU,MAAM/2P,EAAE,EAAE,EAAE,KAAK,IAAI,IAAI,IAAI,KAAK,OAAO0+C,EAAEA,EAAE7mC,OAAO,IAAIsQ,EAAEqsO,GAAG,GAAGrsO,EAAEqsO,IAAI,MAAMx0P,EAAE,EAAE,EAAE,KAAK,IAAI,IAAI,OAAOsnC,KAAKspB,MAAMzoC,EAAE2rO,GAAG9iL,UAAU,KAAK,IAAI,IAAI,OAAO7oD,EAAE2rO,GAAG9iL,UAAU,IAAI,IAAI,MAAM,IAAI7oD,EAAE6uO,aAAa,IAAI,IAAI,MAAM,MAAM,IAAI7uO,EAAE6uO,WAAW,QAAQ,IAAI,QAAQ,OAAOh3P,EAAG,IAAG,OAAO2+C,EAAEylE,KAAKjyH,KAAPwsD,CAAa3sD,EAAE,CAAC,CAAE,CAAp/Bm2B,E,mBCAfv2B,EAAOD,QAA2J,WAAY,aAAa,IAAIqO,EAAE,CAACi2P,IAAI,YAAYD,GAAG,SAAS1yJ,EAAE,aAAa4yJ,GAAG,eAAeC,IAAI,sBAAsBC,KAAK,6BAA6BjuO,EAAE,0FAA0Fw2B,EAAE,OAAOiU,EAAE,QAAQ3gE,EAAE,qBAAqBk8P,EAAE,CAAC,EAAEzvM,EAAE,SAAS1+C,GAAG,OAAOA,GAAGA,IAAIA,EAAE,GAAG,KAAK,IAAI,EAAMhO,EAAE,SAASgO,GAAG,OAAO,SAASmoB,GAAGh2B,KAAK6N,IAAImoB,CAAC,CAAC,EAAE+2B,EAAE,CAAC,sBAAsB,SAASl/C,IAAI7N,KAAK8kQ,OAAO9kQ,KAAK8kQ,KAAK,CAAC,IAAIvhM,OAAO,SAAS11D,GAAG,IAAIA,EAAE,OAAO,EAAE,GAAG,MAAMA,EAAE,OAAO,EAAE,IAAImoB,EAAEnoB,EAAEgG,MAAM,gBAAgB24C,EAAE,GAAGx2B,EAAE,KAAKA,EAAE,IAAI,GAAG,OAAO,IAAIw2B,EAAE,EAAE,MAAMx2B,EAAE,IAAIw2B,EAAEA,CAAC,CAAhI,CAAkI3+C,EAAE,GAAGkxF,EAAE,SAASlxF,GAAG,IAAImoB,EAAEgmO,EAAEnuP,GAAG,OAAOmoB,IAAIA,EAAE6Q,QAAQ7Q,EAAEA,EAAEu2B,EAAElrD,OAAO20B,EAAE+2B,GAAG,EAAE+zM,EAAE,SAASjzP,EAAEmoB,GAAG,IAAIw2B,EAAEiU,EAAEu7L,EAAEoH,SAAS,GAAG3iM,GAAG,IAAI,IAAI3gE,EAAE,EAAEA,GAAG,GAAGA,GAAG,EAAE,GAAG+N,EAAEg5B,QAAQ45B,EAAE3gE,EAAE,EAAEk2B,KAAK,EAAE,CAACw2B,EAAE1sD,EAAE,GAAG,KAAK,OAAO0sD,EAAE3+C,KAAKmoB,EAAE,KAAK,MAAM,OAAOw2B,CAAC,EAAEukB,EAAE,CAACtzD,EAAE,CAAC3d,EAAE,SAAS+N,GAAG7N,KAAK+kQ,UAAUjE,EAAEjzP,GAAE,EAAG,GAAGhO,EAAE,CAACC,EAAE,SAAS+N,GAAG7N,KAAK+kQ,UAAUjE,EAAEjzP,GAAE,EAAG,GAAGwzP,EAAE,CAAC,KAAK,SAASxzP,GAAG7N,KAAKglQ,aAAa,KAAKn3P,CAAC,GAAGo3P,GAAG,CAACz4M,EAAE,SAAS3+C,GAAG7N,KAAKglQ,aAAa,IAAIn3P,CAAC,GAAGq3P,IAAI,CAAC,QAAQ,SAASr3P,GAAG7N,KAAKglQ,cAAcn3P,CAAC,GAAG0+C,EAAE,CAACkU,EAAE5gE,EAAE,YAAYslQ,GAAG,CAAC1kM,EAAE5gE,EAAE,YAAYokB,EAAE,CAACw8C,EAAE5gE,EAAE,YAAYwkQ,GAAG,CAAC5jM,EAAE5gE,EAAE,YAAYulQ,EAAE,CAAC3kM,EAAE5gE,EAAE,UAAUk/F,EAAE,CAACt+B,EAAE5gE,EAAE,UAAUwlQ,GAAG,CAAC5kM,EAAE5gE,EAAE,UAAUykQ,GAAG,CAAC7jM,EAAE5gE,EAAE,UAAUg8K,EAAE,CAACp7G,EAAE5gE,EAAE,QAAQylQ,GAAG,CAAC94M,EAAE3sD,EAAE,QAAQ0lQ,GAAG,CAACzlQ,EAAE,SAAS+N,GAAG,IAAImoB,EAAEgmO,EAAEiF,QAAQz0M,EAAE3+C,EAAEgG,MAAM,OAAO,GAAG7T,KAAK8W,IAAI01C,EAAE,GAAGx2B,EAAE,IAAI,IAAIyqC,EAAE,EAAEA,GAAG,GAAGA,GAAG,EAAEzqC,EAAEyqC,GAAGv5D,QAAQ,SAAS,MAAM2G,IAAI7N,KAAK8W,IAAI2pD,EAAE,GAAGo7L,EAAE,CAACp7L,EAAE5gE,EAAE,UAAU0kQ,GAAG,CAAC/3M,EAAE3sD,EAAE,UAAU2lQ,IAAI,CAAC1lQ,EAAE,SAAS+N,GAAG,IAAImoB,EAAE+oE,EAAE,UAAUvyC,GAAGuyC,EAAE,gBAAgB/oE,EAAEjb,KAAI,SAAUlN,GAAG,OAAOA,EAAE4K,MAAM,EAAE,EAAG,KAAIouB,QAAQh5B,GAAG,EAAE,GAAG2+C,EAAE,EAAE,MAAM,IAAIzmD,MAAM/F,KAAKkjB,MAAMspC,EAAE,IAAIA,CAAC,GAAGi5M,KAAK,CAAC3lQ,EAAE,SAAS+N,GAAG,IAAImoB,EAAE+oE,EAAE,UAAUl4D,QAAQh5B,GAAG,EAAE,GAAGmoB,EAAE,EAAE,MAAM,IAAIjwB,MAAM/F,KAAKkjB,MAAM8S,EAAE,IAAIA,CAAC,GAAG0vO,EAAE,CAAC,WAAW7lQ,EAAE,SAAS8lQ,GAAG,CAACn5M,EAAE,SAAS3+C,GAAG7N,KAAK6jB,KAAK0oC,EAAE1+C,EAAE,GAAG+3P,KAAK,CAAC,QAAQ/lQ,EAAE,SAASgmQ,EAAE94M,EAAE+4M,GAAG/4M,GAAG,SAASr/B,EAAE8+B,GAAG,IAAIiU,EAAE3gE,EAAE2gE,EAAEjU,EAAE1sD,EAAEk8P,GAAGA,EAAE74N,QAAQ,IAAI,IAAIopB,GAAGC,EAAEiU,EAAEv5D,QAAQ,qCAAoC,SAAU8uB,EAAEw2B,EAAEiU,GAAG,IAAIu7L,EAAEv7L,GAAGA,EAAEjoD,cAAc,OAAOg0C,GAAG1sD,EAAE2gE,IAAI5yD,EAAE4yD,IAAI3gE,EAAEk8P,GAAG90P,QAAQ,kCAAiC,SAAU2G,EAAEmoB,EAAEw2B,GAAG,OAAOx2B,GAAGw2B,EAAE/zC,MAAM,EAAG,GAAG,KAAI5E,MAAMmiB,GAAGn2B,EAAE0sD,EAAExhD,OAAOgiD,EAAE,EAAEA,EAAEltD,EAAEktD,GAAG,EAAE,CAAC,IAAIgyC,EAAExyC,EAAEQ,GAAG+zM,EAAE/vL,EAAEguB,GAAGrxE,EAAEozO,GAAGA,EAAE,GAAG/nC,EAAE+nC,GAAGA,EAAE,GAAGv0M,EAAEQ,GAAGgsK,EAAE,CAACjuM,MAAM4C,EAAE6qB,OAAOwgL,GAAGh6H,EAAE73F,QAAQ,WAAW,GAAG,CAAC,OAAO,SAAS2G,GAAG,IAAI,IAAImoB,EAAE,CAAC,EAAEw2B,EAAE,EAAEiU,EAAE,EAAEjU,EAAE3sD,EAAE2sD,GAAG,EAAE,CAAC,IAAI1sD,EAAEysD,EAAEC,GAAG,GAAG,iBAAiB1sD,EAAE2gE,GAAG3gE,EAAEiL,WAAW,CAAC,IAAIixP,EAAEl8P,EAAEgrB,MAAMiiC,EAAEjtD,EAAEy4C,OAAOwmD,EAAElxF,EAAE4K,MAAMgoD,GAAGqgM,EAAE9E,EAAExxN,KAAKu0D,GAAG,GAAGhyC,EAAEnnD,KAAKowB,EAAE8qO,GAAGjzP,EAAEA,EAAE3G,QAAQ45P,EAAE,GAAG,CAAC,CAAC,OAAO,SAASjzP,GAAG,IAAImoB,EAAEnoB,EAAEk3P,UAAU,QAAG,IAAS/uO,EAAE,CAAC,IAAIw2B,EAAE3+C,EAAEk4P,MAAM/vO,EAAEw2B,EAAE,KAAK3+C,EAAEk4P,OAAO,IAAI,KAAKv5M,IAAI3+C,EAAEk4P,MAAM,UAAUl4P,EAAEk3P,SAAS,CAAC,CAAxH,CAA0H/uO,GAAGA,CAAC,CAAC,CAAC,OAAO,SAASnoB,EAAEmoB,EAAEw2B,GAAGA,EAAEntB,EAAE6yE,mBAAkB,EAAGrkG,GAAGA,EAAEm4P,oBAAoBz5M,EAAE1+C,EAAEm4P,mBAAmB,IAAIvlM,EAAEzqC,EAAE2J,UAAU7/B,EAAE2gE,EAAEjzB,MAAMizB,EAAEjzB,MAAM,SAAS3/B,GAAG,IAAImoB,EAAEnoB,EAAEm9C,KAAKyV,EAAE5yD,EAAEo+C,IAAIM,EAAE1+C,EAAE4xB,KAAKz/B,KAAKwhQ,GAAG/gM,EAAE,IAAI5gE,EAAE0sD,EAAE,GAAG,GAAG,iBAAiB1sD,EAAE,CAAC,IAAIktD,GAAE,IAAKR,EAAE,GAAGwyC,GAAE,IAAKxyC,EAAE,GAAGu0M,EAAE/zM,GAAGgyC,EAAEhuB,EAAExkB,EAAE,GAAGwyC,IAAIhuB,EAAExkB,EAAE,IAAIyvM,EAAEh8P,KAAKgjQ,WAAWj2M,GAAGgkB,IAAIirL,EAAExvM,EAAEo3M,GAAG7yL,IAAI/wE,KAAK2hQ,GAAG,SAAS9zP,EAAEmoB,EAAEw2B,GAAG,IAAI,GAAG,CAAC,IAAI,KAAK3lB,QAAQ7Q,IAAI,EAAE,OAAO,IAAI05B,MAAM,MAAM15B,EAAE,IAAI,GAAGnoB,GAAG,IAAI4yD,EAAE/yC,EAAEsI,EAAFtI,CAAK7f,GAAG/N,EAAE2gE,EAAE58C,KAAKm4O,EAAEv7L,EAAEv9C,MAAMqpC,EAAEkU,EAAE3pD,IAAIjX,EAAE4gE,EAAEslM,MAAMh5M,EAAE0T,EAAE+nL,QAAQzpJ,EAAEt+B,EAAEgoL,QAAQqY,EAAErgM,EAAEukM,aAAaj0L,EAAEtQ,EAAEqkM,KAAK/rC,EAAE,IAAIrpK,KAAKzrC,EAAEsoC,IAAIzsD,GAAGk8P,EAAE,EAAEjjC,EAAEmpC,WAAWrG,EAAE/7P,GAAGi5N,EAAE+oC,cAAc4D,EAAE,EAAE5lQ,IAAIk8P,IAAI0J,EAAE1J,EAAE,EAAEA,EAAE,EAAEjjC,EAAEipC,YAAY,IAAI3iO,EAAEx/B,GAAG,EAAE6jH,EAAE32D,GAAG,EAAE8uH,EAAE98E,GAAG,EAAEo4B,EAAE2pI,GAAG,EAAE,OAAO/vL,EAAE,IAAIrhB,KAAKA,KAAKkyM,IAAI/F,EAAE6J,EAAEzhP,EAAEob,EAAEqkF,EAAEm4D,EAAE1kD,EAAE,GAAGpmD,EAAExN,OAAO,MAAM/W,EAAE,IAAIkD,KAAKA,KAAKkyM,IAAI/F,EAAE6J,EAAEzhP,EAAEob,EAAEqkF,EAAEm4D,EAAE1kD,IAAI,IAAIznE,KAAKmsM,EAAE6J,EAAEzhP,EAAEob,EAAEqkF,EAAEm4D,EAAE1kD,EAAE,CAAC,MAAMtpH,GAAG,OAAO,IAAI6hD,KAAK,GAAG,CAAC,CAAzc,CAA2c15B,EAAEn2B,EAAE4gE,GAAGzgE,KAAKssH,OAAOv7C,IAAG,IAAKA,IAAI/wE,KAAKuhQ,GAAGvhQ,KAAK2jB,OAAOotD,GAAGwwL,IAAIT,GAAG9qO,GAAGh2B,KAAK4jB,OAAO/jB,KAAKG,KAAK2hQ,GAAG,IAAIjyM,KAAK,KAAKssM,EAAE,CAAC,CAAC,MAAM,GAAGn8P,aAAa6/B,MAAM,IAAI,IAAIq5L,EAAEl5N,EAAEkL,OAAOkZ,EAAE,EAAEA,GAAG80M,EAAE90M,GAAG,EAAE,CAACsoC,EAAE,GAAG1sD,EAAEokB,EAAE,GAAG,IAAI43O,EAAErvM,EAAExqD,MAAMhC,KAAKusD,GAAG,GAAGsvM,EAAExzO,UAAU,CAACroB,KAAK2hQ,GAAG9F,EAAE8F,GAAG3hQ,KAAKuhQ,GAAG1F,EAAE0F,GAAGvhQ,KAAKssH,OAAO,KAAK,CAACroG,IAAI80M,IAAI/4N,KAAK2hQ,GAAG,IAAIjyM,KAAK,IAAI,MAAM5vD,EAAE8F,KAAK5F,KAAK6N,EAAE,CAAC,CAAE,CAA5kHmoB,E,mBCAfv2B,EAAOD,QAAmJ,WAAY,aAAa,OAAO,SAASqO,EAAE/N,EAAEk2B,GAAGl2B,EAAE6/B,UAAUyyE,UAAU,SAASvkG,EAAE/N,EAAEysD,EAAEQ,GAAG,IAAIP,EAAEx2B,EAAEnoB,GAAGmuP,EAAEhmO,EAAEl2B,GAAG2gE,EAAE,OAAO1T,EAAEA,GAAG,MAAM,GAAG+zM,EAAE,MAAM/zM,EAAE,GAAG,OAAO0T,EAAEzgE,KAAK05L,QAAQltI,EAAED,IAAIvsD,KAAK45L,SAASptI,EAAED,MAAMu0M,EAAE9gQ,KAAK45L,SAASoiE,EAAEzvM,IAAIvsD,KAAK05L,QAAQsiE,EAAEzvM,MAAMkU,EAAEzgE,KAAK45L,SAASptI,EAAED,IAAIvsD,KAAK05L,QAAQltI,EAAED,MAAMu0M,EAAE9gQ,KAAK05L,QAAQsiE,EAAEzvM,IAAIvsD,KAAK45L,SAASoiE,EAAEzvM,GAAG,CAAC,CAAE,CAA5czsD,E,mBCAfL,EAAOD,QAAwJ,WAAY,aAAa,OAAO,SAASqO,EAAE/N,GAAGA,EAAE6/B,UAAUosB,eAAe,SAASl+C,EAAE/N,GAAG,OAAOE,KAAK+5L,OAAOlsL,EAAE/N,IAAIE,KAAK45L,SAAS/rL,EAAE/N,EAAE,CAAC,CAAE,CAArRA,E,mBCAfL,EAAOD,QAAkJ,WAAY,aAAa,IAAIw2B,EAAE,CAACnS,KAAK,EAAEX,MAAM,EAAEpM,IAAI,EAAEq2C,KAAK,EAAE84M,OAAO,EAAE3hH,OAAO,GAAGz2I,EAAE,CAAC,EAAE,OAAO,SAAS2+C,EAAE1sD,EAAEk8P,GAAG,IAAIv7L,EAAE5gE,EAAE,SAASm2B,EAAEw2B,EAAE1sD,QAAG,IAASA,IAAIA,EAAE,CAAC,GAAG,IAAIk8P,EAAE,IAAItsM,KAAK15B,GAAGyqC,EAAE,SAASzqC,EAAEw2B,QAAG,IAASA,IAAIA,EAAE,CAAC,GAAG,IAAI1sD,EAAE0sD,EAAE05M,cAAc,QAAQlK,EAAEhmO,EAAE,IAAIl2B,EAAE2gE,EAAE5yD,EAAEmuP,GAAG,OAAOv7L,IAAIA,EAAE,IAAI0lM,KAAKC,eAAe,QAAQ,CAACC,QAAO,EAAGC,SAAStwO,EAAEnS,KAAK,UAAUX,MAAM,UAAUpM,IAAI,UAAUq2C,KAAK,UAAU84M,OAAO,UAAU3hH,OAAO,UAAU4hH,aAAapmQ,IAAI+N,EAAEmuP,GAAGv7L,GAAGA,CAAC,CAA3Q,CAA6QjU,EAAE1sD,GAAG,OAAO2gE,EAAE8lM,cAAcvK,EAAE,EAAE8E,EAAE,SAASjzP,EAAE2+C,GAAG,IAAI,IAAI1sD,EAAED,EAAEgO,EAAE2+C,GAAGiU,EAAE,GAAGqgM,EAAE,EAAEA,EAAEhhQ,EAAEiL,OAAO+1P,GAAG,EAAE,CAAC,IAAI/zM,EAAEjtD,EAAEghQ,GAAGv0M,EAAEQ,EAAE9nD,KAAKgf,EAAE8oC,EAAE54C,MAAMuZ,EAAEsI,EAAEu2B,GAAG7+B,GAAG,IAAI+yC,EAAE/yC,GAAG09B,SAASnnC,EAAE,IAAI,CAAC,IAAI8sD,EAAEtQ,EAAE,GAAGs4J,EAAE,KAAKhoJ,EAAE,EAAEA,EAAE2yC,EAAEjjD,EAAE,GAAG,IAAIA,EAAE,GAAG,IAAIA,EAAE,GAAG,IAAIs4J,EAAE,IAAIt4J,EAAE,GAAG,IAAIA,EAAE,GAAG,OAAOs+B,GAAGlxF,EAAE,OAAOmuP,EAAE/vM,IAAIy3D,GAAGo9E,WAAW/hG,GAAGA,EAAE,MAAM,GAAG,EAAEhyC,EAAEjtD,EAAE6/B,UAAUotB,EAAEy5M,GAAG,SAASxwO,EAAEnoB,QAAG,IAASmoB,IAAIA,EAAEyqC,GAAG,IAAIjU,EAAExsD,KAAKkhQ,YAAYphQ,EAAEE,KAAKy4L,SAAS54L,EAAEC,EAAEwmG,eAAe,QAAQ,CAACggK,SAAStwO,IAAI8qO,EAAE3rN,KAAKkvB,OAAOvkE,EAAE,IAAI4vD,KAAK7vD,IAAI,IAAI,IAAIktD,EAAEivM,EAAEn8P,GAAGqjQ,KAAK,cAAcljQ,KAAK2iQ,KAAKzB,UAAU,IAAI/rN,KAAKkvB,MAAMvkE,EAAE0jQ,oBAAoB,IAAI1C,GAAE,GAAI,GAAGjzP,EAAE,CAAC,IAAI0+C,EAAEQ,EAAEm0M,YAAYn0M,EAAEA,EAAE1M,IAAImM,EAAED,EAAE,SAAS,CAAC,OAAOQ,EAAE00M,GAAGgF,UAAUzwO,EAAE+2B,CAAC,EAAEA,EAAE83M,WAAW,SAAS7uO,GAAG,IAAInoB,EAAE7N,KAAKyhQ,GAAGgF,WAAWzK,EAAEwK,GAAGE,QAAQl6M,EAAE3sD,EAAEG,KAAK8gM,UAAUjzL,EAAE,CAACq4P,aAAalwO,IAAIlyB,MAAK,SAAUkyB,GAAG,MAAM,iBAAiBA,EAAE/wB,KAAK8S,aAAc,IAAG,OAAOy0C,GAAGA,EAAEr4C,KAAK,EAAE,IAAIo4C,EAAEQ,EAAEoD,QAAQpD,EAAEoD,QAAQ,SAASn6B,EAAEnoB,GAAG,IAAI7N,KAAKyhQ,KAAKzhQ,KAAKyhQ,GAAGgF,UAAU,OAAOl6M,EAAE3mD,KAAK5F,KAAKg2B,EAAEnoB,GAAG,IAAI2+C,EAAEwvM,EAAEh8P,KAAK4jB,OAAO,4BAA4B,OAAO2oC,EAAE3mD,KAAK4mD,EAAEx2B,EAAEnoB,GAAG24P,GAAGxmQ,KAAKyhQ,GAAGgF,WAAU,EAAG,EAAEzK,EAAEwK,GAAG,SAASxwO,EAAEnoB,EAAE2+C,GAAG,IAAI1sD,EAAE0sD,GAAG3+C,EAAEhO,EAAE2sD,GAAG3+C,GAAG4yD,EAAE1T,EAAE+zM,GAAG9E,IAAIn8P,GAAG,GAAG,iBAAiBm2B,EAAE,OAAOgmO,EAAEhmO,GAAGwwO,GAAG3mQ,GAAG,IAAI0sD,EAAE,SAASv2B,EAAEnoB,EAAE2+C,GAAG,IAAI1sD,EAAEk2B,EAAE,GAAGnoB,EAAE,IAAImuP,EAAE8E,EAAEhhQ,EAAE0sD,GAAG,GAAG3+C,IAAImuP,EAAE,MAAM,CAACl8P,EAAE+N,GAAG,IAAI4yD,EAAEqgM,EAAEhhQ,GAAG,IAAIk8P,EAAEnuP,GAAG,IAAI2+C,GAAG,OAAOwvM,IAAIv7L,EAAE,CAAC3gE,EAAEk8P,GAAG,CAAChmO,EAAE,GAAGmf,KAAK3+B,IAAIwlP,EAAEv7L,GAAG,IAAItrB,KAAK9+B,IAAI2lP,EAAEv7L,GAAG,CAAnJ,CAAqJu7L,EAAE/vM,IAAIj2B,EAAEl2B,GAAGghM,UAAU/zI,EAAEltD,GAAGokB,EAAEsoC,EAAE,GAAG7+B,EAAE6+B,EAAE,GAAGwkB,EAAEirL,EAAE/3O,GAAGi9O,UAAUxzO,GAAG,OAAOqjD,EAAE0wL,GAAGgF,UAAU5mQ,EAAEkxE,CAAC,EAAEirL,EAAEwK,GAAGE,MAAM,WAAW,OAAOP,KAAKC,iBAAiBO,kBAAkBL,QAAQ,EAAEtK,EAAEwK,GAAGI,WAAW,SAAS5wO,GAAGyqC,EAAEzqC,CAAC,CAAC,CAAE,CAAv+DnoB,E,mBCAfpO,EAAOD,QAA6I,WAAY,aAAa,IAAIw2B,EAAE,SAASl2B,EAAE,uBAAuB+N,EAAE,eAAe,OAAO,SAAS0+C,EAAEQ,EAAEP,GAAG,IAAIs0M,EAAE/zM,EAAEptB,UAAU6sB,EAAEP,IAAI,SAASj2B,GAAwC,OAAO,IAAI+2B,EAA1C,CAAC/B,KAAKh1B,EAAEi2B,KAAI,EAAGxsB,KAAKx9B,WAA0B,EAAE6+P,EAAE70M,IAAI,SAASnsD,GAAG,IAAI+N,EAAE2+C,EAAExsD,KAAKy4L,SAAS,CAAC90K,OAAO3jB,KAAKuhQ,GAAGt1M,KAAI,IAAK,OAAOnsD,EAAE+N,EAAEwyC,IAAIrgD,KAAKkhQ,YAAYlrO,GAAGnoB,CAAC,EAAEizP,EAAE+F,MAAM,WAAW,OAAOr6M,EAAExsD,KAAKy4L,SAAS,CAAC90K,OAAO3jB,KAAKuhQ,GAAGt1M,KAAI,GAAI,EAAE,IAAI+vM,EAAE8E,EAAEtzN,MAAMszN,EAAEtzN,MAAM,SAASxX,GAAGA,EAAEi2B,MAAMjsD,KAAKwhQ,IAAG,GAAIxhQ,KAAK6iQ,SAAS/B,EAAE9qO,EAAE0rO,WAAW1hQ,KAAK0hQ,QAAQ1rO,EAAE0rO,SAAS1F,EAAEp2P,KAAK5F,KAAKg2B,EAAE,EAAE,IAAIyqC,EAAEqgM,EAAEx0I,KAAKw0I,EAAEx0I,KAAK,WAAW,GAAGtsH,KAAKwhQ,GAAG,CAAC,IAAIxrO,EAAEh2B,KAAK2hQ,GAAG3hQ,KAAK6hQ,GAAG7rO,EAAE8wO,iBAAiB9mQ,KAAK+hQ,GAAG/rO,EAAE+wO,cAAc/mQ,KAAKiiQ,GAAGjsO,EAAEgxO,aAAahnQ,KAAKmiQ,GAAGnsO,EAAEixO,YAAYjnQ,KAAKqiQ,GAAGrsO,EAAEkxO,cAAclnQ,KAAKuiQ,GAAGvsO,EAAEmxO,gBAAgBnnQ,KAAKyiQ,GAAGzsO,EAAEoxO,gBAAgBpnQ,KAAK2iQ,IAAI3sO,EAAEqxO,oBAAoB,MAAM5mM,EAAE76D,KAAK5F,KAAK,EAAE,IAAIH,EAAEihQ,EAAEI,UAAUJ,EAAEI,UAAU,SAAS30M,EAAEQ,GAAG,IAAIP,EAAExsD,KAAK6iQ,SAAS/B,EAAE,GAAGt0M,EAAED,GAAG,OAAOvsD,KAAKwhQ,GAAG,EAAEh1M,EAAExsD,KAAK0hQ,SAAS7hQ,EAAE+F,KAAK5F,MAAMA,KAAK0hQ,QAAQ,GAAG,iBAAiBn1M,IAAIA,EAAE,SAASv2B,QAAG,IAASA,IAAIA,EAAE,IAAI,IAAIu2B,EAAEv2B,EAAEniB,MAAM/T,GAAG,IAAIysD,EAAE,OAAO,KAAK,IAAIQ,GAAG,GAAGR,EAAE,IAAI14C,MAAMhG,IAAI,CAAC,IAAI,EAAE,GAAG2+C,EAAEO,EAAE,GAAG+zM,EAAE,IAAI/zM,EAAE,KAAKA,EAAE,GAAG,OAAO,IAAI+zM,EAAE,EAAE,MAAMt0M,EAAEs0M,GAAGA,CAAC,CAA1J,CAA4Jv0M,GAAG,OAAOA,GAAG,OAAOvsD,KAAK,IAAI8gQ,EAAE3rN,KAAKytC,IAAIr2B,IAAI,GAAG,GAAGA,EAAEA,EAAEyvM,EAAEh8P,KAAK,GAAG+sD,EAAE,OAAOivM,EAAE0F,QAAQZ,EAAE9E,EAAEwF,GAAG,IAAIj1M,EAAEyvM,EAAE,GAAG,IAAIzvM,EAAE,CAAC,IAAIkU,EAAEzgE,KAAKwhQ,GAAGxhQ,KAAKy4L,SAAS+qE,qBAAqB,EAAExjQ,KAAKkhQ,aAAalF,EAAEh8P,KAAK6mQ,QAAQxmN,IAAIygN,EAAErgM,EAAEzqC,IAAI0rO,QAAQZ,EAAE9E,EAAEyF,GAAG6F,aAAa7mM,CAAC,MAAMu7L,EAAEh8P,KAAKisD,MAAM,OAAO+vM,CAAC,EAAE,IAAIj9J,EAAE+hK,EAAEl9O,OAAOk9O,EAAEl9O,OAAO,SAASoS,GAAG,IAAIl2B,EAAEk2B,IAAIh2B,KAAKwhQ,GAAG,yBAAyB,IAAI,OAAOziK,EAAEn5F,KAAK5F,KAAKF,EAAE,EAAEghQ,EAAEhgE,QAAQ,WAAW,IAAI9qK,EAAEh2B,KAAK6iQ,SAAS/B,EAAE9gQ,KAAK0hQ,SAAS,EAAE1hQ,KAAK0hQ,SAAS1hQ,KAAKyhQ,GAAG6F,cAActnQ,KAAK2hQ,GAAG6B,qBAAqB,OAAOxjQ,KAAK2hQ,GAAG7gE,UAAU,IAAI9qK,CAAC,EAAE8qO,EAAEyG,MAAM,WAAW,QAAQvnQ,KAAKwhQ,EAAE,EAAEV,EAAEz6J,YAAY,WAAW,OAAOrmG,KAAKy4L,SAASpyF,aAAa,EAAEy6J,EAAE17O,SAAS,WAAW,OAAOplB,KAAKy4L,SAASgrE,aAAa,EAAE,IAAI1qC,EAAE+nC,EAAEroE,OAAOqoE,EAAEroE,OAAO,SAASziK,GAAG,MAAM,MAAMA,GAAGh2B,KAAK0hQ,QAAQl1M,EAAExsD,KAAK4jB,OAAO,4BAA4B60K,SAASsgC,EAAEnzN,KAAK5F,KAAK,EAAE,IAAI0tB,EAAEozO,EAAElmH,KAAKkmH,EAAElmH,KAAK,SAAS5kH,EAAEl2B,EAAE+N,GAAG,GAAGmoB,GAAGh2B,KAAKwhQ,KAAKxrO,EAAEwrO,GAAG,OAAO9zO,EAAE9nB,KAAK5F,KAAKg2B,EAAEl2B,EAAE+N,GAAG,IAAI0+C,EAAEvsD,KAAK6mQ,QAAQ95M,EAAEP,EAAEx2B,GAAG6wO,QAAQ,OAAOn5O,EAAE9nB,KAAK2mD,EAAEQ,EAAEjtD,EAAE+N,EAAE,CAAC,CAAE,CAAvnE/N,E,sBCAnF,IAAI0nQ,EAAe,EAAQ,MACvBC,EAAO,aASX,SAASC,EAAW7jJ,EAAO8jJ,GACvB3nQ,KAAK6jH,MAAQA,EACb7jH,KAAK2nQ,gBAAkBA,EACvB3nQ,KAAK0xH,SAAW,GAChB1xH,KAAKynM,IAAMrsK,OAAOu/D,WAAWkpB,GAE7B,IAAI9jH,EAAOC,KACXA,KAAKg4D,SAAW,SAASyvI,GAErB1nM,EAAK0nM,IAAMA,EAAIplL,eAAiBolL,EAChC1nM,EAAK6nQ,QACT,EACA5nQ,KAAKynM,IAAIxvI,YAAYj4D,KAAKg4D,SAC9B,CAEA0vM,EAAW/nO,UAAY,CAEnBkoO,WAAaH,EAWbI,WAAa,SAASpgJ,GAClB,IAAIqgJ,EAAK,IAAIP,EAAa9/I,GAC1B1nH,KAAK0xH,SAASztH,KAAK8jQ,GAEnB/nQ,KAAKiuC,WAAa85N,EAAGx5L,IACzB,EAOAy5L,cAAgB,SAAStgJ,GACrB,IAAIgK,EAAW1xH,KAAK0xH,SACpB+1I,EAAK/1I,GAAU,SAAS3yB,EAAGj/F,GACvB,GAAGi/F,EAAEwc,OAAOmM,GAER,OADA3oB,EAAEkpK,WACMv2I,EAASxtC,OAAOpkF,EAAE,EAElC,GACJ,EAOAmuC,QAAU,WACN,OAAOjuC,KAAKynM,IAAIx5J,SAAWjuC,KAAK2nQ,eACpC,EAKAxrJ,MAAQ,WACJsrJ,EAAKznQ,KAAK0xH,UAAU,SAAShK,GACzBA,EAAQugJ,SACZ,IACAjoQ,KAAKynM,IAAIrvI,eAAep4D,KAAKg4D,UAC7Bh4D,KAAK0xH,SAAS3mH,OAAS,CAC3B,EAKA68P,OAAS,WACL,IAAIt9J,EAAStqG,KAAKiuC,UAAY,KAAO,MAErCw5N,EAAKznQ,KAAK0xH,UAAU,SAAShK,GACzBA,EAAQpd,IACZ,GACJ,GAGJ7qG,EAAOD,QAAUkoQ,C,uBC5FjB,IAAIA,EAAa,EAAQ,KACrBQ,EAAO,EAAQ,MACfT,EAAOS,EAAKT,KACZU,EAAaD,EAAKC,WAClBj1N,EAAUg1N,EAAKh1N,QAQnB,SAASk1N,IACL,IAAIhtO,OAAOu/D,WACP,MAAM,IAAI50F,MAAM,8DAGpB/F,KAAKqoQ,QAAU,CAAC,EAChBroQ,KAAKsoQ,oBAAsBltO,OAAOu/D,WAAW,YAAY1sD,OAC7D,CAEAm6N,EAAmBzoO,UAAY,CAE3BkB,YAAcunO,EAadj3P,SAAW,SAASo3P,EAAGzjQ,EAAS0jQ,GAC5B,IAAIH,EAAkBroQ,KAAKqoQ,QACvBV,EAAkBa,GAAiBxoQ,KAAKsoQ,mBAoB5C,OAlBID,EAAQE,KACRF,EAAQE,GAAK,IAAIb,EAAWa,EAAGZ,IAIhCQ,EAAWrjQ,KACVA,EAAU,CAAE+O,MAAQ/O,IAEpBouC,EAAQpuC,KACRA,EAAU,CAACA,IAEf2iQ,EAAK3iQ,GAAS,SAAS4iH,GACfygJ,EAAWzgJ,KACXA,EAAU,CAAE7zG,MAAQ6zG,IAExB2gJ,EAAQE,GAAGT,WAAWpgJ,EAC1B,IAEO1nH,IACX,EAQAo5O,WAAa,SAASmvB,EAAG7gJ,GACrB,IAAI7D,EAAQ7jH,KAAKqoQ,QAAQE,GAYzB,OAVG1kJ,IACI6D,EACC7D,EAAMmkJ,cAActgJ,IAGpB7D,EAAM1H,eACCn8G,KAAKqoQ,QAAQE,KAIrBvoQ,IACX,GAGJP,EAAOD,QAAU4oQ,C,mBC1EjB,SAASZ,EAAa1iQ,GAClB9E,KAAK8E,QAAUA,GACdA,EAAQ2jQ,YAAczoQ,KAAK0oQ,OAChC,CAEAlB,EAAa7nO,UAAY,CAErBkB,YAAc2mO,EAOdkB,MAAQ,WACD1oQ,KAAK8E,QAAQ4jQ,OACZ1oQ,KAAK8E,QAAQ4jQ,QAEjB1oQ,KAAK2oQ,aAAc,CACvB,EAOAp6L,GAAK,YACAvuE,KAAK2oQ,aAAe3oQ,KAAK0oQ,QAC1B1oQ,KAAK8E,QAAQ+O,OAAS7T,KAAK8E,QAAQ+O,OACvC,EAOA+0P,IAAM,WACF5oQ,KAAK8E,QAAQ+jQ,SAAW7oQ,KAAK8E,QAAQ+jQ,SACzC,EAQAZ,QAAU,WACNjoQ,KAAK8E,QAAQmjQ,QAAUjoQ,KAAK8E,QAAQmjQ,UAAYjoQ,KAAK4oQ,KACzD,EASArtJ,OAAS,SAAS/mG,GACd,OAAOxU,KAAK8E,UAAY0P,GAAUxU,KAAK8E,QAAQ+O,QAAUW,CAC7D,GAIJ/U,EAAOD,QAAUgoQ,C,mBClCjB/nQ,EAAOD,QAAU,CACb2oQ,WALJ,SAAoB3zP,GAChB,MAAyB,mBAAXA,CAClB,EAII0+B,QAhBJ,SAAiB1+B,GACb,MAAmD,mBAA5CmH,OAAOgkB,UAAUva,SAASpjB,MAAMwS,EAC3C,EAeIizP,KApCJ,SAAcqB,EAAY5zL,GAKtB,IAJA,IAAIp1E,EAAS,EACTiL,EAAS+9P,EAAW/9P,OAGjBjL,EAAIiL,IAEK,IADLmqE,EAAG4zL,EAAWhpQ,GAAIA,GADVA,KAMvB,E,uBCjBA,IAAIsoQ,EAAqB,EAAQ,MACjC3oQ,EAAOD,QAAU,IAAI4oQ,C,gCCCrB,IAAIvxI,EAAMl7G,OAAOgkB,UAAUoP,eACvBoK,EAAS,IASb,SAAS4vN,IAAU,CA4BnB,SAASC,EAAG9zL,EAAI/jC,EAAS83N,GACvBjpQ,KAAKk1E,GAAKA,EACVl1E,KAAKmxC,QAAUA,EACfnxC,KAAKipQ,KAAOA,IAAQ,CACtB,CAaA,SAAShxM,EAAYg6K,EAAS/rN,EAAOgvD,EAAI/jC,EAAS83N,GAChD,GAAkB,mBAAP/zL,EACT,MAAM,IAAIh1C,UAAU,mCAGtB,IAAI83B,EAAW,IAAIgxM,EAAG9zL,EAAI/jC,GAAW8gM,EAASg3B,GAC1C3jI,EAAMnsF,EAASA,EAASjzB,EAAQA,EAMpC,OAJK+rN,EAAQ/6G,QAAQoO,GACX2sG,EAAQ/6G,QAAQoO,GAAKpwD,GAC1B+8J,EAAQ/6G,QAAQoO,GAAO,CAAC2sG,EAAQ/6G,QAAQoO,GAAMttE,GADhBi6K,EAAQ/6G,QAAQoO,GAAKrhI,KAAK+zD,IADlCi6K,EAAQ/6G,QAAQoO,GAAOttE,EAAUi6K,EAAQi3B,gBAI7Dj3B,CACT,CASA,SAASk3B,EAAWl3B,EAAS3sG,GACI,KAAzB2sG,EAAQi3B,aAAoBj3B,EAAQ/6G,QAAU,IAAI6xI,SAC5C92B,EAAQ/6G,QAAQoO,EAC9B,CASA,SAAS95D,IACPxrE,KAAKk3H,QAAU,IAAI6xI,EACnB/oQ,KAAKkpQ,aAAe,CACtB,CAzEIvtP,OAAOszB,SACT85N,EAAOppO,UAAYhkB,OAAOszB,OAAO,OAM5B,IAAI85N,GAAS7uI,YAAW/gF,GAAS,IA2ExCqyB,EAAa7rC,UAAUypO,WAAa,WAClC,IACIC,EACA1kQ,EAFA2kQ,EAAQ,GAIZ,GAA0B,IAAtBtpQ,KAAKkpQ,aAAoB,OAAOI,EAEpC,IAAK3kQ,KAAS0kQ,EAASrpQ,KAAKk3H,QACtBL,EAAIjxH,KAAKyjQ,EAAQ1kQ,IAAO2kQ,EAAMrlQ,KAAKk1C,EAASx0C,EAAK8T,MAAM,GAAK9T,GAGlE,OAAIgX,OAAOqsL,sBACFshE,EAAMjoQ,OAAOsa,OAAOqsL,sBAAsBqhE,IAG5CC,CACT,EASA99L,EAAa7rC,UAAU4pO,UAAY,SAAmBrjP,GACpD,IAAIo/G,EAAMnsF,EAASA,EAASjzB,EAAQA,EAChCwrG,EAAW1xH,KAAKk3H,QAAQoO,GAE5B,IAAK5T,EAAU,MAAO,GACtB,GAAIA,EAASx8C,GAAI,MAAO,CAACw8C,EAASx8C,IAElC,IAAK,IAAIp1E,EAAI,EAAGi5N,EAAIrnG,EAAS3mH,OAAQy+P,EAAK,IAAI9pO,MAAMq5L,GAAIj5N,EAAIi5N,EAAGj5N,IAC7D0pQ,EAAG1pQ,GAAK4xH,EAAS5xH,GAAGo1E,GAGtB,OAAOs0L,CACT,EASAh+L,EAAa7rC,UAAU8pO,cAAgB,SAAuBvjP,GAC5D,IAAIo/G,EAAMnsF,EAASA,EAASjzB,EAAQA,EAChCqjP,EAAYvpQ,KAAKk3H,QAAQoO,GAE7B,OAAKikI,EACDA,EAAUr0L,GAAW,EAClBq0L,EAAUx+P,OAFM,CAGzB,EASAygE,EAAa7rC,UAAU2+C,KAAO,SAAcp4D,EAAOwjP,EAAIC,EAAIC,EAAIC,EAAIC,GACjE,IAAIxkI,EAAMnsF,EAASA,EAASjzB,EAAQA,EAEpC,IAAKlmB,KAAKk3H,QAAQoO,GAAM,OAAO,EAE/B,IAEI7lG,EACA3/B,EAHAypQ,EAAYvpQ,KAAKk3H,QAAQoO,GACzB5lB,EAAMz9G,UAAU8I,OAIpB,GAAIw+P,EAAUr0L,GAAI,CAGhB,OAFIq0L,EAAUN,MAAMjpQ,KAAKo4D,eAAelyC,EAAOqjP,EAAUr0L,QAAIxwE,GAAW,GAEhEg7G,GACN,KAAK,EAAG,OAAO6pJ,EAAUr0L,GAAGtvE,KAAK2jQ,EAAUp4N,UAAU,EACrD,KAAK,EAAG,OAAOo4N,EAAUr0L,GAAGtvE,KAAK2jQ,EAAUp4N,QAASu4N,IAAK,EACzD,KAAK,EAAG,OAAOH,EAAUr0L,GAAGtvE,KAAK2jQ,EAAUp4N,QAASu4N,EAAIC,IAAK,EAC7D,KAAK,EAAG,OAAOJ,EAAUr0L,GAAGtvE,KAAK2jQ,EAAUp4N,QAASu4N,EAAIC,EAAIC,IAAK,EACjE,KAAK,EAAG,OAAOL,EAAUr0L,GAAGtvE,KAAK2jQ,EAAUp4N,QAASu4N,EAAIC,EAAIC,EAAIC,IAAK,EACrE,KAAK,EAAG,OAAON,EAAUr0L,GAAGtvE,KAAK2jQ,EAAUp4N,QAASu4N,EAAIC,EAAIC,EAAIC,EAAIC,IAAK,EAG3E,IAAKhqQ,EAAI,EAAG2/B,EAAO,IAAIC,MAAMggF,EAAK,GAAI5/G,EAAI4/G,EAAK5/G,IAC7C2/B,EAAK3/B,EAAI,GAAKmC,UAAUnC,GAG1BypQ,EAAUr0L,GAAGlzE,MAAMunQ,EAAUp4N,QAAS1R,EACxC,KAAO,CACL,IACIi/B,EADA3zD,EAASw+P,EAAUx+P,OAGvB,IAAKjL,EAAI,EAAGA,EAAIiL,EAAQjL,IAGtB,OAFIypQ,EAAUzpQ,GAAGmpQ,MAAMjpQ,KAAKo4D,eAAelyC,EAAOqjP,EAAUzpQ,GAAGo1E,QAAIxwE,GAAW,GAEtEg7G,GACN,KAAK,EAAG6pJ,EAAUzpQ,GAAGo1E,GAAGtvE,KAAK2jQ,EAAUzpQ,GAAGqxC,SAAU,MACpD,KAAK,EAAGo4N,EAAUzpQ,GAAGo1E,GAAGtvE,KAAK2jQ,EAAUzpQ,GAAGqxC,QAASu4N,GAAK,MACxD,KAAK,EAAGH,EAAUzpQ,GAAGo1E,GAAGtvE,KAAK2jQ,EAAUzpQ,GAAGqxC,QAASu4N,EAAIC,GAAK,MAC5D,KAAK,EAAGJ,EAAUzpQ,GAAGo1E,GAAGtvE,KAAK2jQ,EAAUzpQ,GAAGqxC,QAASu4N,EAAIC,EAAIC,GAAK,MAChE,QACE,IAAKnqO,EAAM,IAAKi/B,EAAI,EAAGj/B,EAAO,IAAIC,MAAMggF,EAAK,GAAIhhD,EAAIghD,EAAKhhD,IACxDj/B,EAAKi/B,EAAI,GAAKz8D,UAAUy8D,GAG1B6qM,EAAUzpQ,GAAGo1E,GAAGlzE,MAAMunQ,EAAUzpQ,GAAGqxC,QAAS1R,GAGpD,CAEA,OAAO,CACT,EAWA+rC,EAAa7rC,UAAU4uC,GAAK,SAAYroD,EAAOgvD,EAAI/jC,GACjD,OAAO8mB,EAAYj4D,KAAMkmB,EAAOgvD,EAAI/jC,GAAS,EAC/C,EAWAq6B,EAAa7rC,UAAUspO,KAAO,SAAc/iP,EAAOgvD,EAAI/jC,GACrD,OAAO8mB,EAAYj4D,KAAMkmB,EAAOgvD,EAAI/jC,GAAS,EAC/C,EAYAq6B,EAAa7rC,UAAUy4B,eAAiB,SAAwBlyC,EAAOgvD,EAAI/jC,EAAS83N,GAClF,IAAI3jI,EAAMnsF,EAASA,EAASjzB,EAAQA,EAEpC,IAAKlmB,KAAKk3H,QAAQoO,GAAM,OAAOtlI,KAC/B,IAAKk1E,EAEH,OADAi0L,EAAWnpQ,KAAMslI,GACVtlI,KAGT,IAAIupQ,EAAYvpQ,KAAKk3H,QAAQoO,GAE7B,GAAIikI,EAAUr0L,GAEVq0L,EAAUr0L,KAAOA,GACf+zL,IAAQM,EAAUN,MAClB93N,GAAWo4N,EAAUp4N,UAAYA,GAEnCg4N,EAAWnpQ,KAAMslI,OAEd,CACL,IAAK,IAAIxlI,EAAI,EAAGupQ,EAAS,GAAIt+P,EAASw+P,EAAUx+P,OAAQjL,EAAIiL,EAAQjL,KAEhEypQ,EAAUzpQ,GAAGo1E,KAAOA,GACnB+zL,IAASM,EAAUzpQ,GAAGmpQ,MACtB93N,GAAWo4N,EAAUzpQ,GAAGqxC,UAAYA,IAErCk4N,EAAOplQ,KAAKslQ,EAAUzpQ,IAOtBupQ,EAAOt+P,OAAQ/K,KAAKk3H,QAAQoO,GAAyB,IAAlB+jI,EAAOt+P,OAAes+P,EAAO,GAAKA,EACpEF,EAAWnpQ,KAAMslI,EACxB,CAEA,OAAOtlI,IACT,EASAwrE,EAAa7rC,UAAU4rC,mBAAqB,SAA4BrlD,GACtE,IAAIo/G,EAUJ,OARIp/G,GACFo/G,EAAMnsF,EAASA,EAASjzB,EAAQA,EAC5BlmB,KAAKk3H,QAAQoO,IAAM6jI,EAAWnpQ,KAAMslI,KAExCtlI,KAAKk3H,QAAU,IAAI6xI,EACnB/oQ,KAAKkpQ,aAAe,GAGflpQ,IACT,EAKAwrE,EAAa7rC,UAAUipO,IAAMp9L,EAAa7rC,UAAUy4B,eACpDoT,EAAa7rC,UAAUs4B,YAAcuT,EAAa7rC,UAAU4uC,GAK5D/C,EAAau+L,SAAW5wN,EAKxBqyB,EAAaA,aAAeA,EAM1B/rE,EAAOD,QAAUgsE,C,kCC9UN7vD,OAAO66D,eAAeh3E,EAAtB,cAA4C2U,OAAM,IAAO3U,EAAQwqQ,eAAexqQ,EAAQyqQ,eAAezqQ,EAAQ0qQ,mBAAmB1qQ,EAAQ2qQ,aAAa3qQ,EAAQ4qQ,aAAa5qQ,EAAQ6qQ,cAAc7qQ,EAAQ8qQ,OAAO9qQ,EAAQ+qQ,OAAO/qQ,EAAQgrQ,OAAOhrQ,EAAQirQ,OAAOjrQ,EAAQkrQ,YAAYlrQ,EAAQmrQ,wBAAmB,EAA0InrQ,EAAQmrQ,mBAApH,4GAAkLnrQ,EAAQkrQ,YAAhB,QAAuDlrQ,EAAQirQ,QAAX,GAAuCjrQ,EAAQgrQ,OAAX,GAAyChrQ,EAAQ+qQ,QAAZ,IAAyC/qQ,EAAQ8qQ,OAAZ,IAAwE9qQ,EAAQ6qQ,cAApC,CAAC,MAAM,MAAM,YAAY,GAA6E7qQ,EAAQ4qQ,aAA7B,CAAC,MAAM,WAAW,GAA8F5qQ,EAAQ2qQ,aAAhD,CAAC,MAAM,WAAW,YAAY,OAAO,GAA2J3qQ,EAAQ0qQ,mBAAvG,CAACjmP,EAAE,EAAE2mP,GAAG,KAAMC,GAAG,IAAIxG,GAAG,IAAKyG,GAAG,EAAE,SAASC,GAAG,EAAE,SAASC,GAAG,IAAI,MAAM18K,GAAG,IAAI,KAAK28K,GAAG,EAAE,OAA+FzrQ,EAAQyqQ,eAA9B,CAAChmP,EAAE,GAAG86E,EAAE,KAAKhuB,EAAE,OAA6C,IAAIi5L,EAAe,CAACzqB,GAAG,EAAE2rB,IAAI,KAASC,GAAG,KAAOtrQ,EAAE,IAAKurQ,IAAI,UAAUC,IAAI,QAAQC,IAAI,WAAW9rQ,EAAQwqQ,eAAeA,EAAeA,EAAeuB,IAAIvB,EAAezqB,GAAGyqB,EAAewB,KAAKxB,EAAekB,IAAIlB,EAAeyB,KAAKzB,EAAeoB,IAAIpB,EAAe0B,KAAK1B,EAAeqB,IAAIrB,EAAe2B,KAAK3B,EAAesB,G,kCCA59C3vP,OAAO66D,eAAeh3E,EAAtB,cAA4C2U,OAAM,IAAO3U,EAAA,aAAgB,EAAO,IAAuYosQ,EAAlX,SAA0B7yM,EAAM8yM,GAAc,OAAOA,EAAa7yM,QAAO,SAAS8yM,EAASxuP,GAAK,GAAG,MAAOy7C,EAAmC,MAAM,IAAIhzD,MAAM,IAAI1E,OAAO03D,EAAM,8BAA8B,OAAGp9C,OAAOgkB,UAAUoP,eAAenpC,KAAKmzD,EAAMz7C,SAAmB,IAANA,QAAqC,IAAXwuP,GAAwBA,EAASxuP,EAAWA,GAAWwuP,CAAQ,QAAEpnQ,EAAU,EAAgClF,EAAA,QAAgBosQ,C,oCCAjgBjwP,OAAO66D,eAAeh3E,EAAtB,cAA4C2U,OAAM,IAAO3U,EAAA,aAAgB,EAAO,IAAkJksE,EAA9IqgM,EAAW,EAAQ,MAAmBC,GAAwGtgM,EAA/D,EAAQ,QAAwEA,EAAI0wL,WAAW1wL,EAAI,CAAC/qD,QAAQ+qD,GAAK,SAASugM,EAAQ51I,EAAO61I,GAAgB,IAAI1qO,EAAK7lB,OAAO6lB,KAAK60F,GAAQ,GAAG16G,OAAOqsL,sBAAsB,CAAC,IAAImkE,EAAQxwP,OAAOqsL,sBAAsB3xE,GAAW61I,IAAeC,EAAQA,EAAQj6O,QAAO,SAASk6O,GAAK,OAAOzwP,OAAOkhH,yBAAyBxG,EAAO+1I,GAAKzpE,UAAU,KAAGnhK,EAAKv9B,KAAKjC,MAAMw/B,EAAK2qO,EAAQ,CAAC,OAAO3qO,CAAI,CAA4d,SAASjtB,EAAgBm3D,EAAIpuD,EAAInJ,GAAuI,OAA7HmJ,KAAOouD,EAAK/vD,OAAO66D,eAAe9K,EAAIpuD,EAAI,CAACnJ,MAAMA,EAAMwuL,YAAW,EAAKthF,cAAa,EAAKD,UAAS,IAAY11C,EAAIpuD,GAAKnJ,EAAau3D,CAAG,CAAC,IAAuiBkgM,EAAjhB,SAA2B7yM,GAAO,IAAI8yM,EAAa5pQ,UAAU8I,OAAO,QAAkBrG,IAAfzC,UAAU,GAAeA,UAAU,GAAG,CAACokE,UAAU0lM,EAAW1B,cAAcjkM,SAAS2lM,EAAW3B,aAAaiC,SAASN,EAAW5B,cAAkB9jM,GAAU,EAAG2lM,EAAkBrrP,SAASo4C,EAAM8yM,EAAaxlM,WAAeD,GAAS,EAAG4lM,EAAkBrrP,SAASo4C,EAAM8yM,EAAazlM,UAAcimM,GAAS,EAAGL,EAAkBrrP,SAASo4C,EAAM8yM,EAAaQ,UAAU,OAAllC,SAAuB73P,GAAQ,IAAI,IAAI1U,EAAE,EAAEA,EAAEmC,UAAU8I,OAAOjL,IAAI,CAAC,IAAIghH,EAAqB,MAAd7+G,UAAUnC,GAASmC,UAAUnC,GAAG,CAAC,EAAKA,EAAE,EAAGmsQ,EAAQtwP,OAAOmlG,IAAQ,GAAM/yC,SAAQ,SAASzwD,GAAK/I,EAAgBC,EAAO8I,EAAIwjG,EAAOxjG,GAAK,IAAW3B,OAAO2wP,0BAA2B3wP,OAAO4wP,iBAAiB/3P,EAAOmH,OAAO2wP,0BAA0BxrJ,IAAcmrJ,EAAQtwP,OAAOmlG,IAAS/yC,SAAQ,SAASzwD,GAAK3B,OAAO66D,eAAehiE,EAAO8I,EAAI3B,OAAOkhH,yBAAyB/b,EAAOxjG,GAAK,GAAG,CAAC,OAAO9I,CAAM,CAA+nBwE,CAAc,CAACotD,SAASA,EAASC,UAAUA,GAAWgmM,EAAS,CAACA,SAASA,GAAU,CAAC,EAAE,EAAiC7sQ,EAAA,QAAgBosQ,C,oCCAnvDpsQ,EAAQ,OAAQ,EAAO,IAAIgtQ,EAAaC,EAAuB,EAAQ,OAAsBC,EAAcD,EAAuB,EAAQ,OAAuBE,EAAOF,EAAuB,EAAQ,OAAgBG,EAAYH,EAAuB,EAAQ,MAAqBV,EAAW,EAAQ,MAAe,SAASU,EAAuB/gM,GAAK,OAAOA,GAAKA,EAAI0wL,WAAW1wL,EAAI,CAAC/qD,QAAQ+qD,EAAI,CAAC,IAAgrBkgM,EAAhqB,SAAqB/zP,EAAKk4C,GAAI,IAAI88M,EAAS5qQ,UAAU8I,OAAO,QAAkBrG,IAAfzC,UAAU,GAAeA,UAAU,GAAG,EAAE4qQ,OAA2B,IAAXA,GAAyB3rO,MAAM2rO,GAAmB,EAATA,EAAW,IAAIC,GAAQ,EAAGN,EAAa7rP,SAAS9I,GAAUk1P,GAAQ,EAAGL,EAAc/rP,SAAS9I,GAAUm1P,GAAM,EAAGR,EAAa7rP,SAASovC,GAAQk9M,GAAM,EAAGP,EAAc/rP,SAASovC,GAAQ6hC,EAASz8C,KAAK+3N,MAAK,EAAGN,EAAYjsP,SAASw0B,KAAKmwB,KAAI,EAAGqnM,EAAOhsP,SAASqsP,IAAQ73N,KAAKmwB,KAAI,EAAGqnM,EAAOhsP,SAASmsP,IAAU33N,KAAKstJ,KAAI,EAAGkqE,EAAOhsP,SAASqsP,IAAQ73N,KAAKstJ,KAAI,EAAGkqE,EAAOhsP,SAASmsP,IAAU33N,KAAKstJ,KAAI,EAAGkqE,EAAOhsP,SAASosP,IAAS,EAAGJ,EAAOhsP,SAASssP,MAAUlB,EAAWrB,YAAY,OAAOv1N,KAAKkvB,MAAMutB,EAASi7K,GAAUA,CAAQ,EAA2BrtQ,EAAQ,EAAQosQ,C,oCCAzpCjwP,OAAO66D,eAAeh3E,EAAtB,cAA4C2U,OAAM,IAAO3U,EAAA,aAAgB,EAAO,IAAIusQ,EAAW,EAAQ,MAAmBC,EAAkBS,EAAuB,EAAQ,OAA2BU,EAAWV,EAAuB,EAAQ,OAAgB,SAASA,EAAuB/gM,GAAK,OAAOA,GAAKA,EAAI0wL,WAAW1wL,EAAI,CAAC/qD,QAAQ+qD,EAAI,CAAC,IAAiQkgM,EAAjP,SAAqB7yM,EAAMs5K,GAAK,IAAI+6B,GAAO,EAAGpB,EAAkBrrP,SAASo4C,EAAMgzM,EAAW3B,cAAc,GAAG,MAAOgD,EAAV,CAAsD,IAAIj5P,EAAM4kD,EAAMq0M,GAAQ,OAAa,IAAN/6B,EAAWl+N,GAAM,EAAGg5P,EAAWxsP,SAASxM,EAAxE,CAA8E,EAA2B3U,EAAA,QAAgBosQ,C,oCCAxnBjwP,OAAO66D,eAAeh3E,EAAtB,cAA4C2U,OAAM,IAAO3U,EAAA,aAAgB,EAAO,IAAIusQ,EAAW,EAAQ,MAAmBC,EAAkBS,EAAuB,EAAQ,OAA2BU,EAAWV,EAAuB,EAAQ,OAAgB,SAASA,EAAuB/gM,GAAK,OAAOA,GAAKA,EAAI0wL,WAAW1wL,EAAI,CAAC/qD,QAAQ+qD,EAAI,CAAC,IAAoQkgM,EAAnP,SAAsB7yM,EAAMs5K,GAAK,IAAI+6B,GAAO,EAAGpB,EAAkBrrP,SAASo4C,EAAMgzM,EAAW1B,eAAe,GAAG,MAAO+C,EAAV,CAAsD,IAAIj5P,EAAM4kD,EAAMq0M,GAAQ,OAAa,IAAN/6B,EAAWl+N,GAAM,EAAGg5P,EAAWxsP,SAASxM,EAAxE,CAA8E,EAA4B3U,EAAA,QAAgBosQ,C,kCCA5nBjwP,OAAO66D,eAAeh3E,EAAtB,cAA4C2U,OAAM,IAAO3U,EAAA,aAAgB,EAAO,IAA8LosQ,EAAhL,SAAmBz3P,GAAO,IAAIk5P,EAAal5P,EAAMiR,WAAW4M,OAAO,OAAGkP,MAAMo8D,WAAW+vK,KAAoC/vK,WAAW+vK,KAAgB51O,OAAO41O,EAAa,EAAyB7tQ,EAAA,QAAgBosQ,C,oCCAjTjwP,OAAO66D,eAAeh3E,EAAtB,cAA4C2U,OAAM,IAAO3U,EAAA,aAAgB,EAAO,IAAIusQ,EAAW,EAAQ,MAAuIH,EAAtG,SAAuBz3P,GAAO,OAAO43P,EAAWpB,mBAAmBz8O,KAAK/Z,EAAMiR,WAAW4M,OAAO,EAA6BxyB,EAAA,QAAgBosQ,C,oCCArRjwP,OAAO66D,eAAeh3E,EAAtB,cAA4C2U,OAAM,IAAO3U,EAAA,aAAgB,EAAO,IAAI8tQ,EAAoBb,EAAuB,EAAQ,OAA4Bc,EAAiBd,EAAuB,EAAQ,OAA0Be,EAAkBf,EAAuB,EAAQ,OAAuB,SAASA,EAAuB/gM,GAAK,OAAOA,GAAKA,EAAI0wL,WAAW1wL,EAAI,CAAC/qD,QAAQ+qD,EAAI,CAAC,IAA8nBkgM,EAAxmB,SAA2B7yM,GAAO,IAAI00M,GAAmB,EAAGH,EAAoB3sP,SAASo4C,GAAOqN,EAASqnM,EAAmBrnM,SAASC,EAAUonM,EAAmBpnM,UAAU,GAAG3mC,MAAMwT,QAAQ6lB,IAAQA,EAAMhuD,QAAQ,EAAG,OAAM,EAAGyiQ,EAAkB7sP,SAASo4C,EAAM,MAAK,EAAGw0M,EAAiB5sP,SAASo4C,EAAM,IAAI,QAAqB,IAAXqN,QAA2C,IAAZC,EAAyB,OAAO,EAAM,IAAI2L,EAAIjZ,EAAMsN,GAAejQ,EAAI2C,EAAMqN,GAAU,YAAgB,IAANhQ,QAAgC,IAAN4b,KAAuE,KAApC,EAAGu7L,EAAiB5sP,SAASy1C,KAAmD,KAArC,EAAGo3M,EAAkB7sP,SAASqxD,GAAsC,EAAiCxyE,EAAA,QAAgBosQ,C,oCCAhjCjwP,OAAO66D,eAAeh3E,EAAtB,cAA4C2U,OAAM,IAAO3U,EAAA,aAAgB,EAAO,IAAIkuQ,EAAWjB,EAAuB,EAAQ,OAAoBkB,EAAelB,EAAuB,EAAQ,OAAwBmB,EAAsBnB,EAAuB,EAAQ,OAA+BV,EAAW,EAAQ,MAAe,SAASU,EAAuB/gM,GAAK,OAAOA,GAAKA,EAAI0wL,WAAW1wL,EAAI,CAAC/qD,QAAQ+qD,EAAI,CAAC,IAAySkgM,EAArR,SAASiC,EAAgB15P,GAAO,OAAG,EAAGu5P,EAAW/sP,SAASxM,KAAWmpF,WAAWnpF,GAAO43P,EAAWvB,QAAQr2P,EAAM43P,EAAWtB,WAAoC,EAAGkD,EAAehtP,SAASxM,IAAe05P,GAAgB,EAAGD,EAAsBjtP,SAASxM,GAAoB,EAA+B3U,EAAA,QAAgBosQ,C,oCCAlvBjwP,OAAO66D,eAAeh3E,EAAtB,cAA4C2U,OAAM,IAAO3U,EAAA,aAAgB,EAAO,IAAIkuQ,EAAWjB,EAAuB,EAAQ,OAAoBkB,EAAelB,EAAuB,EAAQ,OAAwBmB,EAAsBnB,EAAuB,EAAQ,OAA+BV,EAAW,EAAQ,MAAe,SAASU,EAAuB/gM,GAAK,OAAOA,GAAKA,EAAI0wL,WAAW1wL,EAAI,CAAC/qD,QAAQ+qD,EAAI,CAAC,IAA4SkgM,EAAvR,SAASkC,EAAiB35P,GAAO,OAAG,EAAGu5P,EAAW/sP,SAASxM,KAAWmpF,WAAWnpF,GAAO43P,EAAWzB,QAAQn2P,EAAM43P,EAAWxB,WAAoC,EAAGoD,EAAehtP,SAASxM,IAAe25P,GAAiB,EAAGF,EAAsBjtP,SAASxM,GAAoB,EAAgC3U,EAAA,QAAgBosQ,C,iCCAtvBjwP,OAAO66D,eAAeh3E,EAAtB,cAA4C2U,OAAM,IAAO3U,EAAA,aAAgB,EAAO,IAAuGosQ,EAAxF,SAAoBz3P,GAAO,OAAGA,EAAM,EAAU,EAAKA,GAAO,GAAU,EAASA,CAAK,EAA0B3U,EAAA,QAAgBosQ,C,oCCA3NjwP,OAAO66D,eAAeh3E,EAAtB,cAA4C2U,OAAM,IAAO3U,EAAA,aAAgB,EAAO,IAAIusQ,EAAW,EAAQ,MAA+aH,EAAvY,SAA8BmC,GAAa,IAAIxsQ,EAAK,IAAI0wB,OAAO85O,EAAWpB,oBAAoBngO,KAAKujO,EAAY3oP,WAAW4M,QAAQ,GAAG,MAAOzwB,EAAiC,MAAM,IAAIwE,MAAM,4CAA4C,IAAIyQ,EAAIihB,OAAOl2B,EAAK,IAAI,IAAI,EAAMysQ,EAAIv2O,OAAOl2B,EAAK,IAAI,MAAM,EAAM0sQ,EAAQ3wK,WAAW/7F,EAAK,IAAIiV,EAAIw3P,EAAI,MAAM,CAAC,IAAI,KAAKpjQ,SAASrJ,EAAK,KAAK0sQ,EAAQA,CAAO,EAAoCzuQ,EAAA,QAAgBosQ,C,oCCApkBjwP,OAAO66D,eAAeh3E,EAAtB,cAA4C2U,OAAM,IAAO3U,EAAA,aAAgB,EAAO,IAAIkuQ,EAAWjB,EAAuB,EAAQ,OAAoBkB,EAAelB,EAAuB,EAAQ,OAAwBmB,EAAsBnB,EAAuB,EAAQ,OAA+ByB,EAAmBzB,EAAuB,EAAQ,OAA4BgB,EAAmBhB,EAAuB,EAAQ,OAAwB,SAASA,EAAuB/gM,GAAK,OAAOA,GAAKA,EAAI0wL,WAAW1wL,EAAI,CAAC/qD,QAAQ+qD,EAAI,CAAC,SAASugM,EAAQ51I,EAAO61I,GAAgB,IAAI1qO,EAAK7lB,OAAO6lB,KAAK60F,GAAQ,GAAG16G,OAAOqsL,sBAAsB,CAAC,IAAImkE,EAAQxwP,OAAOqsL,sBAAsB3xE,GAAW61I,IAAeC,EAAQA,EAAQj6O,QAAO,SAASk6O,GAAK,OAAOzwP,OAAOkhH,yBAAyBxG,EAAO+1I,GAAKzpE,UAAU,KAAGnhK,EAAKv9B,KAAKjC,MAAMw/B,EAAK2qO,EAAQ,CAAC,OAAO3qO,CAAI,CAAC,SAASxoB,EAAcxE,GAAQ,IAAI,IAAI1U,EAAE,EAAEA,EAAEmC,UAAU8I,OAAOjL,IAAI,CAAC,IAAIghH,EAAqB,MAAd7+G,UAAUnC,GAASmC,UAAUnC,GAAG,CAAC,EAAKA,EAAE,EAAGmsQ,EAAQtwP,OAAOmlG,IAAQ,GAAM/yC,SAAQ,SAASzwD,GAAK/I,EAAgBC,EAAO8I,EAAIwjG,EAAOxjG,GAAK,IAAW3B,OAAO2wP,0BAA2B3wP,OAAO4wP,iBAAiB/3P,EAAOmH,OAAO2wP,0BAA0BxrJ,IAAcmrJ,EAAQtwP,OAAOmlG,IAAS/yC,SAAQ,SAASzwD,GAAK3B,OAAO66D,eAAehiE,EAAO8I,EAAI3B,OAAOkhH,yBAAyB/b,EAAOxjG,GAAK,GAAG,CAAC,OAAO9I,CAAM,CAAC,SAASD,EAAgBm3D,EAAIpuD,EAAInJ,GAAuI,OAA7HmJ,KAAOouD,EAAK/vD,OAAO66D,eAAe9K,EAAIpuD,EAAI,CAACnJ,MAAMA,EAAMwuL,YAAW,EAAKthF,cAAa,EAAKD,UAAS,IAAY11C,EAAIpuD,GAAKnJ,EAAau3D,CAAG,CAAC,IAAyuBkgM,EAA3tB,SAASuC,EAAUh6P,GAAO,IAAG,EAAGu5P,EAAW/sP,SAASxM,GAAQ,OAAOsjB,OAAOtjB,GAAO,IAAG,EAAGw5P,EAAehtP,SAASxM,GAAQ,OAAM,EAAGy5P,EAAsBjtP,SAASxM,GAAO,IAAG,EAAG+5P,EAAmBvtP,SAASxM,GAAO,CAAC,IAAIqtB,GAAK,EAAGisO,EAAmB9sP,SAASxM,GAAO,OAAGurB,MAAMwT,QAAQ/+B,GAAeA,EAAM4G,KAAI,SAAS2oG,EAAEzoG,GAAO,MAAM,CAAC,EAAE,GAAGrQ,SAASqQ,GAAOkzP,EAAUzqJ,GAAGA,CAAC,IAAU1qG,EAAcA,EAAcA,EAAc,CAAC,EAAE7E,GAAOqtB,EAAK4kC,UAAU7xD,EAAgB,CAAC,EAAEitB,EAAK4kC,SAAS+nM,EAAUh6P,EAAMqtB,EAAK4kC,aAAa5kC,EAAK6kC,WAAW9xD,EAAgB,CAAC,EAAEitB,EAAK6kC,UAAU8nM,EAAUh6P,EAAMqtB,EAAK6kC,aAAa,CAAC,OAAG3mC,MAAMwT,QAAQ/+B,GAAeA,EAAM4G,KAAI,SAASg+C,GAAO,OAAM,EAAGm1M,EAAmBvtP,SAASo4C,GAAOo1M,EAAUp1M,GAAOA,CAAK,IAAU5kD,CAAK,EAAyB3U,EAAA,QAAgBosQ,C,kCCAxuEjwP,OAAO66D,eAAeh3E,EAAtB,cAA4C2U,OAAM,IAAO3U,EAAA,aAAgB,EAAO,IAA8DosQ,EAApD,SAAez3P,GAAO,OAAOA,EAAMghC,KAAKowB,GAAG,GAAG,EAAqB/lE,EAAA,QAAgBosQ,C,oCCE1L,IAAIwC,EAAU,EAAQ,KAMlB/zD,EAAgB,CAClBC,mBAAmB,EACnB+zD,aAAa,EACb9zD,cAAc,EACdlqI,cAAc,EACdu8E,aAAa,EACb4tD,iBAAiB,EACjB8zD,0BAA0B,EAC1Bj5D,0BAA0B,EAC1BoF,QAAQ,EACRtqI,WAAW,EACXlrE,MAAM,GAEJy1M,EAAgB,CAClB/1M,MAAM,EACNoG,QAAQ,EACR40B,WAAW,EACXg7K,QAAQ,EACRC,QAAQ,EACR34M,WAAW,EACX44M,OAAO,GASL0zD,EAAe,CACjB,UAAY,EACZxpO,SAAS,EACTsrC,cAAc,EACdu8E,aAAa,EACbz8E,WAAW,EACXlrE,MAAM,GAEJupQ,EAAe,CAAC,EAIpB,SAASC,EAAWz8J,GAElB,OAAIo8J,EAAQM,OAAO18J,GACVu8J,EAIFC,EAAax8J,EAAoB,WAAMqoG,CAChD,CAXAm0D,EAAaJ,EAAQO,YAhBK,CACxB,UAAY,EACZhkM,QAAQ,EACR0F,cAAc,EACdu8E,aAAa,EACbz8E,WAAW,GAYbq+L,EAAaJ,EAAQQ,MAAQL,EAY7B,IAAI/3L,EAAiB76D,OAAO66D,eACxB2kI,EAAsBx/L,OAAOw/L,oBAC7BnT,EAAwBrsL,OAAOqsL,sBAC/BnrE,EAA2BlhH,OAAOkhH,yBAClC1mD,EAAiBx6D,OAAOw6D,eACxB2kI,EAAkBn/L,OAAOgkB,UAsC7BlgC,EAAOD,QArCP,SAASu7M,EAAqBC,EAAiBC,EAAiB4zD,GAC9D,GAA+B,iBAApB5zD,EAA8B,CAEvC,GAAIH,EAAiB,CACnB,IAAII,EAAqB/kI,EAAe8kI,GAEpCC,GAAsBA,IAAuBJ,GAC/CC,EAAqBC,EAAiBE,EAAoB2zD,EAE9D,CAEA,IAAIrtO,EAAO25K,EAAoBF,GAE3BjT,IACFxmK,EAAOA,EAAKngC,OAAO2mM,EAAsBiT,KAM3C,IAHA,IAAI6zD,EAAgBL,EAAWzzD,GAC3B+zD,EAAgBN,EAAWxzD,GAEtBn7M,EAAI,EAAGA,EAAI0hC,EAAKz2B,SAAUjL,EAAG,CACpC,IAAIwd,EAAMkkB,EAAK1hC,GAEf,KAAK46M,EAAcp9L,IAAUuxP,GAAaA,EAAUvxP,IAAWyxP,GAAiBA,EAAczxP,IAAWwxP,GAAiBA,EAAcxxP,IAAO,CAC7I,IAAI89L,EAAav+E,EAAyBo+E,EAAiB39L,GAE3D,IAEEk5D,EAAewkI,EAAiB19L,EAAK89L,EACvC,CAAE,MAAOvtM,GAAI,CACf,CACF,CACF,CAEA,OAAOmtM,CACT,C,mBCpGAv7M,EAAOD,QAAU,SAAS+B,EAAMqlH,EAAUooJ,EAAMC,GAC5C,IACI9Q,EAAO,IAAId,UADgB,IAAR4R,EAAuB,CAACA,EAAK1tQ,GAAQ,CAACA,GAC/B,CAAC0D,KAAM+pQ,GAAQ,6BAC7C,QAA2C,IAAhC5zO,OAAO4qC,UAAUkpM,WAKxB9zO,OAAO4qC,UAAUkpM,WAAW/Q,EAAMv3I,OAEjC,CACD,IAAIuoJ,EAAW/zO,OAAOg0O,KAAOh0O,OAAOg0O,IAAIC,gBAAmBj0O,OAAOg0O,IAAIC,gBAAgBlR,GAAQ/iO,OAAOk0O,UAAUD,gBAAgBlR,GAC3HoR,EAAWnvP,SAASwqD,cAAc,KACtC2kM,EAASr5P,MAAMib,QAAU,OACzBo+O,EAAS/gQ,KAAO2gQ,EAChBI,EAASttP,aAAa,WAAY2kG,QAMD,IAAtB2oJ,EAASC,UAChBD,EAASttP,aAAa,SAAU,UAGpC7B,SAAS5C,KAAKsgE,YAAYyxL,GAC1BA,EAAS9yD,QAGT5sL,YAAW,WACPzP,SAAS5C,KAAK2mE,YAAYorL,GAC1Bn0O,OAAOg0O,IAAIK,gBAAgBN,EAC/B,GAAG,IACP,CACJ,C,uBClCA,IAAIO,EAAe,EAAQ,MAOvBC,EAAS,SAAUjkM,GACrB,IAAIkkM,EAAK,GACLzrQ,EAAWwX,OAAO6lB,KAAKkqC,GAmB3B,OAlBAvnE,EAAS4pE,SAAQ,SAAUxpE,EAAS0W,GAClC,IAAI9G,EAAQu3D,EAAInnE,IATF,SAAUA,GAE1B,MADS,kBACC2pB,KAAK3pB,EACjB,EASQsrQ,CAFJtrQ,EAAUmrQ,EAAanrQ,KAEsB,iBAAV4P,IACjCA,GAAgB,MAGhBy7P,IADY,IAAVz7P,EACI5P,GACa,IAAV4P,EACH,OAAS5P,EAET,IAAMA,EAAU,KAAO4P,EAAQ,IAEnC8G,EAAQ9W,EAAS4G,OAAO,IAC1B6kQ,GAAM,QAEV,IACOA,CACT,EAqBAnwQ,EAAOD,QAnBO,SAAUqkH,GACtB,IAAI+rJ,EAAK,GACT,MAAqB,iBAAV/rJ,EACFA,EAGLA,aAAiBnkF,OACnBmkF,EAAM91C,SAAQ,SAAUw6L,EAAGttP,GACzB20P,GAAMD,EAAOpH,GACTttP,EAAQ4oG,EAAM94G,OAAO,IACvB6kQ,GAAM,KAEV,IACOA,GAGFD,EAAO9rJ,EAChB,C,uBCtCA,IAGIisJ,EAAM,IAGNC,EAAY,kBAGZC,EAAS,aAGTC,EAAa,qBAGbC,EAAa,aAGbC,EAAY,cAGZC,EAAehlN,SAGfspD,EAA8B,iBAAV,EAAAyiB,GAAsB,EAAAA,GAAU,EAAAA,EAAOx7G,SAAWA,QAAU,EAAAw7G,EAGhFriB,EAA0B,iBAAR/0G,MAAoBA,MAAQA,KAAK4b,SAAWA,QAAU5b,KAGxET,EAAOo1G,GAAcI,GAAY9+B,SAAS,cAATA,GAUjCX,EAPc15D,OAAOgkB,UAOQva,SAG7BirP,EAAYl7N,KAAK9+B,IACjBi6P,EAAYn7N,KAAK3+B,IAkBjBqrD,EAAM,WACR,OAAOviE,EAAKowD,KAAKmS,KACnB,EA2MA,SAAS1hC,EAAShsB,GAChB,IAAIlP,SAAckP,EAClB,QAASA,IAAkB,UAARlP,GAA4B,YAARA,EACzC,CA2EA,SAASsrQ,EAASp8P,GAChB,GAAoB,iBAATA,EACT,OAAOA,EAET,GAhCF,SAAkBA,GAChB,MAAuB,iBAATA,GAtBhB,SAAsBA,GACpB,QAASA,GAAyB,iBAATA,CAC3B,CAqBKqgG,CAAargG,IAAUkhE,EAAezvE,KAAKuO,IAAU47P,CAC1D,CA6BMS,CAASr8P,GACX,OAAO27P,EAET,GAAI3vO,EAAShsB,GAAQ,CACnB,IAAIguL,EAAgC,mBAAjBhuL,EAAM2sL,QAAwB3sL,EAAM2sL,UAAY3sL,EACnEA,EAAQgsB,EAASgiK,GAAUA,EAAQ,GAAMA,CAC3C,CACA,GAAoB,iBAAThuL,EACT,OAAiB,IAAVA,EAAcA,GAASA,EAEhCA,EAAQA,EAAMjN,QAAQ8oQ,EAAQ,IAC9B,IAAIS,EAAWP,EAAWhiP,KAAK/Z,GAC/B,OAAQs8P,GAAYN,EAAUjiP,KAAK/Z,GAC/Bi8P,EAAaj8P,EAAMsE,MAAM,GAAIg4P,EAAW,EAAI,GAC3CR,EAAW/hP,KAAK/Z,GAAS27P,GAAO37P,CACvC,CAEA1U,EAAOD,QAtPP,SAAkB+/B,EAAMw1E,EAAMjwG,GAC5B,IAAIkwG,EACAC,EACAC,EACA96E,EACAsnC,EACAyzC,EACAC,EAAiB,EACjBC,GAAU,EACVC,GAAS,EACTC,GAAW,EAEf,GAAmB,mBAARh2E,EACT,MAAM,IAAIW,UArIQ,uBA+IpB,SAASu1E,EAAWh0C,GAClB,IAAIhiC,EAAOu1E,EACPU,EAAUT,EAKd,OAHAD,EAAWC,OAAWvwG,EACtB0wG,EAAiB3zC,EACjBrnC,EAASmF,EAAKv9B,MAAM0zG,EAASj2E,EAE/B,CAmBA,SAASo2E,EAAap0C,GACpB,IAAIq0C,EAAoBr0C,EAAO0zC,EAM/B,YAAyBzwG,IAAjBywG,GAA+BW,GAAqBf,GACzDe,EAAoB,GAAOR,GANJ7zC,EAAO2zC,GAM8BF,CACjE,CAEA,SAASa,IACP,IAAIt0C,EAAOI,IACX,GAAIg0C,EAAap0C,GACf,OAAOu0C,EAAav0C,GAGtBC,EAAU7xC,WAAWkmF,EAzBvB,SAAuBt0C,GACrB,IAEIrnC,EAAS26E,GAFWtzC,EAAO0zC,GAI/B,OAAOG,EAASg7J,EAAUl2O,EAAQ86E,GAHRzzC,EAAO2zC,IAGkCh7E,CACrE,CAmBqC+7E,CAAc10C,GACnD,CAEA,SAASu0C,EAAav0C,GAKpB,OAJAC,OAAUh9D,EAIN6wG,GAAYP,EACPS,EAAWh0C,IAEpBuzC,EAAWC,OAAWvwG,EACf01B,EACT,CAcA,SAAS8jD,IACP,IAAIzc,EAAOI,IACPu0C,EAAaP,EAAap0C,GAM9B,GAJAuzC,EAAW/yG,UACXgzG,EAAWj1G,KACXm1G,EAAe1zC,EAEX20C,EAAY,CACd,QAAgB1xG,IAAZg9D,EACF,OAvEN,SAAqBD,GAMnB,OAJA2zC,EAAiB3zC,EAEjBC,EAAU7xC,WAAWkmF,EAAchB,GAE5BM,EAAUI,EAAWh0C,GAAQrnC,CACtC,CAgEai8E,CAAYlB,GAErB,GAAIG,EAGF,OADA5zC,EAAU7xC,WAAWkmF,EAAchB,GAC5BU,EAAWN,EAEtB,CAIA,YAHgBzwG,IAAZg9D,IACFA,EAAU7xC,WAAWkmF,EAAchB,IAE9B36E,CACT,CAGA,OAxGA26E,EAAOw7J,EAASx7J,IAAS,EACrB50E,EAASr7B,KACXuwG,IAAYvwG,EAAQuwG,QAEpBH,GADAI,EAAS,YAAaxwG,GACHurQ,EAAUE,EAASzrQ,EAAQowG,UAAY,EAAGH,GAAQG,EACrEK,EAAW,aAAczwG,IAAYA,EAAQywG,SAAWA,GAiG1Dr3B,EAAUtH,OAnCV,gBACkBlyE,IAAZg9D,GACF0V,aAAa1V,GAEf0zC,EAAiB,EACjBJ,EAAWG,EAAeF,EAAWvzC,OAAUh9D,CACjD,EA8BAw5E,EAAUq4B,MA5BV,WACE,YAAmB7xG,IAAZg9D,EAAwBtnC,EAAS47E,EAAan0C,IACvD,EA2BOqc,CACT,C,oCCjPA,IAAIwyL,EAAuB,EAAQ,MAEnC,SAASC,IAAiB,CAC1B,SAASC,IAA0B,CACnCA,EAAuBC,kBAAoBF,EAE3ClxQ,EAAOD,QAAU,WACf,SAASg5O,EAAKtmO,EAAO4+P,EAAUzwD,EAAev/J,EAAUiwN,EAAcC,GACpE,GAAIA,IAAWN,EAAf,CAIA,IAAInnQ,EAAM,IAAIxD,MACZ,mLAKF,MADAwD,EAAI5E,KAAO,sBACL4E,CAPN,CAQF,CAEA,SAAS0nQ,IACP,OAAOz4B,CACT,CAHAA,EAAKl0N,WAAak0N,EAMlB,IAAI04B,EAAiB,CACnB1+N,MAAOgmM,EACP24B,OAAQ34B,EACR44B,KAAM54B,EACNj5M,KAAMi5M,EACNt0N,OAAQs0N,EACRniH,OAAQmiH,EACRvyM,OAAQuyM,EACR64B,OAAQ74B,EAER84B,IAAK94B,EACL+4B,QAASN,EACTt2O,QAAS69M,EACT97J,YAAa87J,EACbg5B,WAAYP,EACZ17D,KAAMijC,EACNi5B,SAAUR,EACVS,MAAOT,EACPU,UAAWV,EACXW,MAAOX,EACPY,MAAOZ,EAEPa,eAAgBlB,EAChBC,kBAAmBF,GAKrB,OAFAO,EAAe9gM,UAAY8gM,EAEpBA,CACT,C,uBC/CEzxQ,EAAOD,QAAU,EAAQ,KAAR,E,gCCNnBC,EAAOD,QAFoB,8C,oCCJ3BA,EAAiB,aAAI,EAErB,IAAIkvO,EAcJ,SAAiChjK,GAAO,GAAIA,GAAOA,EAAI0wL,WAAc,OAAO1wL,EAAO,GAAY,OAARA,GAAiC,WAAjBqmM,EAAQrmM,IAAoC,mBAARA,EAAsB,MAAO,CAAE,QAAWA,GAAS,IAAIswC,EAAQg2J,IAA4B,GAAIh2J,GAASA,EAAM6a,IAAInrD,GAAQ,OAAOswC,EAAM56G,IAAIsqE,GAAQ,IAAI+1C,EAAS,CAAC,EAAOwwJ,EAAwBt2P,OAAO66D,gBAAkB76D,OAAOkhH,yBAA0B,IAAK,IAAIv/G,KAAOouD,EAAO,GAAI/vD,OAAOgkB,UAAUoP,eAAenpC,KAAK8lE,EAAKpuD,GAAM,CAAE,IAAIyqI,EAAOkqH,EAAwBt2P,OAAOkhH,yBAAyBnxD,EAAKpuD,GAAO,KAAUyqI,IAASA,EAAK3mJ,KAAO2mJ,EAAKv1E,KAAQ72D,OAAO66D,eAAeirC,EAAQnkG,EAAKyqI,GAAgBtmC,EAAOnkG,GAAOouD,EAAIpuD,EAAQ,CAAImkG,EAAgB,QAAI/1C,EAASswC,GAASA,EAAMxpC,IAAI9G,EAAK+1C,GAAW,OAAOA,CAAQ,CAdhuBywJ,CAAwB,EAAQ,OAEzCC,EAAa1F,EAAuB,EAAQ,OAE5C2F,EAAU3F,EAAuB,EAAQ,OAEzC4F,EAAgB5F,EAAuB,EAAQ,OAE/C6F,EAAS,EAAQ,MAErB,SAAS7F,EAAuB/gM,GAAO,OAAOA,GAAOA,EAAI0wL,WAAa1wL,EAAM,CAAE,QAAWA,EAAO,CAEhG,SAASsmM,IAA6B,GAAuB,mBAAZO,QAAwB,OAAO,KAAM,IAAIv2J,EAAQ,IAAIu2J,QAA6F,OAAlFP,EAA2B,WAAsC,OAAOh2J,CAAO,EAAUA,CAAO,CAIjN,SAAS+1J,EAAQrmM,GAAmV,OAAtOqmM,EAArD,mBAAX3U,QAAoD,iBAApBA,OAAOS,SAAmC,SAAiBnyL,GAAO,cAAcA,CAAK,EAAsB,SAAiBA,GAAO,OAAOA,GAAyB,mBAAX0xL,QAAyB1xL,EAAI7qC,cAAgBu8N,QAAU1xL,IAAQ0xL,OAAOz9N,UAAY,gBAAkB+rC,CAAK,EAAYqmM,EAAQrmM,EAAM,CAEzX,SAASugM,EAAQ51I,EAAQ61I,GAAkB,IAAI1qO,EAAO7lB,OAAO6lB,KAAK60F,GAAS,GAAI16G,OAAOqsL,sBAAuB,CAAE,IAAImkE,EAAUxwP,OAAOqsL,sBAAsB3xE,GAAa61I,IAAgBC,EAAUA,EAAQj6O,QAAO,SAAUk6O,GAAO,OAAOzwP,OAAOkhH,yBAAyBxG,EAAQ+1I,GAAKzpE,UAAY,KAAInhK,EAAKv9B,KAAKjC,MAAMw/B,EAAM2qO,EAAU,CAAE,OAAO3qO,CAAM,CAEpV,SAASxoB,EAAcxE,GAAU,IAAK,IAAI1U,EAAI,EAAGA,EAAImC,UAAU8I,OAAQjL,IAAK,CAAE,IAAIghH,EAAyB,MAAhB7+G,UAAUnC,GAAamC,UAAUnC,GAAK,CAAC,EAAOA,EAAI,EAAKmsQ,EAAQtwP,OAAOmlG,IAAS,GAAM/yC,SAAQ,SAAUzwD,GAAO/I,EAAgBC,EAAQ8I,EAAKwjG,EAAOxjG,GAAO,IAAe3B,OAAO2wP,0BAA6B3wP,OAAO4wP,iBAAiB/3P,EAAQmH,OAAO2wP,0BAA0BxrJ,IAAmBmrJ,EAAQtwP,OAAOmlG,IAAS/yC,SAAQ,SAAUzwD,GAAO3B,OAAO66D,eAAehiE,EAAQ8I,EAAK3B,OAAOkhH,yBAAyB/b,EAAQxjG,GAAO,GAAM,CAAE,OAAO9I,CAAQ,CAIrhB,SAASg+P,EAAkBh+P,EAAQtC,GAAS,IAAK,IAAIpS,EAAI,EAAGA,EAAIoS,EAAMnH,OAAQjL,IAAK,CAAE,IAAIs7M,EAAalpM,EAAMpS,GAAIs7M,EAAWzY,WAAayY,EAAWzY,aAAc,EAAOyY,EAAW/5F,cAAe,EAAU,UAAW+5F,IAAYA,EAAWh6F,UAAW,GAAMzlG,OAAO66D,eAAehiE,EAAQ4mM,EAAW99L,IAAK89L,EAAa,CAAE,CAI5T,SAAS51M,EAAaitQ,GAAW,OAAO,WAAc,IAAsCr4O,EAAlCs4O,EAAQC,EAAgBF,GAAkB,GAMpG,WAAuC,GAAuB,oBAAZG,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAUC,KAAM,OAAO,EAAO,GAAqB,mBAAVtY,MAAsB,OAAO,EAAM,IAAiF,OAA3E9qM,KAAK/vB,UAAUva,SAASxf,KAAKgtQ,QAAQC,UAAUnjN,KAAM,IAAI,WAAa,MAAY,CAAM,CAAE,MAAO7hD,GAAK,OAAO,CAAO,CAAE,CAN3NklQ,GAA6B,CAAE,IAAIC,EAAYL,EAAgB3yQ,MAAM6gC,YAAazG,EAASw4O,QAAQC,UAAUH,EAAOzwQ,UAAW+wQ,EAAY,MAAS54O,EAASs4O,EAAM1wQ,MAAMhC,KAAMiC,WAAc,OAErS,SAAoClC,EAAM6F,GAAQ,GAAIA,IAA2B,WAAlBmsQ,EAAQnsQ,IAAsC,mBAATA,GAAwB,OAAOA,EAAQ,OAAO61E,EAAuB17E,EAAO,CAF4HkzQ,CAA2BjzQ,KAAMo6B,EAAS,CAAG,CAIzV,SAASqhD,EAAuB17E,GAAQ,QAAa,IAATA,EAAmB,MAAM,IAAImzQ,eAAe,6DAAgE,OAAOnzQ,CAAM,CAIrK,SAAS4yQ,EAAgB3W,GAAwJ,OAAnJ2W,EAAkBh3P,OAAOilB,eAAiBjlB,OAAOw6D,eAAiB,SAAyB6lL,GAAK,OAAOA,EAAE9hI,WAAav+G,OAAOw6D,eAAe6lL,EAAI,EAAU2W,EAAgB3W,EAAI,CAI5M,SAASmX,EAAgBnX,EAAG38N,GAA+G,OAA1G8zO,EAAkBx3P,OAAOilB,gBAAkB,SAAyBo7N,EAAG38N,GAAsB,OAAjB28N,EAAE9hI,UAAY76F,EAAU28N,CAAG,EAAUmX,EAAgBnX,EAAG38N,EAAI,CAEzK,SAAS9qB,EAAgBm3D,EAAKpuD,EAAKnJ,GAAiK,OAApJmJ,KAAOouD,EAAO/vD,OAAO66D,eAAe9K,EAAKpuD,EAAK,CAAEnJ,MAAOA,EAAOwuL,YAAY,EAAMthF,cAAc,EAAMD,UAAU,IAAkB11C,EAAIpuD,GAAOnJ,EAAgBu3D,CAAK,CAEhN,IAAI0nM,EAAa,WACf,OAAO,CACT,EAYIC,EAA8B,uBAG9BC,EAAuB,gBACvBC,EAAuB,gBAEvBC,EAAwB,iBAExB7+O,EAA2B,SAAU41C,IA5BzC,SAAmBkpM,EAAUC,GAAc,GAA0B,mBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAIxzO,UAAU,sDAAyDuzO,EAAS9zO,UAAYhkB,OAAOszB,OAAOykO,GAAcA,EAAW/zO,UAAW,CAAEkB,YAAa,CAAE1sB,MAAOs/P,EAAUryJ,UAAU,EAAMC,cAAc,KAAeqyJ,GAAYP,EAAgBM,EAAUC,EAAa,CA6B9XpuQ,CAAUqvB,EAAa41C,GAEvB,IA3CoBopM,EAAaC,EAAYC,EA2CzCtuQ,EAASC,EAAamvB,GAE1B,SAASA,EAAY3uB,GACnB,IAAIN,EAEAouQ,EAA2B9tQ,EAAM+tQ,wBA2NrC,OA/QJ,SAAyB34L,EAAUu4L,GAAe,KAAMv4L,aAAoBu4L,GAAgB,MAAM,IAAIzzO,UAAU,oCAAwC,CAsDpJv6B,CAAgB3F,KAAM20B,GAItBpgB,EAAgBknE,EAFhB/1E,EAAQH,EAAOK,KAAK5F,OAE2B,uBAAuB,SAAUkmB,GAC9ExgB,EAAMsuQ,mCAAoC,EAI1C,IAHA,IAAIz+D,EAAOrvL,EAAM27F,QAAU37F,EAAM27F,OAAOrtG,QACxC0R,EAAM1R,OAEU,OAAT+gM,GAAiBA,IAASn1L,UAAU,CACzC,GAAIm1L,EAAKl1F,cAA+D,OAA/Ck1F,EAAKl1F,aAAa,yBAEzC,OAGF,GAAIk1F,IAAS7vM,EAAMuuQ,qBAGjB,YADAvuQ,EAAMsuQ,mCAAoC,GAI5Cz+D,EAAOA,EAAKpyH,UACd,CACF,IAEA5uE,EAAgBknE,EAAuB/1E,GAAQ,wBAAwB,SAAUwuQ,GAC1D,OAAjBA,IACFxuQ,EAAMwuQ,aAAeA,EAEzB,IAEA3/P,EAAgBknE,EAAuB/1E,GAAQ,0BAA0B,SAAUwgB,EAAO3d,GACxF,IAAI4rQ,EAAe5rQ,EAAM4rQ,aACrBC,EAAY7rQ,EAAM6rQ,UAEtB1uQ,EAAM2uQ,4BAA4BF,EAAcC,GAE5CluP,EAAM1R,SAAW9O,EAAM4uQ,oBACzB5uQ,EAAM6uQ,wBAAyB,GAGjC7uQ,EAAM8uQ,kBAAmB,EACzB3kP,YAAW,WACTnqB,EAAM8uQ,kBAAmB,CAC3B,GACF,IAEAjgQ,EAAgBknE,EAAuB/1E,GAAQ,4BAA4B,WACzEA,EAAM2uQ,4BAA4B3uQ,EAAMwM,MAAMuiQ,aAAe,EAAI,KAAM,EACzE,IAEAlgQ,EAAgBknE,EAAuB/1E,GAAQ,qBAAqB,WAC9DA,EAAM4uQ,oBAAsB5uQ,EAAM6uQ,wBACpC7uQ,EAAMqoB,MAAMy6K,QAGd9iM,EAAM4uQ,kBAAoB,IAC5B,IAEA//P,EAAgBknE,EAAuB/1E,GAAQ,yBAAyB,SAAUwgB,GAG3ExgB,EAAM6uQ,yBACT7uQ,EAAM6uQ,wBAAyB,EAC/B7uQ,EAAM4uQ,kBAAoBpuP,EAAM1R,OAEpC,IAEAD,EAAgBknE,EAAuB/1E,GAAQ,+BAA+B,WAC5E,IAAIkvB,EAA8BlvB,EAAMwM,MAAM0iB,4BAC9CA,GAA+BA,GACjC,IAEArgB,EAAgBknE,EAAuB/1E,GAAQ,wBAAwB,SAAUwgB,EAAO3kB,GACtF,IAAIk+E,EAAc/5E,EAAMwM,MACpB6hQ,EAA0Bt0L,EAAYs0L,wBACtCl/O,EAAuB4qD,EAAY5qD,qBACnCb,EAA8ByrD,EAAYzrD,4BAC9Ca,GAAwBA,EAAqB3O,EAAO3kB,GAEpD,IAAImzQ,EAA0BhvQ,EAAMwM,MAAMyiQ,8BAA8BpzQ,EAAKmoB,YAEzEqqP,GAA2BW,EAC7B1gP,EAA4B,CAC1B7f,MAAO5S,EAAKwzB,gBACZkyF,OArGuB,wBAwGzBvhH,EAAMkvB,8BAGRlvB,EAAMkvQ,4BACR,IAEArgQ,EAAgBknE,EAAuB/1E,GAAQ,qBAAqB,SAAUwgB,GAC5E,IAAIy5D,EAAej6E,EAAMwM,MACrB6hQ,EAA0Bp0L,EAAao0L,wBACvCc,EAA8Bl1L,EAAak1L,4BAE3CC,EAAwBpvQ,EAAMqvQ,qBAAqBrvQ,EAAMsvQ,sBAAsB9uP,EAAM1R,SACrF2/P,EAAeW,EAAsBX,aACrCc,EAAkBH,EAAsBG,gBAExCC,EAAoBxvQ,EAAMyvQ,cAAchB,EAAcc,GAEtDG,EAAyB1vQ,EAAMwM,MAAM0Y,mBAAmBsqP,GAE5DxvQ,EAAM2vQ,kBAAkBnvP,EAAOkvP,EAAwB,SAEvD1vQ,EAAMmvB,qBAAqB3O,EAAO,CAChCwD,WAAYwrP,EACZngP,gBAAiBqgP,EACjBH,gBAAiBA,EACjBd,aAAcA,EACd7kJ,OAAQ,UAGV,IAAIolJ,EAA0BhvQ,EAAMwM,MAAMyiQ,8BAA8BO,GAElEnB,GAA2BW,GAC/BhvQ,EAAM4vQ,oBAG4B,IAAhCT,EACFnvQ,EAAMqoB,MAAMy6K,QAEZ9iM,EAAM0uB,SAGRvE,YAAW,WACTnqB,EAAM6uQ,wBAAyB,CACjC,GACF,IAEAhgQ,EAAgBknE,EAAuB/1E,GAAQ,UAAU,WACvD,IAAIm6E,EAAen6E,EAAMwM,MACrB+hB,EAAa4rD,EAAa5rD,WAC1BshP,EAA0B11L,EAAa01L,wBACvCphQ,EAAQ8f,EAAW9f,MACnBigB,EAASH,EAAWG,OAEpBohP,EAAwB9vQ,EAAM+vQ,2BAE9BC,EAAeH,EAAwBphQ,EA5JtB,iBA8JrBzO,EAAMiyC,SAAS,CACbk5J,WAAW,EACX8kE,wBAAyB,KACzBC,2BAA4B,KAC5BJ,sBAAuB,KACvBK,kBAAmB,KACnBn8D,aAAcg8D,IAGhBthP,GAAUA,EAAO1uB,EAAMowQ,UAAW,CAChCN,sBAAuBA,GAE3B,IAEAjhQ,EAAgBknE,EAAuB/1E,GAAQ,0BAA0B,SAAUwgB,GACjFxgB,EAAMkvQ,4BAA2B,GAG7BlvQ,EAAM6uQ,wBAA0BruP,EAAM1R,SAAW9O,EAAM4uQ,oBACzD5uQ,EAAM6uQ,wBAAyB,EAEnC,IAEAhgQ,EAAgBknE,EAAuB/1E,GAAQ,0BAA0B,WACvEA,EAAM6uQ,wBAAyB,CAEjC,IAEAhgQ,EAAgBknE,EAAuB/1E,GAAQ,yBAAyB,WACtEA,EAAM6uQ,wBAAyB,EAC/B7uQ,EAAM4uQ,kBAAoB,KAE1B5uQ,EAAMqoB,MAAMy6K,OACd,IAEAj0L,EAAgBknE,EAAuB/1E,GAAQ,aAAa,SAAUovB,GAGpE,MAAO,CACL,qBAHiBA,EAAMq/O,aAIvB,wBAHcr/O,EAAMs/O,UAIpB50N,aAAc95C,EAAMqwQ,uBACpB1sM,aAAc3jE,EAAMswQ,uBACpB1qE,YAAa5lM,EAAMuwQ,sBACnB5mL,aAAc3pF,EAAMwwQ,uBACpBxuB,YAAahiP,EAAMywQ,sBACnBvoQ,QAASlI,EAAM0wQ,kBAEnB,IAEA7hQ,EAAgBknE,EAAuB/1E,GAAQ,8BAA8B,SAAU45N,GACrF,IAAItM,EAAiBsM,EAAMtM,eACvBrjM,EAAW2vM,EAAM3vM,SAErB,OAAO0mP,EAD0B3wQ,EAAMwM,MAAMmkQ,4BACX,CAChCrjD,eAAgBA,EAChBrjM,SAAUA,EACVk0F,MAAOn+G,EAAM4wQ,YAEjB,IAEA5wQ,EAAMqH,MAAQ,CACZ8jM,WAAW,EACX6I,aAAco6D,EACd6B,wBAAyB,KACzBC,2BAA4B,KAC5BJ,sBAAuB,KACvBK,kBAAmB,MAErBnwQ,EAAM6wQ,mBAAoB,EAC1B7wQ,EAAM8uQ,kBAAmB,EACzB9uQ,EAAM4uQ,kBAAoB,KACnB5uQ,CACT,CAodA,OAhuBoBiuQ,EA8QPh/O,EA9QoBi/O,EA8QP,CAAC,CACzBt2P,IAAK,oBACLnJ,MAAO,WACLiM,SAASC,iBAAiB,YAAargB,KAAKw2Q,qBAC5Cp2P,SAASC,iBAAiB,UAAWrgB,KAAKy2Q,mBAC1Cz2Q,KAAK+tB,MAAQ/tB,KAAKk0Q,aAAanmP,MAC/B/tB,KAAKi0Q,qBAAuBj0Q,KAAKk0Q,aAAawC,cAChD,GAEC,CACDp5P,IAAK,mCACLnJ,MAAO,SAA0Cq6D,GAG/C,IAAImoM,EAAoE,IAA1C32Q,KAAK+M,MAAM6oQ,4BAAoC51Q,KAAKkS,MAAM0kQ,2BAA6BpoM,EAAUooM,0BAE3H,EAAIxE,EAAiB,SAAG5jM,EAAU77C,YAAa3yB,KAAKkS,MAAMygB,aACxD67C,EAAUooM,0BAA4BpoM,EAAU77C,YAAY5nB,OAAS,IAAgC,IAA3B/K,KAAKu2Q,oBAAyD,IAA1Bv2Q,KAAKw0Q,iBACrHx0Q,KAAK42Q,2BACID,GACT32Q,KAAK40Q,6BAGH50Q,KAAK62Q,sBAAsBroM,EApQN,wBAqQnBxuE,KAAK+M,MAAM2sM,cAAgB15M,KAAKu0Q,wBAClCv0Q,KAAK82Q,oBAGHH,GACF32Q,KAAK40Q,8BAGP50Q,KAAK40Q,4BAGX,GACC,CACDt3P,IAAK,qBACLnJ,MAAO,SAA4ByvE,EAAW29H,GAC5C,IAAIxhI,EAAe//E,KAAKkS,MACpBygB,EAAcotD,EAAaptD,YAC3BokP,EAA0Bh3L,EAAag3L,wBACvCH,EAA2B72L,EAAa62L,yBAE5C,KAAK,EAAIxE,EAAiB,SAAGz/O,EAAaixD,EAAUjxD,cAAgBA,EAAY5nB,OAAS,GAAK6rQ,EAC5F52Q,KAAK42Q,gCAIP,GAAIG,EAAyB,CAC3B,IAAIvB,EAAwBx1Q,KAAKy1Q,2BAG7BD,GAF4Bj0D,EAAUi0D,uBAGxCuB,EAAwB,CACtBrtP,WAAY8rP,GAGlB,CACF,GACC,CACDl4P,IAAK,uBACLnJ,MAAO,WACLiM,SAASE,oBAAoB,YAAatgB,KAAKw2Q,qBAC/Cp2P,SAASE,oBAAoB,UAAWtgB,KAAKy2Q,kBAC/C,GACC,CACDn5P,IAAK,8BACLnJ,MAAO,SAAqCggQ,EAAcc,EAAiB7iO,GACzE,IAAIw8B,EAAS5uE,KAEbA,KAAK23C,UAAS,SAAU5qC,GACtB,IAAI8oQ,EAAoB9oQ,EAAM8oQ,kBAQ9B,OANwB,OAApBZ,EACFY,EAAoB,KACW,OAAtBA,QAAmD,IAAdzjO,IAC9CyjO,EAAoBzjO,GAGf,CACLujO,wBAAyBxB,EACzByB,2BAA4BX,EAC5BO,sBAA2C,OAApBP,EAA2B,KAAOrmM,EAAOumM,cAAchB,EAAcc,GAC5FY,kBAAmBA,EAEvB,GACF,GACC,CACDv4P,IAAK,6BACLnJ,MAAO,WACL,IAAI6iQ,IAA+B/0Q,UAAU8I,OAAS,QAAsBrG,IAAjBzC,UAAU,KAAmBA,UAAU,GAClGjC,KAAK23C,UAAS,SAAU5qC,GACtB,IAAI8oQ,EAAoB9oQ,EAAM8oQ,kBAC9B,MAAO,CACLF,wBAAyB,KACzBC,2BAA4B,KAC5BJ,sBAAuB,KACvBK,kBAAmBmB,EAA+B,KAAOnB,EAE7D,GACF,GACC,CACDv4P,IAAK,oBACLnJ,MAAO,WACLnU,KAAK23C,SAAS,CACZ+hK,aAAa,GAEjB,GACC,CACDp8L,IAAK,mBACLnJ,MAAO,WACLnU,KAAK23C,SAAS,CACZg+N,wBAAyB,KACzBC,2BAA4B,KAC5BJ,sBAAuB,KACvBK,kBAAmB,KACnBn8D,aAAa,GAEjB,GACC,CACDp8L,IAAK,gBACLnJ,MAAO,SAAuBggQ,EAAcc,GAC1C,IAAIh1L,EAAejgF,KAAKkS,MACpBygB,EAAcstD,EAAattD,YAC3B8hP,EAAex0L,EAAaw0L,aAC5BwC,EAAwBh3L,EAAag3L,sBAEzC,OAAIxC,EACKwC,EAAsBtkP,EAAYwhP,IAAec,GAGnDtiP,EAAYsiP,EACrB,GACC,CACD33P,IAAK,2BACLnJ,MAAO,WACL,IAAI+iQ,EAAcl3Q,KAAK+M,MACnB4oQ,EAA0BuB,EAAYvB,wBACtCC,EAA6BsB,EAAYtB,2BAE7C,OAAmC,OAA/BA,EACK,KAGF51Q,KAAKm1Q,cAAcQ,EAAyBC,EACrD,GACC,CACDt4P,IAAK,4BACLnJ,MAAO,SAAmCggQ,EAAcc,GAEtD,OAAOrqP,EADkB5qB,KAAKkS,MAAM0Y,oBACV5qB,KAAKm1Q,cAAchB,EAAcc,GAC7D,GACC,CACD33P,IAAK,uBACLnJ,MAAO,SAA8BgjQ,GACnC,IAAIhD,EAAegD,EAAkB92J,aAAa,sBAC9C40J,EAAkBkC,EAAkB92J,aAAa,yBACrD,MAAO,CACL8zJ,aAAsC,iBAAjBA,EAA4B/oN,SAAS+oN,EAAc,IAAM,KAC9Ec,gBAAiB7pN,SAAS6pN,EAAiB,IAE/C,GACC,CACD33P,IAAK,wBACLnJ,MAAO,SAA+BijQ,GACpC,IAAI7hE,EAAO6hE,EAEX,EAAG,CACD,GAAI7hE,EAAKl1F,cAA+D,OAA/Ck1F,EAAKl1F,aAAa,yBACzC,OAAOk1F,EAGTA,EAAOA,EAAKpyH,UACd,OAAkB,OAAToyH,GAIT,MAFA5zM,QAAQC,MAAM,mBAAoBw1Q,GAE5B,IAAIrxQ,MAAM,mCAClB,GACC,CACDuX,IAAK,oBACLnJ,MAAO,SAA2B+R,EAAOiO,EAAUm7F,GACjD,IAAI+nJ,EAAwBr3Q,KAAKkS,MAAM+hB,WACnC9f,EAAQkjQ,EAAsBljQ,MAC9BE,EAAWgjQ,EAAsBhjQ,SAEjC8f,IAAahgB,GACfE,EAAS6R,EAAO,CACdiO,SAAUA,EACVm7F,OAAQA,GAGd,GACC,CACDhyG,IAAK,wBACLnJ,MAAO,SAA+BjC,EAAO+0G,GAC3C,IAAIt0F,EAAczgB,EAAMygB,YACpBsB,EAAa/hB,EAAM+hB,WACnBshP,EAA0BrjQ,EAAMqjQ,wBAChCphQ,EAAQ8f,EAAW9f,MACvB,OAAOwe,EAAY5nB,OAAS,GAAKwqQ,EAAwBphQ,EAAO8yG,EAClE,GACC,CACD3pG,IAAK,WACLnJ,MAAO,WACL,IACIA,EADanU,KAAKkS,MAAM+hB,WACL9f,MACnB0hQ,EAAoB71Q,KAAK+M,MAAM8oQ,kBACnC,OAA8B,OAAtBA,EAA6B1hQ,EAAQ0hQ,GAAmB7jP,MAClE,GACC,CACD1U,IAAK,SACLnJ,MAAO,WACL,IAAI0vE,EAAS7jF,KAETmgF,EAAengF,KAAKkS,MACpBygB,EAAcwtD,EAAaxtD,YAC3B2kP,EAAuBn3L,EAAam3L,qBACpCtjP,EAA8BmsD,EAAansD,4BAC3C5B,EAAmB+tD,EAAa/tD,iBAChC6B,EAAaksD,EAAalsD,WAC1BwgP,EAAet0L,EAAas0L,aAC5B8C,EAAqBp3L,EAAao3L,mBAClCtiP,EAAKkrD,EAAalrD,GAClBgiP,EAAwB92L,EAAa82L,sBACrC5tP,EAAQ82D,EAAa92D,MACrBuB,EAAqBu1D,EAAav1D,mBAClCmpP,EAA0B5zL,EAAa4zL,wBACvC6C,EAA2Bz2L,EAAay2L,yBACxC5jD,EAAiB7yI,EAAa6yI,eAC9BwkD,EAAex3Q,KAAK+M,MACpB8jM,EAAY2mE,EAAa3mE,UACzB6I,EAAc89D,EAAa99D,YAC3Bi8D,EAA0B6B,EAAa7B,wBACvCC,EAA6B4B,EAAa5B,2BAC1CC,EAAoB2B,EAAa3B,kBACjCN,EAA0BxB,EAA0BX,EAAapzQ,KAAKkS,MAAMqjQ,wBAC5EphQ,EAAQ8f,EAAW9f,MACnBsjQ,EAAWxjP,EAAWM,QACtBmjP,EAAazjP,EAAW6iE,UACxB+/K,EAAwB72Q,KAAK62Q,sBAAsB72Q,KAAKkS,MAAO,UAC/D2/L,EAASkiE,GAA2BljE,IAAc6I,GAAem9D,EACjEhwI,EAAQgrE,EAASl/K,EAAc,GAE/BglP,EAAyB3+P,EAAc,CAAC,EAAGib,EAAY,CACzDM,QAAS,SAAiBrO,GACxB,IAAK29D,EAAO0wL,yBAA2B1wL,EAAOmwL,kCAAmC,CAC/E,IAAI0B,EAAeH,EAAwBphQ,EAAOm/P,GAElDzvL,EAAOlsC,SAAS,CACdk5J,WAAW,EACX6I,aAAcg8D,IAGhB+B,GAAYA,EAASvxP,GAEjBwvP,GACF1hP,EAA4B,CAC1B7f,MAAOA,EACP8yG,OAAQqsJ,GAGd,CACF,EACAl/O,OAAQ,SAAgBlO,GAClB29D,EAAOmwL,kCACTnwL,EAAO91D,MAAMy6K,SAKf3kH,EAAOiyL,UAAY5vP,EAEd29D,EAAO0wL,yBACV1wL,EAAOzvD,SAEPyvD,EAAOjvD,+BAEX,EACAvgB,SAAU,SAAkB6R,GAC1B,IAAI/R,EAAQ+R,EAAM1R,OAAOL,MACrBuhQ,EAAeH,EAAwBphQ,EAAOo/P,GAElD1vL,EAAOwxL,kBAAkBnvP,EAAO/R,EAAO,QAEnC0vE,EAAOowL,uBACTpwL,EAAOowL,qBAAqBl8L,UAAY,GAG1C8L,EAAOlsC,SAAS3+B,EAAc,CAAC,EAAG49P,EAA2B,CAAC,EAAI,CAChEjB,wBAAyB,KACzBC,2BAA4B,KAC5BJ,sBAAuB,MACtB,CACDK,kBAAmB,KACnBn8D,aAAcg8D,KAGZA,EACF1hP,EAA4B,CAC1B7f,MAAOA,EACP8yG,OAAQssJ,IAGV1vL,EAAOjvD,6BAEX,EACAkiE,UAAW,SAAmB5wE,EAAO3kB,GACnC,IAAIw1F,EAAU7wE,EAAM6wE,QAEpB,OAAQA,GACN,KAAK,GAEL,KAAK,GAEH,GAAI2iH,EACE67D,EAAwBphQ,EAAOk/P,KACjCr/O,EAA4B,CAC1B7f,MAAOA,EACP8yG,OAAQosJ,IAGVxvL,EAAOizL,oBAEP5wP,EAAM3V,uBAEH,GAAIoiB,EAAY5nB,OAAS,EAAG,CACjC,IAEIopB,EAFAyjP,EAA6Br2Q,EAAKq2Q,2BAClCC,EAA0Bt2Q,EAAKs2Q,wBAOjC1jP,EAJ8B,OAA5B0jP,EAI+B,OAAtBhC,EAA6B1hQ,EAAQ0hQ,EAErChyL,EAAOi0L,0BAA0BF,EAA4BC,GAG1Eh0L,EAAOwwL,4BAA4BuD,EAA4BC,EAAyB1jQ,GAExF0vE,EAAOwxL,kBAAkBnvP,EAAOiO,EAAsB,KAAZ4iE,EAAiB,OAAS,MAEpE7wE,EAAM3V,gBACR,CAEAszE,EAAO0yL,mBAAoB,EAC3B1mP,YAAW,WACTg0D,EAAO0yL,mBAAoB,CAC7B,IACA,MAGF,KAAK,GAGD,GAAsB,MAAlBrwP,EAAM6wE,QACR,MAGF,IAAIy+K,EAAwB3xL,EAAO4xL,2BAMnC,GAJI5jE,IAAWkiE,GACblwL,EAAOyxL,mBAGoB,MAAzBE,EAA+B,CACjCtvP,EAAM3V,iBAEN,IAAIwnQ,EAAYntP,EAAmB4qP,GAEnC3xL,EAAOwxL,kBAAkBnvP,EAAO6xP,EAAW,SAE3Cl0L,EAAOhvD,qBAAqB3O,EAAO,CACjCwD,WAAY8rP,EACZzgP,gBAAiBgjP,EACjB9C,gBAAiBW,EACjBzB,aAAcwB,EACdrmJ,OAAQ,UAGVzrC,EAAO0wL,wBAAyB,EAChC1kP,YAAW,WACTg0D,EAAO0wL,wBAAyB,CAClC,GACF,CAEA,MAIJ,KAAK,GAEG1iE,GAKF3rL,EAAM3V,iBAGR,IAAIynQ,EAAuBnmE,IAAWkiE,EAEZ,OAAtB8B,EAEGmC,IAGHn0L,EAAOwxL,kBAAkBnvP,EAFR,GAE2B,UAExCqvP,EAJa,GAIuB/B,GACtCx/O,EAA4B,CAC1B7f,MANa,GAOb8yG,OAAQusJ,IAGV3vL,EAAOjvD,+BAKXivD,EAAOwxL,kBAAkBnvP,EAAO2vP,EAAmB,UAGjDmC,GACFn0L,EAAOjvD,8BAEPivD,EAAOyxL,oBAEPzxL,EAAO+wL,6BAOf8C,GAAcA,EAAWxxP,EAC3B,IAGE+xP,EAAuB,CACzBp0J,MAAO7jH,KAAKs2Q,YAEd,OAAoB5nC,EAAgB,QAAE9jK,cAAcynM,EAAuB,QAAG,CAC5EoC,aAAcA,EACd5tI,MAAOA,EACPywI,qBAAsBA,EACtBY,qBAAsBl4Q,KAAKq2Q,2BAC3B8B,WAAY/lP,EACZgmP,eAAgBH,EAChBV,mBAAoBA,EACpBc,gBAAiBpB,EACjBtB,wBAAyBA,EACzB2C,qBAAsB1C,EACtB5iD,eAAgBA,EAChB/+L,WAAY0jP,EACZY,UAAWv4Q,KAAKu4Q,UAChBlvP,OAAO,EAAIipP,EAAOkG,wBAAwBnvP,GAC1C4L,GAAIA,EACJ/Z,IAAKlb,KAAKy4Q,sBAEd,IA7tB8D7E,GAAYpB,EAAkBmB,EAAYh0O,UAAWi0O,GAAiBC,GAAarB,EAAkBmB,EAAaE,GAguB3Kl/O,CACT,CAzrB+B,CAyrB7B+5M,EAAO5jK,WAETtrE,EAAiB,QAAIm1B,EAErBpgB,EAAgBogB,EAAa,YAAa,CACxChC,YAAaw/O,EAAoB,QAAE3/N,MAAMluB,WACzC0P,4BAA6B,SAAqC9hB,EAAO4+P,GACvE,IAAI98O,EAA8B9hB,EAAM4+P,GAExC,GAA2C,mBAAhC98O,EACT,MAAM,IAAIjuB,MAAM,wIAEpB,EACA6uB,4BAA6B,SAAqC1iB,EAAO4+P,GACvE,IAAIl8O,EAA8B1iB,EAAM4+P,GAExC,IAAsC,IAAlC5+P,EAAM6hQ,yBAA4E,mBAAhCn/O,EACpD,MAAM,IAAI7uB,MAAM,wIAEpB,EACA4uQ,8BAA+BxC,EAAoB,QAAE5yO,KACrD1K,qBAAsBs9O,EAAoB,QAAE5yO,KAC5Cw3O,wBAAyB5E,EAAoB,QAAE5yO,KAC/C+3O,qBAAsBnF,EAAoB,QAAE5yO,KAC5C82O,2BAA4BlE,EAAoB,QAAE5yO,KAClD3U,mBAAoBunP,EAAoB,QAAE5yO,KAAKjb,WAC/C8N,iBAAkB+/O,EAAoB,QAAE5yO,KAAKjb,WAC7C2P,WAAY,SAAoB/hB,EAAO4+P,GACrC,IAAI78O,EAAa/hB,EAAM4+P,GAEvB,IAAK78O,EACH,MAAM,IAAIluB,MAAM,gCAGlB,IAAK4V,OAAOgkB,UAAUoP,eAAenpC,KAAKquB,EAAY,SACpD,MAAM,IAAIluB,MAAM,mCAGlB,IAAK4V,OAAOgkB,UAAUoP,eAAenpC,KAAKquB,EAAY,YACpD,MAAM,IAAIluB,MAAM,qCAEpB,EACAwvQ,wBAAyBpD,EAAoB,QAAE5yO,KAC/Cw0O,wBAAyB5B,EAAoB,QAAEf,KAC/CqD,aAActC,EAAoB,QAAEf,KACpCmG,mBAAoB,SAA4BrlQ,EAAO4+P,GACrD,IAAIyG,EAAqBrlQ,EAAM4+P,GAE/B,IAA2B,IAAvB5+P,EAAMuiQ,cAAuD,mBAAvB8C,EACxC,MAAM,IAAIxxQ,MAAM,sHAEpB,EACAkxQ,sBAAuB,SAA+B/kQ,EAAO4+P,GAC3D,IAAImG,EAAwB/kQ,EAAM4+P,GAElC,IAA2B,IAAvB5+P,EAAMuiQ,cAA0D,mBAA1BwC,EACxC,MAAM,IAAIlxQ,MAAM,4HAEpB,EACA8uQ,4BAA6B1C,EAAoB,QAAEf,KACnDwF,yBAA0BzE,EAAoB,QAAEf,KAChD/nP,MAAO8oP,EAAoB,QAAE97I,OAC7BphG,GAAIk9O,EAAoB,QAAElsO,OAC1B+sL,eAAgBm/C,EAAoB,QAAE97I,SAIxC9hH,EAAgBogB,EAAa,eAAgB,CAC3C0hP,2BA3wBsC,SAA2Ch2Q,GACjF,IAAI2yN,EAAiB3yN,EAAK2yN,eACtBrjM,EAAWtvB,EAAKsvB,SACpB,OAAoB++M,EAAgB,QAAE9jK,cAAc,MAAOooJ,EAAgBrjM,EAC7E,EAwwBE4lP,wBAhxBmC,SAAwCphQ,GAC3E,OAAOA,EAAM6d,OAAOjnB,OAAS,CAC/B,EA+wBEgpQ,yBAAyB,EACzBU,cAAc,EACdE,8BAA+B,WAC7B,OAAO,CACT,EACAE,6BAA6B,EAC7B+B,0BAA0B,EAC1BvtP,MAAOipP,EAAOoG,aACdzjP,GAAI,IACJ+9L,eAAgB,CAAC,G,oCC/0BnBr3M,OAAO66D,eAAeh3E,EAAS,aAAc,CAC3C2U,OAAO,IAET3U,EAAiB,aAAI,EAErB,IAAIkvO,EAgBJ,SAAiChjK,GAAO,GAAIA,GAAOA,EAAI0wL,WAAc,OAAO1wL,EAAO,GAAY,OAARA,GAAiC,WAAjBqmM,EAAQrmM,IAAoC,mBAARA,EAAsB,MAAO,CAAE,QAAWA,GAAS,IAAIswC,EAAQg2J,IAA4B,GAAIh2J,GAASA,EAAM6a,IAAInrD,GAAQ,OAAOswC,EAAM56G,IAAIsqE,GAAQ,IAAI+1C,EAAS,CAAC,EAAOwwJ,EAAwBt2P,OAAO66D,gBAAkB76D,OAAOkhH,yBAA0B,IAAK,IAAIv/G,KAAOouD,EAAO,GAAI/vD,OAAOgkB,UAAUoP,eAAenpC,KAAK8lE,EAAKpuD,GAAM,CAAE,IAAIyqI,EAAOkqH,EAAwBt2P,OAAOkhH,yBAAyBnxD,EAAKpuD,GAAO,KAAUyqI,IAASA,EAAK3mJ,KAAO2mJ,EAAKv1E,KAAQ72D,OAAO66D,eAAeirC,EAAQnkG,EAAKyqI,GAAgBtmC,EAAOnkG,GAAOouD,EAAIpuD,EAAQ,CAAImkG,EAAgB,QAAI/1C,EAASswC,GAASA,EAAMxpC,IAAI9G,EAAK+1C,GAAW,OAAOA,CAAQ,CAhBhuBywJ,CAAwB,EAAQ,OAEzCC,EAAa1F,EAAuB,EAAQ,OAE5CkM,EAAmBlM,EAAuB,EAAQ,OAElDmM,EAAkBnM,EAAuB,EAAQ,OAEjDoM,EAAgBpM,EAAuB,EAAQ,OAE/CqM,EAAYrM,EAAuB,EAAQ,OAE/C,SAASA,EAAuB/gM,GAAO,OAAOA,GAAOA,EAAI0wL,WAAa1wL,EAAM,CAAE,QAAWA,EAAO,CAEhG,SAASsmM,IAA6B,GAAuB,mBAAZO,QAAwB,OAAO,KAAM,IAAIv2J,EAAQ,IAAIu2J,QAA6F,OAAlFP,EAA2B,WAAsC,OAAOh2J,CAAO,EAAUA,CAAO,CAIjN,SAASiwJ,EAAQ51I,EAAQ61I,GAAkB,IAAI1qO,EAAO7lB,OAAO6lB,KAAK60F,GAAS,GAAI16G,OAAOqsL,sBAAuB,CAAE,IAAImkE,EAAUxwP,OAAOqsL,sBAAsB3xE,GAAa61I,IAAgBC,EAAUA,EAAQj6O,QAAO,SAAUk6O,GAAO,OAAOzwP,OAAOkhH,yBAAyBxG,EAAQ+1I,GAAKzpE,UAAY,KAAInhK,EAAKv9B,KAAKjC,MAAMw/B,EAAM2qO,EAAU,CAAE,OAAO3qO,CAAM,CAEpV,SAASxoB,EAAcxE,GAAU,IAAK,IAAI1U,EAAI,EAAGA,EAAImC,UAAU8I,OAAQjL,IAAK,CAAE,IAAIghH,EAAyB,MAAhB7+G,UAAUnC,GAAamC,UAAUnC,GAAK,CAAC,EAAOA,EAAI,EAAKmsQ,EAAQtwP,OAAOmlG,IAAS,GAAM/yC,SAAQ,SAAUzwD,GAAO/I,EAAgBC,EAAQ8I,EAAKwjG,EAAOxjG,GAAO,IAAe3B,OAAO2wP,0BAA6B3wP,OAAO4wP,iBAAiB/3P,EAAQmH,OAAO2wP,0BAA0BxrJ,IAAmBmrJ,EAAQtwP,OAAOmlG,IAAS/yC,SAAQ,SAAUzwD,GAAO3B,OAAO66D,eAAehiE,EAAQ8I,EAAK3B,OAAOkhH,yBAAyB/b,EAAQxjG,GAAO,GAAM,CAAE,OAAO9I,CAAQ,CAErhB,SAASjI,EAAesyD,EAAK/+D,GAAK,OAUlC,SAAyB++D,GAAO,GAAIn/B,MAAMwT,QAAQ2rB,GAAM,OAAOA,CAAK,CAV3Bk6M,CAAgBl6M,IAQzD,SAA+BA,EAAK/+D,GAAK,GAAsB,oBAAXs9P,UAA4BA,OAAOS,YAAYliP,OAAOkjD,IAAO,OAAQ,IAAIm6M,EAAO,GAAQC,GAAK,EAAUnzL,GAAK,EAAWu5B,OAAK36G,EAAW,IAAM,IAAK,IAAiCwrJ,EAA7BgpH,EAAKr6M,EAAIu+L,OAAOS,cAAmBob,GAAM/oH,EAAKgpH,EAAGj4Q,QAAQugD,QAAoBw3N,EAAK/0Q,KAAKisJ,EAAG/7I,QAAYrU,GAAKk5Q,EAAKjuQ,SAAWjL,GAA3Dm5Q,GAAK,GAAkE,CAAE,MAAO1vQ,GAAOu8E,GAAK,EAAMu5B,EAAK91G,CAAK,CAAE,QAAU,IAAW0vQ,GAAsB,MAAhBC,EAAW,QAAWA,EAAW,QAAK,CAAE,QAAU,GAAIpzL,EAAI,MAAMu5B,CAAI,CAAE,CAAE,OAAO25J,CAAM,CARvaG,CAAsBt6M,EAAK/+D,IAI5F,SAAqCk8P,EAAGod,GAAU,IAAKpd,EAAG,OAAQ,GAAiB,iBAANA,EAAgB,OAAOqd,EAAkBrd,EAAGod,GAAS,IAAI5sN,EAAI7wC,OAAOgkB,UAAUva,SAASxf,KAAKo2P,GAAGvjP,MAAM,GAAI,GAAc,WAAN+zC,GAAkBwvM,EAAEn7N,cAAa2rB,EAAIwvM,EAAEn7N,YAAYl8B,MAAM,GAAU,QAAN6nD,GAAqB,QAANA,EAAa,OAAO9sB,MAAM7nB,KAAK20C,GAAI,GAAU,cAANA,GAAqB,2CAA2Ct+B,KAAKs+B,GAAI,OAAO6sN,EAAkBrd,EAAGod,EAAS,CAJ7TE,CAA4Bz6M,EAAK/+D,IAEnI,WAA8B,MAAM,IAAIogC,UAAU,4IAA8I,CAFvDq5O,EAAoB,CAM7J,SAASF,EAAkBx6M,EAAK6gD,IAAkB,MAAPA,GAAeA,EAAM7gD,EAAI9zD,UAAQ20G,EAAM7gD,EAAI9zD,QAAQ,IAAK,IAAIjL,EAAI,EAAG05Q,EAAO,IAAI95O,MAAMggF,GAAM5/G,EAAI4/G,EAAK5/G,IAAO05Q,EAAK15Q,GAAK++D,EAAI/+D,GAAM,OAAO05Q,CAAM,CAMtL,SAASzH,EAAQrmM,GAAmV,OAAtOqmM,EAArD,mBAAX3U,QAAoD,iBAApBA,OAAOS,SAAmC,SAAiBnyL,GAAO,cAAcA,CAAK,EAAsB,SAAiBA,GAAO,OAAOA,GAAyB,mBAAX0xL,QAAyB1xL,EAAI7qC,cAAgBu8N,QAAU1xL,IAAQ0xL,OAAOz9N,UAAY,gBAAkB+rC,CAAK,EAAYqmM,EAAQrmM,EAAM,CAIzX,SAAS8mM,EAAkBh+P,EAAQtC,GAAS,IAAK,IAAIpS,EAAI,EAAGA,EAAIoS,EAAMnH,OAAQjL,IAAK,CAAE,IAAIs7M,EAAalpM,EAAMpS,GAAIs7M,EAAWzY,WAAayY,EAAWzY,aAAc,EAAOyY,EAAW/5F,cAAe,EAAU,UAAW+5F,IAAYA,EAAWh6F,UAAW,GAAMzlG,OAAO66D,eAAehiE,EAAQ4mM,EAAW99L,IAAK89L,EAAa,CAAE,CAI5T,SAAS51M,EAAaitQ,GAAW,OAAO,WAAc,IAAsCr4O,EAAlCs4O,EAAQC,EAAgBF,GAAkB,GAMpG,WAAuC,GAAuB,oBAAZG,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAUC,KAAM,OAAO,EAAO,GAAqB,mBAAVtY,MAAsB,OAAO,EAAM,IAAiF,OAA3E9qM,KAAK/vB,UAAUva,SAASxf,KAAKgtQ,QAAQC,UAAUnjN,KAAM,IAAI,WAAa,MAAY,CAAM,CAAE,MAAO7hD,GAAK,OAAO,CAAO,CAAE,CAN3NklQ,GAA6B,CAAE,IAAIC,EAAYL,EAAgB3yQ,MAAM6gC,YAAazG,EAASw4O,QAAQC,UAAUH,EAAOzwQ,UAAW+wQ,EAAY,MAAS54O,EAASs4O,EAAM1wQ,MAAMhC,KAAMiC,WAAc,OAErS,SAAoClC,EAAM6F,GAAQ,GAAIA,IAA2B,WAAlBmsQ,EAAQnsQ,IAAsC,mBAATA,GAAwB,OAAOA,EAAQ,OAAO61E,EAAuB17E,EAAO,CAF4HkzQ,CAA2BjzQ,KAAMo6B,EAAS,CAAG,CAIzV,SAASqhD,EAAuB17E,GAAQ,QAAa,IAATA,EAAmB,MAAM,IAAImzQ,eAAe,6DAAgE,OAAOnzQ,CAAM,CAIrK,SAAS4yQ,EAAgB3W,GAAwJ,OAAnJ2W,EAAkBh3P,OAAOilB,eAAiBjlB,OAAOw6D,eAAiB,SAAyB6lL,GAAK,OAAOA,EAAE9hI,WAAav+G,OAAOw6D,eAAe6lL,EAAI,EAAU2W,EAAgB3W,EAAI,CAI5M,SAASmX,EAAgBnX,EAAG38N,GAA+G,OAA1G8zO,EAAkBx3P,OAAOilB,gBAAkB,SAAyBo7N,EAAG38N,GAAsB,OAAjB28N,EAAE9hI,UAAY76F,EAAU28N,CAAG,EAAUmX,EAAgBnX,EAAG38N,EAAI,CAEzK,SAAS9qB,EAAgBm3D,EAAKpuD,EAAKnJ,GAAiK,OAApJmJ,KAAOouD,EAAO/vD,OAAO66D,eAAe9K,EAAKpuD,EAAK,CAAEnJ,MAAOA,EAAOwuL,YAAY,EAAMthF,cAAc,EAAMD,UAAU,IAAkB11C,EAAIpuD,GAAOnJ,EAAgBu3D,CAAK,CAEhN,IAAI+tM,EAAc,CAAC,EA6BfC,EAA4B,SAAUnvM,IAnC1C,SAAmBkpM,EAAUC,GAAc,GAA0B,mBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAIxzO,UAAU,sDAAyDuzO,EAAS9zO,UAAYhkB,OAAOszB,OAAOykO,GAAcA,EAAW/zO,UAAW,CAAEkB,YAAa,CAAE1sB,MAAOs/P,EAAUryJ,UAAU,EAAMC,cAAc,KAAeqyJ,GAAYP,EAAgBM,EAAUC,EAAa,CAoC9XpuQ,CAAUo0Q,EAAcnvM,GAExB,IAlDoBopM,EAAaC,EAAYC,EAkDzCtuQ,EAASC,EAAak0Q,GAE1B,SAASA,EAAaxnQ,GACpB,IAAIxM,EA4GJ,OArKJ,SAAyB01E,EAAUu4L,GAAe,KAAMv4L,aAAoBu4L,GAAgB,MAAM,IAAIzzO,UAAU,oCAAwC,CA2DpJv6B,CAAgB3F,KAAM05Q,GAItBnlQ,EAAgBknE,EAFhB/1E,EAAQH,EAAOK,KAAK5F,KAAMkS,IAEqB,uBAAuB,SAAU6b,GAChE,OAAVA,IACFroB,EAAMqoB,MAAQA,GAGhB,IAAI4rP,EAAUj0Q,EAAMwM,MAAM+hB,WAAW/Y,IAEjCy+P,IACqB,mBAAZA,EACTA,EAAQ5rP,GACsB,WAArBgkP,EAAQ4H,IAAyBh+P,OAAOgkB,UAAUoP,eAAenpC,KAAK+zQ,EAAS,aACxFA,EAAQpqP,QAAUxB,GAGxB,IAEAxZ,EAAgBknE,EAAuB/1E,GAAQ,gCAAgC,SAAUgxQ,GAChE,OAAnBA,IACFhxQ,EAAMgxQ,eAAiBA,EAE3B,IAEAniQ,EAAgBknE,EAAuB/1E,GAAQ,2BAA2B,SAAUk0Q,GAClFl0Q,EAAMk0Q,gBAAkBA,CAC1B,IAEArlQ,EAAgBknE,EAAuB/1E,GAAQ,aAAa,SAAUyuQ,EAAcC,GAClF,GAAkB,OAAdA,EACF,OAAO,KAGT,IAAIn/O,EAAKvvB,EAAMwM,MAAM+iB,GACjByxL,EAA2B,OAAjBytD,EAAwB,GAAK,WAAW9yQ,OAAO8yQ,GAC7D,MAAO,sBAAsB9yQ,OAAO4zB,EAAI,KAAK5zB,OAAOqlN,EAAS,UAAUrlN,OAAO+yQ,EAChF,IAEA7/P,EAAgBknE,EAAuB/1E,GAAQ,WAAW,SAAUwgB,GAClE,IAAI+N,EAAavuB,EAAMwM,MAAM+hB,WAE7BvuB,EAAMiyC,SAAS,CACbkiO,gBAAgB,IAGlB5lP,EAAWM,SAAWN,EAAWM,QAAQrO,EAC3C,IAEA3R,EAAgBknE,EAAuB/1E,GAAQ,UAAU,SAAUwgB,GACjE,IAAI+N,EAAavuB,EAAMwM,MAAM+hB,WAE7BvuB,EAAMiyC,SAAS,CACbkiO,gBAAgB,IAGlB5lP,EAAWG,QAAUH,EAAWG,OAAOlO,EACzC,IAEA3R,EAAgBknE,EAAuB/1E,GAAQ,aAAa,SAAUwgB,GACpE,IAAIu5D,EAAc/5E,EAAMwM,MACpB+hB,EAAawrD,EAAYxrD,WACzB0hP,EAA0Bl2L,EAAYk2L,wBACtC2C,EAAuB74L,EAAY64L,qBACnCvhL,EAAU7wE,EAAM6wE,QAEpB,OAAQA,GACN,KAAK,GAEL,KAAK,GAGD,IAAI+iL,EAAuB,KAAZ/iL,EAAiB,OAAS,OAGrCgjL,EAAyBxtQ,EADD7G,EAAMs0Q,gBAAgBF,GAAU,CAACnE,EAAyB2C,IACnB,GAC/DV,EAA6BmC,EAAuB,GACpDlC,EAA0BkC,EAAuB,GAErD9lP,EAAW6iE,UAAU5wE,EAAO,CAC1B0xP,2BAA4BA,EAC5BC,wBAAyBA,IAE3B,MAGJ,QACE5jP,EAAW6iE,UAAU5wE,EAAO,CAC1ByvP,wBAAyBA,EACzB2C,qBAAsBA,IAG9B,IAEA5yQ,EAAMk0Q,gBAAkB,KACxBl0Q,EAAMqH,MAAQ,CACZ8sQ,gBAAgB,GAGlBn0Q,EAAMu0Q,iBAAiB/nQ,GAEvBxM,EAAMw0Q,mBAAmBhoQ,GAEzBxM,EAAMy7F,SAASjvF,GAERxM,CACT,CA+MA,OAjXoBiuQ,EAoKP+F,GApKoB9F,EAoKN,CAAC,CAC1Bt2P,IAAK,oBACLnJ,MAAO,WACLnU,KAAKm6Q,gCACP,GAEC,CACD78P,IAAK,mCACLnJ,MAAO,SAA0Cq6D,GAC3CA,EAAUq4D,QAAU7mI,KAAKkS,MAAM20H,OACjC7mI,KAAKi6Q,iBAAiBzrM,GAGpBA,EAAUq4D,QAAU7mI,KAAKkS,MAAM20H,OAASr4D,EAAUimM,eAAiBz0Q,KAAKkS,MAAMuiQ,cAChFz0Q,KAAKk6Q,mBAAmB1rM,GAGtBA,EAAUnlD,QAAUrpB,KAAKkS,MAAMmX,OACjCrpB,KAAKmhG,SAAS3yB,EAElB,GACC,CACDlxD,IAAK,qBACLnJ,MAAO,WACLnU,KAAKm6Q,gCACP,GACC,CACD78P,IAAK,mBACLnJ,MAAO,SAA0BjC,GAC3BA,EAAMuiQ,eACRz0Q,KAAKo6Q,cAAgBloQ,EAAM20H,MAAM9rH,KAAI,SAAU2rM,GAC7C,OAAOx0M,EAAMmmQ,gBAAgB3xD,EAC/B,IACA1mN,KAAKq6Q,gBAAkBr6Q,KAAKo6Q,cAAcr/P,KAAI,SAAU8rH,GACtD,OAAOA,EAAM97H,MACf,IACA/K,KAAKs6Q,oBAAsBt6Q,KAAKq6Q,gBAAgB/8J,OAAM,SAAUi9J,GAC9D,OAAsB,IAAfA,CACT,IAEJ,GACC,CACDj9P,IAAK,qBACLnJ,MAAO,SAA4BjC,GACjClS,KAAKg6Q,iBAAkB,EAAIrB,EAA0B,SAAG,CACtDlE,aAAcviQ,EAAMuiQ,aACpBlzQ,KAAM2Q,EAAMuiQ,aAAez0Q,KAAKq6Q,gBAAkBnoQ,EAAM20H,MAAM97H,QAElE,GACC,CACDuS,IAAK,WACLnJ,MAAO,SAAkBjC,GACvBlS,KAAKqpB,OAAQ,EAAIuvP,EAAyB,SAAG1mQ,EAAMmX,MACrD,GACC,CACD/L,IAAK,iBACLnJ,MAAO,WACL,IAAIy6D,EAAS5uE,KAEb,GAAIA,KAAKs6Q,oBACP,OAAO,KAGT,IAAIjxP,EAAQrpB,KAAKqpB,MACbs2D,EAAe3/E,KAAKkS,MACpB+iB,EAAK0qD,EAAa1qD,GAClB4xG,EAAQlnD,EAAaknD,MACrBsxI,EAAax4L,EAAaw4L,WAC1BC,EAAiBz4L,EAAay4L,eAC9Bb,EAAqB53L,EAAa43L,mBAClC5B,EAA0Bh2L,EAAag2L,wBACvC2C,EAAuB34L,EAAa24L,qBACpCC,EAAY54L,EAAa44L,UAC7B,OAAO1xI,EAAM9rH,KAAI,SAAU2rM,EAASytD,GAClC,IAAIqG,EAAY,sBAAsBn5Q,OAAO4zB,EAAI,KAC7CwlP,EAAmB,GAAGp5Q,OAAOm5Q,EAAW,YAAYn5Q,OAAO8yQ,EAAc,KACzEuG,EAAkC,IAAjBvG,EAIrB,OAAoBzlC,EAAgB,QAAE9jK,cAAc,MAAOvhD,EAAM,GAAGhoB,OAAOo5Q,EAAkB,aAAc,mBAAoBC,GAAkB,yBAAuChsC,EAAgB,QAAE9jK,cAAciuM,EAAuB,QAAG,CAChPnyD,QAASA,EACT6wD,mBAAoBA,EACpBluP,MAAOA,EACPoxP,iBAAkBA,IACH/rC,EAAgB,QAAE9jK,cAAckuM,EAAmB,QAAG,CACrEjyI,MAAOj4D,EAAOwrM,cAAcjG,GAC5BoE,UAAWA,EACXJ,WAAYA,EACZC,eAAgBA,EAChBjE,aAAcA,EACdmE,qBAAsB3C,IAA4BxB,EAAemE,EAAuB,KACxFqC,wBAAyB/rM,EAAO+rM,wBAChCC,UAAWhsM,EAAOgsM,UAClBvxP,MAAOA,EACPmxP,UAAWA,EACXt/P,IAAK0zD,EAAOisM,0BAGhB,GACF,GACC,CACDv9P,IAAK,cACLnJ,MAAO,WACL,IAAI0yH,EAAQ7mI,KAAKkS,MAAM20H,MAEvB,GAAqB,IAAjBA,EAAM97H,OACR,OAAO,KAGT,IAAIse,EAAQrpB,KAAKqpB,MACbw2D,EAAe7/E,KAAKkS,MACpB+iB,EAAK4qD,EAAa5qD,GAClBkjP,EAAat4L,EAAas4L,WAC1BC,EAAiBv4L,EAAau4L,eAC9BzC,EAA0B91L,EAAa81L,wBACvC2C,EAAuBz4L,EAAay4L,qBACpCC,EAAY14L,EAAa04L,UAC7B,OAAoB7pC,EAAgB,QAAE9jK,cAAckuM,EAAmB,QAAG,CACxEjyI,MAAOA,EACP0xI,UAAWA,EACXJ,WAAYA,EACZC,eAAgBA,EAChBE,qBAAkD,OAA5B3C,EAAmC2C,EAAuB,KAChFqC,wBAAyB36Q,KAAK26Q,wBAC9BC,UAAW56Q,KAAK46Q,UAChBvxP,MAAOA,EACPmxP,UAAW,sBAAsBn5Q,OAAO4zB,EAAI,MAEhD,GACC,CACD3X,IAAK,iCACLnJ,MAAO,WACL,IAAIylQ,EAAkB55Q,KAAK45Q,gBAE3B,GAAKA,EAAL,CAIA,IAAIlD,EAAiB12Q,KAAK02Q,eACtBoE,EAAgClB,EAAgBmB,eAAiBrE,EAAiBkD,EAAgB/+K,UAAY++K,EAAgB/+K,UAAY67K,EAAe77K,UACzJ9iB,EAAY2+L,EAAe3+L,UAE3B+iM,EAAgC/iM,EAElCA,EAAY+iM,EACHA,EAAgClB,EAAgB1hM,aAAeH,EAAY2+L,EAAex+L,eAEnGH,EAAY+iM,EAAgClB,EAAgB1hM,aAAew+L,EAAex+L,cAGxFH,IAAc2+L,EAAe3+L,YAC/B2+L,EAAe3+L,UAAYA,EAf7B,CAiBF,GACC,CACDz6D,IAAK,SACLnJ,MAAO,WACL,IAAIkV,EAAQrpB,KAAKqpB,MACb02D,EAAe//E,KAAKkS,MACpB+iB,EAAK8qD,EAAa9qD,GAClBw/O,EAAe10L,EAAa00L,aAC5B6C,EAAuBv3L,EAAau3L,qBACpCY,EAAuBn4L,EAAam4L,qBACpCvC,EAA0B51L,EAAa41L,wBACvC2C,EAAuBv4L,EAAau4L,qBACpCuB,EAAiB75Q,KAAK+M,MAAM8sQ,eAC5BmB,EAAgBvG,EAAez0Q,KAAKi7Q,iBAAmBj7Q,KAAKk7Q,cAC5DrpE,EAA2B,OAAlBmpE,EACTG,EAAuBn7Q,KAAK46Q,UAAUjF,EAAyB2C,GAC/D8C,EAAmB,sBAAsB/5Q,OAAO4zB,GAEhD+9L,EAAiBh6M,EAAc,CACjC2zI,KAAM,WACN,gBAAiB,UACjB,YAAayuH,EACb,gBAAiBvpE,GAChBxoL,EAAM,sBAAsBhoB,OAAO4zB,EAAI,cAAe,YAAa48K,GAAU,iBAAkB,CAAC,EAAG7xM,KAAKkS,MAAM8gN,gBAE7GqoD,EAAiB/D,EAAqBt+P,EAAc,CACtD/T,KAAM,OACNkP,MAAO,GACPo5O,aAAc,MACd,oBAAqB,OACrB,gBAAiB6tB,EACjB,wBAAyBD,GACxB9xP,EAAM,sBAAsBhoB,OAAO4zB,EAAI,UAAW,QAAS48K,GAAU,YAAagoE,GAAkB,gBAAiB,CAAC,EAAG75Q,KAAKkS,MAAM+hB,WAAY,CACjJM,QAASv0B,KAAKu0B,QACdH,OAAQp0B,KAAKo0B,OACb0iE,UAAW92F,KAAKkS,MAAM+hB,WAAW6iE,WAAa92F,KAAK82F,UACnD57E,IAAKlb,KAAKs7Q,uBAER5E,EAAiBwB,EAAqB,CACxCllD,eAAgBh6M,EAAc,CAC5Bic,GAAImmP,EACJzuH,KAAM,WACLtjI,EAAM,sBAAsBhoB,OAAO4zB,EAAI,oBAAqB,iBAAkB48K,GAAU,sBAAuB,CAChH32L,IAAKlb,KAAKu7Q,+BAEZ5rP,SAAUqrP,IAEZ,OAAoBtsC,EAAgB,QAAE9jK,cAAc,MAAOooJ,EAAgBqoD,EAAgB3E,EAC7F,MA9W0ElE,EAAkBmB,EAAYh0O,UAAWi0O,GAAiBC,GAAarB,EAAkBmB,EAAaE,GAiX3K6F,CACT,CAnUgC,CAmU9BhrC,EAAO5jK,WAETtrE,EAAiB,QAAIk6Q,EAErBnlQ,EAAgBmlQ,EAAc,YAAa,CACzCzkP,GAAIk9O,EAAoB,QAAElsO,OAE1BwuO,aAActC,EAAoB,QAAEf,KAEpCkG,qBAAsBnF,EAAoB,QAAE5yO,KAE5C24O,qBAAsB/F,EAAoB,QAAE5yO,KAE5CsnG,MAAOsrI,EAAoB,QAAE3/N,MAAMluB,WAEnC6zP,WAAYhG,EAAoB,QAAE5yO,KAElC64O,eAAgBjG,EAAoB,QAAE97I,OAEtCkhJ,mBAAoBpF,EAAoB,QAAE5yO,KAE1C84O,gBAAiBlG,EAAoB,QAAE5yO,KAEvCyzL,eAAgBm/C,EAAoB,QAAE97I,OAEtCpiG,WAAYk+O,EAAoB,QAAE97I,OAElCkiJ,UAAWpG,EAAoB,QAAER,UAAU,CAC3CQ,EAAoB,QAAE97I,OAAQ87I,EAAoB,QAAE5yO,OACpDo2O,wBAAyBxD,EAAoB,QAAEjuP,OAE/Co0P,qBAAsBnG,EAAoB,QAAEjuP,OAE5CmF,MAAO8oP,EAAoB,QAAER,UAAU,CACvCQ,EAAoB,QAAE97I,OAAQ87I,EAAoB,QAAE3/N,UAGtDj+B,EAAgBmlQ,EAAc,eAAgB,CAC5CzkP,GAAI,IACJw/O,cAAc,EACd6C,qBAtYgC,SAAqCplQ,GACrE,OAAoBw8N,EAAgB,QAAE9jK,cAAc,QAAS14D,EAC/D,EAqYEgmQ,qBAnYgC,SAAqC73Q,GACrE,IAAI2yN,EAAiB3yN,EAAK2yN,eACtBrjM,EAAWtvB,EAAKsvB,SACpB,OAAoB++M,EAAgB,QAAE9jK,cAAc,MAAOooJ,EAAgBrjM,EAC7E,EAgYEwoP,WAAY,WACV,MAAM,IAAIpyQ,MAAM,gCAClB,EACAqyQ,eAAgBqB,EAChBlC,mBAAoB,WAClB,MAAM,IAAIxxQ,MAAM,wCAClB,EACAsyQ,gBAAiB,WACf,MAAM,IAAItyQ,MAAM,qCAClB,EACAitN,eAAgBymD,EAChBxlP,WAAYwlP,EACZlB,UAAWkB,EACX9D,wBAAyB,KACzB2C,qBAAsB,KACtBjvP,MA7YiB,CACjBmyP,UAAW,gCACXC,cAAe,sCACf1tP,MAAO,4BACP2tP,UAAW,kCACXC,aAAc,qCACdjF,eAAgB,sCAChBkF,mBAAoB,4CACpBC,UAAW,iCACXx9K,KAAM,2BACNy9K,UAAW,kCACXC,gBAAiB,wCACjBC,iBAAkB,wCAClBC,sBAAuB,+CACvBC,aAAc,sC,oCCzFhBvgQ,OAAO66D,eAAeh3E,EAAS,aAAc,CAC3C2U,OAAO,IAET3U,EAAiB,aAAI,EAErB,IAAIkvO,EAUJ,SAAiChjK,GAAO,GAAIA,GAAOA,EAAI0wL,WAAc,OAAO1wL,EAAO,GAAY,OAARA,GAAiC,WAAjBqmM,EAAQrmM,IAAoC,mBAARA,EAAsB,MAAO,CAAE,QAAWA,GAAS,IAAIswC,EAAQg2J,IAA4B,GAAIh2J,GAASA,EAAM6a,IAAInrD,GAAQ,OAAOswC,EAAM56G,IAAIsqE,GAAQ,IAAI+1C,EAAS,CAAC,EAAOwwJ,EAAwBt2P,OAAO66D,gBAAkB76D,OAAOkhH,yBAA0B,IAAK,IAAIv/G,KAAOouD,EAAO,GAAI/vD,OAAOgkB,UAAUoP,eAAenpC,KAAK8lE,EAAKpuD,GAAM,CAAE,IAAIyqI,EAAOkqH,EAAwBt2P,OAAOkhH,yBAAyBnxD,EAAKpuD,GAAO,KAAUyqI,IAASA,EAAK3mJ,KAAO2mJ,EAAKv1E,KAAQ72D,OAAO66D,eAAeirC,EAAQnkG,EAAKyqI,GAAgBtmC,EAAOnkG,GAAOouD,EAAIpuD,EAAQ,CAAImkG,EAAgB,QAAI/1C,EAASswC,GAASA,EAAMxpC,IAAI9G,EAAK+1C,GAAW,OAAOA,CAAQ,CAVhuBywJ,CAAwB,EAAQ,OAEzCC,EAAa1F,EAAuB,EAAQ,OAE5C0P,EAAkB1P,EAAuB,EAAQ,OAErD,SAASA,EAAuB/gM,GAAO,OAAOA,GAAOA,EAAI0wL,WAAa1wL,EAAM,CAAE,QAAWA,EAAO,CAEhG,SAASsmM,IAA6B,GAAuB,mBAAZO,QAAwB,OAAO,KAAM,IAAIv2J,EAAQ,IAAIu2J,QAA6F,OAAlFP,EAA2B,WAAsC,OAAOh2J,CAAO,EAAUA,CAAO,CAIjN,SAAS+1J,EAAQrmM,GAAmV,OAAtOqmM,EAArD,mBAAX3U,QAAoD,iBAApBA,OAAOS,SAAmC,SAAiBnyL,GAAO,cAAcA,CAAK,EAAsB,SAAiBA,GAAO,OAAOA,GAAyB,mBAAX0xL,QAAyB1xL,EAAI7qC,cAAgBu8N,QAAU1xL,IAAQ0xL,OAAOz9N,UAAY,gBAAkB+rC,CAAK,EAAYqmM,EAAQrmM,EAAM,CAEzX,SAASE,IAA2Q,OAA9PA,EAAWjwD,OAAOC,QAAU,SAAUpH,GAAU,IAAK,IAAI1U,EAAI,EAAGA,EAAImC,UAAU8I,OAAQjL,IAAK,CAAE,IAAIghH,EAAS7+G,UAAUnC,GAAI,IAAK,IAAIwd,KAAOwjG,EAAcnlG,OAAOgkB,UAAUoP,eAAenpC,KAAKk7G,EAAQxjG,KAAQ9I,EAAO8I,GAAOwjG,EAAOxjG,GAAU,CAAE,OAAO9I,CAAQ,EAAUo3D,EAAS5pE,MAAMhC,KAAMiC,UAAY,CAE5T,SAASgqQ,EAAQ51I,EAAQ61I,GAAkB,IAAI1qO,EAAO7lB,OAAO6lB,KAAK60F,GAAS,GAAI16G,OAAOqsL,sBAAuB,CAAE,IAAImkE,EAAUxwP,OAAOqsL,sBAAsB3xE,GAAa61I,IAAgBC,EAAUA,EAAQj6O,QAAO,SAAUk6O,GAAO,OAAOzwP,OAAOkhH,yBAAyBxG,EAAQ+1I,GAAKzpE,UAAY,KAAInhK,EAAKv9B,KAAKjC,MAAMw/B,EAAM2qO,EAAU,CAAE,OAAO3qO,CAAM,CAIpV,SAAS46O,EAAyBt7J,EAAQu7J,GAAY,GAAc,MAAVv7J,EAAgB,MAAO,CAAC,EAAG,IAAkExjG,EAAKxd,EAAnE0U,EAEzF,SAAuCssG,EAAQu7J,GAAY,GAAc,MAAVv7J,EAAgB,MAAO,CAAC,EAAG,IAA2DxjG,EAAKxd,EAA5D0U,EAAS,CAAC,EAAO8nQ,EAAa3gQ,OAAO6lB,KAAKs/E,GAAqB,IAAKhhH,EAAI,EAAGA,EAAIw8Q,EAAWvxQ,OAAQjL,IAAOwd,EAAMg/P,EAAWx8Q,GAAQu8Q,EAASx1O,QAAQvpB,IAAQ,IAAa9I,EAAO8I,GAAOwjG,EAAOxjG,IAAQ,OAAO9I,CAAQ,CAFhN+nQ,CAA8Bz7J,EAAQu7J,GAAuB,GAAI1gQ,OAAOqsL,sBAAuB,CAAE,IAAIw0E,EAAmB7gQ,OAAOqsL,sBAAsBlnF,GAAS,IAAKhhH,EAAI,EAAGA,EAAI08Q,EAAiBzxQ,OAAQjL,IAAOwd,EAAMk/P,EAAiB18Q,GAAQu8Q,EAASx1O,QAAQvpB,IAAQ,GAAkB3B,OAAOgkB,UAAUsoK,qBAAqBriM,KAAKk7G,EAAQxjG,KAAgB9I,EAAO8I,GAAOwjG,EAAOxjG,GAAQ,CAAE,OAAO9I,CAAQ,CAM3e,SAASg+P,EAAkBh+P,EAAQtC,GAAS,IAAK,IAAIpS,EAAI,EAAGA,EAAIoS,EAAMnH,OAAQjL,IAAK,CAAE,IAAIs7M,EAAalpM,EAAMpS,GAAIs7M,EAAWzY,WAAayY,EAAWzY,aAAc,EAAOyY,EAAW/5F,cAAe,EAAU,UAAW+5F,IAAYA,EAAWh6F,UAAW,GAAMzlG,OAAO66D,eAAehiE,EAAQ4mM,EAAW99L,IAAK89L,EAAa,CAAE,CAI5T,SAAS51M,EAAaitQ,GAAW,OAAO,WAAc,IAAsCr4O,EAAlCs4O,EAAQC,EAAgBF,GAAkB,GAMpG,WAAuC,GAAuB,oBAAZG,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAUC,KAAM,OAAO,EAAO,GAAqB,mBAAVtY,MAAsB,OAAO,EAAM,IAAiF,OAA3E9qM,KAAK/vB,UAAUva,SAASxf,KAAKgtQ,QAAQC,UAAUnjN,KAAM,IAAI,WAAa,MAAY,CAAM,CAAE,MAAO7hD,GAAK,OAAO,CAAO,CAAE,CAN3NklQ,GAA6B,CAAE,IAAIC,EAAYL,EAAgB3yQ,MAAM6gC,YAAazG,EAASw4O,QAAQC,UAAUH,EAAOzwQ,UAAW+wQ,EAAY,MAAS54O,EAASs4O,EAAM1wQ,MAAMhC,KAAMiC,WAAc,OAErS,SAAoClC,EAAM6F,GAAQ,GAAIA,IAA2B,WAAlBmsQ,EAAQnsQ,IAAsC,mBAATA,GAAwB,OAAOA,EAAQ,OAAO61E,EAAuB17E,EAAO,CAF4HkzQ,CAA2BjzQ,KAAMo6B,EAAS,CAAG,CAIzV,SAASqhD,EAAuB17E,GAAQ,QAAa,IAATA,EAAmB,MAAM,IAAImzQ,eAAe,6DAAgE,OAAOnzQ,CAAM,CAIrK,SAAS4yQ,EAAgB3W,GAAwJ,OAAnJ2W,EAAkBh3P,OAAOilB,eAAiBjlB,OAAOw6D,eAAiB,SAAyB6lL,GAAK,OAAOA,EAAE9hI,WAAav+G,OAAOw6D,eAAe6lL,EAAI,EAAU2W,EAAgB3W,EAAI,CAI5M,SAASmX,EAAgBnX,EAAG38N,GAA+G,OAA1G8zO,EAAkBx3P,OAAOilB,gBAAkB,SAAyBo7N,EAAG38N,GAAsB,OAAjB28N,EAAE9hI,UAAY76F,EAAU28N,CAAG,EAAUmX,EAAgBnX,EAAG38N,EAAI,CAEzK,SAAS9qB,EAAgBm3D,EAAKpuD,EAAKnJ,GAAiK,OAApJmJ,KAAOouD,EAAO/vD,OAAO66D,eAAe9K,EAAKpuD,EAAK,CAAEnJ,MAAOA,EAAOwuL,YAAY,EAAMthF,cAAc,EAAMD,UAAU,IAAkB11C,EAAIpuD,GAAOnJ,EAAgBu3D,CAAK,CAEhN,IAAI+wM,EAAoB,SAAUlyM,IANlC,SAAmBkpM,EAAUC,GAAc,GAA0B,mBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAIxzO,UAAU,sDAAyDuzO,EAAS9zO,UAAYhkB,OAAOszB,OAAOykO,GAAcA,EAAW/zO,UAAW,CAAEkB,YAAa,CAAE1sB,MAAOs/P,EAAUryJ,UAAU,EAAMC,cAAc,KAAeqyJ,GAAYP,EAAgBM,EAAUC,EAAa,CAO9XpuQ,CAAUm3Q,EAAMlyM,GAEhB,IArBoBopM,EAAaC,EAAYC,EAqBzCtuQ,EAASC,EAAai3Q,GAE1B,SAASA,IACP,IAAI/2Q,GA5BR,SAAyB01E,EAAUu4L,GAAe,KAAMv4L,aAAoBu4L,GAAgB,MAAM,IAAIzzO,UAAU,oCAAwC,CA8BpJv6B,CAAgB3F,KAAMy8Q,GAEtB,IAAK,IAAIj6N,EAAOvgD,UAAU8I,OAAQ00B,EAAO,IAAIC,MAAM8iB,GAAOE,EAAO,EAAGA,EAAOF,EAAME,IAC/EjjB,EAAKijB,GAAQzgD,UAAUygD,GAuDzB,OAlDAnuC,EAAgBknE,EAFhB/1E,EAAQH,EAAOK,KAAK5D,MAAMuD,EAAQ,CAACvF,MAAMqB,OAAOo+B,KAED,sBAAsB,SAAU4+D,GAChE,OAATA,IACF34F,EAAM24F,KAAOA,EAEjB,IAEA9pF,EAAgBknE,EAAuB/1E,GAAQ,gBAAgB,SAAUwgB,GACvE,IAAIu5D,EAAc/5E,EAAMwM,MACpBiiQ,EAAe10L,EAAY00L,aAC3BC,EAAY30L,EAAY20L,UAE5B1uQ,EAAMwM,MAAMstC,aAAat5B,EAAO,CAC9BiuP,aAAcA,EACdC,UAAWA,GAEf,IAEA7/P,EAAgBknE,EAAuB/1E,GAAQ,gBAAgB,SAAUwgB,GACvE,IAAIy5D,EAAej6E,EAAMwM,MACrBiiQ,EAAex0L,EAAaw0L,aAC5BC,EAAYz0L,EAAay0L,UAE7B1uQ,EAAMwM,MAAMm3D,aAAanjD,EAAO,CAC9BiuP,aAAcA,EACdC,UAAWA,GAEf,IAEA7/P,EAAgBknE,EAAuB/1E,GAAQ,eAAe,SAAUwgB,GACtE,IAAI25D,EAAen6E,EAAMwM,MACrBiiQ,EAAet0L,EAAas0L,aAC5BC,EAAYv0L,EAAau0L,UAE7B1uQ,EAAMwM,MAAMo5L,YAAYplL,EAAO,CAC7BiuP,aAAcA,EACdC,UAAWA,GAEf,IAEA7/P,EAAgBknE,EAAuB/1E,GAAQ,WAAW,SAAUwgB,GAClE,IAAI65D,EAAer6E,EAAMwM,MACrBiiQ,EAAep0L,EAAao0L,aAC5BC,EAAYr0L,EAAaq0L,UAE7B1uQ,EAAMwM,MAAMtE,QAAQsY,EAAO,CACzBiuP,aAAcA,EACdC,UAAWA,GAEf,IAEO1uQ,CACT,CA8CA,OAnIoBiuQ,EAuFP8I,EAvFoB7I,EAuFd,CAAC,CAClBt2P,IAAK,wBACLnJ,MAAO,SAA+Bq6D,GACpC,OAAO,EAAI2tM,EAAyB,SAAG3tM,EAAWxuE,KAAKkS,MAAO,CAAC,kBACjE,GACC,CACDoL,IAAK,SACLnJ,MAAO,WACL,IAAI8rE,EAAejgF,KAAKkS,MACpBwqQ,EAAgBz8L,EAAay8L,cAC7Br+K,EAAOpe,EAAaoe,KACpB85K,EAAal4L,EAAak4L,WAC1BC,EAAiBn4L,EAAam4L,eAC9BuE,EAAYP,EAAyBn8L,EAAc,CAAC,gBAAiB,OAAQ,aAAc,mBAqB/F,cAnBO08L,EAAUxI,oBACVwI,EAAUvI,UAEqB,mBAA3BuI,EAAUn9N,eACnBm9N,EAAUn9N,aAAex/C,KAAKw/C,cAGM,mBAA3Bm9N,EAAUtzM,eACnBszM,EAAUtzM,aAAerpE,KAAKqpE,cAGK,mBAA1BszM,EAAUrxE,cACnBqxE,EAAUrxE,YAActrM,KAAKsrM,aAGE,mBAAtBqxE,EAAU/uQ,UACnB+uQ,EAAU/uQ,QAAU5N,KAAK4N,SAGP8gO,EAAgB,QAAE9jK,cAAc,KAAMgB,EAAS,CACjE+gF,KAAM,UACLgwH,EAAW,CACZzhQ,IAAKlb,KAAK48Q,qBACRzE,EAAW95K,EAvIrB,SAAuB7pF,GAAU,IAAK,IAAI1U,EAAI,EAAGA,EAAImC,UAAU8I,OAAQjL,IAAK,CAAE,IAAIghH,EAAyB,MAAhB7+G,UAAUnC,GAAamC,UAAUnC,GAAK,CAAC,EAAOA,EAAI,EAAKmsQ,EAAQtwP,OAAOmlG,IAAS,GAAM/yC,SAAQ,SAAUzwD,GAAO/I,EAAgBC,EAAQ8I,EAAKwjG,EAAOxjG,GAAO,IAAe3B,OAAO2wP,0BAA6B3wP,OAAO4wP,iBAAiB/3P,EAAQmH,OAAO2wP,0BAA0BxrJ,IAAmBmrJ,EAAQtwP,OAAOmlG,IAAS/yC,SAAQ,SAAUzwD,GAAO3B,OAAO66D,eAAehiE,EAAQ8I,EAAK3B,OAAOkhH,yBAAyB/b,EAAQxjG,GAAO,GAAM,CAAE,OAAO9I,CAAQ,CAuI1fwE,CAAc,CACjC0jQ,cAAeA,GACdtE,IACL,IAhI8DxE,GAAYpB,EAAkBmB,EAAYh0O,UAAWi0O,GAAiBC,GAAarB,EAAkBmB,EAAaE,GAmI3K4I,CACT,CAlHwB,CAkHtB/tC,EAAO5jK,WAETtrE,EAAiB,QAAIi9Q,EAErBloQ,EAAgBkoQ,EAAM,YAAa,CACjCtI,aAAchC,EAAoB,QAAEjuP,OACpCw4P,cAAevK,EAAoB,QAAEf,KAAK9sP,WAC1C8vP,UAAWjC,EAAoB,QAAEjuP,OAAOI,WACxC+5E,KAAM8zK,EAAoB,QAAEb,IAAIhtP,WAChC6zP,WAAYhG,EAAoB,QAAE5yO,KAAKjb,WACvC8zP,eAAgBjG,EAAoB,QAAE97I,OAAO/xG,WAC7Ck7B,aAAc2yN,EAAoB,QAAE5yO,KACpC8pC,aAAc8oM,EAAoB,QAAE5yO,KACpC+rK,YAAa6mE,EAAoB,QAAE5yO,KACnC3xB,QAASukQ,EAAoB,QAAE5yO,M,oCCnLjC5jB,OAAO66D,eAAeh3E,EAAS,aAAc,CAC3C2U,OAAO,IAET3U,EAAiB,aAAI,EAErB,IAAIkvO,EAYJ,SAAiChjK,GAAO,GAAIA,GAAOA,EAAI0wL,WAAc,OAAO1wL,EAAO,GAAY,OAARA,GAAiC,WAAjBqmM,EAAQrmM,IAAoC,mBAARA,EAAsB,MAAO,CAAE,QAAWA,GAAS,IAAIswC,EAAQg2J,IAA4B,GAAIh2J,GAASA,EAAM6a,IAAInrD,GAAQ,OAAOswC,EAAM56G,IAAIsqE,GAAQ,IAAI+1C,EAAS,CAAC,EAAOwwJ,EAAwBt2P,OAAO66D,gBAAkB76D,OAAOkhH,yBAA0B,IAAK,IAAIv/G,KAAOouD,EAAO,GAAI/vD,OAAOgkB,UAAUoP,eAAenpC,KAAK8lE,EAAKpuD,GAAM,CAAE,IAAIyqI,EAAOkqH,EAAwBt2P,OAAOkhH,yBAAyBnxD,EAAKpuD,GAAO,KAAUyqI,IAASA,EAAK3mJ,KAAO2mJ,EAAKv1E,KAAQ72D,OAAO66D,eAAeirC,EAAQnkG,EAAKyqI,GAAgBtmC,EAAOnkG,GAAOouD,EAAIpuD,EAAQ,CAAImkG,EAAgB,QAAI/1C,EAASswC,GAASA,EAAMxpC,IAAI9G,EAAK+1C,GAAW,OAAOA,CAAQ,CAZhuBywJ,CAAwB,EAAQ,OAEzCC,EAAa1F,EAAuB,EAAQ,OAE5CoQ,EAAQpQ,EAAuB,EAAQ,OAEvC0P,EAAkB1P,EAAuB,EAAQ,OAErD,SAASA,EAAuB/gM,GAAO,OAAOA,GAAOA,EAAI0wL,WAAa1wL,EAAM,CAAE,QAAWA,EAAO,CAEhG,SAASsmM,IAA6B,GAAuB,mBAAZO,QAAwB,OAAO,KAAM,IAAIv2J,EAAQ,IAAIu2J,QAA6F,OAAlFP,EAA2B,WAAsC,OAAOh2J,CAAO,EAAUA,CAAO,CAIjN,SAAS+1J,EAAQrmM,GAAmV,OAAtOqmM,EAArD,mBAAX3U,QAAoD,iBAApBA,OAAOS,SAAmC,SAAiBnyL,GAAO,cAAcA,CAAK,EAAsB,SAAiBA,GAAO,OAAOA,GAAyB,mBAAX0xL,QAAyB1xL,EAAI7qC,cAAgBu8N,QAAU1xL,IAAQ0xL,OAAOz9N,UAAY,gBAAkB+rC,CAAK,EAAYqmM,EAAQrmM,EAAM,CAEzX,SAASE,IAA2Q,OAA9PA,EAAWjwD,OAAOC,QAAU,SAAUpH,GAAU,IAAK,IAAI1U,EAAI,EAAGA,EAAImC,UAAU8I,OAAQjL,IAAK,CAAE,IAAIghH,EAAS7+G,UAAUnC,GAAI,IAAK,IAAIwd,KAAOwjG,EAAcnlG,OAAOgkB,UAAUoP,eAAenpC,KAAKk7G,EAAQxjG,KAAQ9I,EAAO8I,GAAOwjG,EAAOxjG,GAAU,CAAE,OAAO9I,CAAQ,EAAUo3D,EAAS5pE,MAAMhC,KAAMiC,UAAY,CAE5T,SAASgqQ,EAAQ51I,EAAQ61I,GAAkB,IAAI1qO,EAAO7lB,OAAO6lB,KAAK60F,GAAS,GAAI16G,OAAOqsL,sBAAuB,CAAE,IAAImkE,EAAUxwP,OAAOqsL,sBAAsB3xE,GAAa61I,IAAgBC,EAAUA,EAAQj6O,QAAO,SAAUk6O,GAAO,OAAOzwP,OAAOkhH,yBAAyBxG,EAAQ+1I,GAAKzpE,UAAY,KAAInhK,EAAKv9B,KAAKjC,MAAMw/B,EAAM2qO,EAAU,CAAE,OAAO3qO,CAAM,CAMpV,SAASgxO,EAAkBh+P,EAAQtC,GAAS,IAAK,IAAIpS,EAAI,EAAGA,EAAIoS,EAAMnH,OAAQjL,IAAK,CAAE,IAAIs7M,EAAalpM,EAAMpS,GAAIs7M,EAAWzY,WAAayY,EAAWzY,aAAc,EAAOyY,EAAW/5F,cAAe,EAAU,UAAW+5F,IAAYA,EAAWh6F,UAAW,GAAMzlG,OAAO66D,eAAehiE,EAAQ4mM,EAAW99L,IAAK89L,EAAa,CAAE,CAI5T,SAAS51M,EAAaitQ,GAAW,OAAO,WAAc,IAAsCr4O,EAAlCs4O,EAAQC,EAAgBF,GAAkB,GAMpG,WAAuC,GAAuB,oBAAZG,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAUC,KAAM,OAAO,EAAO,GAAqB,mBAAVtY,MAAsB,OAAO,EAAM,IAAiF,OAA3E9qM,KAAK/vB,UAAUva,SAASxf,KAAKgtQ,QAAQC,UAAUnjN,KAAM,IAAI,WAAa,MAAY,CAAM,CAAE,MAAO7hD,GAAK,OAAO,CAAO,CAAE,CAN3NklQ,GAA6B,CAAE,IAAIC,EAAYL,EAAgB3yQ,MAAM6gC,YAAazG,EAASw4O,QAAQC,UAAUH,EAAOzwQ,UAAW+wQ,EAAY,MAAS54O,EAASs4O,EAAM1wQ,MAAMhC,KAAMiC,WAAc,OAErS,SAAoClC,EAAM6F,GAAQ,GAAIA,IAA2B,WAAlBmsQ,EAAQnsQ,IAAsC,mBAATA,GAAwB,OAAOA,EAAQ,OAAO61E,EAAuB17E,EAAO,CAF4HkzQ,CAA2BjzQ,KAAMo6B,EAAS,CAAG,CAIzV,SAASqhD,EAAuB17E,GAAQ,QAAa,IAATA,EAAmB,MAAM,IAAImzQ,eAAe,6DAAgE,OAAOnzQ,CAAM,CAIrK,SAAS4yQ,EAAgB3W,GAAwJ,OAAnJ2W,EAAkBh3P,OAAOilB,eAAiBjlB,OAAOw6D,eAAiB,SAAyB6lL,GAAK,OAAOA,EAAE9hI,WAAav+G,OAAOw6D,eAAe6lL,EAAI,EAAU2W,EAAgB3W,EAAI,CAI5M,SAASmX,EAAgBnX,EAAG38N,GAA+G,OAA1G8zO,EAAkBx3P,OAAOilB,gBAAkB,SAAyBo7N,EAAG38N,GAAsB,OAAjB28N,EAAE9hI,UAAY76F,EAAU28N,CAAG,EAAUmX,EAAgBnX,EAAG38N,EAAI,CAEzK,SAAS9qB,EAAgBm3D,EAAKpuD,EAAKnJ,GAAiK,OAApJmJ,KAAOouD,EAAO/vD,OAAO66D,eAAe9K,EAAKpuD,EAAK,CAAEnJ,MAAOA,EAAOwuL,YAAY,EAAMthF,cAAc,EAAMD,UAAU,IAAkB11C,EAAIpuD,GAAOnJ,EAAgBu3D,CAAK,CAEhN,IAAIoxM,EAAyB,SAAUvyM,IANvC,SAAmBkpM,EAAUC,GAAc,GAA0B,mBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAIxzO,UAAU,sDAAyDuzO,EAAS9zO,UAAYhkB,OAAOszB,OAAOykO,GAAcA,EAAW/zO,UAAW,CAAEkB,YAAa,CAAE1sB,MAAOs/P,EAAUryJ,UAAU,EAAMC,cAAc,KAAeqyJ,GAAYP,EAAgBM,EAAUC,EAAa,CAO9XpuQ,CAAUw3Q,EAAWvyM,GAErB,IArBoBopM,EAAaC,EAAYC,EAqBzCtuQ,EAASC,EAAas3Q,GAE1B,SAASA,IACP,IAAIp3Q,GA5BR,SAAyB01E,EAAUu4L,GAAe,KAAMv4L,aAAoBu4L,GAAgB,MAAM,IAAIzzO,UAAU,oCAAwC,CA8BpJv6B,CAAgB3F,KAAM88Q,GAEtB,IAAK,IAAIt6N,EAAOvgD,UAAU8I,OAAQ00B,EAAO,IAAIC,MAAM8iB,GAAOE,EAAO,EAAGA,EAAOF,EAAME,IAC/EjjB,EAAKijB,GAAQzgD,UAAUygD,GASzB,OAJAnuC,EAAgBknE,EAFhB/1E,EAAQH,EAAOK,KAAK5D,MAAMuD,EAAQ,CAACvF,MAAMqB,OAAOo+B,KAED,iCAAiC,SAAUm6O,GACxFl0Q,EAAMwM,MAAMyoQ,wBAA4C,OAApBf,EAA2B,KAAOA,EAAgBv7K,KACxF,IAEO34F,CACT,CA4DA,OAnGoBiuQ,EAyCPmJ,EAzCoBlJ,EAyCT,CAAC,CACvBt2P,IAAK,wBACLnJ,MAAO,SAA+Bq6D,GACpC,OAAO,EAAI2tM,EAAyB,SAAG3tM,EAAWxuE,KAAKkS,MAAO,CAAC,aACjE,GACC,CACDoL,IAAK,SACLnJ,MAAO,WACL,IAAIy6D,EAAS5uE,KAETy/E,EAAcz/E,KAAKkS,MACnB20H,EAAQpnD,EAAYonD,MACpB0xI,EAAY94L,EAAY84L,UACxBJ,EAAa14L,EAAY04L,WACzBC,EAAiB34L,EAAY24L,eAC7BjE,EAAe10L,EAAY00L,aAC3BmE,EAAuB74L,EAAY64L,qBACnCsC,EAAYn7L,EAAYm7L,UACxBvxP,EAAQo2D,EAAYp2D,MACpBmxP,EAAY/6L,EAAY+6L,UACxBuC,EAAiC,OAAjB5I,EAAwBqG,EAAY,GAAGn5Q,OAAOm5Q,EAAW,YAAYn5Q,OAAO8yQ,EAAc,KAC1G6I,EAA2C,mBAAdzE,EACjC,OAAoB7pC,EAAgB,QAAE9jK,cAAc,KAAMgB,EAAS,CACjE+gF,KAAM,WACLtjI,EAAM,GAAGhoB,OAAO07Q,EAAe,cAAe,cAAel2I,EAAM9rH,KAAI,SAAUsjF,EAAM+1K,GACxF,IAAI6I,EAAwB,IAAd7I,EACVsI,EAAgBtI,IAAckE,EAC9B4E,EAAU,GAAG77Q,OAAO07Q,EAAe,SAAS17Q,OAAO+yQ,GACnD+I,EAAeH,EAAsBzE,EAAU,CACjDpE,aAAcA,EACdC,UAAWA,IACRmE,EAED6E,EAhFZ,SAAuB5oQ,GAAU,IAAK,IAAI1U,EAAI,EAAGA,EAAImC,UAAU8I,OAAQjL,IAAK,CAAE,IAAIghH,EAAyB,MAAhB7+G,UAAUnC,GAAamC,UAAUnC,GAAK,CAAC,EAAOA,EAAI,EAAKmsQ,EAAQtwP,OAAOmlG,IAAS,GAAM/yC,SAAQ,SAAUzwD,GAAO/I,EAAgBC,EAAQ8I,EAAKwjG,EAAOxjG,GAAO,IAAe3B,OAAO2wP,0BAA6B3wP,OAAO4wP,iBAAiB/3P,EAAQmH,OAAO2wP,0BAA0BxrJ,IAAmBmrJ,EAAQtwP,OAAOmlG,IAAS/yC,SAAQ,SAAUzwD,GAAO3B,OAAO66D,eAAehiE,EAAQ8I,EAAK3B,OAAOkhH,yBAAyB/b,EAAQxjG,GAAO,GAAM,CAAE,OAAO9I,CAAQ,CAgF1fwE,CAAc,CAC/Bic,GAAI2lP,EAAUzG,EAAcC,GAC5B,gBAAiBsI,GAChBrzP,EAAM6zP,EAAS,OAAQD,GAAW,YAAaP,GAAiB,mBAAoB,CAAC,EAAGS,GAS3F,OAPIT,IACFU,EAAaliQ,IAAM0zD,EAAOyuM,+BAMR3uC,EAAgB,QAAE9jK,cAAciyM,EAAe,QAAGjxM,EAAS,CAAC,EAAGwxM,EAAc,CAC/FjJ,aAAcA,EACduI,cAAeA,EACftI,UAAWA,EACX/1K,KAAMA,EACN85K,WAAYA,EACZC,eAAgBA,IAGpB,IACF,IAhG8DxE,GAAYpB,EAAkBmB,EAAYh0O,UAAWi0O,GAAiBC,GAAarB,EAAkBmB,EAAaE,GAmG3KiJ,CACT,CAlF6B,CAkF3BpuC,EAAO5jK,WAETtrE,EAAiB,QAAIs9Q,EAErBvoQ,EAAgBuoQ,EAAW,YAAa,CACtCj2I,MAAOsrI,EAAoB,QAAE3/N,MAAMluB,WACnCi0P,UAAWpG,EAAoB,QAAER,UAAU,CAACQ,EAAoB,QAAE97I,OAAQ87I,EAAoB,QAAE5yO,OAChG44O,WAAYhG,EAAoB,QAAE5yO,KAAKjb,WACvC8zP,eAAgBjG,EAAoB,QAAE97I,OAAO/xG,WAC7C6vP,aAAchC,EAAoB,QAAEjuP,OACpCo0P,qBAAsBnG,EAAoB,QAAEjuP,OAC5Cy2P,wBAAyBxI,EAAoB,QAAE5yO,KAAKjb,WACpDs2P,UAAWzI,EAAoB,QAAE5yO,KAAKjb,WACtC+E,MAAO8oP,EAAoB,QAAE5yO,KAAKjb,WAClCk2P,UAAWrI,EAAoB,QAAElsO,OAAO3hB,aAG1C/P,EAAgBuoQ,EAAW,eAAgB,CACzC3I,aAAc,M,oCCrJhBx4P,OAAO66D,eAAeh3E,EAAS,aAAc,CAC3C2U,OAAO,IAET3U,EAAiB,aAAI,EAErB,IAAIkvO,EAUJ,SAAiChjK,GAAO,GAAIA,GAAOA,EAAI0wL,WAAc,OAAO1wL,EAAO,GAAY,OAARA,GAAiC,WAAjBqmM,EAAQrmM,IAAoC,mBAARA,EAAsB,MAAO,CAAE,QAAWA,GAAS,IAAIswC,EAAQg2J,IAA4B,GAAIh2J,GAASA,EAAM6a,IAAInrD,GAAQ,OAAOswC,EAAM56G,IAAIsqE,GAAQ,IAAI+1C,EAAS,CAAC,EAAOwwJ,EAAwBt2P,OAAO66D,gBAAkB76D,OAAOkhH,yBAA0B,IAAK,IAAIv/G,KAAOouD,EAAO,GAAI/vD,OAAOgkB,UAAUoP,eAAenpC,KAAK8lE,EAAKpuD,GAAM,CAAE,IAAIyqI,EAAOkqH,EAAwBt2P,OAAOkhH,yBAAyBnxD,EAAKpuD,GAAO,KAAUyqI,IAASA,EAAK3mJ,KAAO2mJ,EAAKv1E,KAAQ72D,OAAO66D,eAAeirC,EAAQnkG,EAAKyqI,GAAgBtmC,EAAOnkG,GAAOouD,EAAIpuD,EAAQ,CAAImkG,EAAgB,QAAI/1C,EAASswC,GAASA,EAAMxpC,IAAI9G,EAAK+1C,GAAW,OAAOA,CAAQ,CAVhuBywJ,CAAwB,EAAQ,OAEzCC,EAAa1F,EAAuB,EAAQ,OAE5C0P,EAAkB1P,EAAuB,EAAQ,OAErD,SAASA,EAAuB/gM,GAAO,OAAOA,GAAOA,EAAI0wL,WAAa1wL,EAAM,CAAE,QAAWA,EAAO,CAEhG,SAASsmM,IAA6B,GAAuB,mBAAZO,QAAwB,OAAO,KAAM,IAAIv2J,EAAQ,IAAIu2J,QAA6F,OAAlFP,EAA2B,WAAsC,OAAOh2J,CAAO,EAAUA,CAAO,CAIjN,SAAS+1J,EAAQrmM,GAAmV,OAAtOqmM,EAArD,mBAAX3U,QAAoD,iBAApBA,OAAOS,SAAmC,SAAiBnyL,GAAO,cAAcA,CAAK,EAAsB,SAAiBA,GAAO,OAAOA,GAAyB,mBAAX0xL,QAAyB1xL,EAAI7qC,cAAgBu8N,QAAU1xL,IAAQ0xL,OAAOz9N,UAAY,gBAAkB+rC,CAAK,EAAYqmM,EAAQrmM,EAAM,CAIzX,SAAS8mM,EAAkBh+P,EAAQtC,GAAS,IAAK,IAAIpS,EAAI,EAAGA,EAAIoS,EAAMnH,OAAQjL,IAAK,CAAE,IAAIs7M,EAAalpM,EAAMpS,GAAIs7M,EAAWzY,WAAayY,EAAWzY,aAAc,EAAOyY,EAAW/5F,cAAe,EAAU,UAAW+5F,IAAYA,EAAWh6F,UAAW,GAAMzlG,OAAO66D,eAAehiE,EAAQ4mM,EAAW99L,IAAK89L,EAAa,CAAE,CAI5T,SAAS51M,EAAaitQ,GAAW,OAAO,WAAc,IAAsCr4O,EAAlCs4O,EAAQC,EAAgBF,GAAkB,GAMpG,WAAuC,GAAuB,oBAAZG,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAUC,KAAM,OAAO,EAAO,GAAqB,mBAAVtY,MAAsB,OAAO,EAAM,IAAiF,OAA3E9qM,KAAK/vB,UAAUva,SAASxf,KAAKgtQ,QAAQC,UAAUnjN,KAAM,IAAI,WAAa,MAAY,CAAM,CAAE,MAAO7hD,GAAK,OAAO,CAAO,CAAE,CAN3NklQ,GAA6B,CAAE,IAAIC,EAAYL,EAAgB3yQ,MAAM6gC,YAAazG,EAASw4O,QAAQC,UAAUH,EAAOzwQ,UAAW+wQ,EAAY,MAAS54O,EAASs4O,EAAM1wQ,MAAMhC,KAAMiC,WAAc,OAErS,SAAoClC,EAAM6F,GAAQ,GAAIA,IAA2B,WAAlBmsQ,EAAQnsQ,IAAsC,mBAATA,GAAwB,OAAOA,EAAQ,OAE3I,SAAgC7F,GAAQ,QAAa,IAATA,EAAmB,MAAM,IAAImzQ,eAAe,6DAAgE,OAAOnzQ,CAAM,CAFnB07E,CAAuB17E,EAAO,CAF4HkzQ,CAA2BjzQ,KAAMo6B,EAAS,CAAG,CAQzV,SAASu4O,EAAgB3W,GAAwJ,OAAnJ2W,EAAkBh3P,OAAOilB,eAAiBjlB,OAAOw6D,eAAiB,SAAyB6lL,GAAK,OAAOA,EAAE9hI,WAAav+G,OAAOw6D,eAAe6lL,EAAI,EAAU2W,EAAgB3W,EAAI,CAI5M,SAASmX,EAAgBnX,EAAG38N,GAA+G,OAA1G8zO,EAAkBx3P,OAAOilB,gBAAkB,SAAyBo7N,EAAG38N,GAAsB,OAAjB28N,EAAE9hI,UAAY76F,EAAU28N,CAAG,EAAUmX,EAAgBnX,EAAG38N,EAAI,CAIzK,IAFyBqsC,EAAKpuD,EAAKnJ,EAE/BmpQ,EAA4B,SAAU/yM,IAN1C,SAAmBkpM,EAAUC,GAAc,GAA0B,mBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAIxzO,UAAU,sDAAyDuzO,EAAS9zO,UAAYhkB,OAAOszB,OAAOykO,GAAcA,EAAW/zO,UAAW,CAAEkB,YAAa,CAAE1sB,MAAOs/P,EAAUryJ,UAAU,EAAMC,cAAc,KAAeqyJ,GAAYP,EAAgBM,EAAUC,EAAa,CAO9XpuQ,CAAUg4Q,EAAc/yM,GAExB,IArBoBopM,EAAaC,EAAYC,EAqBzCtuQ,EAASC,EAAa83Q,GAE1B,SAASA,IAGP,OA9BJ,SAAyBliM,EAAUu4L,GAAe,KAAMv4L,aAAoBu4L,GAAgB,MAAM,IAAIzzO,UAAU,oCAAwC,CA4BpJv6B,CAAgB3F,KAAMs9Q,GAEf/3Q,EAAOvD,MAAMhC,KAAMiC,UAC5B,CAyBA,OApDoB0xQ,EA6BP2J,GA7BoB1J,EA6BN,CAAC,CAC1Bt2P,IAAK,wBACLnJ,MAAO,SAA+Bq6D,GACpC,OAAO,EAAI2tM,EAAyB,SAAG3tM,EAAWxuE,KAAKkS,MACzD,GACC,CACDoL,IAAK,SACLnJ,MAAO,WACL,IAAIsrE,EAAcz/E,KAAKkS,MACnBw0M,EAAUjnI,EAAYinI,QACtB6wD,EAAqB93L,EAAY83L,mBACjCluP,EAAQo2D,EAAYp2D,MACpBoxP,EAAmBh7L,EAAYg7L,iBAC/ByB,EAAe3E,EAAmB7wD,GAEtC,OAAKw1D,EAIextC,EAAgB,QAAE9jK,cAAc,MAAOvhD,EAAM,GAAGhoB,OAAOo5Q,EAAkB,SAAU,gBAAiByB,GAH/G,IAIX,MAjD0E1J,EAAkBmB,EAAYh0O,UAAWi0O,GAAiBC,GAAarB,EAAkBmB,EAAaE,GAoD3KyJ,CACT,CAnCgC,CAmC9B5uC,EAAO5jK,WAETtrE,EAAiB,QAAI89Q,EAvCI5xM,EAyCT4xM,EAzCchgQ,EAyCA,YAzCKnJ,EAyCQ,CACzCuyM,QAASyrD,EAAoB,QAAEb,IAAIhtP,WACnCizP,mBAAoBpF,EAAoB,QAAE5yO,KAAKjb,WAC/C+E,MAAO8oP,EAAoB,QAAE5yO,KAAKjb,WAClCm2P,iBAAkBtI,EAAoB,QAAElsO,OAAO3hB,YA7CDhH,KAAOouD,EAAO/vD,OAAO66D,eAAe9K,EAAKpuD,EAAK,CAAEnJ,MAAOA,EAAOwuL,YAAY,EAAMthF,cAAc,EAAMD,UAAU,IAAkB11C,EAAIpuD,GAAOnJ,C,kCClC3L,SAAS49P,EAAQrmM,GAAmV,OAAtOqmM,EAArD,mBAAX3U,QAAoD,iBAApBA,OAAOS,SAAmC,SAAiBnyL,GAAO,cAAcA,CAAK,EAAsB,SAAiBA,GAAO,OAAOA,GAAyB,mBAAX0xL,QAAyB1xL,EAAI7qC,cAAgBu8N,QAAU1xL,IAAQ0xL,OAAOz9N,UAAY,gBAAkB+rC,CAAK,EAAYqmM,EAAQrmM,EAAM,CALzX/vD,OAAO66D,eAAeh3E,EAAS,aAAc,CAC3C2U,OAAO,IAET3U,EAAiB,QAIjB,SAAwBusE,EAAMC,GAC5B,IAAIxqC,EAAOv/B,UAAU8I,OAAS,QAAsBrG,IAAjBzC,UAAU,GAAmBA,UAAU,GAAK,GAE/E,GAAI8pE,IAASC,EACX,OAAO,EAGT,IAAIuxM,EAAQ5hQ,OAAO6lB,KAAKuqC,GACpByxM,EAAQ7hQ,OAAO6lB,KAAKwqC,GAExB,GAAIuxM,EAAMxyQ,SAAWyyQ,EAAMzyQ,OACzB,OAAO,EAGT,IACIjL,EAAG4/G,EADH+9J,EAAU,CAAC,EAGf,IAAK39Q,EAAI,EAAG4/G,EAAMl+E,EAAKz2B,OAAQjL,EAAI4/G,EAAK5/G,IACtC29Q,EAAQj8O,EAAK1hC,KAAM,EAGrB,IAAKA,EAAI,EAAG4/G,EAAM69J,EAAMxyQ,OAAQjL,EAAI4/G,EAAK5/G,IAAK,CAC5C,IAAIwd,EAAMigQ,EAAMz9Q,GACZ49Q,EAAS3xM,EAAKzuD,GACdqgQ,EAAS3xM,EAAK1uD,GAElB,GAAIogQ,IAAWC,EAAf,CAIA,IAAKF,EAAQngQ,IAAmB,OAAXogQ,GAA8B,OAAXC,GAAuC,WAApB5L,EAAQ2L,IAA4C,WAApB3L,EAAQ4L,GACjG,OAAO,EAGT,IAAIC,EAAajiQ,OAAO6lB,KAAKk8O,GACzBG,EAAaliQ,OAAO6lB,KAAKm8O,GAE7B,GAAIC,EAAW7yQ,SAAW8yQ,EAAW9yQ,OACnC,OAAO,EAGT,IAAK,IAAIyhD,EAAI,EAAGzhD,EAAS6yQ,EAAW7yQ,OAAQyhD,EAAIzhD,EAAQyhD,IAAK,CAC3D,IAAIsxN,EAAYF,EAAWpxN,GAE3B,GAAIkxN,EAAOI,KAAeH,EAAOG,GAC/B,OAAO,CAEX,CAnBA,CAoBF,CAEA,OAAO,CACT,C,mCC1DAr+Q,EAAOD,QAAU,EAAjB,a,kCCAAmc,OAAO66D,eAAeh3E,EAAS,aAAc,CAC3C2U,OAAO,IAET3U,EAAQg5Q,uBAAyBh5Q,EAAQk5Q,kBAAe,EAiBxDl5Q,EAAQk5Q,aAhBW,CACjB8C,UAAW,+BACXC,cAAe,qCACf1tP,MAAO,2BACP2tP,UAAW,iCACXC,aAAc,oCACd1H,qBAAsB,2CACtB8J,yBAA0B,iDAC1BC,gBAAiB,sCACjBt0P,WAAY,gCACZu0P,gBAAiB,uCACjBC,sBAAuB,6CACvBlC,iBAAkB,uCAClBC,sBAAuB,8CACvBC,aAAc,oCAyChB18Q,EAAQg5Q,uBArCqB,SAAgCnvP,GAC3D,IAAI+Q,EAAS,CAAC,EAEd,IAAK,IAAI9c,KAAO+L,EACd,OAAQ/L,GACN,IAAK,uBACH8c,EAAuB,eAAI/Q,EAAM/L,GACjC,MAEF,IAAK,2BACH8c,EAA2B,mBAAI/Q,EAAM/L,GACrC,MAEF,IAAK,aACH8c,EAAa,KAAI/Q,EAAM/L,GACvB,MAEF,IAAK,kBACH8c,EAAkB,UAAI/Q,EAAM/L,GAC5B,MAEF,IAAK,wBACH8c,EAAwB,gBAAI/Q,EAAM/L,GAClC,MAEF,IAAK,kBACH8c,EAAkB,UAAI/Q,EAAM/L,GAC5B,MAEF,QACE8c,EAAO9c,GAAO+L,EAAM/L,GAI1B,OAAO8c,CACT,C,oCCrDA,IAF0B6+F,EAEtB/rH,EAAQ,EAAQ,MAChBixQ,GAHsBllJ,EAGW/rH,IAHwB,iBAAP+rH,GAAoB,YAAaA,EAAMA,EAAY,QAAIA,EAOzGmlJ,EAAK,IAFM,EAAQ,IAGnBC,EAAUD,EAAGE,aAEbv4K,GADMq4K,EAAGG,SACAH,EAAGI,aACZC,EAASL,EAAGM,YACZC,EAAKP,EAAGQ,QACRC,EAAKT,EAAGU,QAERC,EAAc,SAAqB1/O,GAErC,OAAOA,IADCp9B,UAAU8I,OAAS,QAAsBrG,IAAjBzC,UAAU,GAAmBA,UAAU,GAAK,OAE9E,EACI+8Q,EAAuB,WACzB,QAAsB,oBAAX5jP,SACLA,OAAO4qC,YAAaA,aACf5qC,OAAO4qC,WAAaA,UAKjC,EACIi5M,EAAe,SAAsBh6Q,GACvC,IAAIi6Q,EAAMF,IACV,OAAOE,GAAOA,EAAIpxI,YAA6C,IAAhCoxI,EAAIpxI,SAASjnG,QAAQ5hC,IAAiC,aAAjBi6Q,EAAIpxI,UAA2BoxI,EAAIC,eAAiB,IAAM/jP,OAAOgkP,SACvI,EAEA,SAASrN,EAAQrmM,GAWf,MAVsB,mBAAX0xL,QAAoD,iBAApBA,OAAOS,SACtC,SAAUnyL,GAClB,cAAcA,CAChB,EAEU,SAAUA,GAClB,OAAOA,GAAyB,mBAAX0xL,QAAyB1xL,EAAI7qC,cAAgBu8N,QAAU1xL,IAAQ0xL,OAAOz9N,UAAY,gBAAkB+rC,CAC3H,EAGKqmM,EAAQrmM,EACjB,CAQA,SAAS8mM,EAAkBh+P,EAAQtC,GACjC,IAAK,IAAIpS,EAAI,EAAGA,EAAIoS,EAAMnH,OAAQjL,IAAK,CACrC,IAAIs7M,EAAalpM,EAAMpS,GACvBs7M,EAAWzY,WAAayY,EAAWzY,aAAc,EACjDyY,EAAW/5F,cAAe,EACtB,UAAW+5F,IAAYA,EAAWh6F,UAAW,GACjDzlG,OAAO66D,eAAehiE,EAAQ4mM,EAAW99L,IAAK89L,EAChD,CACF,CAQA,SAAS7mM,EAAgBm3D,EAAKpuD,EAAKnJ,GAYjC,OAXImJ,KAAOouD,EACT/vD,OAAO66D,eAAe9K,EAAKpuD,EAAK,CAC9BnJ,MAAOA,EACPwuL,YAAY,EACZthF,cAAc,EACdD,UAAU,IAGZ11C,EAAIpuD,GAAOnJ,EAGNu3D,CACT,CAEA,SAASE,IAeP,OAdWjwD,OAAOC,QAAU,SAAUpH,GACpC,IAAK,IAAI1U,EAAI,EAAGA,EAAImC,UAAU8I,OAAQjL,IAAK,CACzC,IAAIghH,EAAS7+G,UAAUnC,GAEvB,IAAK,IAAIwd,KAAOwjG,EACVnlG,OAAOgkB,UAAUoP,eAAenpC,KAAKk7G,EAAQxjG,KAC/C9I,EAAO8I,GAAOwjG,EAAOxjG,GAG3B,CAEA,OAAO9I,CACT,EAEOo3D,EAAS5pE,MAAMhC,KAAMiC,UAC9B,CAEA,SAASgqQ,EAAQ51I,EAAQ61I,GACvB,IAAI1qO,EAAO7lB,OAAO6lB,KAAK60F,GAEvB,GAAI16G,OAAOqsL,sBAAuB,CAChC,IAAImkE,EAAUxwP,OAAOqsL,sBAAsB3xE,GACvC61I,IAAgBC,EAAUA,EAAQj6O,QAAO,SAAUk6O,GACrD,OAAOzwP,OAAOkhH,yBAAyBxG,EAAQ+1I,GAAKzpE,UACtD,KACAnhK,EAAKv9B,KAAKjC,MAAMw/B,EAAM2qO,EACxB,CAEA,OAAO3qO,CACT,CAqCA,SAASmxO,EAAgB3W,GAIvB,OAHkBrgP,OAAOilB,eAAiBjlB,OAAOw6D,eAAiB,SAAyB6lL,GACzF,OAAOA,EAAE9hI,WAAav+G,OAAOw6D,eAAe6lL,EAC9C,EACO2W,EAAgB3W,EACzB,CAEA,SAASmX,EAAgBnX,EAAG38N,GAM1B,OALkB1jB,OAAOilB,gBAAkB,SAAyBo7N,EAAG38N,GAErE,OADA28N,EAAE9hI,UAAY76F,EACP28N,CACT,EAEOmX,EAAgBnX,EAAG38N,EAC5B,CAiBA,SAAS+8O,EAAyBt7J,EAAQu7J,GACxC,GAAc,MAAVv7J,EAAgB,MAAO,CAAC,EAE5B,IAEIxjG,EAAKxd,EAFL0U,EAlBN,SAAuCssG,EAAQu7J,GAC7C,GAAc,MAAVv7J,EAAgB,MAAO,CAAC,EAC5B,IAEIxjG,EAAKxd,EAFL0U,EAAS,CAAC,EACV8nQ,EAAa3gQ,OAAO6lB,KAAKs/E,GAG7B,IAAS,EAAGhhH,EAAIw8Q,EAAWvxQ,OAAQjL,IAC3Bw8Q,EAAWx8Q,GACbu8Q,EAASx1O,QAAQvpB,IAAQ,IAC7B9I,EAAO8I,GAAOwjG,EAAOxjG,IAGvB,OAAO9I,CACT,CAKe+nQ,CAA8Bz7J,EAAQu7J,GAInD,GAAI1gQ,OAAOqsL,sBAAuB,CAChC,IAAIw0E,EAAmB7gQ,OAAOqsL,sBAAsBlnF,GAEpD,IAAS,EAAGhhH,EAAI08Q,EAAiBzxQ,OAAQjL,IACjC08Q,EAAiB18Q,GACnBu8Q,EAASx1O,QAAQvpB,IAAQ,GACxB3B,OAAOgkB,UAAUsoK,qBAAqBriM,KAAKk7G,EAAQxjG,KACxD9I,EAAO8I,GAAOwjG,EAAOxjG,GAEzB,CAEA,OAAO9I,CACT,CAEA,SAASinE,EAAuB17E,GAC9B,QAAa,IAATA,EACF,MAAM,IAAImzQ,eAAe,6DAG3B,OAAOnzQ,CACT,CAUA,IAAIs/Q,EACM,SADNA,EAEM,SAFNA,EAGO,UAHPA,EAIO,UAJPA,EAKQ,WALRA,OAMO36Q,EAEP46Q,EAAe,CACjBC,OAAQ,SACRC,QAAS,UACTC,MAAO,QACPC,OAAQ,SACRC,OAAQ,SACRC,iBAAkB,oBAClBC,KAAM,OACNC,SAAU,WACVC,GAAI,KACJC,aAAc,gBACdC,aAAc,gBACdC,KAAM,eACNC,eAAgB,mBAEdC,EAAU,CACZC,IAAK,MACLC,QAAS,UACTC,aAAc,gBACdC,QAAS,UACTC,OAAQ,UAENnsI,EAAc,CAChBosI,UAAU,EACVz6K,UAAU,EACV88F,WAAW,EACX49E,WAAW,EACXC,WAAW,EACXC,YAAY,GAmDVC,EAAgB,SAAuB77Q,EAAM8gG,EAAQ44K,EAAIE,GAC3D,OA/LF,SAAwBrqQ,GACtB,IAAK,IAAI1U,EAAI,EAAGA,EAAImC,UAAU8I,OAAQjL,IAAK,CACzC,IAAIghH,EAAyB,MAAhB7+G,UAAUnC,GAAamC,UAAUnC,GAAK,CAAC,EAEhDA,EAAI,EACNmsQ,EAAQnrJ,GAAQ,GAAM/yC,SAAQ,SAAUzwD,GACtC/I,EAAgBC,EAAQ8I,EAAKwjG,EAAOxjG,GACtC,IACS3B,OAAO2wP,0BAChB3wP,OAAO4wP,iBAAiB/3P,EAAQmH,OAAO2wP,0BAA0BxrJ,IAEjEmrJ,EAAQnrJ,GAAQ/yC,SAAQ,SAAUzwD,GAChC3B,OAAO66D,eAAehiE,EAAQ8I,EAAK3B,OAAOkhH,yBAAyB/b,EAAQxjG,GAC7E,GAEJ,CAEA,OAAO9I,CACT,CA6KSusQ,CAAe,CAAC,EAAG97Q,EAAM,CAC9B+7Q,OAAQjC,EAAYh5K,EAAOi7K,QAC3BrtP,MAAOorP,EAAYh5K,EAAOpyE,OAC1BgrP,GAAII,EAAYJ,EAAGh6Q,MACnBs8Q,UAAWlC,EAAYJ,EAAG95O,SAC1Bg6O,GAAIE,EAAYF,IAEpB,EAgCI55Q,EAzFY,SAAmBA,GACjC,OAAQA,GACN,KAAKo6Q,EACH,MAAO,CACLqB,UAAU,GAGd,KAAKrB,EACH,MAAO,CACLp5K,UAAU,GAGd,KAAKo5K,EACH,MAAO,CACLsB,WAAW,GAGf,KAAKtB,EACH,MAAO,CACLuB,WAAW,GAGf,KAAKvB,EACH,MAAO,CACLwB,YAAY,GAGhB,KAAKxB,EACH,MAAO,CACLt8E,WAAW,GAGf,QACE,OAAOzuD,EAEb,CAsDW4sI,CAAUn7K,EAAO9gG,MAmC5B,IA8GMi6Q,EA3FFiC,EAAqB,WACvB,MAAqB,iBAAPtC,IAA2C,IAAxBA,EAAGh4O,QAAQ,OAC9C,EAMIu6O,EAAgB,WAClB,OAAOr7K,EAAO9gG,OAASo6Q,CACzB,EA0CIgC,EAAa,WACf,OAAOhD,EAAQ15Q,OAAS26Q,EAAaO,IACvC,EAyCIyB,EAAY,WACd,OAAOrC,EAAa,OACtB,EAsDI0B,EAlJK56K,EAAO9gG,OAASo6Q,EAmJrBuB,EAvIK76K,EAAO9gG,OAASo6Q,EAwIrBwB,EA5IK96K,EAAO9gG,OAASo6Q,EA6IrBkC,EAzFKlD,EAAQ15Q,OAAS26Q,EAAaU,cAyFMsB,IACzCE,EA1GKnD,EAAQ15Q,OAAS26Q,EAAaQ,SA2GnCY,EAvKwB,WAC1B,OAAQ36K,EAAO9gG,MACb,KAAKo6Q,EACL,KAAKA,EACH,OAAO,EAET,QACE,OAAO,EAEb,CA8JeoC,IAA2BH,IACtCt7K,EA/KKD,EAAO9gG,OAASo6Q,EAgLrBp5K,EA5KKF,EAAO9gG,OAASo6Q,GA4KQiC,IAC7Bv+E,EAAYq+E,IACZM,EAAYN,IACZO,EA5IKhD,EAAGh6Q,OAASy7Q,EAAQE,QA6IzBsB,EAjIKjD,EAAGh6Q,OAASy7Q,EAAQG,aAkIzBsB,EA9HKlD,EAAGh6Q,OAASy7Q,EAAQC,KA8HFiB,IACvBzrM,EA3HKwoM,EAAQ15Q,OAAS26Q,EAAaC,OA4HnC5pM,GAxHK0oM,EAAQ15Q,OAAS26Q,EAAaE,QAyHnC1pM,GAzGKuoM,EAAQ15Q,OAAS26Q,EAAaK,QAAUtB,EAAQ15Q,OAAS26Q,EAAaU,aA0G3EpqM,GAlGKyoM,EAAQ15Q,OAAS26Q,EAAaG,MAmGnCqC,GA/FKzD,EAAQ15Q,OAAS26Q,EAAaM,kBAAoBvB,EAAQ15Q,OAAS26Q,EAAaS,GAgGrFkB,GArDKlC,EAAYJ,EAAG95O,SAsDpBk9O,GAlDKhD,EAAYJ,EAAGh6Q,MAmDpBq9Q,GA/DKjD,EAAYV,EAAQx5O,SAgEzBo9O,GA5DKlD,EAAYV,EAAQ6D,OA6DzBC,GAjDKpD,EAAYV,EAAQ15Q,MAkDzBy9Q,GA9CKrD,EAAYh5K,EAAOi7K,QA+CxBqB,GA3CKtD,EAAYh5K,EAAOpyE,OA4CxB2uP,GAxCKvD,EAAYN,EAAO95Q,MAyCxB49Q,GArCKxD,EAAYN,EAAO55O,SAsCxBi6O,GAlCKC,EAAYF,GAmCjB2D,GAASnB,KAAgBF,IACzBsB,GA3HKpE,EAAQ15Q,OAAS26Q,EAAaI,OA4HnCzoL,GAjCK8nL,EAAYh5K,EAAO9gG,KAAM,WAkC9By9Q,IA3FExD,EAAMF,OACK,mBAAmB9wP,KAAKgxP,EAAIpxI,WAA8B,aAAjBoxI,EAAIpxI,UAA2BoxI,EAAIC,eAAiB,KAAO/jP,OAAOgkP,SA2FxHuD,GAAWrB,IACXsB,GApFK3D,EAAa,UAqFlB4D,GAjFK5D,EAAa,QAkFlB6D,GAtGiB,WACnB,IAAI5D,EAAMF,IACNH,EAAKK,GAAOA,EAAIxpM,WAAawpM,EAAIxpM,UAAU39D,cAC/C,MAAqB,iBAAP8mQ,GAAkB,WAAW3wP,KAAK2wP,EAClD,CAkGiBkE,GACbC,GAAiB7B,IACjB8B,GAAe5B,MAAiBF,IAChC+B,GApKKvE,EAAGh6Q,OAASy7Q,EAAQI,QAqKzB2C,GAjKKxE,EAAGh6Q,OAASy7Q,EAAQK,OAkKzB2C,GAlHK/E,EAAQ15Q,OAAS26Q,EAAaY,KAmHnCmD,GA/GKhF,EAAQ15Q,OAAS26Q,EAAaa,eAoWvC3gR,EAAQ,GAAay3F,GAyBrBz3F,EAAQ,GAAewmG,EAMvBxmG,EAAQ,GAAWymG,C,+JCt2Bfq9K,EAAqBnvQ,GAAmB,MAATA,EAE/B++B,EAAW/+B,GAAUurB,MAAMwT,QAAQ/+B,GAEvC,MAAMovQ,EAAgBpvQ,GAA2B,iBAAVA,EACvC,IAAIgsB,EAAYhsB,IAAWmvQ,EAAkBnvQ,KAAW++B,EAAQ/+B,IAAUovQ,EAAapvQ,GAEnFqvQ,EAAiBrvQ,GAAUgsB,EAAShsB,IAAUA,EAAM6gN,WAAaC,KAAKM,aAE1E,MAAMkuD,EAAkB,CACpBrvP,OAAQ,SACR/f,SAAU,WACVuiF,SAAU,YAER8sL,EAAQ,QACRC,EAAY,YACZC,EAAS,CACXC,KAAM,OACNC,OAAQ,SACRC,MAAO,SAELC,EAAS,SACTC,EACG,MADHA,EAEG,MAFHA,EAGS,YAHTA,EAIS,YAJTA,EAKO,UALPA,EAMQ,WANRA,EAOQ,WAERC,EAAqB,mDACrBC,EAAsB,QACtBC,EAAkB,mGAClBC,EAAoB,WAU1B,IAAIC,EAASnwQ,IAAW++B,EAAQ/+B,KAC3BgwQ,EAAoBj2P,KAAK/Z,KAAW+vQ,EAAmBh2P,KAAK/Z,IAE7DowQ,EAAgBt+O,IAChB,MAAM7L,EAAS,GAIf,OAHA6L,EAAO/+B,QAAQk9Q,GAAiB,CAACvwQ,EAAOqQ,EAAQsgQ,EAAOv+O,KACnD7L,EAAOn2B,KAAKugR,EAAQv+O,EAAO/+B,QAAQm9Q,EAAmB,MAAQngQ,GAAUrQ,EAAM,IAE3EumB,CAAM,EAGjB,SAASo4C,EAAI6jD,EAAQrS,EAAM7vG,GACvB,IAAI8G,GAAS,EACb,MAAMwpQ,EAAWH,EAAMtgK,GAAQ,CAACA,GAAQugK,EAAavgK,GAC/Cj5G,EAAS05Q,EAAS15Q,OAClBwvN,EAAYxvN,EAAS,EAC3B,OAASkQ,EAAQlQ,GAAQ,CACrB,MAAMuS,EAAMmnQ,EAASxpQ,GACrB,IAAIkZ,EAAWhgB,EACf,GAAI8G,IAAUs/M,EAAW,CACrB,MAAMmqD,EAAWruJ,EAAO/4G,GACxB6W,EACIgM,EAASukP,IAAaxxO,EAAQwxO,GACxBA,EACCxjP,OAAOujP,EAASxpQ,EAAQ,IAErB,CAAC,EADD,EAElB,CACAo7G,EAAO/4G,GAAO6W,EACdkiG,EAASA,EAAO/4G,EACpB,CACA,OAAO+4G,CACX,CAEA,IAAIsuJ,EAAyBpjR,GAASoa,OAAO86F,QAAQl1G,GAAMy3D,QAAO,CAAC88D,GAAWx4G,EAAKnJ,KAC1EmwQ,EAAMhnQ,GAIJ3B,OAAOC,OAAOD,OAAOC,OAAO,CAAC,EAAGk6G,GAAW,CAAE,CAACx4G,GAAMnJ,KAHvDq+D,EAAIsjD,EAAUx4G,EAAKnJ,GACZ2hH,IAGZ,CAAC,GAEA8uJ,EAAexvM,QAAgB1wE,IAAR0wE,EAEvBh0E,EAAM,CAACsqE,EAAKs4C,EAAM70F,KAClB,MAAMiL,EAAS4pF,EACVl9G,MAAM,aACNorB,OAAOitF,SACPnmD,QAAO,CAAC5+B,EAAQ9c,IAASgmQ,EAAkBlpP,GAAUA,EAASA,EAAO9c,IAAOouD,GACjF,OAAOk5M,EAAYxqP,IAAWA,IAAWsxC,EACnCk5M,EAAYl5M,EAAIs4C,IACZ70F,EACAu8C,EAAIs4C,GACR5pF,CAAM,EAGZyqP,EAAoB,CAACh4Q,EAAQi4Q,KAC7B,IAAK,MAAMxnQ,KAAOzQ,EACd,GAAIzL,EAAI0jR,EAAaxnQ,GAAM,CACvB,MAAM6gF,EAAQtxF,EAAOyQ,GACrB,GAAI6gF,EAAO,CACP,GAAIA,EAAMjjF,IAAIstL,MAAO,CACjBrqG,EAAMjjF,IAAIstL,QACV,KACJ,CACK,GAAIrqG,EAAMr5F,QAAS,CACpBq5F,EAAMr5F,QAAQ,GAAGoW,IAAIstL,QACrB,KACJ,CACJ,CACJ,CACJ,EAGAu8E,EAA0B,CAAC7pQ,EAAK8pQ,KAC5BxB,EAActoQ,IAAQA,EAAIoF,sBAC1BpF,EAAIoF,oBAAoBsjQ,EAAOG,MAAOiB,GACtC9pQ,EAAIoF,oBAAoBsjQ,EAAOE,OAAQkB,GACvC9pQ,EAAIoF,oBAAoBsjQ,EAAOC,KAAMmB,GACzC,EAGAC,EAAgBtqP,GAA6B,UAAjBA,EAAQ11B,KAEpCigR,EAAmBvqP,GAA6B,aAAjBA,EAAQ11B,KAE3C,SAASkgR,EAAWxqP,GAChB,OAAKA,GAGCA,aAAmByqP,aACrBzqP,EAAQq6L,WAAaC,KAAKG,eAGvB+vD,EAAWxqP,EAAQwoD,WAC9B,CAEA,IAAIkiM,EAAiBlxQ,GAAUgsB,EAAShsB,KAAWwH,OAAO6lB,KAAKrtB,GAAOpJ,OAEtE,SAASu6Q,EAASnxQ,GACd,OAAO++B,EAAQ/+B,GAASA,EAAQowQ,EAAapwQ,EACjD,CA2BA,SAASkwM,EAAOhuF,EAAQrS,GACpB,OAAsB,GAAfA,EAAKj5G,OAAcsrH,EA3B9B,SAAiBA,EAAQrS,GACrB,MAAMuhK,EAAajB,EAAMtgK,GAAQ,CAACA,GAAQshK,EAASthK,GAC7Cj5G,EAASi5G,EAAKj5G,OACpB,IAAIkQ,EAAQ,EACZ,KAAOA,EAAQlQ,GACXsrH,EAASuuJ,EAAYvuJ,GAAUp7G,IAAUo7G,EAAOkvJ,EAAWtqQ,MAE/D,OAAOA,GAASlQ,EAASsrH,OAAS3xH,CACtC,CAmBuC8gR,CAAQnvJ,EAlB/C,SAAmB7jF,EAAOzE,EAAO+hB,GAC7B,IAAI70C,GAAS,EACTlQ,EAASynC,EAAMznC,OACfgjC,EAAQ,IACRA,GAASA,EAAQhjC,EAAS,EAAIA,EAASgjC,IAE3C+hB,EAAMA,EAAM/kD,EAASA,EAAS+kD,GACpB,IACNA,GAAO/kD,GAEXA,EAASgjC,EAAQ+hB,EAAM,EAAIA,EAAM/hB,EACjC,MAAM3T,EAASsF,MAAM30B,GACrB,OAASkQ,EAAQlQ,GACbqvB,EAAOnf,GAASu3B,EAAMv3B,EAAQ8yB,GAElC,OAAO3T,CACX,CAEuDqrP,CAAUzhK,EAAM,GAAI,GAC3E,CA+BA,SAAS0hK,EAAMrvJ,EAAQsvJ,GAInB,OAHAA,EAAM53M,SAASi2C,KA/BnB,SAAmBqS,EAAQrS,GACvB,MAAMuhK,EAAajB,EAAMtgK,GAAQ,CAACA,GAAQshK,EAASthK,GAC7C4hK,EAAcvhE,EAAOhuF,EAAQkvJ,GAC7BjoQ,EAAMioQ,EAAWA,EAAWx6Q,OAAS,GACrCqvB,IAA0B,MAAfwrP,WAA+BA,EAAYtoQ,GAC5D,IAAIuoQ,EACJ,IAAK,IAAIznN,EAAI,EAAGA,EAAImnN,EAAW9sQ,MAAM,GAAI,GAAG1N,OAAQqzD,IAAK,CACrD,IACI0nN,EADA7qQ,GAAS,EAEb,MAAM8qQ,EAAeR,EAAW9sQ,MAAM,IAAK2lD,EAAI,IACzC4nN,EAAqBD,EAAah7Q,OAAS,EAIjD,IAHIqzD,EAAI,IACJynN,EAAiBxvJ,KAEZp7G,EAAQ8qQ,EAAah7Q,QAAQ,CAClC,MAAMszF,EAAO0nL,EAAa9qQ,GAC1B6qQ,EAAYA,EAAYA,EAAUznL,GAAQg4B,EAAOh4B,GAC7C2nL,IAAuB/qQ,IAClBklB,EAAS2lP,IAAcT,EAAcS,IACrC5yO,EAAQ4yO,KACJA,EAAU5zP,QAAQ3wB,GAAS4+B,EAAS5+B,KAAU8jR,EAAc9jR,KACxDwJ,UACT86Q,SAAwBA,EAAexnL,UAAeg4B,EAAOh4B,IAGrEwnL,EAAiBC,CACrB,CACJ,CAEJ,CAGQG,CAAU5vJ,EAAQrS,EAAK,IAEpBqS,CACX,CAEA,MAAM6vJ,EAAY,CAACC,EAAYjrQ,IAAQirQ,GAAcA,EAAWjrQ,MAAQA,EAsCxE,MAAMkrQ,EAAgB,CAClB/9P,SAAS,EACTlU,MAAO,IAEX,IAAIkyQ,EAAiBvhR,GAAYouC,EAAQpuC,GACnCA,EAAQk0D,QAAO,CAAC88D,EAAU/wH,IAAWA,GAAUA,EAAOmW,IAAI+V,QACtD,CACE5I,SAAS,EACTlU,MAAOpP,EAAOmW,IAAI/G,OAEpB2hH,GAAUswJ,GACdA,EAEFE,EAA0BxhR,GAAY,IAAIA,GACzCotB,QAAO,EAAG88B,cAAeA,IACzBj0C,KAAI,EAAG5G,WAAYA,IAEpBoyQ,EAAe5rP,GAA6B,SAAjBA,EAAQ11B,KAEnCuhR,EAAoB7rP,GAAYA,EAAQ11B,OAAS,GAAG++Q,aAEpDyC,EAAiBtyQ,GAAoB,KAAVA,EAE/B,MAAMuyQ,EAAgB,CAClBvyQ,OAAO,EACPkU,SAAS,GAEPs+P,EAAc,CAAExyQ,OAAO,EAAMkU,SAAS,GAC5C,IAAIu+P,EAAoB9hR,IACpB,GAAIouC,EAAQpuC,GAAU,CAClB,GAAIA,EAAQiG,OAAS,EAAG,CACpB,MAAM6a,EAAS9gB,EACVotB,QAAQntB,GAAWA,GAAUA,EAAOmW,IAAI+V,UACxClW,KAAI,EAAGG,KAAO/G,YAAcA,IACjC,MAAO,CAAEA,MAAOyR,EAAQyC,UAAWzC,EAAO7a,OAC9C,CACA,MAAM,QAAEkmB,EAAO,MAAE9c,EAAK,WAAEqc,GAAe1rB,EAAQ,GAAGoW,IAClD,OAAO+V,EACDT,IAAeo0P,EAAYp0P,EAAWrc,OAClCywQ,EAAYzwQ,IAAUsyQ,EAActyQ,GAChCwyQ,EACA,CAAExyQ,MAAOA,EAAOkU,SAAS,GAC7Bs+P,EACJD,CACV,CACA,OAAOA,CAAa,EAGxB,SAASG,EAAch6Q,EAAQqO,GAC3B,MAAM,KAAEvW,EAAI,MAAEwP,GAAU+G,EAClBijF,EAAQtxF,EAAOlI,GACrB,OAAI4hR,EAAYrrQ,GACLA,EAAI4rQ,MAEX7B,EAAa/pQ,GACNijF,EAAQkoL,EAAcloL,EAAMr5F,SAASqP,MAAQ,GAEpDqyQ,EAAiBtrQ,GACVorQ,EAAuBprQ,EAAIpW,SAElCogR,EAAgBhqQ,KACTijF,GAAQyoL,EAAiBzoL,EAAMr5F,SAASqP,MAE5CA,CACX,CAEA,IAAI4qG,EAAY5qG,GAA2B,iBAAVA,EAE7B4yQ,EAAkB,CAACl6Q,EAAQy8B,KAC3B,MAAM82D,EAAS,CAAC,EAChB,IAAK,MAAMz7F,KAAQkI,GACX+3Q,EAAYt7O,KACXy1E,EAASz1E,GACJ3kC,EAAKF,WAAW6kC,GAChB4J,EAAQ5J,GACJA,EAAOxlC,MAAMvC,GAASoD,EAAKF,WAAWlD,KACtC+nC,GAAUA,EAAO09O,SAC3B5mL,EAAOz7F,GAAQkiR,EAAch6Q,EAAQA,EAAOlI,GAAMuW,MAG1D,OAAOklF,CAAM,EAUb6mL,EAAc,CAACrlR,GAASqD,OAAMk/B,QAAO1+B,aAAc06B,EAASv+B,IAC5DA,EAAMqD,OAASA,GACfrD,EAAM6D,UAAYA,GATF,EAACyhR,EAAU,CAAC,EAAGC,EAAU,CAAC,KAC1C,MAAMC,EAAczrQ,OAAO6lB,KAAK0lP,GAC1BG,EAAc1rQ,OAAO6lB,KAAK2lP,GAChC,OAAQC,EAAYr8Q,SAAWs8Q,EAAYt8Q,QACvCq8Q,EAAY9pK,OAAOhgG,GAAQ6pQ,EAAQ7pQ,IAAQ6pQ,EAAQ7pQ,KAAS4pQ,EAAQ5pQ,IAAM,EAM9EgqQ,CAAc1lR,EAAMuiC,MAAOA,GAmB/B,IAAIojP,GAAWpzQ,GAAUA,aAAiB8d,OAEtCu1P,GAAsBC,IAEtB,OADkCtnP,EAAVhsB,EACFszQ,KADgCF,GAAQpzQ,GAExDszQ,EACA,CACEtzQ,MAAOszQ,EACPhiR,QAAS,IALM,IAAC0O,CAMnB,EAGLg0P,GAAch0P,GAA2B,mBAAVA,EAE/BuzQ,GAAavzQ,GAA2B,kBAAVA,EAE9BwzQ,GAAaxzQ,GAAU4qG,EAAS5qG,IAAWgsB,EAAShsB,KAAU,IAAAu/L,gBAAev/L,GAEjF,SAASyzQ,GAAiBxtP,EAAQlf,EAAKjW,EAAO,YAC1C,GAAI0iR,GAAUvtP,IAAYstP,GAAUttP,KAAYA,EAC5C,MAAO,CACHn1B,OACAQ,QAASkiR,GAAUvtP,GAAUA,EAAS,GACtClf,MAGZ,CAEA,IAAI2sQ,GAAe,CAACljR,EAAMmjR,EAA0B57Q,EAAQjH,EAAMQ,KAC9D,GAAIqiR,EAA0B,CAC1B,MAAMlmR,EAAQsK,EAAOvH,GACrB,OAAOgX,OAAOC,OAAOD,OAAOC,OAAO,CAAC,EAAGha,GAAQ,CAAEuiC,MAAOxoB,OAAOC,OAAOD,OAAOC,OAAO,CAAC,EAAIha,GAASA,EAAMuiC,MAAQviC,EAAMuiC,MAAQ,CAAC,GAAK,CAAE,CAACl/B,GAAOQ,IAAW,KAC7J,CACA,MAAO,CAAC,CAAC,EAGTsiR,GAAgB/qJ,MAAOgrJ,EAAWF,GAA4B5sQ,MAAKA,KAAOjW,OAAMkP,QAAOxP,QAAQG,UAASoP,WAAUQ,YAAWimC,YAAWnkC,MAAKH,MAAKjC,UAAS0Z,eAC3J,IAAIntB,EACJ,MAAMkM,EAASm7Q,EAAUz4P,QACnB3tB,EAAQ,CAAC,EACTqmR,EAAUhD,EAAa/pQ,GACvBgtQ,EAAahD,EAAgBhqQ,GAC7BitQ,EAAoBF,GAAWC,EAC/B/yM,EAAUsxM,EAActyQ,GACxBi0Q,EAAoBP,GAAa51J,KAAK,KAAMttH,EAAMmjR,EAA0BlmR,GAC5EymR,EAAmB,CAACC,EAAWC,EAAkBC,EAAkBC,EAAUxE,EAAkCyE,EAAUzE,KAC3H,MAAMx+Q,EAAU6iR,EAAYC,EAAmBC,EAK/C,GAJA5mR,EAAM+C,GAAQgX,OAAOC,OAAO,CAAE3W,KAAMqjR,EAAYG,EAAUC,EAASjjR,UAC/DyV,OACEktQ,EADME,EACYG,EACAC,EADSjjR,KAE5BqiR,EACD,OAAOlmR,CACX,EAEJ,GAAIsS,KACG+zQ,IAAYC,IAAe/yM,GAAWmuM,EAAkBnvQ,KACtDuzQ,GAAUvzQ,KAAWA,GACrB+zQ,IAAetB,EAAiB9hR,GAASujB,SACzC4/P,IAAY5B,EAAcvhR,GAASujB,SAAW,CACnD,MAAQlU,MAAOw0Q,EAAeljR,QAASmjR,GAAoBjB,GAAUzzQ,GAC/D,CAAEC,QAASD,EAAUzO,QAASyO,GAC9BszQ,GAAmBtzQ,GACzB,GAAIy0Q,IACA/mR,EAAM+C,GAAQgX,OAAOC,OAAO,CAAE3W,KAAMg/Q,EAAiCx+Q,QAASmjR,EAAiB1tQ,IAAKitQ,EAAoD,QAA/BxnR,EAAKkM,EAAOlI,GAAMG,eAA4B,IAAPnE,OAAgB,EAASA,EAAG,GAAGua,IAAMA,GAAOktQ,EAAkBnE,EAAiC2E,KAC1Pd,GACD,OAAOlmR,CAGnB,CACA,IAAK0hR,EAAkB9sQ,KAAS8sQ,EAAkBjtQ,GAAM,CACpD,IAAIiyQ,EACAO,EACJ,MAAQ10Q,MAAOyQ,EAAUnf,QAASqjR,GAAetB,GAAmBnxQ,IAC5DlC,MAAO40Q,EAAUtjR,QAASujR,GAAexB,GAAmBhxQ,GACpE,GAAa,WAATvR,IAAuBA,IAASi8B,MAAM/sB,GAAS,CAC/C,MAAM80Q,EAAc/tQ,EAAIguQ,eAAiB5rL,WAAWnpF,GAC/CmvQ,EAAkB1+P,KACnB0jQ,EAAYW,EAAcrkQ,GAEzB0+P,EAAkByF,KACnBF,EAAYI,EAAcF,EAElC,KACK,CACD,MAAMI,EAAYjuQ,EAAIkuQ,aAAe,IAAI15N,KAAKv7C,GAC1C4qG,EAASn6F,KACT0jQ,EAAYa,EAAY,IAAIz5N,KAAK9qC,IAEjCm6F,EAASgqK,KACTF,EAAYM,EAAY,IAAIz5N,KAAKq5N,GAEzC,CACA,IAAIT,GAAaO,KACbR,IAAmBC,EAAWQ,EAAYE,EAAY/E,EAA4BA,IAC7E6D,GACD,OAAOlmR,CAGnB,CACA,GAAIm9G,EAAS5qG,KAAWghE,IAAYzgE,GAAaimC,GAAY,CACzD,MAAQxmC,MAAOk1Q,EAAgB5jR,QAAS8iR,GAAsBf,GAAmB9yQ,IACzEP,MAAOm1Q,EAAgB7jR,QAAS+iR,GAAsBhB,GAAmB7sO,GAC3E4uO,EAAcp1Q,EAAMiR,WAAWra,OAC/Bu9Q,GAAahF,EAAkB+F,IAAmBE,EAAcF,EAChER,GAAavF,EAAkBgG,IAAmBC,EAAcD,EACtE,IAAIhB,GAAaO,KACbR,IAAmBC,EAAWC,EAAkBC,IAC3CV,GACD,OAAOlmR,CAGnB,CACA,GAAIwS,IAAY+gE,EAAS,CACrB,MAAQhhE,MAAOq1Q,EAAc/jR,QAASgkR,GAAmBjC,GAAmBpzQ,GAC5E,GAAImzQ,GAAQiC,KAAkBA,EAAat7P,KAAK/Z,KAC5CvS,EAAM+C,GAAQgX,OAAOC,OAAO,CAAE3W,KAAMg/Q,EAAgCx+Q,QAASgkR,EAAgBvuQ,OAAOktQ,EAAkBnE,EAAgCwF,KACjJ3B,GACD,OAAOlmR,CAGnB,CACA,GAAIksB,EAAU,CACV,MAAMq4P,EAAaU,EAAch6Q,EAAQqO,GACnCwuQ,EAAcvB,GAAqBrjR,EAAUA,EAAQ,GAAGoW,IAAMA,EACpE,GAAIitP,GAAWr6O,GAAW,CACtB,MACM67P,EAAgB/B,SADD95P,EAASq4P,GACiBuD,GAC/C,GAAIC,IACA/nR,EAAM+C,GAAQgX,OAAOC,OAAOD,OAAOC,OAAO,CAAC,EAAG+tQ,GAAgBvB,EAAkBnE,EAAiC0F,EAAclkR,WAC1HqiR,GACD,OAAOlmR,CAGnB,MACK,GAAIu+B,EAASrS,GAAW,CACzB,IAAI87P,EAAmB,CAAC,EACxB,IAAK,MAAOtsQ,EAAKusQ,KAAqBluQ,OAAO86F,QAAQ3oF,GAAW,CAC5D,IAAKu3P,EAAcuE,KAAsB9B,EACrC,MAEJ,MACM6B,EAAgB/B,SADOiC,EAAiB1D,GACSuD,EAAapsQ,GAChEqsQ,IACAC,EAAmBjuQ,OAAOC,OAAOD,OAAOC,OAAO,CAAC,EAAG+tQ,GAAgBvB,EAAkB9qQ,EAAKqsQ,EAAclkR,UACpGqiR,IACAlmR,EAAM+C,GAAQilR,GAG1B,CACA,IAAKvE,EAAcuE,KACfhoR,EAAM+C,GAAQgX,OAAOC,OAAO,CAAEV,IAAKwuQ,GAAeE,IAC7C9B,GACD,OAAOlmR,CAGnB,CACJ,CACA,OAAOA,CAAK,EAGhB,MAAMkoR,GAAmB,CAACloR,EAAOkmR,IAA6B50O,EAAQtxC,EAAM+0H,OACtE/0H,EAAM+0H,MAAM39D,QAAO,CAAC88D,GAAY9R,OAAMv+G,UAASR,UAAY0W,OAAOC,OAAOD,OAAOC,OAAO,CAAC,EAAGk6G,GAAY9R,EACnG8R,EAAS9R,IAAS8jK,EACd,CACE,CAAC9jK,GAAO6jK,GAAa7jK,EAAM8jK,EAA0BhyJ,EAAU7wH,EAAMQ,IAEvE,CACE,CAACu+G,GAAO8R,EAAS9R,IAASroG,OAAOC,OAAO,CAAEnW,UACtCR,QAAS6iR,EACP,CACE3jP,MAAO,CAAE,CAACl/B,GAAOQ,IAAW,IAE9B,CAAC,IAEb,CAAC,IAAM,CAAC,GACZ,CACE,CAAC7D,EAAMoiH,MAAO,CAAEv+G,QAAS7D,EAAM6D,QAASR,KAAMrD,EAAMqD,OAE5D+3H,eAAe+sJ,GAAmBC,EAAkBlC,EAA0BvmR,EAAM0oR,EAAoB94O,GACpG,GAAI84O,EACA,OAAOA,EAAmB1oR,EAAM4vC,GAEpC,IACI,MAAO,CACHvrB,aAAcokQ,EAAiBl8P,SAASvsB,EAAM,CAC1C2oR,YAAY,EACZ/4O,YAEJjlC,OAAQ,CAAC,EAEjB,CACA,MAAO2B,GACH,MAAO,CACH+X,OAAQ,CAAC,EACT1Z,OAAQy4Q,EAAsBmF,GAAiBj8Q,EAAGi6Q,IAE1D,CACJ,CAEA,IAAIqC,GAAeh2Q,GAAUmvQ,EAAkBnvQ,KAAWovQ,EAAapvQ,GAEvE,MAAMi2Q,GAAU,CAACpmK,EAAMp+F,KACnB,MAAMykQ,EAAe,CAACl2Q,EAAOmJ,EAAK6iB,KAC9B,MAAMmqP,EAAgBnqP,EAAW,GAAG6jF,KAAQ1mG,IAAQ,GAAG0mG,KAAQ1mG,KAC/D,OAAO6sQ,GAAYh2Q,GAASm2Q,EAAgBF,GAAQE,EAAen2Q,EAAM,EAE7E,OAAO++B,EAAQttB,GACTA,EAAO7K,KAAI,CAAC5G,EAAOmJ,IAAQ+sQ,EAAal2Q,EAAOmJ,KAC/C3B,OAAO86F,QAAQ7wF,GAAQ7K,KAAI,EAAEuC,EAAKnJ,KAAWk2Q,EAAal2Q,EAAOmJ,GAAK,IAAM,EAEtF,IAEIitQ,GAAoB,CAACC,EAAa5mH,EAAW6mH,EAAapsP,EAAYqsP,KACtE,IAAIv2Q,EAeJ,OAdAs2Q,EAAYpqO,IAAIujH,GACZyhH,EAAcmF,GACdr2Q,OAAQzP,EAEFkgR,EAAY4F,EAAY5mH,KAK9BzvJ,EAAQ/S,EAAIujR,EAAsB6F,GAAc5mH,GAC3CghH,EAAYzwQ,IAdT,EAACw2Q,EAAYx2Q,IAAUi2Q,GAAQO,EAAYx2Q,GAAO0iB,KAAKouC,KAe3D2lN,CAAUhnH,EAAWzvJ,GAAO45D,SAASppE,GAAS8lR,EAAYpqO,IAAI17C,OANlEwP,EAAQq2Q,EAAY5mH,GACpB6mH,EAAYpqO,IAAIujH,IAQbghH,EAAYzwQ,GACbu2Q,EACIrsP,EACAj9B,EAAIi9B,EAAYulI,GACpBzvJ,CAAK,EAGX02Q,GAAiB,EAAGC,aAAYlqL,WAAUmqL,cAAaC,aAAYC,uBAAsBC,WAAUC,qBAAoBC,iBAAoBN,GAAcC,GACxJC,GAAcC,GACdD,IAAeI,GACfF,IAAaH,IAAgBnqL,GAC7BuqL,IAAuBJ,GAAenqL,GACtCqqL,GAAwBG,EAEzBC,GAA2B1mR,GAASA,EAAKooC,UAAU,EAAGpoC,EAAKkiC,QAAQ,MAEnEykP,GAAsB,CAACz+Q,EAAQlI,KAC/B,MAAM8gO,EAAUk/C,EAAsBoC,EAAgBl6Q,IACtD,OAAOlI,EAAOvD,EAAIqkO,EAAS9gO,EAAM8gO,GAAWA,CAAO,EAGvD,SAAS8lD,GAAqBC,EAAgBC,GAC1C,IAAIC,GAAU,EACd,IAAKx4O,EAAQs4O,KACRt4O,EAAQu4O,IACTD,EAAezgR,SAAW0gR,EAAgB1gR,OAC1C,OAAO,EAEX,IAAK,IAAIjL,EAAI,EAAGA,EAAI0rR,EAAezgR,SAC3B2gR,EADmC5rR,IAAK,CAI5C,MAAM6rR,EAAQH,EAAe1rR,GACvB8rR,EAAQH,EAAgB3rR,GAC9B,GAAI8kR,EAAYgH,IACZjwQ,OAAO6lB,KAAKmqP,GAAO5gR,SAAW4Q,OAAO6lB,KAAKoqP,GAAO7gR,OAAQ,CACzD2gR,GAAU,EACV,KACJ,CACA,IAAK,MAAMpuQ,KAAOquQ,EACd,GAAIA,EAAMruQ,KAASsuQ,EAAMtuQ,GAAM,CAC3BouQ,GAAU,EACV,KACJ,CAER,CACA,OAAOA,CACX,CAEA,MAAMG,GAAwB,CAAClnR,EAAMmnR,IAAe75P,OAAO,IAAI65P,UAAmB5kR,QAAQ,MAAO,OAAOA,QAAQ,MAAO,QAAQgnB,KAAKvpB,GACpI,IAAIonR,GAAqB,CAACziB,EAAO3kQ,IAAS,IAAI2kQ,GAAOt7O,MAAMuB,GAAYs8P,GAAsBlnR,EAAM4qB,KAE/Fy8P,GAAiBrxP,GAAYA,EAAQ11B,OAAS,GAAG++Q,QAgBrD,IAAIiI,GAAel0P,IAAS,CACxBizP,YAAajzP,GAAQA,IAAS0rP,EAAgB7sL,SAC9Cs0L,SAAUnzP,IAAS0rP,EAAgBrvP,OACnC02P,WAAY/yP,IAAS0rP,EAAgBpvQ,WAGrC63Q,GAA6BhxQ,GAAQ+pQ,EAAa/pQ,IAAQgqQ,EAAgBhqQ,GAE9E,SAASg4E,IAAQ,KAAEn7D,EAAO0rP,EAAgB7sL,SAAQ,eAAEu1L,EAAiB1I,EAAgBpvQ,SAAQ,iBAAE21Q,EAAgB,mBAAEC,EAAkB,kBAAEmC,EAAiB,cAAE1uC,EAAgB,CAAC,EAAC,iBAAE2uC,GAAmB,EAAI,qBAAEC,GAA0B,CAAC,GAC5N,MAAMtE,GAAY,IAAA34P,QAAO,CAAC,GACpBk9P,GAAY,IAAAl9P,QAAO,CAAC,GACpBm9P,GAAmB,IAAAn9P,QAAO,CAAC,GAC3Bo9P,GAA0B,IAAAp9P,QAAO,CAAC,GAClCq9P,GAAiB,IAAAr9P,QAAO,IAAIypM,KAC5B6zD,GAAiB,IAAAt9P,QAAO,IAAIypM,KAC5B8zD,GAA0B,IAAAv9P,QAAO,IAAIypM,KACrC+zD,GAAiB,IAAAx9P,QAAO,IAAIypM,KAC5Bg0D,GAAa,IAAAz9P,SAAO,GACpB09P,GAAmB,IAAA19P,QAAOquN,GAC1BsvC,GAA2B,IAAA39P,QAAO,CAAC,GACnC49P,GAAY,IAAA59P,SAAO,GACnB69P,GAAgB,IAAA79P,SAAO,GACvB89P,GAAiB,IAAA99P,SAAO,GACxB+9P,GAAa,IAAA/9P,SAAO,GACpBg+P,GAAiB,IAAAh+P,QAAO,GACxBi+P,GAAkB,IAAAj+P,SAAO,GACzBk+P,GAAkB,IAAAl+P,UAClBm+P,GAA6B,IAAAn+P,QAAO,CAAC,GACrCo+P,GAAuB,IAAAp+P,QAAO+8P,GAC9BsB,IAAqB,IAAAr+P,QAAO,IAAIypM,MAC/B,CAAEnuJ,KAAU,IAAAt+D,aACb,SAAE6+Q,GAAQ,WAAEF,GAAU,WAAEF,KAAe,IAAAz7P,QAAO48P,GAAYl0P,IAAOxI,QACjEu4P,GAAoD,QAAzBwE,EAC3BqB,UAA2BvyP,SAAWuoP,EACtCiK,MAAoC5D,IAAoBC,GACxD4D,UAAeztQ,WAAaujQ,IAC7BgK,KACA/I,EAAYxpP,OAAOgqP,aAClB0I,GAAiBD,GAAQ,UAAWzyP,cAAgBo/N,QAAUmpB,EAC9DoK,IAAmB,IAAA1+P,QAAO,CAC5B2+P,OAAQF,GACRG,aAAcH,GACd1C,YAAaJ,GACbkD,aAAcJ,GACdK,SAAUL,GACVM,cAAeN,GACfzlQ,SAAUylQ,MAEN5C,SAAUC,GAAoBH,WAAYC,KAA0B,IAAA57P,QAAO48P,GAAYE,IAAiB58P,QAChHk+P,EAAqBl+P,QAAU68P,EAC/B,MAAMiC,IAAW,IAAAn2Q,cAAY,KACpB+0Q,EAAU19P,SACXo7C,GAAO,CAAC,EACZ,GACD,IACG2jN,IAA0B,IAAAp2Q,cAAY,CAACvT,EAAM/C,EAAO8zQ,GAAe,KACrE,IAAI6Y,EAAiB7Y,GAlX7B,UAAkC,OAAExpQ,EAAM,KAAEvH,EAAI,MAAE/C,EAAK,YAAE4sR,EAAW,qBAAEC,IAClE,MAAMC,EAAerJ,EAAczjR,GAC7B+sR,EAActJ,EAAcn5Q,GAC5B0iR,EAAoBxtR,EAAIQ,EAAO+C,GAC/BkqR,EAAkBztR,EAAI8K,EAAQvH,GACpC,QAAK+pR,GAAgBF,EAAY33J,IAAIlyH,IAChCkqR,GAAmBA,EAAgBC,eAGpCH,IAAgBD,IACdC,IAAgBE,GACjBH,GAAgBD,EAAqB53J,IAAIlyH,KAAU6pR,EAAY33J,IAAIlyH,KAGjEiqR,IAAsB3H,EAAY4H,EAAiBD,GAC9D,CAoWYG,CAAyB,CACrB7iR,OAAQqgR,EAAUh9P,QAClB3tB,QACA+C,OACA6pR,YAAa3B,EAAet9P,QAC5Bk/P,qBAAsB7B,EAAwBr9P,UAEtD,GAAI81P,EAAczjR,IACVgrR,EAAwBr9P,QAAQsnG,IAAIlyH,IACpCipR,MACAf,EAAet9P,QAAQ8wB,IAAI17C,GAC3B4pR,EAAiBA,GAAkBntR,EAAImrR,EAAUh9P,QAAS5qB,IAE9D4nR,EAAUh9P,QAAUm2P,EAAM6G,EAAUh9P,QAAS,CAAC5qB,QAE7C,CACD,MAAMqqR,EAAgB5tR,EAAImrR,EAAUh9P,QAAS5qB,GAC7CkoR,EAAet9P,QAAQunG,OAAOnyH,GAC9B4pR,EACIA,IACKS,IACM/H,EAAY+H,EAAeptR,EAAM+C,IAEhD6tE,EAAI+5M,EAAUh9P,QAAS5qB,EAAM/C,EAAM+C,GACvC,CACA,GAAI4pR,IAAmBjL,EAAkB5N,GAErC,OADA2Y,MACO,CACX,GACD,CAACA,GAAUT,KACR36Q,IAAgB,IAAAiF,cAAY,CAACimF,EAAO8wL,KACtC,MAAM,IAAE/zQ,EAAG,QAAEpW,GAAYq5F,EACnBhqF,EAAQ05Q,IAASrK,EAActoQ,IAAQooQ,EAAkB2L,GACzD,GACAA,EACFhK,EAAa/pQ,IAAQpW,EACrBA,EAAQipE,SAAQ,EAAG7yD,IAAKg0Q,KAAgBA,EAASj+P,QAAUi+P,EAAS/6Q,QAAUA,IAEzEoyQ,EAAYrrQ,GACb6jG,EAAS5qG,GACT+G,EAAI/G,MAAQA,EAGZ+G,EAAI4rQ,MAAQ3yQ,EAGXqyQ,EAAiBtrQ,GACtB,IAAIA,EAAIpW,SAASipE,SAASohN,GAAeA,EAAUngO,SAAW76C,EAAMvJ,SAASukR,EAAUh7Q,SAElF+wQ,EAAgBhqQ,IAAQpW,EAC7BA,EAAQiG,OAAS,EACXjG,EAAQipE,SAAQ,EAAG7yD,IAAKk0Q,KAAmBA,EAAYn+P,QAAU9c,EAAMvJ,SAASwkR,EAAYj7Q,SAC3FrP,EAAQ,GAAGoW,IAAI+V,UAAY9c,EAGlC+G,EAAI/G,MAAQA,CAChB,GACD,CAAC05Q,KACEwB,IAAW,IAAAn3Q,cAAavT,IAC1B,IAAKqjR,EAAUz4P,QAAQ5qB,KACjBopR,GAAiBx+P,QAAQy+P,QAAUD,GAAiBx+P,QAAQ0+P,YAC9D,OAAO,EAEX,IAAIqB,EAAetC,EAAyBz9P,QAAQ5qB,KAChDkiR,EAAcmB,EAAUz4P,QAASy4P,EAAUz4P,QAAQ5qB,GAAMuW,KAC7D,MAAMq0Q,EAAexD,GAAmB2B,GAAmBn+P,QAAS5qB,GAC9D6qR,EAA4B7C,EAAep9P,QAAQrhB,KACzD,GAAIqhR,EAAc,CACd,MAAME,EAAiBpE,GAAwB1mR,GAC/C2qR,EAAe/D,GAAqBD,GAAoBtD,EAAUz4P,QAASkgQ,GAAiBruR,EAAI2rR,EAAiBx9P,QAASkgQ,GAC9H,CACA,MAAMC,GAAkBH,EAAenC,EAAW79P,QAAUo9P,EAAep9P,QAAQsnG,IAAIlyH,MACnF2qR,EAUJ,OATIA,EACA3C,EAAep9P,QAAQ8wB,IAAI17C,GAG3BgoR,EAAep9P,QAAQunG,OAAOnyH,GAElCyoR,EAAW79P,QAAUggQ,EACfD,IACE3C,EAAep9P,QAAQrhB,KACxB6/Q,GAAiBx+P,QAAQy+P,MAC1B0B,EACAF,IAA8B7C,EAAep9P,QAAQrhB,IAAI,GAChE,IACGyhR,IAAoB,IAAAz3Q,cAAY,CAACvT,EAAMwP,EAAOy7Q,KAChD,MAAMC,EAAe38O,EAAQ/+B,GAC7B,IAAK,MAAMmJ,KAAOnJ,EAAO,CACrB,MAAMyvJ,EAAY,GAAGgsH,GAAmBjrR,IAAOkrR,EAAe,IAAIvyQ,KAAS,IAAIA,MACzE6gF,EAAQ6pL,EAAUz4P,QAAQq0I,GAC5BzjI,EAAShsB,EAAMmJ,KACfqyQ,GAAkBhrR,EAAMwP,EAAMmJ,GAAMsmJ,GAEpCzlE,IACAlrF,GAAckrF,EAAOhqF,EAAMmJ,IAC3B+xQ,GAASzrH,GAEjB,IACD,CAAC3wJ,GAAeo8Q,KACbhqD,IAAmB,IAAAntN,cAAY,CAACvT,EAAMwP,KACxC,MAAMgqF,EAAQ6pL,EAAUz4P,QAAQ5qB,GAChC,GAAIw5F,EAAO,CACPlrF,GAAckrF,EAAOhqF,GACrB,MAAMisF,EAASivL,GAAS1qR,GACxB,GAAI+iR,GAAUtnL,GACV,OAAOA,CAEf,MACU+pL,GAAYh2Q,IAClBw7Q,GAAkBhrR,EAAMwP,EAC5B,GACD,CAACk7Q,GAAUp8Q,GAAe08Q,KACvBG,IAAoB,IAAA53Q,cAAY8kH,MAAOr4H,EAAMorR,KAC/C,MAAM5xL,EAAQ6pL,EAAUz4P,QAAQ5qB,GAChC,GAAIw5F,EAAO,CACP,MAAMv8F,QAAcmmR,GAAcC,EAAWF,GAA0B3pL,GAEvE,OADAmwL,GAAwB3pR,EAAM/C,IAAOmuR,GAAe,MAC7C1K,EAAczjR,EACzB,CACA,OAAO,CAAK,GACb,CAAC0sR,GAAyBxG,KACvBkI,IAAoC,IAAA93Q,cAAY8kH,MAAO1oH,IACzD,MAAM,OAAEpI,SAAiB69Q,GAAmBC,EAAkBlC,GAA0BwD,GAAoBtD,EAAUz4P,SAAU06P,EAAoBwD,EAAqBl+P,SACnK0gQ,EAAsBnD,EAAWv9P,QAEvC,GADAu9P,EAAWv9P,QAAU81P,EAAcn5Q,GAC/BgnC,EAAQ5+B,GACRA,EAAQy5D,SAASppE,IACb,MAAM/C,EAAQR,EAAI8K,EAAQvH,GACtB/C,EACA4wE,EAAI+5M,EAAUh9P,QAAS5qB,EAAM/C,GAG7B8jR,EAAM6G,EAAUh9P,QAAS,CAAC5qB,GAC9B,IAEJ0pR,SAEC,CACD,MAAMzsR,EAAQR,EAAI8K,EAAQoI,GAC1Bg6Q,GAAwBh6Q,EAAU1S,EAAQ,CAAE,CAAC0S,GAAU1S,GAAU,CAAC,EAAIquR,IAAwBnD,EAAWv9P,QAC7G,CACA,OAAO81P,EAAckH,EAAUh9P,QAAQ,GACxC,CACC8+P,GACAC,GACAxG,GACAmC,EACAD,IAEEjjQ,IAAoB,IAAA7O,cAAY8kH,MAAO1oH,IACzC,MAAMzH,EAASyH,GAAWqH,OAAO6lB,KAAKwmP,EAAUz4P,SAChD,GAAIq+P,GACA,OAAOoC,GAAkCnjR,GAE7C,GAAIqmC,EAAQrmC,GAAS,CACjB,MAAMutB,QAAeyrC,QAAQ0jE,IAAI18H,EAAOkO,KAAIiiH,MAAOz7H,SAAeuuR,GAAkBvuR,GAAM,MAE1F,OADA8sR,KACOj0P,EAAOkjF,MAAM6B,QACxB,CACA,aAAa2wK,GAAkBjjR,EAAO,GACvC,CACCmjR,GACAF,GACAzB,GACAT,KAEEsC,GAAkBvrR,GAASuoR,EAAc39P,SAC3Cm9P,EAAen9P,QAAQsnG,IAAIlyH,IAC3B+nR,EAAen9P,QAAQsnG,KAAKlyH,EAAKkP,MAAM,QAAU,IAAI,IAsBzD05Q,EAAgBh+P,QAAUg+P,EAAgBh+P,QACpCg+P,EAAgBh+P,QAChBytG,OAAS/3H,OAAMuP,aACb,MAAM7P,EAAO6P,EAASA,EAAO7P,KAAO,GAC9BkI,EAASm7Q,EAAUz4P,QACnBrjB,EAASqgR,EAAUh9P,QACnB4uE,EAAQtxF,EAAOlI,GACfwrR,EAAe/uR,EAAI8K,EAAQvH,GACjC,IAAI/C,EACJ,IAAKu8F,EACD,OAEJ,MAAM4sL,EAAc9lR,IAAS2+Q,EAAOC,KAC9BuM,EAAuBvF,GAAe,CACxCjqL,WAAYuvL,EACZrF,cACAC,cACAC,cACAC,wBACAC,YACAC,sBACAC,YAAa+B,EAAe59P,UAE1B8gQ,EAAoBhB,GAAS1qR,GACnC,IAAI+wQ,EAAewa,GAAevrR,IAAS0rR,EAO3C,GANItF,IACC3pR,EAAIorR,EAAiBj9P,QAAS5qB,IAC/BopR,GAAiBx+P,QAAQ4+P,UACzB37M,EAAIg6M,EAAiBj9P,QAAS5qB,GAAM,GACpC+wQ,GAAe,GAEf0a,EACA,OAAO1a,GAAgB2Y,KAE3B,GAAIT,GAAgC,CAChC,MAAM,OAAE1hR,SAAiB69Q,GAAmBC,EAAkBlC,GAA0BwD,GAAoBz+Q,GAASo9Q,EAAoBwD,EAAqBl+P,SACxJ0gQ,EAAsBnD,EAAWv9P,QACvCu9P,EAAWv9P,QAAU81P,EAAcn5Q,GACnCtK,EAASR,EAAI8K,EAAQvH,GACf,CAAE,CAACA,GAAOvD,EAAI8K,EAAQvH,IACtB,CAAC,EACHsrR,IAAwBnD,EAAWv9P,UACnCmmP,GAAe,EAEvB,MAEI9zQ,QAAcmmR,GAAcC,EAAWF,GAA0B3pL,IAEhEmwL,GAAwB3pR,EAAM/C,IAAU8zQ,GACzC2Y,IACJ,EAER,MAAMiC,IAA2B,IAAAp4Q,cAAY,CAAC0N,EAAS,CAAC,KACpD,MAAM4kQ,EAAcnF,EAAc0H,EAAiBx9P,SAC7Cw3P,EAAgBiB,EAAUz4P,SAC1Bw9P,EAAiBx9P,QACvBw6P,GAAmBC,EAAkBlC,GAA0BnD,EAAsBhpQ,OAAOC,OAAOD,OAAOC,OAAO,CAAC,EAAG4uQ,GAAc5kQ,IAAUqkQ,EAAoBwD,EAAqBl+P,SAASnmB,MAAK,EAAG8C,aACnM,MAAM+jR,EAAsBnD,EAAWv9P,QACvCu9P,EAAWv9P,QAAU81P,EAAcn5Q,GAC/B+jR,IAAwBnD,EAAWv9P,SACnC8+P,IACJ,GACF,GAGN,CAACA,GAAUvG,GAA0BmC,IAC/BsG,IAA2B,IAAAr4Q,cAAY,CAACimF,EAAOqyL,KAC7CjD,EAAgBh+P,SAAW4uE,GAzvBvC,SAA2CtxF,EAAQyV,EAAc67E,EAAOqyL,GACpE,MAAM,IAAEt1Q,EAAKA,KAAK,KAAEvW,EAAI,KAAEM,GAAM,gBAAEwrR,GAAqBtyL,EACjDgoL,EAAat5Q,EAAOlI,GAC1B,GAAKM,EAIL,IAAKggR,EAAa/pQ,IAAQgqQ,EAAgBhqQ,KAASirQ,EAAY,CAC3D,MAAM,QAAErhR,GAAYqhR,EAChBjzO,EAAQpuC,IAAYA,EAAQiG,QAC5BjG,EAAQotB,OAAOitF,SAASpxC,SAAQ,CAAChpE,EAAQkW,KACrC,MAAM,IAAEC,EAAG,gBAAEu1Q,GAAoB1rR,GAC5BmW,GAAOiqQ,EAAWjqQ,IAAQgrQ,EAAUnhR,EAAQmW,IAASs1Q,KACtDzL,EAAwB7pQ,EAAKoH,GACzBmuQ,GACAA,EAAgB1lL,aAEpB26K,EAAM5gR,EAAS,CAAC,IAAImW,OACxB,IAEAnW,IAAYA,EAAQotB,OAAOitF,SAASp0G,eAC7B8B,EAAOlI,WAIXkI,EAAOlI,EAEtB,MACUwgR,EAAWjqQ,IAAQgrQ,EAAUC,EAAYjrQ,IAASs1Q,KACxDzL,EAAwB7pQ,EAAKoH,GACzBmuQ,GACAA,EAAgB1lL,oBAEbl+F,EAAOlI,gBA7BPkI,EAAOlI,EA+BtB,CAutBY+rR,CAAkC1I,EAAUz4P,QAASg+P,EAAgBh+P,QAAS4uE,EAAOqyL,EACzF,GACD,IACGG,IAAiC,IAAAz4Q,cAAY,CAACimF,EAAOqyL,KACvD,IAAKryL,GACAA,GACG4tL,GAAmB2B,GAAmBn+P,QAAS4uE,EAAMjjF,IAAIvW,QACxD6rR,EACL,OAEJD,GAAyBpyL,EAAOqyL,GAChC,MAAM,KAAE7rR,GAASw5F,EAAMjjF,IACvBqxQ,EAAUh9P,QAAUm2P,EAAM6G,EAAUh9P,QAAS,CAAC5qB,IAC9C6nR,EAAiBj9P,QAAUm2P,EAAM8G,EAAiBj9P,QAAS,CAAC5qB,IAC5DqoR,EAAyBz9P,QAAUm2P,EAAMsH,EAAyBz9P,QAAS,CAAC5qB,IAC5E,CACIgoR,EACAC,EACAC,EACAH,GACF3+M,SAASxsE,GAASA,EAAKguB,QAAQunG,OAAOnyH,MACpCopR,GAAiBx+P,QAAQlH,SACzB0lQ,GAAiBx+P,QAAQ4+P,WACzBE,KACIT,IACA0C,KAER,GACD,CACCjC,GACAT,GACA0C,GACAC,KAWJ,MAAMK,GAAmB,EAAGjsR,OAAMM,OAAMk/B,QAAO1+B,UAASiwQ,mBACpD,MAAMv3K,EAAQ6pL,EAAUz4P,QAAQ5qB,GAC3BsiR,EAAY7lR,EAAImrR,EAAUh9P,QAAS5qB,GAAO,CAC3CM,OACAQ,UACA0+B,YAEAquC,EAAI+5M,EAAUh9P,QAAS5qB,EAAM,CACzBM,OACAk/B,QACA1+B,UACAyV,IAAKijF,EAAQA,EAAMjjF,IAAM,CAAC,EAC1B4zQ,UAAU,IAEVpZ,GACA2Y,KAER,EA6CJ,SAASwC,GAAkB31Q,EAAK41Q,EAAkB,CAAC,GAC/C,IAAK51Q,EAAIvW,KAEL,OAAOhD,QAAQivE,KAAK,iBAAkB11D,GAE1C,MAAM,KAAEvW,EAAI,KAAEM,EAAI,MAAEkP,GAAU+G,EACxB61Q,EAA+Bp1Q,OAAOC,OAAO,CAAEV,OAAO41Q,GACtDjkR,EAASm7Q,EAAUz4P,QACnB44P,EAAoB+D,GAA0BhxQ,GACpD,IAEIq0Q,EACApgQ,EAHAgvE,EAAQtxF,EAAOlI,GACfqsR,GAAsB,EAG1B,GAAI7I,EACEhqL,GACEjrD,EAAQirD,EAAMr5F,UACdq5F,EAAMr5F,QAAQotB,OAAOitF,SAASr7G,MAAMiB,GACzBoP,IAAUpP,EAAOmW,IAAI/G,OAASpP,EAAOmW,MAAQA,IAE1DijF,GAASjjF,IAAQijF,EAAMjjF,IACzBrO,EAAOlI,GAAQgX,OAAOC,OAAOD,OAAOC,OAAO,CAAC,EAAGuiF,GAAQ2yL,OAP3D,CAUA,GAAI7rR,EAAM,CACN,MAAMwrR,EA3clB,SAAqB91P,EAASs2P,GAC1B,MAAMtmL,EAAW,IAAIy6G,kBAAiB,KAC9B+/D,EAAWxqP,KACXgwE,EAASI,aACTkmL,IACJ,IAMJ,OAJAtmL,EAASG,QAAQ1vE,OAAOhb,SAAU,CAC9BilM,WAAW,EACXC,SAAS,IAEN36G,CACX,CA+boCumL,CAAYh2Q,GAAK,IAAMy1Q,GAA+BxyL,KAC9EA,EAAQgqL,EACFxsQ,OAAOC,OAAO,CAAE9W,QAAS,IACdq5F,GAASA,EAAMr5F,SAAY,GAChC,CACIoW,MACAu1Q,oBAELv1Q,IAAK,CAAEjW,OAAMN,SAAUmsR,GAAmBn1Q,OAAOC,OAAOD,OAAOC,OAAO,CAAC,EAAGm1Q,GAA+B,CAAEN,mBAC1H,MAEItyL,EAAQ4yL,EAEZlkR,EAAOlI,GAAQw5F,EACVknL,EAAc0H,EAAiBx9P,WAChCJ,EAAe/tB,EAAI2rR,EAAiBx9P,QAAS5qB,GAC7CqsR,EAAsBpM,EAAYz1P,GAClCogQ,EAAexD,GAAmB2B,GAAmBn+P,QAAS5qB,GACzDqsR,GAAwBzB,GACzBt8Q,GAAckrF,EAAOhvE,IAGzBy+P,KACC2B,GACDxB,GAAiBx+P,QAAQlH,QACzBioQ,KAEMjL,EAAcyL,KACpBlE,EAAwBr9P,QAAQ8wB,IAAI17C,IAC/BqmR,IAAc+C,GAAiBx+P,QAAQlH,SACxC0/P,GAAcC,EAAWF,GAA0B3pL,GAAO/0F,MAAMxH,IAC5D,MAAMquR,EAAsBnD,EAAWv9P,QACvC81P,EAAczjR,GACRirR,EAAet9P,QAAQ8wB,IAAI17C,GAC1BmoR,EAAWv9P,SAAU,EACxB0gQ,IAAwBnD,EAAWv9P,SACnC8+P,IACJ,KAIPrB,EAAyBz9P,QAAQ5qB,IAChC4qR,GAAgByB,IAClBhE,EAAyBz9P,QAAQ5qB,GAAQqsR,EAAsBnK,EAAch6Q,EAAQsxF,EAAMjjF,KAAOiU,GAElGlqB,GAxlCZ,UAAgCk5F,OAAO,IAAEjjF,GAAK,aAAEoH,EAAY,kBAAE6lQ,IACtD3E,EAActoQ,IAAQoH,IACtBpH,EAAImF,iBAAiB8nQ,EAAoBvE,EAAOE,OAASF,EAAOG,MAAOzhQ,GACvEpH,EAAImF,iBAAiBujQ,EAAOC,KAAMvhQ,GAE1C,CAolCY6uQ,CAAqB,CACjBhzL,MAAOgqL,GAAqBhqL,EAAMr5F,QAC5Bq5F,EAAMr5F,QAAQq5F,EAAMr5F,QAAQiG,OAAS,GACrCozF,EACNgqL,kBAAmBA,GAAqB6D,GAAc9wQ,GACtDoH,aAAcirQ,EAAgBh+P,SArDtC,CAwDJ,CAeA,MAAMzI,IAAe,IAAA5O,cAAay8D,GAAaqoD,MAAOnvH,IAC9CA,IACAA,EAAE0C,iBACF1C,EAAEujR,WAEN,IAAItM,EAAc,CAAC,EACnB,MAAMj4Q,EAASm7Q,EAAUz4P,QACzB,IAAIi7P,EAAczD,EAAgBl6Q,GAC9BkhR,GAAiBx+P,QAAQ6+P,eACzBd,EAAgB/9P,SAAU,EAC1B8+P,MAEJ,IACI,GAAIT,GAAgC,CAChC,MAAM,OAAE1hR,EAAM,OAAE0Z,SAAiBmkQ,GAAmBC,EAAkBlC,GAA0BnD,EAAsB6F,GAAcP,EAAoBwD,EAAqBl+P,SAC7Kg9P,EAAUh9P,QAAUrjB,EACpB44Q,EAAc54Q,EACds+Q,EAAc5kQ,CAClB,MAEI,IAAK,MAAMu4E,KAASxiF,OAAOiK,OAAO/Y,GAC9B,GAAIsxF,EAAO,CACP,MAAQjjF,KAAK,KAAEvW,IAAYw5F,EACrBkzL,QAAmBtJ,GAAcC,EAAWF,GAA0B3pL,GACxEkzL,EAAW1sR,IACX6tE,EAAIsyM,EAAangR,EAAM0sR,EAAW1sR,IAClCkoR,EAAet9P,QAAQunG,OAAOnyH,IAG1BioR,EAAwBr9P,QAAQsnG,IAAIlyH,IACpCkoR,EAAet9P,QAAQ8wB,IAAI17C,EAGvC,CAGJ0gR,EAAcP,IACdyH,EAAUh9P,QAAU,CAAC,EACrB8+P,WACM15M,EAASgwM,EAAsB6F,GAAc38Q,KAGnD0+Q,EAAUh9P,QAAUu1P,EAChBuH,GAAoBwB,IACpBhJ,EAAkBh4Q,EAAQi4Q,GAGtC,CACA,QACIqI,EAAe59P,SAAU,EACzB+9P,EAAgB/9P,SAAU,EAC1B89P,EAAe99P,QAAU89P,EAAe99P,QAAU,EAClD8+P,IACJ,IACD,CACCR,GACAQ,GACAT,GACAvB,EACAvE,GACAmC,EACAD,KAuEJ,IAAA/8Q,YAAU,IAAM,KACZggR,EAAU19P,SAAU,EACpBy4P,EAAUz4P,SAEN5T,OAAOiK,OAAOoiQ,EAAUz4P,SAASw+C,SAASowB,GAAUwyL,GAA+BxyL,GAAO,IAAM,GACrG,CAACwyL,KACC/C,KACDd,EAAWv9P,QACPs9P,EAAet9P,QAAQrhB,MAAQ0+Q,EAAwBr9P,QAAQrhB,MAC3Dm3Q,EAAckH,EAAUh9P,UAEpC,MAAM+hQ,GAAY,CACdtD,MAAOZ,EAAW79P,QAClB0+P,YAAatB,EAAep9P,QAC5B67P,YAAa+B,EAAe59P,QAC5B2+P,YAAab,EAAe99P,QAC5B4+P,QAAS3B,EAAiBj9P,QAC1B6+P,aAAcd,EAAgB/9P,QAC9BlH,QAAS2iQ,GACHmC,EAAe59P,SAAW81P,EAAckH,EAAUh9P,SAClDu9P,EAAWv9P,SAEf43K,GAAc,CAChBpgL,qBACAtM,UAAU,IAAAvC,cA3bd,SAAkBoxP,EAAOioB,EAAuBC,GAC5C,IAAI9b,GAAe,EACnB,MAAM+b,EAAev+O,EAAQo2N,IAC5BmoB,EACKnoB,EACA,CAACA,IAAQv7L,SAASppE,IACpB,MAAM+sR,EAAoB3yK,EAASp6G,GACnC+wQ,KACIrwC,GAAiBqsD,EAAoB/sR,EAAOgX,OAAO6lB,KAAK78B,GAAM,GAAI+sR,EAC5DH,EACA51Q,OAAOiK,OAAOjhB,GAAM,MAAO8sR,IAE3BvB,GAAevrR,EAAK,KAE9B+wQ,GAAgB+b,IAChBpD,MAEAmD,GAAmBC,GAAgBF,IACnCxqQ,GAAkB0qQ,OAAe/sR,EAAY4kQ,EAErD,GAuaoC,CAC5B+kB,GACAhpD,GACAt+M,KAEJ5V,UAAU,IAAA+G,cA/Kd,SAAkBy5Q,EAAwBC,GACtC,IAAIjE,GAGJ,GAAI5uK,EAAS4yK,GACTd,GAAkB,CAAElsR,KAAMgtR,GAA0BC,OADxD,CAIA,IAAIzxP,EAASwxP,MAA2B,SAAUA,GAIlD,OAAQz2Q,GAAQA,GAAO21Q,GAAkB31Q,EAAKy2Q,GAH1Cd,GAAkBc,EAAwBC,EAF9C,CAMJ,GAkKoC,CAC5B7E,EAAiBx9P,QACjBy9P,EAAyBz9P,UAE7B6pN,YAAY,IAAAlhO,cAvQhB,SAAoBvT,GACZqjR,EAAUz4P,UACT2jB,EAAQvuC,GAAQA,EAAO,CAACA,IAAOopE,SAAS61F,GAAc+sH,GAA+B3I,EAAUz4P,QAAQq0I,IAAY,IAE5H,GAmQwC,IACpCvuE,WAAW,IAAAn9E,cAhDf,SAAmB5D,GACf,GAAIyqG,EAASzqG,GACT,OAAO0zQ,EAAUz4P,QAAQjb,GACnBuyQ,EAAcmB,EAAUz4P,QAASy4P,EAAUz4P,QAAQjb,GAAS4G,KAC5D9Z,EAAI2rR,EAAiBx9P,QAASjb,GAExC,MAAMk2Q,EAAczD,EAAgBiB,EAAUz4P,SACxCsiQ,EAAexM,EAAcmF,GAC7BuC,EAAiBx9P,QACjBi7P,EACN,OAAOl2Q,GAAWA,EAAQ0yQ,KACpBrC,EAAsBkN,GACtBA,CACV,GAmCsC,IAClCP,UAAWxD,GACL,IAAItzB,MAAM82B,GAAW,CACnBlwR,IAAK,CAACsqE,EAAKyuD,KACP,GAAIA,KAAQzuD,EAER,OADAqiN,GAAiBx+P,QAAQ4qG,IAAQ,EAC1BzuD,EAAIyuD,EAEC,IAGtBm3J,IAEJ3zP,GAAUhiB,OAAOC,OAAOD,OAAOC,OAAOD,OAAOC,OAAO,CAAE20Q,4BACxDlC,aAAaT,GACX,CAAEkE,sBAAuBxB,IACzB,CAAC,GAAK,CAAEv4P,KAAM,CACZmzP,YACAF,cACAF,eACDqB,eAAgB,CACfhB,sBACAF,yBACDsB,YACHC,mBACAxE,YACAkF,gBACAR,iBACAc,6BACAf,0BACAI,iBACAF,iBACAC,0BACAc,sBACAN,aACAW,oBACAhB,qBAAqB5lF,IACzB,OAAOxrL,OAAOC,OAAO,CAAE8sK,MAlUvB,SAAeqpG,EAAY5iQ,GACvB,MAAMs7P,EAAciC,EAAen9P,QAC7ByiQ,EAA0BpN,EAAYz1P,GACtC8iQ,EAAwBD,EACxBjF,EAAiBx9P,QACjBJ,EACAq7P,EAAczD,EAAgBiB,EAAUz4P,QAASwiQ,GACvD,GAAIhzK,EAASgzK,GACT,OAAOxH,GAAkBC,EAAauH,EAAYtH,EAAauH,EACzD5wR,EAAI6wR,EAAuBF,GAC3B5iQ,GAAc,GAExB,GAAI+jB,EAAQ6+O,GACR,OAAOA,EAAW/4N,QAAO,CAAC88D,EAAUnxH,IAAUgX,OAAOC,OAAOD,OAAOC,OAAO,CAAC,EAAGk6G,GAAW,CAAE,CAACnxH,GAAO4lR,GAAkBC,EAAa7lR,EAAM8lR,EAAawH,MAA4B,CAAC,GAEtL/E,EAAc39P,SAAU,EACxB,MAAM6K,GAAWirP,EAAcmF,IAAgBA,GAAgByH,EAC/D,OAAOF,GAAcA,EAAW/K,KAC1BrC,EAAsBvqP,GACtBA,CACV,EA+SIuD,WACA7W,gBAAcwxB,OAAO,IAAApgC,cAhHX,CAAC0N,EAAQssQ,EAAiB,CAAC,KACrC,GAAIrE,GACA,IAAK,MAAM1vL,KAASxiF,OAAOiK,OAAOoiQ,EAAUz4P,SACxC,GAAI4uE,EAAO,CACP,MAAM,IAAEjjF,EAAG,QAAEpW,GAAYq5F,EACnBpS,EAAWmgM,GAA0BhxQ,IAAQg4B,EAAQpuC,GACrDA,EAAQ,GAAGoW,IACXA,EACN,GAAIsoQ,EAAcz3L,GACd,IACIA,EAASomM,QAAQ,QAAQ75O,QACzB,KACJ,CACA,MAAO33C,GAAM,CAErB,CAGJilB,IACAmnQ,EAAiBx9P,QAAU3J,GAE/BjK,OAAOiK,OAAO4nQ,EAA2Bj+P,SAASw+C,SAASqkN,GAAoBjqB,GAAWiqB,IAAoBA,MAnDhG,GAAGlmR,SAAQ8hR,QAAO5C,cAAa+C,UAAS9lQ,UAAS6lQ,cAAaD,kBAC5EjG,EAAUz4P,QAAU,CAAC,EAChBrjB,IACDqgR,EAAUh9P,QAAU,CAAC,GAEpB4+P,IACD3B,EAAiBj9P,QAAU,CAAC,GAE3BlH,IACDwkQ,EAAet9P,QAAU,IAAIupM,IAC7B8zD,EAAwBr9P,QAAU,IAAIupM,IACtCg0D,EAAWv9P,SAAU,GAEpBy+P,IACDZ,EAAW79P,SAAU,GAEpB0+P,IACDtB,EAAep9P,QAAU,IAAIupM,KAE5BsyD,IACD+B,EAAe59P,SAAU,GAExB2+P,IACDb,EAAe99P,QAAU,GAE7By9P,EAAyBz9P,QAAU,CAAC,EACpCk9P,EAAwBl9P,QAAU,CAAC,EACnCm9P,EAAen9P,QAAU,IAAIupM,IAC7Bo0D,EAAc39P,SAAU,CAAK,EAwB7B8iQ,CAAUH,GACV7D,IAAU,GAyF8B,IAAKr9P,YAAY,IAAA9Y,cAjX7D,SAAoBvT,GACZA,EACA+gR,EAAM6G,EAAUh9P,QAAS2jB,EAAQvuC,GAAQA,EAAO,CAACA,IAGjD4nR,EAAUh9P,QAAU,CAAC,EAEzB8+P,IACJ,GAyWqF,IAAK98Q,UAAU,IAAA2G,cArVpG,SAAkBvT,EAAMM,EAAO,GAAIQ,GAC3Bs5G,EAASp6G,GACTisR,GAAiBj1Q,OAAOC,OAAOD,OAAOC,OAAO,CAAEjX,QAASw7B,EAASl7B,GAC3D,CACEk/B,MAAOl/B,EACPA,KAAM,IAER,CACEA,OACAQ,YACC,CAAEiwQ,cAAc,KAEpBxiO,EAAQvuC,KACbA,EAAKopE,SAASnsE,GAAUgvR,GAAiBj1Q,OAAOC,OAAO,CAAC,EAAGha,MAC3DysR,KAER,GAqU0H,IAAKniR,OAAQqgR,EAAUh9P,SAAW43K,GAChK;;;;;;;;;;;;;;gFAiBA,SAASY,GAAOx7I,EAAG1+C,GACf,IAAImoB,EAAI,CAAC,EACT,IAAK,IAAIqJ,KAAKktB,EAAO5wC,OAAOgkB,UAAUoP,eAAenpC,KAAK2mD,EAAGltB,IAAMxxB,EAAEg5B,QAAQxH,GAAK,IAC9ErJ,EAAEqJ,GAAKktB,EAAEltB,IACb,GAAS,MAALktB,GAAqD,mBAAjC5wC,OAAOqsL,sBACtB,KAAIloM,EAAI,EAAb,IAAgBu/B,EAAI1jB,OAAOqsL,sBAAsBz7I,GAAIzsD,EAAIu/B,EAAEt0B,OAAQjL,IAC3D+N,EAAEg5B,QAAQxH,EAAEv/B,IAAM,GAAK6b,OAAOgkB,UAAUsoK,qBAAqBriM,KAAK2mD,EAAGltB,EAAEv/B,MACvEk2B,EAAEqJ,EAAEv/B,IAAMysD,EAAEltB,EAAEv/B,IAF4B,CAItD,OAAOk2B,CACX,CAEA,MAAMs8P,IAAoB,IAAAC,eAAc,MACxC,SAASpmR,KACL,OAAO,IAAAwsP,YAAW25B,GACtB,CACA,SAASj8L,GAAY11F,GACjB,IAAI,SAAEgvB,EAAQ,UAAE2hQ,EAAS,OAAEplR,GAAWvL,EAAI6xR,EAAczqF,GAAOpnM,EAAI,CAAC,WAAY,YAAa,WAC7F,OAAQ,IAAAiqE,eAAc0nN,GAAkB3uO,SAAU,CAAExvC,MAAOwH,OAAOC,OAAOD,OAAOC,OAAO,CAAC,EAAG42Q,GAAc,CAAElB,YAAWplR,YAAayjB,EACvI,CAoWA,MAAMmO,GAAcn9B,IAChB,IAAI,KAAEgE,EAAI,MAAEiuO,EAAO70M,GAAI00P,EAAc,OAAEr+P,EAAM,SAAE/f,EAAQ,aAAEq+Q,EAAejP,EAAgBpvQ,SAAQ,WAAEs+Q,EAAalP,EAAgBrvP,OAAM,UAAEw+P,EAAS,aAAEzjQ,EAAY,QAAEwO,EAAO,QAAEpJ,GAAY5zB,EAAIgrE,EAAOo8H,GAAOpnM,EAAI,CAAC,OAAQ,QAAS,KAAM,SAAU,WAAY,eAAgB,aAAc,YAAa,eAAgB,UAAW,YAC/T,MAAMsyF,EAAU9mF,MACV,iBAAE4gR,EAAgB,SAAEtyQ,EAAQ,SAAEtJ,EAAQ,WAAEioO,EAAU,UAAEmzC,EAAS,yBAAEgE,EAAwB,kBAAExpQ,EAAmBgR,MAAM,WAAEizP,EAAU,SAAEE,EAAQ,WAAEJ,GAAcqB,gBAAgB,mBAAEhB,EAAkB,qBAAEF,GAAwBqG,WAAW,YAAElG,GAAa,iBAAEoB,EAAgB,iBAAEuB,EAAgB,SAAEM,EAAQ,UAAErG,EAAS,mBAAE0F,GAAwB/vP,GAAWs1D,EAAQt1D,SACrVxpB,EAAO0+Q,IAAsB,IAAAxmR,UAASu4Q,EAAYz1P,GACnD/tB,EAAI2rR,EAAiBx9P,QAAS5qB,GAC9BwqB,GACA2jQ,GAAW,IAAAzjQ,QAAOlb,GAClB4+Q,EAAkBrL,GAAUvzQ,GAC5B6+Q,EAAyB9H,GAAYC,EACrC8H,GAAW,IAAA5jQ,QAAOujN,GAClBsgD,GAAa,IAAA7jQ,QAAOkF,GACpB4+P,GAAmBpH,GAAmB2B,EAAmBn+P,QAAS5qB,GACxEsuR,EAAS1jQ,QAAUqjN,EACnB,MAAM4+C,EAAiB,KAAO3G,GAAe,CACzCjqL,WAAYx/F,EAAImrR,EAAUh9P,QAAS5qB,GACnCumR,WACAF,aACAF,aACAK,qBACAF,uBACAG,gBAEEgI,EAAcltQ,IAChB,MAAM3kB,EAhCM,EAAC2kB,EAAO6sQ,IAAoB5I,GAAYjkQ,KACvDia,EAASja,EAAM1R,SACf2rB,EAASja,EAAM1R,UAAY0R,EAAMjhB,KAChCihB,EACA6sQ,GAAmBnO,EAAY1+P,EAAM1R,OAAOL,OACxC+R,EAAM1R,OAAOyc,QACb/K,EAAM1R,OAAOL,MA0BFk/Q,CAAcntQ,EAAO6sQ,GAGlC,OAFAF,EAAmBtxR,GACnBuxR,EAASvjQ,QAAUhuB,EACZA,CAAI,EAOT+xR,GAAgB,IAAAp7Q,cAAY,KACzBi7Q,GACD5C,EAAyBvI,EAAUz4P,QAAQ5qB,IAAO,GAEtDwM,EAASwK,OAAO66D,eAAe,CAAE7xE,OAAM6jM,MAAO0qF,EAAW3jQ,SAAWm0P,EAAO,CACvE,GAAAlxM,CAAIjxE,GACAsxR,EAAmBtxR,GACnBuxR,EAASvjQ,QAAUhuB,CACvB,EACAH,IAAG,IACQ0xR,EAASvjQ,UAEpB0jQ,EAAS1jQ,QAAQ,GACtB,CACC4jQ,EACAnL,EACAiL,EACAtuR,EACAuuR,EACA/hR,EACAo/Q,KAEJ,IAAAtjR,YAAU,IAAM,MACX8+Q,GAAmB2B,EAAmBn+P,QAAS5qB,IAASy0O,EAAWz0O,EAAK,GAC1E,CAACy0O,EAAYz0O,EAAM+oR,KACtB,IAAAzgR,YAAU,KACNqmR,GAAe,GAChB,CAACA,KAEJ,IAAArmR,YAAU,KACD+6Q,EAAUz4P,QAAQ5qB,KACnB2uR,IACIH,GACAN,EAAmBjO,EAAYz1P,GACzB/tB,EAAI2rR,EAAiBx9P,QAAS5qB,GAC9BwqB,GAEd,IAEJ,MAAMjd,EAAQyJ,OAAOC,OAAOD,OAAOC,OAAOD,OAAOC,OAAOD,OAAOC,OAAO,CAAEjX,QAAQgnE,GAAQt3D,EAClF,CAAE,CAACq+Q,IA7CaxsQ,EA6Ce7R,EA7CL,IAAIuoH,IAAQniH,EAAS9V,EAAMyuR,EAAWltQ,EAAM02G,IAAO40J,OA8C7E,CAAE,CAACkB,GA7CaxsQ,IAClB,MAAM3kB,EAAO6xR,EAAWltQ,GACxBzL,EAAS9V,EAAMpD,EAAMiwR,IAAiB,IA2CA,CAAE,CAACmB,GAAa,IAAIlzP,KAClDrL,GACAA,EAAOqL,GAEPsuP,EAAiBx+P,QAAQ4+P,UACxB/sR,EAAIorR,EAAiBj9P,QAAS5qB,KAC/B6tE,EAAIg6M,EAAiBj9P,QAAS5qB,GAAM,GACpC0pR,KAEA2E,GACAjsQ,EAAkBpiB,EACtB,IACE,CAAE,CAACiuR,IAAcG,EAAkB,UAAYrP,IAASvvQ,IA1D7C,IAAC+R,EA2DtB,OAAO,IAAAwtL,gBAAe++E,IAChB,IAAA79E,cAAa69E,EAAgBvgR,IAC7B,IAAA04D,eAAc6nN,EAAgBvgR,EAAM,C;;;;;;;;GC9zDjC,IAAI0jB,EAAE,mBAAoBwnO,QAAQA,OAAOj1B,IAAIz6M,EAAEkI,EAAEwnO,OAAOj1B,IAAI,iBAAiB,MAAMp3J,EAAEn7C,EAAEwnO,OAAOj1B,IAAI,gBAAgB,MAAMt6N,EAAE+nB,EAAEwnO,OAAOj1B,IAAI,kBAAkB,MAAMp7K,EAAEn3B,EAAEwnO,OAAOj1B,IAAI,qBAAqB,MAAMhxG,EAAEvhG,EAAEwnO,OAAOj1B,IAAI,kBAAkB,MAAMppI,EAAEnpE,EAAEwnO,OAAOj1B,IAAI,kBAAkB,MAAM/pK,EAAExoC,EAAEwnO,OAAOj1B,IAAI,iBAAiB,MAAMpP,EAAEnjM,EAAEwnO,OAAOj1B,IAAI,oBAAoB,MAAMlkN,EAAE2R,EAAEwnO,OAAOj1B,IAAI,yBAAyB,MAAM37K,EAAE52B,EAAEwnO,OAAOj1B,IAAI,qBAAqB,MAAM9oM,EAAEzJ,EAAEwnO,OAAOj1B,IAAI,kBAAkB,MAAMogC,EAAE3yO,EACpfwnO,OAAOj1B,IAAI,uBAAuB,MAAM1nK,EAAE7qC,EAAEwnO,OAAOj1B,IAAI,cAAc,MAAMnyM,EAAEJ,EAAEwnO,OAAOj1B,IAAI,cAAc,MAAMzkH,EAAE9tF,EAAEwnO,OAAOj1B,IAAI,eAAe,MAAMg5B,EAAEvrO,EAAEwnO,OAAOj1B,IAAI,qBAAqB,MAAMltK,EAAErlC,EAAEwnO,OAAOj1B,IAAI,mBAAmB,MAAMptK,EAAEnlC,EAAEwnO,OAAOj1B,IAAI,eAAe,MAClQ,SAAS7pK,EAAEz+D,GAAG,GAAG,iBAAkBA,GAAG,OAAOA,EAAE,CAAC,IAAIihQ,EAAEjhQ,EAAE0zR,SAAS,OAAOzyB,GAAG,KAAKpzO,EAAE,OAAO7tB,EAAEA,EAAEoF,MAAQ,KAAK8zN,EAAE,KAAK90M,EAAE,KAAKpW,EAAE,KAAKspH,EAAE,KAAKpqE,EAAE,KAAK1tB,EAAE,OAAOx/B,EAAE,QAAQ,OAAOA,EAAEA,GAAGA,EAAE0zR,UAAY,KAAKn1N,EAAE,KAAK5R,EAAE,KAAKx2B,EAAE,KAAKyqC,EAAE,KAAKs+B,EAAE,OAAOl/F,EAAE,QAAQ,OAAOihQ,GAAG,KAAK/vL,EAAE,OAAO+vL,EAAE,CAAC,CAAC,SAASrjP,EAAE5d,GAAG,OAAOy+D,EAAEz+D,KAAKokB,CAAC,CAACzkB,EAAQg0R,UAAUz6D,EAAEv5N,EAAQi0R,eAAexvQ,EAAEzkB,EAAQk0R,gBAAgBt1N,EAAE5+D,EAAQm0R,gBAAgB50L,EAAEv/F,EAAQsiH,QAAQp0F,EAAEluB,EAAQmvQ,WAAWniN,EAAEhtD,EAAQo0R,SAAS/lR,EAAErO,EAAQq0R,KAAK79P,EAAEx2B,EAAQovQ,KAAKnuM,EAAEjhE,EAAQs0R,OAAO/iN,EAChfvxE,EAAQu0R,SAAS58J,EAAE33H,EAAQw0R,WAAWjnO,EAAEvtD,EAAQy0R,SAAS50P,EAAE7/B,EAAQ00R,YAAY,SAASr0R,GAAG,OAAO4d,EAAE5d,IAAIy+D,EAAEz+D,KAAKk5N,CAAC,EAAEv5N,EAAQ20R,iBAAiB12Q,EAAEje,EAAQ40R,kBAAkB,SAASv0R,GAAG,OAAOy+D,EAAEz+D,KAAKu+D,CAAC,EAAE5+D,EAAQ60R,kBAAkB,SAASx0R,GAAG,OAAOy+D,EAAEz+D,KAAKk/F,CAAC,EAAEv/F,EAAQ80R,UAAU,SAASz0R,GAAG,MAAM,iBAAkBA,GAAG,OAAOA,GAAGA,EAAE0zR,WAAW7lQ,CAAC,EAAEluB,EAAQ+0R,aAAa,SAAS10R,GAAG,OAAOy+D,EAAEz+D,KAAK2sD,CAAC,EAAEhtD,EAAQg1R,WAAW,SAAS30R,GAAG,OAAOy+D,EAAEz+D,KAAKgO,CAAC,EAAErO,EAAQi1R,OAAO,SAAS50R,GAAG,OAAOy+D,EAAEz+D,KAAKm2B,CAAC,EAC1dx2B,EAAQkvQ,OAAO,SAAS7uQ,GAAG,OAAOy+D,EAAEz+D,KAAK4gE,CAAC,EAAEjhE,EAAQk1R,SAAS,SAAS70R,GAAG,OAAOy+D,EAAEz+D,KAAKkxE,CAAC,EAAEvxE,EAAQm1R,WAAW,SAAS90R,GAAG,OAAOy+D,EAAEz+D,KAAKs3H,CAAC,EAAE33H,EAAQo1R,aAAa,SAAS/0R,GAAG,OAAOy+D,EAAEz+D,KAAKktD,CAAC,EAAEvtD,EAAQq1R,WAAW,SAASh1R,GAAG,OAAOy+D,EAAEz+D,KAAKw/B,CAAC,EAC1O7/B,EAAQs1R,mBAAmB,SAASj1R,GAAG,MAAM,iBAAkBA,GAAG,mBAAoBA,GAAGA,IAAIgO,GAAGhO,IAAIokB,GAAGpkB,IAAIs3H,GAAGt3H,IAAIktD,GAAGltD,IAAIw/B,GAAGx/B,IAAI0oQ,GAAG,iBAAkB1oQ,GAAG,OAAOA,IAAIA,EAAE0zR,WAAWv9P,GAAGn2B,EAAE0zR,WAAW9yN,GAAG5gE,EAAE0zR,WAAWx0L,GAAGl/F,EAAE0zR,WAAWn1N,GAAGv+D,EAAE0zR,WAAW/mO,GAAG3sD,EAAE0zR,WAAWpyB,GAAGthQ,EAAE0zR,WAAWt4N,GAAGp7D,EAAE0zR,WAAWx4N,GAAGl7D,EAAE0zR,WAAW7vK,EAAE,EAAElkH,EAAQu1R,OAAOz2N,C,mCCXjU7+D,EAAOD,QAAU,EAAjB,K,4LCFSw1R,EAAiC,kBAAoB,MCIhE,IAAIC,EAJJ,SAA0BtgN,GACxBA,GACF,EAQWugN,EAAW,WACpB,OAAOD,CACT,ECuDA,IAAIE,EAAgB,CAClBC,OAAQ,WAAmB,EAC3Bh0R,IAAK,WACH,MAAO,EACT,GAEK,SAASi0R,EAAmB5kR,EAAO6kR,GACxC,IAAIC,EACAhsB,EAAY4rB,EAWhB,SAASK,IACHC,EAAaC,eACfD,EAAaC,eAEjB,CAMA,SAASC,IACFJ,IACHA,EAAcD,EAAYA,EAAUM,aAAaJ,GAAuB/kR,EAAM6yC,UAAUkyO,GACxFjsB,EAhGN,WACE,IAAI0rB,EAAQC,IACR7wI,EAAQ,KACRtxG,EAAO,KACX,MAAO,CACLopE,MAAO,WACLkoC,EAAQ,KACRtxG,EAAO,IACT,EACAqiP,OAAQ,WACNH,GAAM,WAGJ,IAFA,IAAIj9N,EAAWqsF,EAERrsF,GACLA,EAAS2c,WACT3c,EAAWA,EAAS/2D,IAExB,GACF,EACAG,IAAK,WAIH,IAHA,IAAImoQ,EAAY,GACZvxM,EAAWqsF,EAERrsF,GACLuxM,EAAUtlQ,KAAK+zD,GACfA,EAAWA,EAAS/2D,KAGtB,OAAOsoQ,CACT,EACAjmN,UAAW,SAAmBqxB,GAC5B,IAAIkhN,GAAe,EACf79N,EAAWjlB,EAAO,CACpB4hC,SAAUA,EACV1zE,KAAM,KACND,KAAM+xC,GASR,OANIilB,EAASh3D,KACXg3D,EAASh3D,KAAKC,KAAO+2D,EAErBqsF,EAAQrsF,EAGH,WACA69N,GAA0B,OAAVxxI,IACrBwxI,GAAe,EAEX79N,EAAS/2D,KACX+2D,EAAS/2D,KAAKD,KAAOg3D,EAASh3D,KAE9B+xC,EAAOilB,EAASh3D,KAGdg3D,EAASh3D,KACXg3D,EAASh3D,KAAKC,KAAO+2D,EAAS/2D,KAE9BojJ,EAAQrsF,EAAS/2D,KAErB,CACF,EAEJ,CAkCkB60R,GAEhB,CAWA,IAAIL,EAAe,CACjBG,aApCF,SAAsB59N,GAEpB,OADA29N,IACOpsB,EAAUjmN,UAAU0U,EAC7B,EAkCE+9N,iBAhCF,WACExsB,EAAU6rB,QACZ,EA+BEI,oBAAqBA,EACrBK,aAxBF,WACE,OAAO12K,QAAQo2K,EACjB,EAuBEI,aAAcA,EACdK,eAfF,WACMT,IACFA,IACAA,OAAc7wR,EACd6kQ,EAAUptJ,QACVotJ,EAAY4rB,EAEhB,EASEc,aAAc,WACZ,OAAO1sB,CACT,GAEF,OAAOksB,CACT,CCpHO,IAAI7yF,EAA8C,oBAAXxnK,aAAqD,IAApBA,OAAOhb,eAAqE,IAAlCgb,OAAOhb,SAASwqD,cAAgC,EAAAkxB,gBAAkB,EAAA7uF,UC2C3L,MA9CA,SAAkB5M,GAChB,IAAIoQ,EAAQpQ,EAAKoQ,MACb0gC,EAAU9wC,EAAK8wC,QACfxhB,EAAWtvB,EAAKsvB,SAChBslL,GAAe,IAAAokC,UAAQ,WACzB,IAAIo8C,EAAeJ,EAAmB5kR,GACtC,MAAO,CACLA,MAAOA,EACPglR,aAAcA,EAElB,GAAG,CAAChlR,IACAylR,GAAgB,IAAA78C,UAAQ,WAC1B,OAAO5oO,EAAM5B,UACf,GAAG,CAAC4B,IACJmyL,GAA0B,WACxB,IAAI6yF,EAAexgF,EAAawgF,aAQhC,OAPAA,EAAaC,cAAgBD,EAAaM,iBAC1CN,EAAaE,eAETO,IAAkBzlR,EAAM5B,YAC1B4mR,EAAaM,mBAGR,WACLN,EAAaO,iBACbP,EAAaC,cAAgB,IAC/B,CACF,GAAG,CAACzgF,EAAcihF,IAClB,IAAIC,EAAUhlP,GAAW6jP,EACzB,OAAoB,kBAAoBmB,EAAQxyO,SAAU,CACxDxvC,MAAO8gM,GACNtlL,EACL,E,iDCpCImhD,EAAY,CAAC,iBAAkB,aAAc,kBAAmB,2BAA4B,WAAY,UAAW,aAAc,WACjIslN,EAAa,CAAC,0BAQdC,EAAc,GACdC,EAAwB,CAAC,KAAM,MAUnC,SAASC,EAAyBxpR,EAAOu9F,GACvC,IAAIksL,EAAczpR,EAAM,GACxB,MAAO,CAACu9F,EAAOh2F,QAASkiR,EAAc,EACxC,CAEA,SAASC,EAAkCC,EAAYC,EAAY9zL,GACjE+/F,GAA0B,WACxB,OAAO8zF,EAAW10R,WAAM,EAAQ20R,EAClC,GAAG9zL,EACL,CAEA,SAAS+zL,EAAoBC,EAAkBC,EAAgBC,EAAmBC,EAAcC,EAAkBC,EAA2BnB,GAE3Ic,EAAiBtnQ,QAAUynQ,EAC3BF,EAAevnQ,QAAU0nQ,EACzBF,EAAkBxnQ,SAAU,EAExB2nQ,EAA0B3nQ,UAC5B2nQ,EAA0B3nQ,QAAU,KACpCwmQ,IAEJ,CAEA,SAASoB,EAAiBC,EAA0B3mR,EAAOglR,EAAc4B,EAAoBR,EAAkBC,EAAgBC,EAAmBG,EAA2BnB,EAAkBuB,GAE7L,GAAKF,EAAL,CAEA,IAAIhzF,GAAiB,EACjBmzF,EAAkB,KAElBC,EAAkB,WACpB,IAAIpzF,EAAJ,CAMA,IACIqzF,EAAe71R,EADf81R,EAAmBjnR,EAAM5B,WAG7B,IAGE4oR,EAAgBJ,EAAmBK,EAAkBb,EAAiBtnQ,QACxE,CAAE,MAAO1hB,GACPjM,EAAQiM,EACR0pR,EAAkB1pR,CACpB,CAEKjM,IACH21R,EAAkB,MAIhBE,IAAkBX,EAAevnQ,QAC9BwnQ,EAAkBxnQ,SACrBwmQ,KAOFe,EAAevnQ,QAAUkoQ,EACzBP,EAA0B3nQ,QAAUkoQ,EACpCV,EAAkBxnQ,SAAU,EAE5B+nQ,EAA6B,CAC3BryR,KAAM,gBACNqP,QAAS,CACP1S,MAAOA,KAnCb,CAuCF,EAGA6zR,EAAaC,cAAgB8B,EAC7B/B,EAAaE,eAGb6B,IAiBA,OAfyB,WAKvB,GAJApzF,GAAiB,EACjBqxF,EAAaO,iBACbP,EAAaC,cAAgB,KAEzB6B,EAMF,MAAMA,CAEV,CAvEqC,CA0EvC,CAEA,IAAII,EAAmB,WACrB,MAAO,CAAC,KAAM,EAChB,EAEe,SAASC,EAexBC,EACAx3R,QACe,IAATA,IACFA,EAAO,CAAC,GAGV,IAAI2F,EAAQ3F,EACRy3R,EAAuB9xR,EAAMq1M,eAC7BA,OAA0C,IAAzBy8E,EAAkC,SAAUnzR,GAC/D,MAAO,mBAAqBA,EAAO,GACrC,EAAImzR,EACAC,EAAmB/xR,EAAMgyR,WACzBA,OAAkC,IAArBD,EAA8B,kBAAoBA,EAC/DE,EAAwBjyR,EAAMkyR,gBAC9BA,OAA4C,IAA1BD,OAAmCvzR,EAAYuzR,EACjEE,EAAwBnyR,EAAMoxR,yBAC9BA,OAAqD,IAA1Be,GAA0CA,EACrEC,EAAiBpyR,EAAMqyR,SACvBA,OAA8B,IAAnBD,EAA4B,QAAUA,EAGjDE,GAFgBtyR,EAAMuyR,QAEHvyR,EAAMymJ,YACzBA,OAAkC,IAArB6rI,GAAsCA,EACnDE,EAAgBxyR,EAAMmrC,QACtBA,OAA4B,IAAlBqnP,EAA2BxD,EAAoBwD,EACzDC,GAAiB,OAA8BzyR,EAAO8qE,GAkBtDqlN,EAAUhlP,EACd,OAAO,SAAyBmqK,GAK9B,IAAIo9E,EAAuBp9E,EAAiB1uD,aAAe0uD,EAAiB32M,MAAQ,YAChFioJ,EAAcyuD,EAAeq9E,GAE7BC,GAAyB,OAAS,CAAC,EAAGF,EAAgB,CACxDp9E,eAAgBA,EAChB28E,WAAYA,EACZE,gBAAiBA,EACjBd,yBAA0BA,EAC1BiB,SAAUA,EACVzrI,YAAaA,EACb8rI,qBAAsBA,EACtBp9E,iBAAkBA,IAGhBs9E,EAAOH,EAAeG,KAS1B,IAAIC,EAAkBD,EAAO,EAAAv/C,QAAU,SAAU1kK,GAC/C,OAAOA,GACT,EAEA,SAASmkN,EAAgB5mR,GACvB,IAAI6mR,GAAW,IAAA1/C,UAAQ,WAIrB,IAAI2/C,EAAyB9mR,EAAM8mR,uBAC/BhC,GAAe,OAA8B9kR,EAAOkkR,GAExD,MAAO,CAAClkR,EAAMi/B,QAAS6nP,EAAwBhC,EACjD,GAAG,CAAC9kR,IACA+mR,EAAeF,EAAS,GACxBC,EAAyBD,EAAS,GAClC/B,EAAe+B,EAAS,GAExBG,GAAe,IAAA7/C,UAAQ,WAGzB,OAAO4/C,GAAgBA,EAAa9tE,WAAY,IAAAipE,mBAAgC,kBAAoB6E,EAAa9tE,SAAU,OAAS8tE,EAAe9C,CACrJ,GAAG,CAAC8C,EAAc9C,IAEdlhF,GAAe,IAAA0jD,YAAWugC,GAI1BC,EAAwBh6K,QAAQjtG,EAAMzB,QAAU0uG,QAAQjtG,EAAMzB,MAAM5B,WAAaswG,QAAQjtG,EAAMzB,MAAMkD,UAC3EwrG,QAAQ81F,IAAiB91F,QAAQ81F,EAAaxkM,OAO5E,IAAIA,EAAQ0oR,EAAwBjnR,EAAMzB,MAAQwkM,EAAaxkM,MAC3D4mR,GAAqB,IAAAh+C,UAAQ,WAG/B,OA/CJ,SAA6B5oO,GAC3B,OAAOonR,EAAgBpnR,EAAMkD,SAAUglR,EACzC,CA6CWS,CAAoB3oR,EAC7B,GAAG,CAACA,IAEA4oR,GAAY,IAAAhgD,UAAQ,WACtB,IAAK+9C,EAA0B,OAAOd,EAKtC,IAAIb,EAAeJ,EAAmB5kR,EAAO0oR,EAAwB,KAAOlkF,EAAawgF,cASrFM,EAAmBN,EAAaM,iBAAiB9jK,KAAKwjK,GAC1D,MAAO,CAACA,EAAcM,EACxB,GAAG,CAACtlR,EAAO0oR,EAAuBlkF,IAC9BwgF,EAAe4D,EAAU,GACzBtD,EAAmBsD,EAAU,GAI7BC,GAAyB,IAAAjgD,UAAQ,WACnC,OAAI8/C,EAIKlkF,GAKF,OAAS,CAAC,EAAGA,EAAc,CAChCwgF,aAAcA,GAElB,GAAG,CAAC0D,EAAuBlkF,EAAcwgF,IAGrC59G,GAAc,IAAAC,YAAWy+G,EAA0BF,EAAasB,GAEhE4B,EADe1hH,EAAY,GACc,GACzCy/G,EAA+Bz/G,EAAY,GAG/C,GAAI0hH,GAA6BA,EAA0B33R,MACzD,MAAM23R,EAA0B33R,MAIlC,IAAIk1R,GAAiB,IAAAznQ,UACjBwnQ,GAAmB,IAAAxnQ,QAAO2nQ,GAC1BE,GAA4B,IAAA7nQ,UAC5B0nQ,GAAoB,IAAA1nQ,SAAO,GAC3B4nQ,EAAmB4B,GAAgB,WAOrC,OAAI3B,EAA0B3nQ,SAAWynQ,IAAiBH,EAAiBtnQ,QAClE2nQ,EAA0B3nQ,QAO5B8nQ,EAAmB5mR,EAAM5B,WAAYmoR,EAC9C,GAAG,CAACvmR,EAAO8oR,EAA2BvC,IAItCP,EAAkCG,EAAqB,CAACC,EAAkBC,EAAgBC,EAAmBC,EAAcC,EAAkBC,EAA2BnB,IAExKU,EAAkCU,EAAkB,CAACC,EAA0B3mR,EAAOglR,EAAc4B,EAAoBR,EAAkBC,EAAgBC,EAAmBG,EAA2BnB,EAAkBuB,GAA+B,CAAC7mR,EAAOglR,EAAc4B,IAG/Q,IAAImC,GAA2B,IAAAngD,UAAQ,WACrC,OAAoB,kBAAoB/9B,GAAkB,OAAS,CAAC,EAAG27E,EAAkB,CACvF/7Q,IAAK89Q,IAET,GAAG,CAACA,EAAwB19E,EAAkB27E,IAe9C,OAZoB,IAAA59C,UAAQ,WAC1B,OAAI+9C,EAIkB,kBAAoB8B,EAAav1O,SAAU,CAC7DxvC,MAAOmlR,GACNE,GAGEA,CACT,GAAG,CAACN,EAAcM,EAA0BF,GAE9C,CAGA,IAAIG,EAAUb,EAAO,SAAWE,GAAmBA,EAInD,GAHAW,EAAQn+E,iBAAmBA,EAC3Bm+E,EAAQ7sI,YAAcksI,EAAgBlsI,YAAcA,EAEhDH,EAAY,CACd,IAAIitI,EAAY,gBAAiB,SAA2BxnR,EAAOgJ,GACjE,OAAoB,kBAAoBu+Q,GAAS,OAAS,CAAC,EAAGvnR,EAAO,CACnE8mR,uBAAwB99Q,IAE5B,IAGA,OAFAw+Q,EAAU9sI,YAAcA,EACxB8sI,EAAUp+E,iBAAmBA,EACtB,IAAao+E,EAAWp+E,EACjC,CAEA,OAAO,IAAam+E,EAASn+E,EAC/B,CACF,CCxXA,SAASzvI,EAAG5Q,EAAGF,GACb,OAAIE,IAAMF,EACK,IAANE,GAAiB,IAANF,GAAW,EAAIE,GAAM,EAAIF,EAEpCE,GAAMA,GAAKF,GAAMA,CAE5B,CAEe,SAAS+Q,EAAaC,EAAMC,GACzC,GAAIH,EAAGE,EAAMC,GAAO,OAAO,EAE3B,GAAoB,iBAATD,GAA8B,OAATA,GAAiC,iBAATC,GAA8B,OAATA,EAC3E,OAAO,EAGT,IAAIC,EAAQtwD,OAAO6lB,KAAKuqC,GACpBG,EAAQvwD,OAAO6lB,KAAKwqC,GACxB,GAAIC,EAAMlhE,SAAWmhE,EAAMnhE,OAAQ,OAAO,EAE1C,IAAK,IAAIjL,EAAI,EAAGA,EAAImsE,EAAMlhE,OAAQjL,IAChC,IAAK6b,OAAOgkB,UAAUoP,eAAenpC,KAAKomE,EAAMC,EAAMnsE,MAAQ+rE,EAAGE,EAAKE,EAAMnsE,IAAKksE,EAAKC,EAAMnsE,KAC1F,OAAO,EAIX,OAAO,CACT,CCzBO,SAAS65R,EAAuBC,GACrC,OAAO,SAA8BjmR,EAAU7O,GAC7C,IAAI+0R,EAAWD,EAAYjmR,EAAU7O,GAErC,SAASg1R,IACP,OAAOD,CACT,CAGA,OADAC,EAAiBC,mBAAoB,EAC9BD,CACT,CACF,CAQO,SAASE,EAAqBC,GACnC,OAAwC,OAAjCA,EAAWF,wBAA+Dr1R,IAAjCu1R,EAAWF,kBAAkC56K,QAAQ86K,EAAWF,mBAA2C,IAAtBE,EAAWlvR,MAClJ,CAaO,SAASmvR,EAAmBD,EAAYjC,GAC7C,OAAO,SAA2BrkR,EAAUtT,GACxBA,EAAKusJ,YAAvB,IAEIutI,EAAQ,SAAyBC,EAAiBC,GACpD,OAAOF,EAAMJ,kBAAoBI,EAAMF,WAAWG,EAAiBC,GAAYF,EAAMF,WAAWG,EAClG,EAoBA,OAjBAD,EAAMJ,mBAAoB,EAE1BI,EAAMF,WAAa,SAAgCG,EAAiBC,GAClEF,EAAMF,WAAaA,EACnBE,EAAMJ,kBAAoBC,EAAqBC,GAC/C,IAAI/nR,EAAQioR,EAAMC,EAAiBC,GASnC,MAPqB,mBAAVnoR,IACTioR,EAAMF,WAAa/nR,EACnBioR,EAAMJ,kBAAoBC,EAAqB9nR,GAC/CA,EAAQioR,EAAMC,EAAiBC,IAI1BnoR,CACT,EAEOioR,CACT,CACF,CC9CA,OAfO,SAA0CG,GAC/C,MAAqC,mBAAvBA,EAAoCJ,EAAmBI,QAA4C51R,CACnH,EACO,SAAyC41R,GAC9C,OAAQA,OAIH51R,EAJwBi1R,GAAuB,SAAUhmR,GAC5D,MAAO,CACLA,SAAUA,EAEd,GACF,EACO,SAAwC2mR,GAC7C,OAAOA,GAAoD,iBAAvBA,EAAkCX,GAAuB,SAAUhmR,GACrG,OCdW,SAA4B4mR,EAAgB5mR,GACzD,IAAI6mR,EAAsB,CAAC,EAEvB/8O,EAAQ,SAAengC,GACzB,IAAIm9Q,EAAgBF,EAAej9Q,GAEN,mBAAlBm9Q,IACTD,EAAoBl9Q,GAAO,WACzB,OAAO3J,EAAS8mR,EAAcz4R,WAAM,EAAQC,WAC9C,EAEJ,EAEA,IAAK,IAAIqb,KAAOi9Q,EACd98O,EAAMngC,GAGR,OAAOk9Q,CACT,CDJWE,CAAmBJ,EAAoB3mR,EAChD,SAAKjP,CACP,GEPA,OARO,SAAuCi2R,GAC5C,MAAkC,mBAApBA,EAAiCT,EAAmBS,QAAsCj2R,CAC1G,EACO,SAAsCi2R,GAC3C,OAAQA,OAEHj2R,EAFqBi1R,GAAuB,WAC/C,MAAO,CAAC,CACV,GACF,GCNO,SAASiB,EAAkBC,EAAYC,EAAeT,GAC3D,OAAO,OAAS,CAAC,EAAGA,EAAUQ,EAAYC,EAC5C,CA+BA,OARO,SAAkCC,GACvC,MAA6B,mBAAfA,EAvBT,SAA4BA,GACjC,OAAO,SAA6BpnR,EAAUtT,GAC1BA,EAAKusJ,YAAvB,IAIIouI,EAHApC,EAAOv4R,EAAKu4R,KACZqC,EAAsB56R,EAAK46R,oBAC3BC,GAAa,EAEjB,OAAO,SAAyBL,EAAYC,EAAeT,GACzD,IAAIc,EAAkBJ,EAAWF,EAAYC,EAAeT,GAU5D,OARIa,EACGtC,GAASqC,EAAoBE,EAAiBH,KAAcA,EAAcG,IAE/ED,GAAa,EACbF,EAAcG,GAITH,CACT,CACF,CACF,CAE4CI,CAAmBL,QAAcr2R,CAC7E,EACO,SAAiCq2R,GACtC,OAAQA,OAEJr2R,EAFiB,WACnB,OAAOk2R,CACT,CACF,GCjCI,EAAY,CAAC,sBAAuB,yBAA0B,kBAE3D,SAASS,EAAgCV,EAAiBL,EAAoBS,EAAYpnR,GAC/F,OAAO,SAAkC5G,EAAOstR,GAC9C,OAAOU,EAAWJ,EAAgB5tR,EAAOstR,GAAWC,EAAmB3mR,EAAU0mR,GAAWA,EAC9F,CACF,CACO,SAASiB,EAA8BX,EAAiBL,EAAoBS,EAAYpnR,EAAUtT,GACvG,IAII0M,EACAstR,EACAQ,EACAC,EACAE,EARAO,EAAiBl7R,EAAKk7R,eACtBC,EAAmBn7R,EAAKm7R,iBACxBC,EAAqBp7R,EAAKo7R,mBAC1BC,GAAoB,EAuCxB,SAASC,EAAsBltN,EAAWmtN,GACxC,IARIC,EACAC,EAOAC,GAAgBP,EAAiBI,EAAcvB,GAC/C2B,GAAgBT,EAAe9sN,EAAW1hE,EAAO6uR,EAAcvB,GAGnE,OAFAttR,EAAQ0hE,EACR4rN,EAAWuB,EACPG,GAAgBC,GA1BpBnB,EAAaF,EAAgB5tR,EAAOstR,GAChCC,EAAmBP,oBAAmBe,EAAgBR,EAAmB3mR,EAAU0mR,IACvFW,EAAcD,EAAWF,EAAYC,EAAeT,IAyBhD0B,GApBApB,EAAgBZ,oBAAmBc,EAAaF,EAAgB5tR,EAAOstR,IACvEC,EAAmBP,oBAAmBe,EAAgBR,EAAmB3mR,EAAU0mR,IACvFW,EAAcD,EAAWF,EAAYC,EAAeT,IAmBhD2B,GAdAH,EAAiBlB,EAAgB5tR,EAAOstR,GACxCyB,GAAqBL,EAAmBI,EAAgBhB,GAC5DA,EAAagB,EACTC,IAAmBd,EAAcD,EAAWF,EAAYC,EAAeT,IACpEW,GAWAA,CACT,CAEA,OAAO,SAAgCvsN,EAAWmtN,GAChD,OAAOF,EAAoBC,EAAsBltN,EAAWmtN,IAzC5Df,EAAaF,EAFb5tR,EA2C4F0hE,EA1C5F4rN,EA0CuGuB,GAxCvGd,EAAgBR,EAAmB3mR,EAAU0mR,GAC7CW,EAAcD,EAAWF,EAAYC,EAAeT,GACpDqB,GAAoB,EACbV,EAsCT,CACF,CAMe,SAASiB,EAA0BtoR,EAAU3N,GAC1D,IAAIk2R,EAAsBl2R,EAAMk2R,oBAC5BC,EAAyBn2R,EAAMm2R,uBAC/BC,EAAiBp2R,EAAMo2R,eACvBt3R,GAAU,OAA8BkB,EAAO,GAE/C20R,EAAkBuB,EAAoBvoR,EAAU7O,GAChDw1R,EAAqB6B,EAAuBxoR,EAAU7O,GACtDi2R,EAAaqB,EAAezoR,EAAU7O,GAO1C,OADsBA,EAAQ8zR,KAAO0C,EAAgCD,GAC9CV,EAAiBL,EAAoBS,EAAYpnR,EAAU7O,EACpF,CCrFA,IAAI,EAAY,CAAC,OAAQ,iBAAkB,mBAAoB,qBAAsB,uBAwBrF,SAAS+O,EAAM+oH,EAAKy/J,EAAW13R,GAC7B,IAAK,IAAI7E,EAAIu8R,EAAUtxR,OAAS,EAAGjL,GAAK,EAAGA,IAAK,CAC9C,IAAIs6B,EAASiiQ,EAAUv8R,GAAG88H,GAC1B,GAAIxiG,EAAQ,OAAOA,CACrB,CAEA,OAAO,SAAUzmB,EAAU7O,GACzB,MAAM,IAAIiB,MAAM,gCAAkC62H,EAAM,QAAUj4H,EAAO,uCAAyCG,EAAQ4zR,qBAAuB,IACnJ,CACF,CAEA,SAAS4D,EAAYz8R,EAAG+1B,GACtB,OAAO/1B,IAAM+1B,CACf,CAIO,SAAS2mQ,EAAcC,GAC5B,IAAIn8R,OAAiB,IAAVm8R,EAAmB,CAAC,EAAIA,EAC/BC,EAAkBp8R,EAAKq8R,WACvBA,OAAiC,IAApBD,EAA6B7E,EAAkB6E,EAC5DE,EAAwBt8R,EAAKu8R,yBAC7BA,OAAqD,IAA1BD,EAAmC,EAAkCA,EAChGE,EAAwBx8R,EAAKy8R,4BAC7BA,OAAwD,IAA1BD,EAAmC,EAAqCA,EACtGE,EAAwB18R,EAAK28R,oBAC7BA,OAAgD,IAA1BD,EAAmC,EAA6BA,EACtFE,EAAuB58R,EAAKw3R,gBAC5BA,OAA2C,IAAzBoF,EAAkC,EAAyBA,EAEjF,OAAO,SAAiBtC,EAAiBL,EAAoBS,EAAY/0R,QACzD,IAAVA,IACFA,EAAQ,CAAC,GAGX,IAAIuC,EAAQvC,EACRk3R,EAAa30R,EAAMqwR,KACnBA,OAAsB,IAAfsE,GAA+BA,EACtCC,EAAuB50R,EAAMgzR,eAC7BA,OAA0C,IAAzB4B,EAAkCb,EAAca,EACjEC,EAAwB70R,EAAMizR,iBAC9BA,OAA6C,IAA1B4B,EAAmCtxN,EAAesxN,EACrEC,EAAwB90R,EAAMkzR,mBAC9BA,OAA+C,IAA1B4B,EAAmCvxN,EAAeuxN,EACvEC,EAAwB/0R,EAAM0yR,oBAC9BA,OAAgD,IAA1BqC,EAAmCxxN,EAAewxN,EACxEC,GAAe,OAA8Bh1R,EAAO,GAEpD2zR,EAAsBroR,EAAM8mR,EAAiBiC,EAA0B,mBACvET,EAAyBtoR,EAAMymR,EAAoBwC,EAA6B,sBAChFV,EAAiBvoR,EAAMknR,EAAYiC,EAAqB,cAC5D,OAAON,EAAW7E,GAAiB,OAAS,CAE1CG,WAAY,UAEZ38E,eAAgB,SAAwB12M,GACtC,MAAO,WAAaA,EAAO,GAC7B,EAEAyyR,yBAA0Bj4K,QAAQw7K,GAElCuB,oBAAqBA,EACrBC,uBAAwBA,EACxBC,eAAgBA,EAChBxD,KAAMA,EACN2C,eAAgBA,EAChBC,iBAAkBA,EAClBC,mBAAoBA,EACpBR,oBAAqBA,GACpBsC,GACL,CACF,CACA,MAA4BhB,IC/ErB,SAAS,IAOd,OANmB,IAAA5jC,YAAWq8B,EAOhC,CCjBO,SAASwI,EAAgBrsP,QACd,IAAZA,IACFA,EAAU6jP,GAGZ,IAAIyI,EAAkBtsP,IAAY6jP,EAAoB,EAAyB,WAC7E,OAAO,IAAAr8B,YAAWxnN,EACpB,EACA,OAAO,WAIL,OAHuBssP,IACMhtR,KAG/B,CACF,CAiBO,IAAI,EAAwB+sR,IChC5B,SAASE,EAAmBvsP,QACjB,IAAZA,IACFA,EAAU6jP,GAGZ,IAAIpmR,EAAWuiC,IAAY6jP,EAAoB,EAAkBwI,EAAgBrsP,GACjF,OAAO,WAEL,OADYviC,IACC+E,QACf,CACF,CAuBO,IAAIC,EAA2B8pR,ICpClCC,EAAc,SAAqB99R,EAAG+1B,GACxC,OAAO/1B,IAAM+1B,CACf,EAyFO,SAASgoQ,EAAmBzsP,QACjB,IAAZA,IACFA,EAAU6jP,GAGZ,IAAIyI,EAAkBtsP,IAAY6jP,EAAoB,EAAyB,WAC7E,OAAO,IAAAr8B,YAAWxnN,EACpB,EACA,OAAO,SAAqBwsE,EAAUkgL,QACjB,IAAfA,IACFA,EAAaF,GAiBf,IAAIG,EAAmBL,IAInBM,EAtHR,SAA6CpgL,EAAUkgL,EAAYptR,EAAOutR,GACxE,IAaID,EAVAE,GAHc,IAAAnmH,aAAW,SAAUvrH,GACrC,OAAOA,EAAI,CACb,GAAG,GAC2B,GAE1BkpO,GAAe,IAAAp8C,UAAQ,WACzB,OAAOg8C,EAAmB5kR,EAAOutR,EACnC,GAAG,CAACvtR,EAAOutR,IACPE,GAAkC,IAAA7uQ,UAClC8uQ,GAAiB,IAAA9uQ,UACjBqoQ,GAAmB,IAAAroQ,UACnB+uQ,GAAsB,IAAA/uQ,UACtBgvQ,EAAa5tR,EAAM5B,WAGvB,IACE,GAAI8uG,IAAawgL,EAAe5uQ,SAAW8uQ,IAAe3G,EAAiBnoQ,SAAW2uQ,EAAgC3uQ,QAAS,CAC7H,IAAI+uQ,EAAmB3gL,EAAS0gL,GAK9BN,OAHkCr5R,IAAhC05R,EAAoB7uQ,SAA0BsuQ,EAAWS,EAAkBF,EAAoB7uQ,SAGjF6uQ,EAAoB7uQ,QAFpB+uQ,CAIpB,MACEP,EAAgBK,EAAoB7uQ,OAExC,CAAE,MAAOhmB,GAKP,MAJI20R,EAAgC3uQ,UAClChmB,EAAI9D,SAAW,4DAA8Dy4R,EAAgC3uQ,QAAQ8wC,MAAQ,QAGzH92D,CACR,CA2CA,OAzCAq5L,GAA0B,WACxBu7F,EAAe5uQ,QAAUouF,EACzB+5K,EAAiBnoQ,QAAU8uQ,EAC3BD,EAAoB7uQ,QAAUwuQ,EAC9BG,EAAgC3uQ,aAAU7qB,CAC5C,IACAk+L,GAA0B,WACxB,SAAS40F,IACP,IACE,IAAI+G,EAAgB9tR,EAAM5B,WAE1B,GAAI0vR,IAAkB7G,EAAiBnoQ,QACrC,OAGF,IAAIivQ,EAAoBL,EAAe5uQ,QAAQgvQ,GAE/C,GAAIV,EAAWW,EAAmBJ,EAAoB7uQ,SACpD,OAGF6uQ,EAAoB7uQ,QAAUivQ,EAC9B9G,EAAiBnoQ,QAAUgvQ,CAC7B,CAAE,MAAOh1R,GAKP20R,EAAgC3uQ,QAAUhmB,CAC5C,CAEA00R,GACF,CAKA,OAHAxI,EAAaC,cAAgB8B,EAC7B/B,EAAaE,eACb6B,IACO,WACL,OAAO/B,EAAaO,gBACtB,CACF,GAAG,CAACvlR,EAAOglR,IACJsI,CACT,CAwCwBU,CAAoC9gL,EAAUkgL,EAHtDC,EAAiBrtR,MACZqtR,EAAiBrI,cAIlC,OADA,IAAAiJ,eAAcX,GACPA,CACT,CACF,CAyBO,IhBtJiCY,EgBsJ7B7xR,EAA2B8wR,I,WhBtJEe,EiBF/B,2BjBGA1J,EAAQ0J,C,sCkBAA/oQ,EAAE,MAAMlI,EAAE,MAAMqjD,EAAE,MAAMljE,EAAE,MAAMk/C,EAAE,MAAMoqE,EAAE,MAAMp4B,EAAE,MAAM3gC,EAAE,MAAM26J,EAAE,MAAM90M,EAAE,MAAMuoC,EAAE,MAAMntB,EAAE,MAAMkpO,EAAE,MAAM9nM,EAAE,MAAMqgM,EAAE,MAAMp9I,EAAE,MAAMy9I,EAAE;;;;;;;;GACnJ,GAAG,mBAAoB/D,QAAQA,OAAOj1B,IAAI,CAAC,IAAIltK,EAAEmiM,OAAOj1B,IAAIvyM,EAAEqlC,EAAE,iBAAiBvtC,EAAEutC,EAAE,gBAAgB8V,EAAE9V,EAAE,kBAAkBptD,EAAEotD,EAAE,qBAAqBlO,EAAEkO,EAAE,kBAAkBk8D,EAAEl8D,EAAE,kBAAkB8jC,EAAE9jC,EAAE,iBAAiBmD,EAAEnD,EAAE,qBAAqB89J,EAAE99J,EAAE,kBAAkBh3C,EAAEg3C,EAAE,uBAAuBzO,EAAEyO,EAAE,cAAc57B,EAAE47B,EAAE,cAAcstM,EAAEttM,EAAE,eAAewF,EAAExF,EAAE,sBAAsB6lM,EAAE7lM,EAAE,qBAAqByoD,EAAEzoD,EAAE,0BAA0BkmM,EAAElmM,EAAE,sBAAsB,CACjc,SAASF,EAAEl7D,GAAG,GAAG,iBAAkBA,GAAG,OAAOA,EAAE,CAAC,IAAIm2B,EAAEn2B,EAAE0zR,SAAS,OAAOv9P,GAAG,KAAKJ,EAAE,OAAO/1B,EAAEA,EAAEoF,MAAQ,KAAK8rE,EAAE,KAAKhkB,EAAE,KAAKl/C,EAAE,KAAKkrN,EAAE,KAAK90M,EAAE,OAAOpkB,EAAE,QAAQ,OAAOA,EAAEA,GAAGA,EAAE0zR,UAAY,KAAKx0L,EAAE,KAAK3gC,EAAE,KAAK/+B,EAAE,KAAKmtB,EAAE,KAAK2qE,EAAE,OAAOt3H,EAAE,QAAQ,OAAOm2B,GAAG,KAAKtI,EAAE,OAAOsI,EAAE,CAAC,CACxJx2B,EAAQ40R,kBAAkB,SAASv0R,GAAG,OAAOk7D,EAAEl7D,KAAKk/F,CAAC,C,oCCR7Jt/F,EAAOD,QAAU,EAAjB,K,oCCDFmc,OAAO66D,eAAeh3E,EAAS,aAAc,CAC3C2U,OAAO,IAET3U,EAAQo/R,UAAYp/R,EAAQq/R,eAAY,EAExC,IAAInwD,EAAS+9B,EAAuB,EAAQ,OAExCqyB,EAAcryB,EAAuB,EAAQ,OAE7CsyB,EAAoB,EAAQ,MAEhC,SAAStyB,EAAuB/gM,GAAO,OAAOA,GAAOA,EAAI0wL,WAAa1wL,EAAM,CAAE,QAAWA,EAAO,CAEhG,SAASqmM,EAAQrmM,GAAmV,OAAtOqmM,EAArD,mBAAX3U,QAAoD,iBAApBA,OAAOS,SAAmC,SAAiBnyL,GAAO,cAAcA,CAAK,EAAsB,SAAiBA,GAAO,OAAOA,GAAyB,mBAAX0xL,QAAyB1xL,EAAI7qC,cAAgBu8N,QAAU1xL,IAAQ0xL,OAAOz9N,UAAY,gBAAkB+rC,CAAK,EAAYqmM,EAAQrmM,EAAM,CAEzX,SAASE,IAA2Q,OAA9PA,EAAWjwD,OAAOC,QAAU,SAAUpH,GAAU,IAAK,IAAI1U,EAAI,EAAGA,EAAImC,UAAU8I,OAAQjL,IAAK,CAAE,IAAIghH,EAAS7+G,UAAUnC,GAAI,IAAK,IAAIwd,KAAOwjG,EAAcnlG,OAAOgkB,UAAUoP,eAAenpC,KAAKk7G,EAAQxjG,KAAQ9I,EAAO8I,GAAOwjG,EAAOxjG,GAAU,CAAE,OAAO9I,CAAQ,EAAUo3D,EAAS5pE,MAAMhC,KAAMiC,UAAY,CAE5T,SAASgqQ,EAAQ51I,EAAQ61I,GAAkB,IAAI1qO,EAAO7lB,OAAO6lB,KAAK60F,GAAS,GAAI16G,OAAOqsL,sBAAuB,CAAE,IAAImkE,EAAUxwP,OAAOqsL,sBAAsB3xE,GAAa61I,IAAgBC,EAAUA,EAAQj6O,QAAO,SAAUk6O,GAAO,OAAOzwP,OAAOkhH,yBAAyBxG,EAAQ+1I,GAAKzpE,UAAY,KAAInhK,EAAKv9B,KAAKjC,MAAMw/B,EAAM2qO,EAAU,CAAE,OAAO3qO,CAAM,CAEpV,SAASxoB,EAAcxE,GAAU,IAAK,IAAI1U,EAAI,EAAGA,EAAImC,UAAU8I,OAAQjL,IAAK,CAAE,IAAIghH,EAAyB,MAAhB7+G,UAAUnC,GAAamC,UAAUnC,GAAK,CAAC,EAAOA,EAAI,EAAKmsQ,EAAQtwP,OAAOmlG,IAAS,GAAM/yC,SAAQ,SAAUzwD,GAAO/I,EAAgBC,EAAQ8I,EAAKwjG,EAAOxjG,GAAO,IAAe3B,OAAO2wP,0BAA6B3wP,OAAO4wP,iBAAiB/3P,EAAQmH,OAAO2wP,0BAA0BxrJ,IAAmBmrJ,EAAQtwP,OAAOmlG,IAAS/yC,SAAQ,SAAUzwD,GAAO3B,OAAO66D,eAAehiE,EAAQ8I,EAAK3B,OAAOkhH,yBAAyB/b,EAAQxjG,GAAO,GAAM,CAAE,OAAO9I,CAAQ,CAErhB,SAASD,EAAgBm3D,EAAKpuD,EAAKnJ,GAAiK,OAApJmJ,KAAOouD,EAAO/vD,OAAO66D,eAAe9K,EAAKpuD,EAAK,CAAEnJ,MAAOA,EAAOwuL,YAAY,EAAMthF,cAAc,EAAMD,UAAU,IAAkB11C,EAAIpuD,GAAOnJ,EAAgBu3D,CAAK,CAEhN,SAAS/lE,EAAgBy1E,EAAUu4L,GAAe,KAAMv4L,aAAoBu4L,GAAgB,MAAM,IAAIzzO,UAAU,oCAAwC,CAExJ,SAASsyO,EAAkBh+P,EAAQtC,GAAS,IAAK,IAAIpS,EAAI,EAAGA,EAAIoS,EAAMnH,OAAQjL,IAAK,CAAE,IAAIs7M,EAAalpM,EAAMpS,GAAIs7M,EAAWzY,WAAayY,EAAWzY,aAAc,EAAOyY,EAAW/5F,cAAe,EAAU,UAAW+5F,IAAYA,EAAWh6F,UAAW,GAAMzlG,OAAO66D,eAAehiE,EAAQ4mM,EAAW99L,IAAK89L,EAAa,CAAE,CAE5T,SAASv1M,EAAa8tQ,EAAaC,EAAYC,GAAmJ,OAAhID,GAAYpB,EAAkBmB,EAAYh0O,UAAWi0O,GAAiBC,GAAarB,EAAkBmB,EAAaE,GAAqBF,CAAa,CAEtN,SAASruQ,EAAUmuQ,EAAUC,GAAc,GAA0B,mBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAIxzO,UAAU,sDAAyDuzO,EAAS9zO,UAAYhkB,OAAOszB,OAAOykO,GAAcA,EAAW/zO,UAAW,CAAEkB,YAAa,CAAE1sB,MAAOs/P,EAAUryJ,UAAU,EAAMC,cAAc,KAAeqyJ,GAAYP,EAAgBM,EAAUC,EAAa,CAEhY,SAASP,EAAgBnX,EAAG38N,GAA+G,OAA1G8zO,EAAkBx3P,OAAOilB,gBAAkB,SAAyBo7N,EAAG38N,GAAsB,OAAjB28N,EAAE9hI,UAAY76F,EAAU28N,CAAG,EAAUmX,EAAgBnX,EAAG38N,EAAI,CAEzK,SAAS75B,EAAaitQ,GAAW,IAAIusB,EAMrC,WAAuC,GAAuB,oBAAZpsB,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAUC,KAAM,OAAO,EAAO,GAAqB,mBAAVtY,MAAsB,OAAO,EAAM,IAAiF,OAA3E9qM,KAAK/vB,UAAUva,SAASxf,KAAKgtQ,QAAQC,UAAUnjN,KAAM,IAAI,WAAa,MAAY,CAAM,CAAE,MAAO7hD,GAAK,OAAO,CAAO,CAAE,CANlQklQ,GAA6B,OAAO,WAAkC,IAAsC34O,EAAlCs4O,EAAQC,EAAgBF,GAAkB,GAAIusB,EAA2B,CAAE,IAAIhsB,EAAYL,EAAgB3yQ,MAAM6gC,YAAazG,EAASw4O,QAAQC,UAAUH,EAAOzwQ,UAAW+wQ,EAAY,MAAS54O,EAASs4O,EAAM1wQ,MAAMhC,KAAMiC,WAAc,OAEpX,SAAoClC,EAAM6F,GAAQ,GAAIA,IAA2B,WAAlBmsQ,EAAQnsQ,IAAsC,mBAATA,GAAwB,OAAOA,EAAQ,OAE3I,SAAgC7F,GAAQ,QAAa,IAATA,EAAmB,MAAM,IAAImzQ,eAAe,6DAAgE,OAAOnzQ,CAAM,CAFnB07E,CAAuB17E,EAAO,CAF2MkzQ,CAA2BjzQ,KAAMo6B,EAAS,CAAG,CAQxa,SAASu4O,EAAgB3W,GAAwJ,OAAnJ2W,EAAkBh3P,OAAOilB,eAAiBjlB,OAAOw6D,eAAiB,SAAyB6lL,GAAK,OAAOA,EAAE9hI,WAAav+G,OAAOw6D,eAAe6lL,EAAI,EAAU2W,EAAgB3W,EAAI,CAE5M,IAAI6iC,EAAyB,SAAUI,GACrC35R,EAAUu5R,EAAWI,GAErB,IAAI15R,EAASC,EAAaq5R,GAE1B,SAASA,IAGP,OAFAl5R,EAAgB3F,KAAM6+R,GAEft5R,EAAOvD,MAAMhC,KAAMiC,UAC5B,CAuDA,OArDA4D,EAAag5R,EAAW,CAAC,CACvBvhR,IAAK,eACLnJ,MAAO,SAAsBrP,EAAS+I,GAChCA,GACFA,EAAE0C,iBAGJvQ,KAAKkS,MAAMgtR,aAAap6R,EAAS+I,EACnC,GACC,CACDyP,IAAK,SACLnJ,MAAO,WACL,IAAIgrR,EAAc,CAChB,eAAe,EACf,cAAc,GAEZC,EAAcp/R,KAAKk/R,aAAajtK,KAAKjyH,KAAM,CAC7CyF,QAAS,cAGNzF,KAAKkS,MAAMy2E,WAAyC,IAA5B3oF,KAAKkS,MAAMmtR,cAAsBr/R,KAAKkS,MAAMotR,YAAct/R,KAAKkS,MAAM42E,gBAChGq2M,EAAY,mBAAoB,EAChCC,EAAc,MAGhB,IAAIG,EAAiB,CACnBjiR,IAAK,IACL,YAAa,OACb1I,WAAW,EAAIkqR,EAAqB,SAAGK,GACvCjpR,MAAO,CACLib,QAAS,SAEXvjB,QAASwxR,GAEPI,EAAc,CAChBH,aAAcr/R,KAAKkS,MAAMmtR,aACzBC,WAAYt/R,KAAKkS,MAAMotR,YAazB,OATIt/R,KAAKkS,MAAMutR,UACY/wD,EAAgB,QAAE95B,aAAa50M,KAAKkS,MAAMutR,UAAWzmR,EAAcA,EAAc,CAAC,EAAGumR,GAAiBC,IAEtG9wD,EAAgB,QAAE9jK,cAAc,SAAUgB,EAAS,CAC1EtuD,IAAK,IACLrY,KAAM,UACLs6R,GAAiB,IAAK,WAI7B,KAGKV,CACT,CAjE6B,CAiE3BnwD,EAAgB,QAAE/Z,eAEpBn1N,EAAQq/R,UAAYA,EAEpB,IAAID,EAAyB,SAAUc,GACrCp6R,EAAUs5R,EAAWc,GAErB,IAAIC,EAAUn6R,EAAao5R,GAE3B,SAASA,IAGP,OAFAj5R,EAAgB3F,KAAM4+R,GAEfe,EAAQ39R,MAAMhC,KAAMiC,UAC7B,CAuDA,OArDA4D,EAAa+4R,EAAW,CAAC,CACvBthR,IAAK,eACLnJ,MAAO,SAAsBrP,EAAS+I,GAChCA,GACFA,EAAE0C,iBAGJvQ,KAAKkS,MAAMgtR,aAAap6R,EAAS+I,EACnC,GACC,CACDyP,IAAK,SACLnJ,MAAO,WACL,IAAIyrR,EAAc,CAChB,eAAe,EACf,cAAc,GAEZC,EAAc7/R,KAAKk/R,aAAajtK,KAAKjyH,KAAM,CAC7CyF,QAAS,UAGN,EAAIs5R,EAAkBe,WAAW9/R,KAAKkS,SACzC0tR,EAAY,mBAAoB,EAChCC,EAAc,MAGhB,IAAIE,EAAiB,CACnBziR,IAAK,IACL,YAAa,OACb1I,WAAW,EAAIkqR,EAAqB,SAAGc,GACvC1pR,MAAO,CACLib,QAAS,SAEXvjB,QAASiyR,GAEPL,EAAc,CAChBH,aAAcr/R,KAAKkS,MAAMmtR,aACzBC,WAAYt/R,KAAKkS,MAAMotR,YAazB,OATIt/R,KAAKkS,MAAM8tR,UACYtxD,EAAgB,QAAE95B,aAAa50M,KAAKkS,MAAM8tR,UAAWhnR,EAAcA,EAAc,CAAC,EAAG+mR,GAAiBP,IAEtG9wD,EAAgB,QAAE9jK,cAAc,SAAUgB,EAAS,CAC1EtuD,IAAK,IACLrY,KAAM,UACL86R,GAAiB,IAAK,OAI7B,KAGKnB,CACT,CAjE6B,CAiE3BlwD,EAAgB,QAAE/Z,eAEpBn1N,EAAQo/R,UAAYA,C,oCCnLpBjjR,OAAO66D,eAAeh3E,EAAS,aAAc,CAC3C2U,OAAO,IAET3U,EAAiB,aAAI,EAErB,IAEgCksE,EAF5BgjK,GAE4BhjK,EAFI,EAAQ,QAESA,EAAI0wL,WAAa1wL,EAAM,CAAE,QAAWA,GAEzF,IA4DIkgM,EA5De,CACjBq0B,eAAe,EACfC,gBAAgB,EAChBC,YAAa,KACbC,WAAY,SAAoBC,GAC9B,OAAoB3xD,EAAgB,QAAE9jK,cAAc,KAAM,CACxD10D,MAAO,CACLib,QAAS,UAEVkvQ,EACL,EACAp3M,QAAQ,EACRq3M,UAAU,EACVC,cAAe,IACfr3M,aAAc,KACdN,YAAY,EACZC,cAAe,OACfj0E,UAAW,GACX4rR,QAAS,OACTC,aAAc,SAAsB3gS,GAClC,OAAoB4uO,EAAgB,QAAE9jK,cAAc,SAAU,KAAM9qE,EAAI,EAC1E,EACAugS,MAAM,EACNK,UAAW,aACXzkN,WAAW,EACXwlI,OAAQ,SACRk/E,aAAc,IACdC,MAAM,EACNC,eAAe,EACfl4M,UAAU,EACVm4M,aAAc,EACdC,SAAU,KACVf,UAAW,KACXgB,OAAQ,KACRC,OAAQ,KACRC,gBAAiB,KACjBC,SAAU,KACVC,kBAAkB,EAClBC,cAAc,EACdC,cAAc,EACd7B,UAAW,KACX8B,WAAY,KACZzlP,KAAM,EACN0lP,KAAK,EACLC,MAAO,MACPC,aAAc,EACdC,eAAgB,EAChB74M,aAAc,EACdE,MAAO,IACPD,OAAO,EACP64M,WAAY,KACZC,cAAc,EACdC,WAAW,EACXC,eAAgB,EAChBC,QAAQ,EACRC,cAAc,EACdC,eAAe,EACfC,UAAU,EACVC,gBAAgB,GAGlB5iS,EAAiB,QAAIosQ,C,oCCtErBjwP,OAAO66D,eAAeh3E,EAAS,aAAc,CAC3C2U,OAAO,IAET3U,EAAQ6iS,UAAO,EAEf,IAAI3zD,EAAS+9B,EAAuB,EAAQ,OAExCqyB,EAAcryB,EAAuB,EAAQ,OAE7CsyB,EAAoB,EAAQ,MAEhC,SAAStyB,EAAuB/gM,GAAO,OAAOA,GAAOA,EAAI0wL,WAAa1wL,EAAM,CAAE,QAAWA,EAAO,CAEhG,SAASqmM,EAAQrmM,GAAmV,OAAtOqmM,EAArD,mBAAX3U,QAAoD,iBAApBA,OAAOS,SAAmC,SAAiBnyL,GAAO,cAAcA,CAAK,EAAsB,SAAiBA,GAAO,OAAOA,GAAyB,mBAAX0xL,QAAyB1xL,EAAI7qC,cAAgBu8N,QAAU1xL,IAAQ0xL,OAAOz9N,UAAY,gBAAkB+rC,CAAK,EAAYqmM,EAAQrmM,EAAM,CAEzX,SAASugM,EAAQ51I,EAAQ61I,GAAkB,IAAI1qO,EAAO7lB,OAAO6lB,KAAK60F,GAAS,GAAI16G,OAAOqsL,sBAAuB,CAAE,IAAImkE,EAAUxwP,OAAOqsL,sBAAsB3xE,GAAa61I,IAAgBC,EAAUA,EAAQj6O,QAAO,SAAUk6O,GAAO,OAAOzwP,OAAOkhH,yBAAyBxG,EAAQ+1I,GAAKzpE,UAAY,KAAInhK,EAAKv9B,KAAKjC,MAAMw/B,EAAM2qO,EAAU,CAAE,OAAO3qO,CAAM,CAIpV,SAASjtB,EAAgBm3D,EAAKpuD,EAAKnJ,GAAiK,OAApJmJ,KAAOouD,EAAO/vD,OAAO66D,eAAe9K,EAAKpuD,EAAK,CAAEnJ,MAAOA,EAAOwuL,YAAY,EAAMthF,cAAc,EAAMD,UAAU,IAAkB11C,EAAIpuD,GAAOnJ,EAAgBu3D,CAAK,CAIhN,SAAS8mM,EAAkBh+P,EAAQtC,GAAS,IAAK,IAAIpS,EAAI,EAAGA,EAAIoS,EAAMnH,OAAQjL,IAAK,CAAE,IAAIs7M,EAAalpM,EAAMpS,GAAIs7M,EAAWzY,WAAayY,EAAWzY,aAAc,EAAOyY,EAAW/5F,cAAe,EAAU,UAAW+5F,IAAYA,EAAWh6F,UAAW,GAAMzlG,OAAO66D,eAAehiE,EAAQ4mM,EAAW99L,IAAK89L,EAAa,CAAE,CAM5T,SAAS+3D,EAAgBnX,EAAG38N,GAA+G,OAA1G8zO,EAAkBx3P,OAAOilB,gBAAkB,SAAyBo7N,EAAG38N,GAAsB,OAAjB28N,EAAE9hI,UAAY76F,EAAU28N,CAAG,EAAUmX,EAAgBnX,EAAG38N,EAAI,CAEzK,SAAS75B,EAAaitQ,GAAW,IAAIusB,EAMrC,WAAuC,GAAuB,oBAAZpsB,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAUC,KAAM,OAAO,EAAO,GAAqB,mBAAVtY,MAAsB,OAAO,EAAM,IAAiF,OAA3E9qM,KAAK/vB,UAAUva,SAASxf,KAAKgtQ,QAAQC,UAAUnjN,KAAM,IAAI,WAAa,MAAY,CAAM,CAAE,MAAO7hD,GAAK,OAAO,CAAO,CAAE,CANlQklQ,GAA6B,OAAO,WAAkC,IAAsC34O,EAAlCs4O,EAAQC,EAAgBF,GAAkB,GAAIusB,EAA2B,CAAE,IAAIhsB,EAAYL,EAAgB3yQ,MAAM6gC,YAAazG,EAASw4O,QAAQC,UAAUH,EAAOzwQ,UAAW+wQ,EAAY,MAAS54O,EAASs4O,EAAM1wQ,MAAMhC,KAAMiC,WAAc,OAEpX,SAAoClC,EAAM6F,GAAQ,GAAIA,IAA2B,WAAlBmsQ,EAAQnsQ,IAAsC,mBAATA,GAAwB,OAAOA,EAAQ,OAE3I,SAAgC7F,GAAQ,QAAa,IAATA,EAAmB,MAAM,IAAImzQ,eAAe,6DAAgE,OAAOnzQ,CAAM,CAFnB07E,CAAuB17E,EAAO,CAF2MkzQ,CAA2BjzQ,KAAMo6B,EAAS,CAAG,CAQxa,SAASu4O,EAAgB3W,GAAwJ,OAAnJ2W,EAAkBh3P,OAAOilB,eAAiBjlB,OAAOw6D,eAAiB,SAAyB6lL,GAAK,OAAOA,EAAE9hI,WAAav+G,OAAOw6D,eAAe6lL,EAAI,EAAU2W,EAAgB3W,EAAI,CAE5M,IAYIqmC,EAAoB,SAAUpD,IA1BlC,SAAmBxrB,EAAUC,GAAc,GAA0B,mBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAIxzO,UAAU,sDAAyDuzO,EAAS9zO,UAAYhkB,OAAOszB,OAAOykO,GAAcA,EAAW/zO,UAAW,CAAEkB,YAAa,CAAE1sB,MAAOs/P,EAAUryJ,UAAU,EAAMC,cAAc,KAAeqyJ,GAAYP,EAAgBM,EAAUC,EAAa,CA2B9XpuQ,CAAU+8R,EAAMpD,GAEhB,IA/BoBtrB,EAAaC,EAAYC,EA+BzCtuQ,EAASC,EAAa68R,GAE1B,SAASA,IAGP,OAxCJ,SAAyBjnN,EAAUu4L,GAAe,KAAMv4L,aAAoBu4L,GAAgB,MAAM,IAAIzzO,UAAU,oCAAwC,CAsCpJv6B,CAAgB3F,KAAMqiS,GAEf98R,EAAOvD,MAAMhC,KAAMiC,UAC5B,CAmEA,OAxGoB0xQ,EAuCP0uB,EAvCoBzuB,EAuCd,CAAC,CAClBt2P,IAAK,eACLnJ,MAAO,SAAsBrP,EAAS+I,GAGpCA,EAAE0C,iBACFvQ,KAAKkS,MAAMgtR,aAAap6R,EAC1B,GACC,CACDwY,IAAK,SACLnJ,MAAO,WAuBL,IAtBA,IAlCiCmuR,EAkC7B7iN,EAAcz/E,KAAKkS,MACnBstC,EAAeigC,EAAYjgC,aAC3B+iP,EAAc9iN,EAAY8iN,YAC1Bl5N,EAAeoW,EAAYpW,aAC3Bsf,EAAWlJ,EAAYkJ,SACvBg5M,EAAiBliN,EAAYkiN,eAC7B74M,EAAerJ,EAAYqJ,aAC3Bw2M,EAAa7/M,EAAY6/M,WACzBD,EAAe5/M,EAAY4/M,aAC3BmD,GA3C6BF,EA2CN,CACzBhD,WAAYA,EACZqC,eAAgBA,EAChB74M,aAAcA,EACdH,SAAUA,IA5CPA,SACAxzC,KAAKukC,KAAK4oN,EAAKhD,WAAagD,EAAKX,gBAEjCxsP,KAAKukC,MAAM4oN,EAAKhD,WAAagD,EAAKx5M,cAAgBw5M,EAAKX,gBAAkB,EA2C1Ec,EAAc,CAChBjjP,aAAcA,EACd+iP,YAAaA,EACbl5N,aAAcA,GAEZg3N,EAAO,GAEFvgS,EAAI,EAAGA,EAAI0iS,EAAU1iS,IAAK,CACjC,IAAI4iS,GAAe5iS,EAAI,GAAK6hS,EAAiB,EAEzCgB,EAAah6M,EAAW+5M,GAAc,EAAI3D,EAAkBriD,OAAOgmD,EAAa,EAAGpD,EAAa,GAEhGsD,EAAaD,GAAchB,EAAiB,GAE5CkB,EAAYl6M,EAAWi6M,GAAa,EAAI7D,EAAkBriD,OAAOkmD,EAAY,EAAGtD,EAAa,GAC7F1qR,GAAY,EAAIkqR,EAAqB,SAAG,CAC1C,eAAgBn2M,EAAW02M,GAAgBwD,GAAaxD,GAAgBsD,EAAatD,IAAiBwD,IAEpGC,EAAa,CACfr9R,QAAS,OACTwV,MAAOnb,EACP6hS,eAAgBA,EAChBtC,aAAcA,GAEZzxR,EAAU5N,KAAKk/R,aAAajtK,KAAKjyH,KAAM8iS,GAC3CzC,EAAOA,EAAKh/R,OAAqBqtO,EAAgB,QAAE9jK,cAAc,KAAM,CACrEttD,IAAKxd,EACL8U,UAAWA,GACG85N,EAAgB,QAAE95B,aAAa50M,KAAKkS,MAAMuuR,aAAa3gS,GAAI,CACzE8N,QAASA,KAEb,CAEA,OAAoB8gO,EAAgB,QAAE95B,aAAa50M,KAAKkS,MAAMkuR,WAAWC,GA1G/E,SAAuB7rR,GAAU,IAAK,IAAI1U,EAAI,EAAGA,EAAImC,UAAU8I,OAAQjL,IAAK,CAAE,IAAIghH,EAAyB,MAAhB7+G,UAAUnC,GAAamC,UAAUnC,GAAK,CAAC,EAAOA,EAAI,EAAKmsQ,EAAQtwP,OAAOmlG,IAAS,GAAM/yC,SAAQ,SAAUzwD,GAAO/I,EAAgBC,EAAQ8I,EAAKwjG,EAAOxjG,GAAO,IAAe3B,OAAO2wP,0BAA6B3wP,OAAO4wP,iBAAiB/3P,EAAQmH,OAAO2wP,0BAA0BxrJ,IAAmBmrJ,EAAQtwP,OAAOmlG,IAAS/yC,SAAQ,SAAUzwD,GAAO3B,OAAO66D,eAAehiE,EAAQ8I,EAAK3B,OAAOkhH,yBAAyB/b,EAAQxjG,GAAO,GAAM,CAAE,OAAO9I,CAAQ,CA0G/bwE,CAAc,CAC5FpE,UAAW5U,KAAKkS,MAAMwuR,WACrB+B,GACL,IArG8D7uB,GAAYpB,EAAkBmB,EAAYh0O,UAAWi0O,GAAiBC,GAAarB,EAAkBmB,EAAaE,GAwG3KwuB,CACT,CA7EwB,CA6EtB3zD,EAAgB,QAAE/Z,eAEpBn1N,EAAQ6iS,KAAOA,C,wCC7HiB32N,EAJhClsE,EAAA,OAAqB,EAMrB,IAAIosQ,IAF4BlgM,EAFK,EAAQ,QAEQA,EAAI0wL,WAAa1wL,EAAM,CAAE,QAAWA,IAEzD,QAChClsE,EAAA,EAAqBosQ,C,kCCVrBjwP,OAAO66D,eAAeh3E,EAAS,aAAc,CAC3C2U,OAAO,IAET3U,EAAiB,aAAI,EACrB,IA+BIosQ,EA/Be,CACjBm3B,WAAW,EACXC,YAAa,KACbC,iBAAkB,EAClBC,YAAa,KACb7D,aAAc,EACdtzF,UAAW,EACXo3F,UAAU,EACVC,aAAa,EACb/+J,aAAa,EACbg/J,eAAgB,GAChBC,WAAY,KACZC,UAAW,KACXC,WAAW,EACXlE,WAAY,KACZmE,YAAa,KACbr6E,WAAY,KACZs6E,UAAW,KACXC,QAAQ,EAERC,SAAS,EACTC,YAAa,CACXC,OAAQ,EACRC,OAAQ,EACRC,KAAM,EACNC,KAAM,GAERC,WAAY,CAAC,EACbC,WAAY,EACZC,YAAa,GAGf5kS,EAAiB,QAAIosQ,C,oCCpCrBjwP,OAAO66D,eAAeh3E,EAAS,aAAc,CAC3C2U,OAAO,IAET3U,EAAQ6kS,iBAAc,EAEtB,IAAI31D,EAAS+9B,EAAuB,EAAQ,OAExC63B,EAAgB73B,EAAuB,EAAQ,OAE/C83B,EAAU93B,EAAuB,EAAQ,OAEzCqyB,EAAcryB,EAAuB,EAAQ,OAE7CsyB,EAAoB,EAAQ,MAE5ByF,EAAS,EAAQ,MAEjBC,EAAQ,EAAQ,MAEhBC,EAAU,EAAQ,MAElBC,EAA0Bl4B,EAAuB,EAAQ,OAE7D,SAASA,EAAuB/gM,GAAO,OAAOA,GAAOA,EAAI0wL,WAAa1wL,EAAM,CAAE,QAAWA,EAAO,CAEhG,SAASqmM,EAAQrmM,GAAmV,OAAtOqmM,EAArD,mBAAX3U,QAAoD,iBAApBA,OAAOS,SAAmC,SAAiBnyL,GAAO,cAAcA,CAAK,EAAsB,SAAiBA,GAAO,OAAOA,GAAyB,mBAAX0xL,QAAyB1xL,EAAI7qC,cAAgBu8N,QAAU1xL,IAAQ0xL,OAAOz9N,UAAY,gBAAkB+rC,CAAK,EAAYqmM,EAAQrmM,EAAM,CAEzX,SAASE,IAA2Q,OAA9PA,EAAWjwD,OAAOC,QAAU,SAAUpH,GAAU,IAAK,IAAI1U,EAAI,EAAGA,EAAImC,UAAU8I,OAAQjL,IAAK,CAAE,IAAIghH,EAAS7+G,UAAUnC,GAAI,IAAK,IAAIwd,KAAOwjG,EAAcnlG,OAAOgkB,UAAUoP,eAAenpC,KAAKk7G,EAAQxjG,KAAQ9I,EAAO8I,GAAOwjG,EAAOxjG,GAAU,CAAE,OAAO9I,CAAQ,EAAUo3D,EAAS5pE,MAAMhC,KAAMiC,UAAY,CAE5T,SAASm6Q,EAAyBt7J,EAAQu7J,GAAY,GAAc,MAAVv7J,EAAgB,MAAO,CAAC,EAAG,IAAkExjG,EAAKxd,EAAnE0U,EAEzF,SAAuCssG,EAAQu7J,GAAY,GAAc,MAAVv7J,EAAgB,MAAO,CAAC,EAAG,IAA2DxjG,EAAKxd,EAA5D0U,EAAS,CAAC,EAAO8nQ,EAAa3gQ,OAAO6lB,KAAKs/E,GAAqB,IAAKhhH,EAAI,EAAGA,EAAIw8Q,EAAWvxQ,OAAQjL,IAAOwd,EAAMg/P,EAAWx8Q,GAAQu8Q,EAASx1O,QAAQvpB,IAAQ,IAAa9I,EAAO8I,GAAOwjG,EAAOxjG,IAAQ,OAAO9I,CAAQ,CAFhN+nQ,CAA8Bz7J,EAAQu7J,GAAuB,GAAI1gQ,OAAOqsL,sBAAuB,CAAE,IAAIw0E,EAAmB7gQ,OAAOqsL,sBAAsBlnF,GAAS,IAAKhhH,EAAI,EAAGA,EAAI08Q,EAAiBzxQ,OAAQjL,IAAOwd,EAAMk/P,EAAiB18Q,GAAQu8Q,EAASx1O,QAAQvpB,IAAQ,GAAkB3B,OAAOgkB,UAAUsoK,qBAAqBriM,KAAKk7G,EAAQxjG,KAAgB9I,EAAO8I,GAAOwjG,EAAOxjG,GAAQ,CAAE,OAAO9I,CAAQ,CAI3e,SAASy3P,EAAQ51I,EAAQ61I,GAAkB,IAAI1qO,EAAO7lB,OAAO6lB,KAAK60F,GAAS,GAAI16G,OAAOqsL,sBAAuB,CAAE,IAAImkE,EAAUxwP,OAAOqsL,sBAAsB3xE,GAAa61I,IAAgBC,EAAUA,EAAQj6O,QAAO,SAAUk6O,GAAO,OAAOzwP,OAAOkhH,yBAAyBxG,EAAQ+1I,GAAKzpE,UAAY,KAAInhK,EAAKv9B,KAAKjC,MAAMw/B,EAAM2qO,EAAU,CAAE,OAAO3qO,CAAM,CAEpV,SAASxoB,EAAcxE,GAAU,IAAK,IAAI1U,EAAI,EAAGA,EAAImC,UAAU8I,OAAQjL,IAAK,CAAE,IAAIghH,EAAyB,MAAhB7+G,UAAUnC,GAAamC,UAAUnC,GAAK,CAAC,EAAOA,EAAI,EAAKmsQ,EAAQtwP,OAAOmlG,IAAS,GAAM/yC,SAAQ,SAAUzwD,GAAO/I,EAAgBC,EAAQ8I,EAAKwjG,EAAOxjG,GAAO,IAAe3B,OAAO2wP,0BAA6B3wP,OAAO4wP,iBAAiB/3P,EAAQmH,OAAO2wP,0BAA0BxrJ,IAAmBmrJ,EAAQtwP,OAAOmlG,IAAS/yC,SAAQ,SAAUzwD,GAAO3B,OAAO66D,eAAehiE,EAAQ8I,EAAK3B,OAAOkhH,yBAAyB/b,EAAQxjG,GAAO,GAAM,CAAE,OAAO9I,CAAQ,CAIrhB,SAASg+P,EAAkBh+P,EAAQtC,GAAS,IAAK,IAAIpS,EAAI,EAAGA,EAAIoS,EAAMnH,OAAQjL,IAAK,CAAE,IAAIs7M,EAAalpM,EAAMpS,GAAIs7M,EAAWzY,WAAayY,EAAWzY,aAAc,EAAOyY,EAAW/5F,cAAe,EAAU,UAAW+5F,IAAYA,EAAWh6F,UAAW,GAAMzlG,OAAO66D,eAAehiE,EAAQ4mM,EAAW99L,IAAK89L,EAAa,CAAE,CAM5T,SAAS+3D,EAAgBnX,EAAG38N,GAA+G,OAA1G8zO,EAAkBx3P,OAAOilB,gBAAkB,SAAyBo7N,EAAG38N,GAAsB,OAAjB28N,EAAE9hI,UAAY76F,EAAU28N,CAAG,EAAUmX,EAAgBnX,EAAG38N,EAAI,CAEzK,SAAS75B,EAAaitQ,GAAW,IAAIusB,EAMrC,WAAuC,GAAuB,oBAAZpsB,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAUC,KAAM,OAAO,EAAO,GAAqB,mBAAVtY,MAAsB,OAAO,EAAM,IAAiF,OAA3E9qM,KAAK/vB,UAAUva,SAASxf,KAAKgtQ,QAAQC,UAAUnjN,KAAM,IAAI,WAAa,MAAY,CAAM,CAAE,MAAO7hD,GAAK,OAAO,CAAO,CAAE,CANlQklQ,GAA6B,OAAO,WAAkC,IAAsC34O,EAAlCs4O,EAAQC,EAAgBF,GAAkB,GAAIusB,EAA2B,CAAE,IAAIhsB,EAAYL,EAAgB3yQ,MAAM6gC,YAAazG,EAASw4O,QAAQC,UAAUH,EAAOzwQ,UAAW+wQ,EAAY,MAAS54O,EAASs4O,EAAM1wQ,MAAMhC,KAAMiC,WAAc,OAEpX,SAAoClC,EAAM6F,GAAQ,GAAIA,IAA2B,WAAlBmsQ,EAAQnsQ,IAAsC,mBAATA,GAAwB,OAAOA,EAAQ,OAAO61E,EAAuB17E,EAAO,CAF2MkzQ,CAA2BjzQ,KAAMo6B,EAAS,CAAG,CAIxa,SAASqhD,EAAuB17E,GAAQ,QAAa,IAATA,EAAmB,MAAM,IAAImzQ,eAAe,6DAAgE,OAAOnzQ,CAAM,CAIrK,SAAS4yQ,EAAgB3W,GAAwJ,OAAnJ2W,EAAkBh3P,OAAOilB,eAAiBjlB,OAAOw6D,eAAiB,SAAyB6lL,GAAK,OAAOA,EAAE9hI,WAAav+G,OAAOw6D,eAAe6lL,EAAI,EAAU2W,EAAgB3W,EAAI,CAE5M,SAASznP,EAAgBm3D,EAAKpuD,EAAKnJ,GAAiK,OAApJmJ,KAAOouD,EAAO/vD,OAAO66D,eAAe9K,EAAKpuD,EAAK,CAAEnJ,MAAOA,EAAOwuL,YAAY,EAAMthF,cAAc,EAAMD,UAAU,IAAkB11C,EAAIpuD,GAAOnJ,EAAgBu3D,CAAK,CAEhN,IAAI24N,EAA2B,SAAU1jM,IAhBzC,SAAmB8yK,EAAUC,GAAc,GAA0B,mBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAIxzO,UAAU,sDAAyDuzO,EAAS9zO,UAAYhkB,OAAOszB,OAAOykO,GAAcA,EAAW/zO,UAAW,CAAEkB,YAAa,CAAE1sB,MAAOs/P,EAAUryJ,UAAU,EAAMC,cAAc,KAAeqyJ,GAAYP,EAAgBM,EAAUC,EAAa,CAiB9XpuQ,CAAU++R,EAAa1jM,GAEvB,IArBoBgzK,EAAaC,EAAYC,EAqBzCtuQ,EAASC,EAAa6+R,GAE1B,SAASA,EAAYnyR,GACnB,IAAIxM,GA5BR,SAAyB01E,EAAUu4L,GAAe,KAAMv4L,aAAoBu4L,GAAgB,MAAM,IAAIzzO,UAAU,oCAAwC,CA8BpJv6B,CAAgB3F,KAAMqkS,GAItB9vR,EAAgBknE,EAFhB/1E,EAAQH,EAAOK,KAAK5F,KAAMkS,IAEqB,kBAAkB,SAAUgJ,GACzE,OAAOxV,EAAMosB,KAAO5W,CACtB,IAEA3G,EAAgBknE,EAAuB/1E,GAAQ,mBAAmB,SAAUwV,GAC1E,OAAOxV,EAAM4mG,MAAQpxF,CACvB,IAEA3G,EAAgBknE,EAAuB/1E,GAAQ,eAAe,WAC5D,GAAIA,EAAMwM,MAAMguR,gBAAkBx6R,EAAMosB,KAAM,CAC5C,IAAI4pB,EAAOh2C,EAAMosB,KAAKo1E,cAAc,gBAAiB7lG,OAAOqE,EAAMqH,MAAMsyR,aAAc,OAEtF35R,EAAMosB,KAAK5b,MAAM0M,QAAS,EAAIm8Q,EAAkB/qN,WAAWt4B,GAAQ,IACrE,CACF,IAEAnnC,EAAgBknE,EAAuB/1E,GAAQ,qBAAqB,WAGlE,GAFAA,EAAMwM,MAAM+uR,QAAUv7R,EAAMwM,MAAM+uR,SAE9Bv7R,EAAMwM,MAAM6uR,SAAU,CACxB,IAAI6D,GAAe,EAAI7F,EAAkB8F,uBAAuB7rR,EAAcA,EAAc,CAAC,EAAGtT,EAAMwM,OAAQxM,EAAMqH,QAEhH63R,EAAa75R,OAAS,IACxBrF,EAAMiyC,UAAS,SAAU4pK,GACvB,MAAO,CACL8hF,eAAgB9hF,EAAU8hF,eAAehiS,OAAOujS,GAEpD,IAEIl/R,EAAMwM,MAAM4yR,YACdp/R,EAAMwM,MAAM4yR,WAAWF,GAG7B,CAEA,IAAItC,EAAOtpR,EAAc,CACvB+rR,QAASr/R,EAAMosB,KACfkzQ,SAAUt/R,EAAM4mG,OACf5mG,EAAMwM,OAETxM,EAAMu/R,YAAY3C,GAAM,GAAM,WAC5B58R,EAAMw/R,cAENx/R,EAAMwM,MAAMouR,UAAY56R,EAAM62J,SAAS,SACzC,IAE6B,gBAAzB72J,EAAMwM,MAAM6uR,WACdr7R,EAAMy/R,cAAgBtmK,YAAYn5H,EAAM0/R,oBAAqB,MAG/D1/R,EAAM2/R,GAAK,IAAIV,EAAiC,SAAE,WAC5Cj/R,EAAMqH,MAAMg2R,WACdr9R,EAAM4/R,iBAAgB,GAGtB5/R,EAAM6/R,eAAethS,KAAK4rB,YAAW,WACnC,OAAOnqB,EAAM4/R,iBACf,GAAG5/R,EAAMwM,MAAM82E,SAEftjF,EAAM4/R,iBAEV,IAEA5/R,EAAM2/R,GAAGv6L,QAAQplG,EAAMosB,MAEvB1R,SAASw6K,kBAAoBl7J,MAAMC,UAAUouC,QAAQnoE,KAAKwa,SAASw6K,iBAAiB,iBAAiB,SAAU6mG,GAC7GA,EAAM+D,QAAU9/R,EAAMwM,MAAMmvR,aAAe37R,EAAM+/R,aAAe,KAChEhE,EAAMiE,OAAShgS,EAAMwM,MAAMmvR,aAAe37R,EAAMigS,YAAc,IAChE,IAEIvqQ,OAAO/a,iBACT+a,OAAO/a,iBAAiB,SAAU3a,EAAM4/R,iBAExClqQ,OAAOy7C,YAAY,WAAYnxE,EAAM4/R,gBAEzC,IAEA/wR,EAAgBknE,EAAuB/1E,GAAQ,wBAAwB,WACjEA,EAAMkgS,sBACRxuN,aAAa1xE,EAAMkgS,sBAGjBlgS,EAAMy/R,eACRrgK,cAAcp/H,EAAMy/R,eAGlBz/R,EAAM6/R,eAAex6R,SACvBrF,EAAM6/R,eAAex3N,SAAQ,SAAU+xF,GACrC,OAAO1oF,aAAa0oF,EACtB,IAEAp6J,EAAM6/R,eAAiB,IAGrBnqQ,OAAO/a,iBACT+a,OAAO9a,oBAAoB,SAAU5a,EAAM4/R,iBAE3ClqQ,OAAO6oD,YAAY,WAAYv+E,EAAM4/R,iBAGnC5/R,EAAMmgS,eACR/gK,cAAcp/H,EAAMmgS,eAGtBngS,EAAM2/R,GAAGt6L,YACX,IAEAx2F,EAAgBknE,EAAuB/1E,GAAQ,sBAAsB,SAAUk+E,GAK7E,GAJAl+E,EAAMogS,kBAENpgS,EAAMwM,MAAMivR,UAAYz7R,EAAMwM,MAAMivR,WAEhCz7R,EAAMwM,MAAM6uR,SAAU,CACxB,IAAI6D,GAAe,EAAI7F,EAAkB8F,uBAAuB7rR,EAAcA,EAAc,CAAC,EAAGtT,EAAMwM,OAAQxM,EAAMqH,QAEhH63R,EAAa75R,OAAS,IACxBrF,EAAMiyC,UAAS,SAAU4pK,GACvB,MAAO,CACL8hF,eAAgB9hF,EAAU8hF,eAAehiS,OAAOujS,GAEpD,IAEIl/R,EAAMwM,MAAM4yR,YACdp/R,EAAMwM,MAAM4yR,WAAWF,GAG7B,CAKAl/R,EAAMw/R,cAEN,IAAI5C,EAAOtpR,EAAcA,EAAc,CACrC+rR,QAASr/R,EAAMosB,KACfkzQ,SAAUt/R,EAAM4mG,OACf5mG,EAAMwM,OAAQxM,EAAMqH,OAEnBg5R,EAAgBrgS,EAAMsgS,eAAepiN,GAEzCmiN,GAAiBrgS,EAAMu/R,YAAY3C,EAAMyD,GAAe,WAClDrgS,EAAMqH,MAAMsyR,cAAgB3wD,EAAgB,QAAEj7B,SAAStuI,MAAMz/D,EAAMwM,MAAMyd,WAC3EjqB,EAAMsjN,YAAY,CAChBvjN,QAAS,QACTwV,MAAOyzN,EAAgB,QAAEj7B,SAAStuI,MAAMz/D,EAAMwM,MAAMyd,UAAYjqB,EAAMwM,MAAM42E,aAC5Eu2M,aAAc35R,EAAMqH,MAAMsyR,eAI1B35R,EAAMwM,MAAMouR,SACd56R,EAAM62J,SAAS,UAEf72J,EAAMw/O,MAAM,SAEhB,GACF,IAEA3wO,EAAgBknE,EAAuB/1E,GAAQ,mBAAmB,SAAUqgS,GACtErgS,EAAMugS,iBAAiBvgS,EAAMugS,gBAAgBrvN,SACjDlxE,EAAMugS,iBAAkB,EAAI1B,EAAiB,UAAG,WAC9C,OAAO7+R,EAAMwgS,aAAaH,EAC5B,GAAG,IAEHrgS,EAAMugS,iBACR,IAEA1xR,EAAgBknE,EAAuB/1E,GAAQ,gBAAgB,WAC7D,IAAIqgS,IAAgB9jS,UAAU8I,OAAS,QAAsBrG,IAAjBzC,UAAU,KAAmBA,UAAU,GAGnF,GAFqBk9G,QAAQz5G,EAAM4mG,OAAS5mG,EAAM4mG,MAAMipG,MAExD,CAEA,IAAI+sF,EAAOtpR,EAAcA,EAAc,CACrC+rR,QAASr/R,EAAMosB,KACfkzQ,SAAUt/R,EAAM4mG,OACf5mG,EAAMwM,OAAQxM,EAAMqH,OAEvBrH,EAAMu/R,YAAY3C,EAAMyD,GAAe,WACjCrgS,EAAMwM,MAAMouR,SAAU56R,EAAM62J,SAAS,UAAe72J,EAAMw/O,MAAM,SACtE,IAGAx/O,EAAMiyC,SAAS,CACborP,WAAW,IAGb3rN,aAAa1xE,EAAMkgS,6BACZlgS,EAAMkgS,oBAjBc,CAkB7B,IAEArxR,EAAgBknE,EAAuB/1E,GAAQ,eAAe,SAAU48R,EAAMyD,EAAepxN,GAC3F,IAAIwxN,GAAe,EAAIpH,EAAkBqH,kBAAkB9D,GAC3DA,EAAOtpR,EAAcA,EAAcA,EAAc,CAAC,EAAGspR,GAAO6D,GAAe,CAAC,EAAG,CAC7E9/E,WAAY8/E,EAAa9G,eAE3B,IAAIgH,GAAa,EAAItH,EAAkBuH,cAAchE,GACrDA,EAAOtpR,EAAcA,EAAc,CAAC,EAAGspR,GAAO,CAAC,EAAG,CAChD/yR,KAAM82R,IAER,IAAInC,GAAa,EAAInF,EAAkBwH,aAAajE,IAEhDyD,GAAiBr3D,EAAgB,QAAEj7B,SAAStuI,MAAMz/D,EAAMwM,MAAMyd,YAAc++M,EAAgB,QAAEj7B,SAAStuI,MAAMm9N,EAAK3yQ,aACpHw2Q,EAAyB,WAAIjC,GAG/Bx+R,EAAMiyC,SAASwuP,EAAcxxN,EAC/B,IAEApgE,EAAgBknE,EAAuB/1E,GAAQ,WAAW,WACxD,GAAIA,EAAMwM,MAAMgwR,cAAe,CAC7B,IAAIsE,EAAc,EACdC,EAAa,EACbC,EAAiB,GACjBC,GAAY,EAAI5H,EAAkB6H,cAAc5tR,EAAcA,EAAcA,EAAc,CAAC,EAAGtT,EAAMwM,OAAQxM,EAAMqH,OAAQ,CAAC,EAAG,CAChIuyR,WAAY55R,EAAMwM,MAAMyd,SAAS5kB,UAE/B87R,GAAa,EAAI9H,EAAkB+H,eAAe9tR,EAAcA,EAAcA,EAAc,CAAC,EAAGtT,EAAMwM,OAAQxM,EAAMqH,OAAQ,CAAC,EAAG,CAClIuyR,WAAY55R,EAAMwM,MAAMyd,SAAS5kB,UAGnCrF,EAAMwM,MAAMyd,SAASo+C,SAAQ,SAAU/J,GACrC0iO,EAAeziS,KAAK+/D,EAAM9xD,MAAMgE,MAAMiL,OACtCqlR,GAAexiO,EAAM9xD,MAAMgE,MAAMiL,KACnC,IAEA,IAAK,IAAIrhB,EAAI,EAAGA,EAAI6mS,EAAW7mS,IAC7B2mS,GAAcC,EAAeA,EAAe37R,OAAS,EAAIjL,GACzD0mS,GAAeE,EAAeA,EAAe37R,OAAS,EAAIjL,GAG5D,IAAK,IAAIo5Q,EAAK,EAAGA,EAAK2tB,EAAY3tB,IAChCstB,GAAeE,EAAextB,GAGhC,IAAK,IAAI6tB,EAAM,EAAGA,EAAMrhS,EAAMqH,MAAMsyR,aAAc0H,IAChDN,GAAcC,EAAeK,GAG/B,IAAIC,EAAc,CAChB7lR,MAAOqlR,EAAc,KACrBj3R,MAAOk3R,EAAa,MAGtB,GAAI/gS,EAAMwM,MAAM02E,WAAY,CAC1B,IAAIq+M,EAAe,GAAG5lS,OAAOqlS,EAAehhS,EAAMqH,MAAMsyR,cAAe,MACvE2H,EAAYz3R,KAAO,QAAQlO,OAAO2lS,EAAYz3R,KAAM,eAAelO,OAAO4lS,EAAc,WAC1F,CAEA,MAAO,CACL/C,WAAY8C,EAEhB,CAEA,IAAIE,EAAgBx4D,EAAgB,QAAEj7B,SAAStuI,MAAMz/D,EAAMwM,MAAMyd,UAE7D2yQ,EAAOtpR,EAAcA,EAAcA,EAAc,CAAC,EAAGtT,EAAMwM,OAAQxM,EAAMqH,OAAQ,CAAC,EAAG,CACvFuyR,WAAY4H,IAGV5H,GAAa,EAAIP,EAAkB6H,cAActE,IAAQ,EAAIvD,EAAkB+H,eAAexE,GAAQ4E,EACtG/C,EAAa,IAAMz+R,EAAMwM,MAAM42E,aAAew2M,EAC9Cl2E,EAAa,IAAMk2E,EACnB6H,GAAa/9E,IAAc,EAAI21E,EAAkB6H,cAActE,GAAQ58R,EAAMqH,MAAMsyR,cAAgB8E,EAAa,IAUpH,OARIz+R,EAAMwM,MAAM02E,aACdu+M,IAAc,IAAM/9E,EAAa+6E,EAAa,KAAO,GAOhD,CACL/6E,WAAYA,EAAa,IACzB86E,WANe,CACf/iR,MAAOgjR,EAAa,IACpB50R,KAAM43R,EAAY,KAMtB,IAEA5yR,EAAgBknE,EAAuB/1E,GAAQ,mBAAmB,WAChE,IAAI0hS,EAAS1hS,EAAMosB,KAAK8oK,kBAAoBl1L,EAAMosB,KAAK8oK,iBAAiB,qBAAuB,GAC3FysG,EAAcD,EAAOr8R,OACrBu8R,EAAc,EAClB5nQ,MAAMC,UAAUouC,QAAQnoE,KAAKwhS,GAAQ,SAAU5pQ,GAC7C,IAAIkqF,EAAU,WACZ,QAAS4/K,GAAeA,GAAeD,GAAe3hS,EAAM4/R,iBAC9D,EAEA,GAAK9nQ,EAAM+pQ,QAIJ,CACL,IAAIC,EAAmBhqQ,EAAM+pQ,QAE7B/pQ,EAAM+pQ,QAAU,WACdC,IACAhqQ,EAAM2lD,WAAWqlH,OACnB,CACF,MAVEhrK,EAAM+pQ,QAAU,WACd,OAAO/pQ,EAAM2lD,WAAWqlH,OAC1B,EAUGhrK,EAAM+/F,SACL73H,EAAMwM,MAAM6uR,SACdvjQ,EAAM+/F,OAAS,WACb73H,EAAMw/R,cAENx/R,EAAM6/R,eAAethS,KAAK4rB,WAAWnqB,EAAM4/R,gBAAiB5/R,EAAMwM,MAAM82E,OAC1E,GAEAxrD,EAAM+/F,OAAS7V,EAEflqF,EAAMy3F,QAAU,WACdvN,IACAhiH,EAAMwM,MAAMgvR,iBAAmBx7R,EAAMwM,MAAMgvR,iBAC7C,GAGN,GACF,IAEA3sR,EAAgBknE,EAAuB/1E,GAAQ,uBAAuB,WAKpE,IAJA,IAAIk/R,EAAe,GAEftC,EAAOtpR,EAAcA,EAAc,CAAC,EAAGtT,EAAMwM,OAAQxM,EAAMqH,OAEtDkO,EAAQvV,EAAMqH,MAAMsyR,aAAcpkR,EAAQvV,EAAMqH,MAAMuyR,YAAa,EAAIP,EAAkB+H,eAAexE,GAAOrnR,IACtH,GAAIvV,EAAMqH,MAAMs2R,eAAex8P,QAAQ5rB,GAAS,EAAG,CACjD2pR,EAAa3gS,KAAKgX,GAClB,KACF,CAGF,IAAK,IAAIwsR,EAAS/hS,EAAMqH,MAAMsyR,aAAe,EAAGoI,KAAW,EAAI1I,EAAkB6H,cAActE,GAAOmF,IACpG,GAAI/hS,EAAMqH,MAAMs2R,eAAex8P,QAAQ4gQ,GAAU,EAAG,CAClD7C,EAAa3gS,KAAKwjS,GAClB,KACF,CAGE7C,EAAa75R,OAAS,GACxBrF,EAAMiyC,UAAS,SAAU5qC,GACvB,MAAO,CACLs2R,eAAgBt2R,EAAMs2R,eAAehiS,OAAOujS,GAEhD,IAEIl/R,EAAMwM,MAAM4yR,YACdp/R,EAAMwM,MAAM4yR,WAAWF,IAGrBl/R,EAAMy/R,gBACRrgK,cAAcp/H,EAAMy/R,sBACbz/R,EAAMy/R,cAGnB,IAEA5wR,EAAgBknE,EAAuB/1E,GAAQ,gBAAgB,SAAUuV,GACvE,IAAIysR,EAAczlS,UAAU8I,OAAS,QAAsBrG,IAAjBzC,UAAU,IAAmBA,UAAU,GAC7Ew9E,EAAc/5E,EAAMwM,MACpBy1R,EAAWloN,EAAYkoN,SACvBz+M,EAAezJ,EAAYyJ,aAC3B47M,EAAarlN,EAAYqlN,WACzB97M,EAAQvJ,EAAYuJ,MACpBm3M,EAAc1gN,EAAY0gN,YAE1Bd,EAAe35R,EAAMqH,MAAMsyR,aAE3BuI,GAAgB,EAAI7I,EAAkB8I,cAAc7uR,EAAcA,EAAcA,EAAc,CAChGiC,MAAOA,GACNvV,EAAMwM,OAAQxM,EAAMqH,OAAQ,CAAC,EAAG,CACjCi4R,SAAUt/R,EAAM4mG,MAChB01L,OAAQt8R,EAAMwM,MAAM8vR,SAAW0F,KAE7B36R,EAAQ66R,EAAc76R,MACtB0hE,EAAYm5N,EAAcn5N,UAE9B,GAAK1hE,EAAL,CACAm8E,GAAgBA,EAAam2M,EAActyR,EAAMsyR,cACjD,IAAIuF,EAAe73R,EAAMs2R,eAAenxQ,QAAO,SAAU/d,GACvD,OAAOzO,EAAMqH,MAAMs2R,eAAex8P,QAAQ1yB,GAAS,CACrD,IACA2wR,GAAcF,EAAa75R,OAAS,GAAK+5R,EAAWF,IAE/Cl/R,EAAMwM,MAAMkwR,gBAAkB18R,EAAMkgS,uBACvCxuN,aAAa1xE,EAAMkgS,sBACnBzF,GAAeA,EAAYd,UACpB35R,EAAMkgS,sBAGflgS,EAAMiyC,SAAS5qC,GAAO,WAEhB46R,GAAYjiS,EAAMoiS,gBAAkB7sR,IACtCvV,EAAMoiS,cAAgB7sR,EACtB0sR,EAASI,YAAYF,aAAa5sR,IAG/BwzD,IACL/oE,EAAMkgS,qBAAuB/1Q,YAAW,WACtC,IAAIkzQ,EAAYt0N,EAAUs0N,UACtBiF,EAAa5rB,EAAyB3tM,EAAW,CAAC,cAEtD/oE,EAAMiyC,SAASqwP,GAAY,WACzBtiS,EAAM6/R,eAAethS,KAAK4rB,YAAW,WACnC,OAAOnqB,EAAMiyC,SAAS,CACpBorP,UAAWA,GAEf,GAAG,KAEH5C,GAAeA,EAAYpzR,EAAMsyR,qBAC1B35R,EAAMkgS,oBACf,GACF,GAAG58M,GACL,GApCkB,CAqCpB,IAEAz0E,EAAgBknE,EAAuB/1E,GAAQ,eAAe,SAAUZ,GACtE,IAAI4iS,EAAczlS,UAAU8I,OAAS,QAAsBrG,IAAjBzC,UAAU,IAAmBA,UAAU,GAE7EqgS,EAAOtpR,EAAcA,EAAc,CAAC,EAAGtT,EAAMwM,OAAQxM,EAAMqH,OAE3Dq3R,GAAc,EAAIrF,EAAkB/1E,aAAas5E,EAAMx9R,GAC3D,IAAoB,IAAhBs/R,GAAsBA,MAEN,IAAhBsD,EACFhiS,EAAMmiS,aAAazD,EAAasD,GAEhChiS,EAAMmiS,aAAazD,GAGrB1+R,EAAMwM,MAAMouR,UAAY56R,EAAM62J,SAAS,UAEnC72J,EAAMwM,MAAM2uR,eAAe,CAC7B,IAAIhqE,EAAQnxN,EAAMosB,KAAK8oK,iBAAiB,kBAExCi8B,EAAM,IAAMA,EAAM,GAAGruB,OACvB,CACF,IAEAj0L,EAAgBknE,EAAuB/1E,GAAQ,gBAAgB,SAAUmI,IAC/C,IAApBnI,EAAMuiS,YACRp6R,EAAEy5E,kBACFz5E,EAAE0C,kBAGJ7K,EAAMuiS,WAAY,CACpB,IAEA1zR,EAAgBknE,EAAuB/1E,GAAQ,cAAc,SAAUmI,GACrE,IAAI4vM,GAAM,EAAIshF,EAAkBmJ,YAAYr6R,EAAGnI,EAAMwM,MAAM+tR,cAAev6R,EAAMwM,MAAMsvR,KAC9E,KAAR/jF,GAAc/3M,EAAMsjN,YAAY,CAC9BvjN,QAASg4M,GAEb,IAEAlpM,EAAgBknE,EAAuB/1E,GAAQ,iBAAiB,SAAUZ,GACxEY,EAAMsjN,YAAYlkN,EACpB,IAEAyP,EAAgBknE,EAAuB/1E,GAAQ,qBAAqB,WAOlE01B,OAAO+sQ,YANc,SAAwBt6R,IAC3CA,EAAIA,GAAKutB,OAAOlV,OACV3V,gBAAgB1C,EAAE0C,iBACxB1C,EAAEu6R,aAAc,CAClB,CAGF,IAEA7zR,EAAgBknE,EAAuB/1E,GAAQ,oBAAoB,WACjE01B,OAAO+sQ,YAAc,IACvB,IAEA5zR,EAAgBknE,EAAuB/1E,GAAQ,cAAc,SAAUmI,GACjEnI,EAAMwM,MAAMm2R,iBACd3iS,EAAM4iS,oBAGR,IAAIv7R,GAAQ,EAAIgyR,EAAkBwJ,YAAY16R,EAAGnI,EAAMwM,MAAM62E,MAAOrjF,EAAMwM,MAAM+pE,WACtE,KAAVlvE,GAAgBrH,EAAMiyC,SAAS5qC,EACjC,IAEAwH,EAAgBknE,EAAuB/1E,GAAQ,aAAa,SAAUmI,GACpE,IAAId,GAAQ,EAAIgyR,EAAkByJ,WAAW36R,EAAGmL,EAAcA,EAAcA,EAAc,CAAC,EAAGtT,EAAMwM,OAAQxM,EAAMqH,OAAQ,CAAC,EAAG,CAC5Hi4R,SAAUt/R,EAAM4mG,MAChBy4L,QAASr/R,EAAMosB,KACfu0L,WAAY3gN,EAAMqH,MAAMsyR,gBAErBtyR,IAEDA,EAAe,UACjBrH,EAAMuiS,WAAY,GAGpBviS,EAAMiyC,SAAS5qC,GACjB,IAEAwH,EAAgBknE,EAAuB/1E,GAAQ,YAAY,SAAUmI,GACnE,IAAId,GAAQ,EAAIgyR,EAAkB0J,UAAU56R,EAAGmL,EAAcA,EAAcA,EAAc,CAAC,EAAGtT,EAAMwM,OAAQxM,EAAMqH,OAAQ,CAAC,EAAG,CAC3Hi4R,SAAUt/R,EAAM4mG,MAChBy4L,QAASr/R,EAAMosB,KACfu0L,WAAY3gN,EAAMqH,MAAMsyR,gBAE1B,GAAKtyR,EAAL,CACA,IAAI27R,EAAsB37R,EAA2B,2BAC9CA,EAA2B,oBAElCrH,EAAMiyC,SAAS5qC,QAEarI,IAAxBgkS,IAEJhjS,EAAMmiS,aAAaa,GAEfhjS,EAAMwM,MAAMm2R,iBACd3iS,EAAMijS,mBAXU,CAapB,IAEAp0R,EAAgBknE,EAAuB/1E,GAAQ,YAAY,SAAUmI,GACnEnI,EAAM+iS,SAAS56R,GAEfnI,EAAMuiS,WAAY,CACpB,IAEA1zR,EAAgBknE,EAAuB/1E,GAAQ,aAAa,WAI1DA,EAAM6/R,eAAethS,KAAK4rB,YAAW,WACnC,OAAOnqB,EAAMsjN,YAAY,CACvBvjN,QAAS,YAEb,GAAG,GACL,IAEA8O,EAAgBknE,EAAuB/1E,GAAQ,aAAa,WAC1DA,EAAM6/R,eAAethS,KAAK4rB,YAAW,WACnC,OAAOnqB,EAAMsjN,YAAY,CACvBvjN,QAAS,QAEb,GAAG,GACL,IAEA8O,EAAgBknE,EAAuB/1E,GAAQ,aAAa,SAAU+7R,GACpE,IAAIiG,EAAczlS,UAAU8I,OAAS,QAAsBrG,IAAjBzC,UAAU,IAAmBA,UAAU,GAEjF,GADAw/R,EAAQhqQ,OAAOgqQ,GACXvgQ,MAAMugQ,GAAQ,MAAO,GAEzB/7R,EAAM6/R,eAAethS,KAAK4rB,YAAW,WACnC,OAAOnqB,EAAMsjN,YAAY,CACvBvjN,QAAS,QACTwV,MAAOwmR,EACPpC,aAAc35R,EAAMqH,MAAMsyR,cACzBqI,EACL,GAAG,GACL,IAEAnzR,EAAgBknE,EAAuB/1E,GAAQ,QAAQ,WACrD,IAAIujN,EAEJ,GAAIvjN,EAAMwM,MAAMsvR,IACdv4E,EAAYvjN,EAAMqH,MAAMsyR,aAAe35R,EAAMwM,MAAMyvR,mBAC9C,CACL,KAAI,EAAI5C,EAAkBe,WAAW9mR,EAAcA,EAAc,CAAC,EAAGtT,EAAMwM,OAAQxM,EAAMqH,QAGvF,OAAO,EAFPk8M,EAAYvjN,EAAMqH,MAAMsyR,aAAe35R,EAAMwM,MAAMyvR,cAIvD,CAEAj8R,EAAMmiS,aAAa5+E,EACrB,IAEA10M,EAAgBknE,EAAuB/1E,GAAQ,YAAY,SAAUkjS,GAC/DljS,EAAMmgS,eACR/gK,cAAcp/H,EAAMmgS,eAGtB,IAAI7C,EAAct9R,EAAMqH,MAAMi2R,YAE9B,GAAiB,WAAb4F,GACF,GAAoB,YAAhB5F,GAA6C,YAAhBA,GAA6C,WAAhBA,EAC5D,YAEG,GAAiB,UAAb4F,GACT,GAAoB,WAAhB5F,GAA4C,YAAhBA,EAC9B,YAEG,GAAiB,SAAb4F,IACW,WAAhB5F,GAA4C,YAAhBA,GAC9B,OAIJt9R,EAAMmgS,cAAgBhnK,YAAYn5H,EAAMu/O,KAAMv/O,EAAMwM,MAAMquR,cAAgB,IAE1E76R,EAAMiyC,SAAS,CACbqrP,YAAa,WAEjB,IAEAzuR,EAAgBknE,EAAuB/1E,GAAQ,SAAS,SAAUmjS,GAC5DnjS,EAAMmgS,gBACR/gK,cAAcp/H,EAAMmgS,eACpBngS,EAAMmgS,cAAgB,MAGxB,IAAI7C,EAAct9R,EAAMqH,MAAMi2R,YAEZ,WAAd6F,EACFnjS,EAAMiyC,SAAS,CACbqrP,YAAa,WAEQ,YAAd6F,EACW,YAAhB7F,GAA6C,YAAhBA,GAC/Bt9R,EAAMiyC,SAAS,CACbqrP,YAAa,YAKG,YAAhBA,GACFt9R,EAAMiyC,SAAS,CACbqrP,YAAa,WAIrB,IAEAzuR,EAAgBknE,EAAuB/1E,GAAQ,cAAc,WAC3D,OAAOA,EAAMwM,MAAMouR,UAAY56R,EAAMw/O,MAAM,UAC7C,IAEA3wO,EAAgBknE,EAAuB/1E,GAAQ,eAAe,WAC5D,OAAOA,EAAMwM,MAAMouR,UAAwC,YAA5B56R,EAAMqH,MAAMi2R,aAA6Bt9R,EAAM62J,SAAS,QACzF,IAEAhoJ,EAAgBknE,EAAuB/1E,GAAQ,eAAe,WAC5D,OAAOA,EAAMwM,MAAMouR,UAAY56R,EAAMw/O,MAAM,UAC7C,IAEA3wO,EAAgBknE,EAAuB/1E,GAAQ,gBAAgB,WAC7D,OAAOA,EAAMwM,MAAMouR,UAAwC,YAA5B56R,EAAMqH,MAAMi2R,aAA6Bt9R,EAAM62J,SAAS,QACzF,IAEAhoJ,EAAgBknE,EAAuB/1E,GAAQ,gBAAgB,WAC7D,OAAOA,EAAMwM,MAAMouR,UAAY56R,EAAMw/O,MAAM,UAC7C,IAEA3wO,EAAgBknE,EAAuB/1E,GAAQ,eAAe,WAC5D,OAAOA,EAAMwM,MAAMouR,UAAwC,YAA5B56R,EAAMqH,MAAMi2R,aAA6Bt9R,EAAM62J,SAAS,OACzF,IAEAhoJ,EAAgBknE,EAAuB/1E,GAAQ,UAAU,WACvD,IAeI26R,EAcAZ,EAAWO,EA7BXprR,GAAY,EAAIkqR,EAAqB,SAAG,eAAgBp5R,EAAMwM,MAAM0C,UAAW,CACjF,iBAAkBlP,EAAMwM,MAAMiwR,SAC9B,qBAAqB,IAGnBG,EAAOtpR,EAAcA,EAAc,CAAC,EAAGtT,EAAMwM,OAAQxM,EAAMqH,OAE3D+7R,GAAa,EAAI/J,EAAkBgK,eAAezG,EAAM,CAAC,OAAQ,UAAW,QAAS,WAAY,aAAc,gBAAiB,eAAgB,WAAY,iBAAkB,MAAO,aAAc,cAAe,aAAc,WAAY,eAAgB,iBAAkB,aAAc,aAAc,gBAAiB,UAAW,gBAAiB,cAAe,WACtWhB,EAAe57R,EAAMwM,MAAMovR,aAS/B,GARAwH,EAAa9vR,EAAcA,EAAc,CAAC,EAAG8vR,GAAa,CAAC,EAAG,CAC5DtpP,aAAc8hP,EAAe57R,EAAMsjS,YAAc,KACjD3/N,aAAci4N,EAAe57R,EAAMujS,aAAe,KAClD1G,YAAajB,EAAe57R,EAAMsjS,YAAc,KAChDnI,cAAen7R,EAAMwM,MAAM2uR,eAAiBn7R,EAAMuiS,UAAYviS,EAAMwjS,cAAgB,QAI7D,IAArBxjS,EAAMwM,MAAMmuR,MAAiB36R,EAAMqH,MAAMuyR,YAAc55R,EAAMwM,MAAM42E,aAAc,CACnF,IAAIqgN,GAAW,EAAIpK,EAAkBgK,eAAezG,EAAM,CAAC,YAAa,aAAc,eAAgB,eAAgB,iBAAkB,eAAgB,WAAY,eAAgB,WAAY,eAC5LlB,EAAmB17R,EAAMwM,MAAMkvR,iBACnC+H,EAAWnwR,EAAcA,EAAc,CAAC,EAAGmwR,GAAW,CAAC,EAAG,CACxDjK,aAAcx5R,EAAMsjN,YACpBxpK,aAAc4hP,EAAmB17R,EAAM0jS,YAAc,KACrD7G,YAAanB,EAAmB17R,EAAM2jS,WAAa,KACnDhgO,aAAc+3N,EAAmB17R,EAAM0jS,YAAc,OAEvD/I,EAAoB3xD,EAAgB,QAAE9jK,cAAc65N,EAAMpC,KAAM8G,EAClE,CAGA,IAAIG,GAAa,EAAIvK,EAAkBgK,eAAezG,EAAM,CAAC,WAAY,aAAc,eAAgB,aAAc,eAAgB,YAAa,cAClJgH,EAAWpK,aAAex5R,EAAMsjN,YAE5BtjN,EAAMwM,MAAM+2E,SACdw2M,EAAyB/wD,EAAgB,QAAE9jK,cAAc85N,EAAQ7F,UAAWyK,GAC5EtJ,EAAyBtxD,EAAgB,QAAE9jK,cAAc85N,EAAQ9F,UAAW0K,IAG9E,IAAIC,EAAsB,KAEtB7jS,EAAMwM,MAAMiwR,WACdoH,EAAsB,CACpB3mR,OAAQld,EAAMqH,MAAMu2R,aAIxB,IAAIkG,EAAqB,MAEI,IAAzB9jS,EAAMwM,MAAMiwR,UACiB,IAA3Bz8R,EAAMwM,MAAM02E,aACd4gN,EAAqB,CACnBv6R,QAAS,OAASvJ,EAAMwM,MAAM22E,iBAIH,IAA3BnjF,EAAMwM,MAAM02E,aACd4gN,EAAqB,CACnBv6R,QAASvJ,EAAMwM,MAAM22E,cAAgB,SAK3C,IAAI4gN,EAAYzwR,EAAcA,EAAc,CAAC,EAAGuwR,GAAsBC,GAElE1H,EAAYp8R,EAAMwM,MAAM4vR,UACxB4H,EAAY,CACd90R,UAAW,aACXsB,MAAOuzR,EACP77R,QAASlI,EAAMw5R,aACf5zF,YAAaw2F,EAAYp8R,EAAM6iS,WAAa,KAC5CjpP,YAAa55C,EAAMqH,MAAMo2R,UAAYrB,EAAYp8R,EAAM8iS,UAAY,KACnE5gD,UAAWk6C,EAAYp8R,EAAM+iS,SAAW,KACxCp/N,aAAc3jE,EAAMqH,MAAMo2R,UAAYrB,EAAYp8R,EAAM+iS,SAAW,KACnEp5M,aAAcyyM,EAAYp8R,EAAM6iS,WAAa,KAC7C7gD,YAAahiP,EAAMqH,MAAMo2R,UAAYrB,EAAYp8R,EAAM8iS,UAAY,KACnE7gD,WAAYm6C,EAAYp8R,EAAMikS,SAAW,KACzCC,cAAelkS,EAAMqH,MAAMo2R,UAAYrB,EAAYp8R,EAAM+iS,SAAW,KACpE3xM,UAAWpxF,EAAMwM,MAAM+tR,cAAgBv6R,EAAMwiS,WAAa,MAExD2B,EAAmB,CACrBj1R,UAAWA,EACX6oM,IAAK,MACLvnM,MAAOxQ,EAAMwM,MAAMgE,OAYrB,OATIxQ,EAAMwM,MAAM43R,UACdJ,EAAY,CACV90R,UAAW,cAEbi1R,EAAmB,CACjBj1R,UAAWA,IAIK85N,EAAgB,QAAE9jK,cAAc,MAAOi/N,EAAmBnkS,EAAMwM,MAAM43R,QAAsB,GAAZrK,EAA6B/wD,EAAgB,QAAE9jK,cAAc,MAAOgB,EAAS,CAC/K1wD,IAAKxV,EAAMqkS,gBACVL,GAAyBh7D,EAAgB,QAAE9jK,cAAc45N,EAAOwF,MAAOp+N,EAAS,CACjF1wD,IAAKxV,EAAMukS,iBACVnB,GAAapjS,EAAMwM,MAAMyd,WAAajqB,EAAMwM,MAAM43R,QAAsB,GAAZ9J,EAAiBt6R,EAAMwM,MAAM43R,QAAiB,GAAPzJ,EACxG,IAEA36R,EAAMosB,KAAO,KACbpsB,EAAM4mG,MAAQ,KACd5mG,EAAMqH,MAAQiM,EAAcA,EAAc,CAAC,EAAGsrR,EAAuB,SAAI,CAAC,EAAG,CAC3EjF,aAAc35R,EAAMwM,MAAM4uR,aAC1BxB,WAAY5wD,EAAgB,QAAEj7B,SAAStuI,MAAMz/D,EAAMwM,MAAMyd,YAE3DjqB,EAAM6/R,eAAiB,GACvB7/R,EAAMuiS,WAAY,EAClBviS,EAAMugS,gBAAkB,KAExB,IAAIiE,EAAWxkS,EAAMykS,UAGrB,OADAzkS,EAAMqH,MAAQiM,EAAcA,EAAc,CAAC,EAAGtT,EAAMqH,OAAQm9R,GACrDxkS,CACT,CA6BA,OA3zBoBiuQ,EAgyBP0wB,GAhyBoBzwB,EAgyBP,CAAC,CACzBt2P,IAAK,iBACLnJ,MAAO,SAAwByvE,GAG7B,IAFA,IAAImiN,GAAgB,EAEXqE,EAAM,EAAGC,EAAe1uR,OAAO6lB,KAAKxhC,KAAKkS,OAAQk4R,EAAMC,EAAat/R,OAAQq/R,IAAO,CAC1F,IAAI9sR,EAAM+sR,EAAaD,GAEvB,IAAKxmN,EAAU70C,eAAezxB,GAAM,CAClCyoR,GAAgB,EAChB,KACF,CAEA,GAAgC,WAA5Bh0B,EAAQnuL,EAAUtmE,KAAgD,mBAAnBsmE,EAAUtmE,IAIzDsmE,EAAUtmE,KAAStd,KAAKkS,MAAMoL,GAAM,CACtCyoR,GAAgB,EAChB,KACF,CACF,CAEA,OAAOA,GAAiBr3D,EAAgB,QAAEj7B,SAAStuI,MAAMnlE,KAAKkS,MAAMyd,YAAc++M,EAAgB,QAAEj7B,SAAStuI,MAAMye,EAAUj0D,SAC/H,MAxzB0E6iP,EAAkBmB,EAAYh0O,UAAWi0O,GAAiBC,GAAarB,EAAkBmB,EAAaE,GA2zB3KwwB,CACT,CA1yB+B,CA0yB7B31D,EAAgB,QAAE5jK,WAEpBtrE,EAAQ6kS,YAAcA,C,oCCv2BtB1oR,OAAO66D,eAAeh3E,EAAS,aAAc,CAC3C2U,OAAO,IAET3U,EAAiB,aAAI,EAErB,IAAIkvO,EAAS+9B,EAAuB,EAAQ,OAExC69B,EAAe,EAAQ,MAEvBC,EAAW99B,EAAuB,EAAQ,OAE1C+9B,EAAgB/9B,EAAuB,EAAQ,OAE/CsyB,EAAoB,EAAQ,MAEhC,SAAStyB,EAAuB/gM,GAAO,OAAOA,GAAOA,EAAI0wL,WAAa1wL,EAAM,CAAE,QAAWA,EAAO,CAEhG,SAASqmM,EAAQrmM,GAAmV,OAAtOqmM,EAArD,mBAAX3U,QAAoD,iBAApBA,OAAOS,SAAmC,SAAiBnyL,GAAO,cAAcA,CAAK,EAAsB,SAAiBA,GAAO,OAAOA,GAAyB,mBAAX0xL,QAAyB1xL,EAAI7qC,cAAgBu8N,QAAU1xL,IAAQ0xL,OAAOz9N,UAAY,gBAAkB+rC,CAAK,EAAYqmM,EAAQrmM,EAAM,CAEzX,SAASE,IAA2Q,OAA9PA,EAAWjwD,OAAOC,QAAU,SAAUpH,GAAU,IAAK,IAAI1U,EAAI,EAAGA,EAAImC,UAAU8I,OAAQjL,IAAK,CAAE,IAAIghH,EAAS7+G,UAAUnC,GAAI,IAAK,IAAIwd,KAAOwjG,EAAcnlG,OAAOgkB,UAAUoP,eAAenpC,KAAKk7G,EAAQxjG,KAAQ9I,EAAO8I,GAAOwjG,EAAOxjG,GAAU,CAAE,OAAO9I,CAAQ,EAAUo3D,EAAS5pE,MAAMhC,KAAMiC,UAAY,CAE5T,SAASgqQ,EAAQ51I,EAAQ61I,GAAkB,IAAI1qO,EAAO7lB,OAAO6lB,KAAK60F,GAAS,GAAI16G,OAAOqsL,sBAAuB,CAAE,IAAImkE,EAAUxwP,OAAOqsL,sBAAsB3xE,GAAa61I,IAAgBC,EAAUA,EAAQj6O,QAAO,SAAUk6O,GAAO,OAAOzwP,OAAOkhH,yBAAyBxG,EAAQ+1I,GAAKzpE,UAAY,KAAInhK,EAAKv9B,KAAKjC,MAAMw/B,EAAM2qO,EAAU,CAAE,OAAO3qO,CAAM,CAEpV,SAASxoB,EAAcxE,GAAU,IAAK,IAAI1U,EAAI,EAAGA,EAAImC,UAAU8I,OAAQjL,IAAK,CAAE,IAAIghH,EAAyB,MAAhB7+G,UAAUnC,GAAamC,UAAUnC,GAAK,CAAC,EAAOA,EAAI,EAAKmsQ,EAAQtwP,OAAOmlG,IAAS,GAAM/yC,SAAQ,SAAUzwD,GAAO/I,EAAgBC,EAAQ8I,EAAKwjG,EAAOxjG,GAAO,IAAe3B,OAAO2wP,0BAA6B3wP,OAAO4wP,iBAAiB/3P,EAAQmH,OAAO2wP,0BAA0BxrJ,IAAmBmrJ,EAAQtwP,OAAOmlG,IAAS/yC,SAAQ,SAAUzwD,GAAO3B,OAAO66D,eAAehiE,EAAQ8I,EAAK3B,OAAOkhH,yBAAyB/b,EAAQxjG,GAAO,GAAM,CAAE,OAAO9I,CAAQ,CAIrhB,SAASg+P,EAAkBh+P,EAAQtC,GAAS,IAAK,IAAIpS,EAAI,EAAGA,EAAIoS,EAAMnH,OAAQjL,IAAK,CAAE,IAAIs7M,EAAalpM,EAAMpS,GAAIs7M,EAAWzY,WAAayY,EAAWzY,aAAc,EAAOyY,EAAW/5F,cAAe,EAAU,UAAW+5F,IAAYA,EAAWh6F,UAAW,GAAMzlG,OAAO66D,eAAehiE,EAAQ4mM,EAAW99L,IAAK89L,EAAa,CAAE,CAM5T,SAAS+3D,EAAgBnX,EAAG38N,GAA+G,OAA1G8zO,EAAkBx3P,OAAOilB,gBAAkB,SAAyBo7N,EAAG38N,GAAsB,OAAjB28N,EAAE9hI,UAAY76F,EAAU28N,CAAG,EAAUmX,EAAgBnX,EAAG38N,EAAI,CAEzK,SAAS75B,EAAaitQ,GAAW,IAAIusB,EAMrC,WAAuC,GAAuB,oBAAZpsB,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAUC,KAAM,OAAO,EAAO,GAAqB,mBAAVtY,MAAsB,OAAO,EAAM,IAAiF,OAA3E9qM,KAAK/vB,UAAUva,SAASxf,KAAKgtQ,QAAQC,UAAUnjN,KAAM,IAAI,WAAa,MAAY,CAAM,CAAE,MAAO7hD,GAAK,OAAO,CAAO,CAAE,CANlQklQ,GAA6B,OAAO,WAAkC,IAAsC34O,EAAlCs4O,EAAQC,EAAgBF,GAAkB,GAAIusB,EAA2B,CAAE,IAAIhsB,EAAYL,EAAgB3yQ,MAAM6gC,YAAazG,EAASw4O,QAAQC,UAAUH,EAAOzwQ,UAAW+wQ,EAAY,MAAS54O,EAASs4O,EAAM1wQ,MAAMhC,KAAMiC,WAAc,OAEpX,SAAoClC,EAAM6F,GAAQ,GAAIA,IAA2B,WAAlBmsQ,EAAQnsQ,IAAsC,mBAATA,GAAwB,OAAOA,EAAQ,OAAO61E,EAAuB17E,EAAO,CAF2MkzQ,CAA2BjzQ,KAAMo6B,EAAS,CAAG,CAIxa,SAASqhD,EAAuB17E,GAAQ,QAAa,IAATA,EAAmB,MAAM,IAAImzQ,eAAe,6DAAgE,OAAOnzQ,CAAM,CAIrK,SAAS4yQ,EAAgB3W,GAAwJ,OAAnJ2W,EAAkBh3P,OAAOilB,eAAiBjlB,OAAOw6D,eAAiB,SAAyB6lL,GAAK,OAAOA,EAAE9hI,WAAav+G,OAAOw6D,eAAe6lL,EAAI,EAAU2W,EAAgB3W,EAAI,CAE5M,SAASznP,EAAgBm3D,EAAKpuD,EAAKnJ,GAAiK,OAApJmJ,KAAOouD,EAAO/vD,OAAO66D,eAAe9K,EAAKpuD,EAAK,CAAEnJ,MAAOA,EAAOwuL,YAAY,EAAMthF,cAAc,EAAMD,UAAU,IAAkB11C,EAAIpuD,GAAOnJ,EAAgBu3D,CAAK,CAEhN,IAAI++N,GAAU,EAAI1L,EAAkBpoN,cAAgB,EAAQ,MAExDwS,EAAsB,SAAUwX,IAlBpC,SAAmB8yK,EAAUC,GAAc,GAA0B,mBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAIxzO,UAAU,sDAAyDuzO,EAAS9zO,UAAYhkB,OAAOszB,OAAOykO,GAAcA,EAAW/zO,UAAW,CAAEkB,YAAa,CAAE1sB,MAAOs/P,EAAUryJ,UAAU,EAAMC,cAAc,KAAeqyJ,GAAYP,EAAgBM,EAAUC,EAAa,CAmB9XpuQ,CAAU6jF,EAAQwX,GAElB,IAvBoBgzK,EAAaC,EAAYC,EAuBzCtuQ,EAASC,EAAa2jF,GAE1B,SAASA,EAAOj3E,GACd,IAAIxM,EAmCJ,OAjEJ,SAAyB01E,EAAUu4L,GAAe,KAAMv4L,aAAoBu4L,GAAgB,MAAM,IAAIzzO,UAAU,oCAAwC,CAgCpJv6B,CAAgB3F,KAAMmpF,GAItB50E,EAAgBknE,EAFhB/1E,EAAQH,EAAOK,KAAK5F,KAAMkS,IAEqB,yBAAyB,SAAUgJ,GAChF,OAAOxV,EAAMqiS,YAAc7sR,CAC7B,IAEA3G,EAAgBknE,EAAuB/1E,GAAQ,aAAa,WAC1D,OAAOA,EAAMqiS,YAAY2C,WAC3B,IAEAn2R,EAAgBknE,EAAuB/1E,GAAQ,aAAa,WAC1D,OAAOA,EAAMqiS,YAAY4C,WAC3B,IAEAp2R,EAAgBknE,EAAuB/1E,GAAQ,aAAa,SAAU+7R,GACpE,IAAIiG,EAAczlS,UAAU8I,OAAS,QAAsBrG,IAAjBzC,UAAU,IAAmBA,UAAU,GACjF,OAAOyD,EAAMqiS,YAAYt/M,UAAUg5M,EAAOiG,EAC5C,IAEAnzR,EAAgBknE,EAAuB/1E,GAAQ,cAAc,WAC3D,OAAOA,EAAMqiS,YAAY7iD,MAAM,SACjC,IAEA3wO,EAAgBknE,EAAuB/1E,GAAQ,aAAa,WAC1D,OAAOA,EAAMqiS,YAAYxrI,SAAS,OACpC,IAEA72J,EAAMqH,MAAQ,CACZqiM,WAAY,MAEd1pM,EAAMklS,yBAA2B,GAC1BllS,CACT,CAgMA,OA9PoBiuQ,EAgEPxqL,GAhEoByqL,EAgEZ,CAAC,CACpBt2P,IAAK,QACLnJ,MAAO,SAAe0vG,EAAO6D,GAE3B+iL,EAAQt5R,SAAS0yG,EAAO6D,GAExB1nH,KAAK4qS,yBAAyB3mS,KAAK,CACjC4/G,MAAOA,EACP6D,QAASA,GAEb,GAEC,CACDpqG,IAAK,oBACLnJ,MAAO,WACL,IAAIy6D,EAAS5uE,KAOb,GAAIA,KAAKkS,MAAMqvR,WAAY,CACzB,IAAIvyF,EAAchvM,KAAKkS,MAAMqvR,WAAWxmR,KAAI,SAAU8vR,GACpD,OAAOA,EAAQz7F,UACjB,IAEAJ,EAAYr5K,MAAK,SAAUslC,EAAGF,GAC5B,OAAOE,EAAIF,CACb,IACAi0I,EAAYjhI,SAAQ,SAAUqhI,EAAYn0L,GAExC,IAAI6vR,EAGFA,EADY,IAAV7vR,GACO,EAAIsvR,EAAkB,SAAG,CAChCQ,SAAU,EACVv5Q,SAAU49K,KAGH,EAAIm7F,EAAkB,SAAG,CAChCQ,SAAU/7F,EAAY/zL,EAAQ,GAAK,EACnCuW,SAAU49K,KAKd,EAAI2vF,EAAkBpoN,cAAgB/H,EAAOk1K,MAAMgnD,GAAQ,WACzDl8N,EAAOj3B,SAAS,CACdy3J,WAAYA,GAEhB,GACF,IAGA,IAAIvrF,GAAQ,EAAI0mL,EAAkB,SAAG,CACnCQ,SAAU/7F,EAAYv2L,OAAO,GAAG,MAElC,EAAIsmR,EAAkBpoN,cAAgB32E,KAAK8jP,MAAMjgI,GAAO,WACtDj1C,EAAOj3B,SAAS,CACdy3J,WAAY,MAEhB,GACF,CACF,GACC,CACD9xL,IAAK,uBACLnJ,MAAO,WACLnU,KAAK4qS,yBAAyB78N,SAAQ,SAAUrC,GAC9C++N,EAAQrxD,WAAW1tK,EAAIm4C,MAAOn4C,EAAIg8C,QACpC,GACF,GACC,CACDpqG,IAAK,SACLnJ,MAAO,WACL,IAEIu0E,EACAsiN,EAHAnnN,EAAS7jF,MASX0oF,EAJE1oF,KAAK+M,MAAMqiM,WAIuB,aAHpC47F,EAAWhrS,KAAKkS,MAAMqvR,WAAWrvQ,QAAO,SAAU+4Q,GAChD,OAAOA,EAAK77F,aAAevrH,EAAO92E,MAAMqiM,UAC1C,KACoB,GAAG1mH,SAAyB,UAAY1vE,EAAcA,EAAcA,EAAc,CAAC,EAAGwxR,EAAuB,SAAIxqS,KAAKkS,OAAQ84R,EAAS,GAAGtiN,UAEnJ1vE,EAAcA,EAAc,CAAC,EAAGwxR,EAAuB,SAAIxqS,KAAKkS,QAIhE02E,aACPF,EAASi5M,eAIbj5M,EAASi5M,eAAiB,GAIxBj5M,EAASk4M,OACPl4M,EAASI,aAITJ,EAASi5M,eAIbj5M,EAASI,aAAe,EACxBJ,EAASi5M,eAAiB,GAI5B,IAAIhyQ,EAAW++M,EAAgB,QAAEj7B,SAASzG,QAAQhtM,KAAKkS,MAAMyd,UAI7DA,EAAWA,EAASuC,QAAO,SAAU8xC,GACnC,MAAqB,iBAAVA,IACAA,EAAMhyC,SAGRgyC,CACX,IAEI0kB,EAASw5M,gBAAkBx5M,EAAS5sC,KAAO,GAAK4sC,EAASg5M,aAAe,KAC1E//R,QAAQivE,KAAK,0EACb8X,EAASw5M,eAAgB,GAM3B,IAHA,IAAI5+C,EAAc,GACd2jD,EAAe,KAEVnnS,EAAI,EAAGA,EAAI6vB,EAAS5kB,OAAQjL,GAAK4oF,EAAS5sC,KAAO4sC,EAASg5M,aAAc,CAG/E,IAFA,IAAIwJ,EAAW,GAENxsO,EAAI5+D,EAAG4+D,EAAI5+D,EAAI4oF,EAAS5sC,KAAO4sC,EAASg5M,aAAchjO,GAAKgqB,EAASg5M,aAAc,CAGzF,IAFA,IAAI/lI,EAAM,GAEDv9F,EAAIM,EAAGN,EAAIM,EAAIgqB,EAASg5M,eAC3Bh5M,EAASw5M,eAAiBvyQ,EAASyuC,GAAGlsD,MAAMgE,QAC9C+wR,EAAet3Q,EAASyuC,GAAGlsD,MAAMgE,MAAMiL,SAGrCi9C,GAAKzuC,EAAS5kB,SAL2BqzD,GAAK,EAMlDu9F,EAAI13J,KAAmByqO,EAAgB,QAAE95B,aAAajlL,EAASyuC,GAAI,CACjE9gD,IAAK,IAAMxd,EAAI,GAAK4+D,EAAIN,EACxBy4B,UAAW,EACX3gF,MAAO,CACLiL,MAAO,GAAG9f,OAAO,IAAMqnF,EAASg5M,aAAc,KAC9CvwQ,QAAS,mBAKf+5Q,EAASjnS,KAAmByqO,EAAgB,QAAE9jK,cAAc,MAAO,CACjEttD,IAAK,GAAKxd,EAAI4+D,GACbi9F,GACL,CAEIjzE,EAASw5M,cACX5+C,EAAYr/O,KAAmByqO,EAAgB,QAAE9jK,cAAc,MAAO,CACpEttD,IAAKxd,EACLoW,MAAO,CACLiL,MAAO8lR,IAERiE,IAEH5nD,EAAYr/O,KAAmByqO,EAAgB,QAAE9jK,cAAc,MAAO,CACpEttD,IAAKxd,GACJorS,GAEP,CAEA,GAAiB,YAAbxiN,EAAwB,CAC1B,IAAI9zE,EAAY,mBAAqB5U,KAAKkS,MAAM0C,WAAa,IAC7D,OAAoB85N,EAAgB,QAAE9jK,cAAc,MAAO,CACzDh2D,UAAWA,GACV+a,EACL,CAIA,OAJW2zN,EAAYv4O,QAAU29E,EAASI,eACxCJ,EAASohN,SAAU,GAGDp7D,EAAgB,QAAE9jK,cAAc0/N,EAAajG,YAAaz4N,EAAS,CACrF11D,MAAOlW,KAAKkS,MAAMgE,MAClBgF,IAAKlb,KAAKmrS,uBACTziN,GAAW46J,EAChB,MA3P0EkvB,EAAkBmB,EAAYh0O,UAAWi0O,GAAiBC,GAAarB,EAAkBmB,EAAaE,GA8P3K1qL,CACT,CA3O0B,CA2OxBulJ,EAAgB,QAAE5jK,WAEpBtrE,EAAiB,QAAI2pF,C,oCC9RrBxtE,OAAO66D,eAAeh3E,EAAS,aAAc,CAC3C2U,OAAO,IAET3U,EAAQwqS,WAAQ,EAEhB,IAAIt7D,EAAS+9B,EAAuB,EAAQ,OAExCqyB,EAAcryB,EAAuB,EAAQ,OAE7CsyB,EAAoB,EAAQ,MAEhC,SAAStyB,EAAuB/gM,GAAO,OAAOA,GAAOA,EAAI0wL,WAAa1wL,EAAM,CAAE,QAAWA,EAAO,CAEhG,SAASqmM,EAAQrmM,GAAmV,OAAtOqmM,EAArD,mBAAX3U,QAAoD,iBAApBA,OAAOS,SAAmC,SAAiBnyL,GAAO,cAAcA,CAAK,EAAsB,SAAiBA,GAAO,OAAOA,GAAyB,mBAAX0xL,QAAyB1xL,EAAI7qC,cAAgBu8N,QAAU1xL,IAAQ0xL,OAAOz9N,UAAY,gBAAkB+rC,CAAK,EAAYqmM,EAAQrmM,EAAM,CAEzX,SAASE,IAA2Q,OAA9PA,EAAWjwD,OAAOC,QAAU,SAAUpH,GAAU,IAAK,IAAI1U,EAAI,EAAGA,EAAImC,UAAU8I,OAAQjL,IAAK,CAAE,IAAIghH,EAAS7+G,UAAUnC,GAAI,IAAK,IAAIwd,KAAOwjG,EAAcnlG,OAAOgkB,UAAUoP,eAAenpC,KAAKk7G,EAAQxjG,KAAQ9I,EAAO8I,GAAOwjG,EAAOxjG,GAAU,CAAE,OAAO9I,CAAQ,EAAUo3D,EAAS5pE,MAAMhC,KAAMiC,UAAY,CAI5T,SAASuwQ,EAAkBh+P,EAAQtC,GAAS,IAAK,IAAIpS,EAAI,EAAGA,EAAIoS,EAAMnH,OAAQjL,IAAK,CAAE,IAAIs7M,EAAalpM,EAAMpS,GAAIs7M,EAAWzY,WAAayY,EAAWzY,aAAc,EAAOyY,EAAW/5F,cAAe,EAAU,UAAW+5F,IAAYA,EAAWh6F,UAAW,GAAMzlG,OAAO66D,eAAehiE,EAAQ4mM,EAAW99L,IAAK89L,EAAa,CAAE,CAM5T,SAAS+3D,EAAgBnX,EAAG38N,GAA+G,OAA1G8zO,EAAkBx3P,OAAOilB,gBAAkB,SAAyBo7N,EAAG38N,GAAsB,OAAjB28N,EAAE9hI,UAAY76F,EAAU28N,CAAG,EAAUmX,EAAgBnX,EAAG38N,EAAI,CAEzK,SAAS75B,EAAaitQ,GAAW,IAAIusB,EAMrC,WAAuC,GAAuB,oBAAZpsB,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAUC,KAAM,OAAO,EAAO,GAAqB,mBAAVtY,MAAsB,OAAO,EAAM,IAAiF,OAA3E9qM,KAAK/vB,UAAUva,SAASxf,KAAKgtQ,QAAQC,UAAUnjN,KAAM,IAAI,WAAa,MAAY,CAAM,CAAE,MAAO7hD,GAAK,OAAO,CAAO,CAAE,CANlQklQ,GAA6B,OAAO,WAAkC,IAAsC34O,EAAlCs4O,EAAQC,EAAgBF,GAAkB,GAAIusB,EAA2B,CAAE,IAAIhsB,EAAYL,EAAgB3yQ,MAAM6gC,YAAazG,EAASw4O,QAAQC,UAAUH,EAAOzwQ,UAAW+wQ,EAAY,MAAS54O,EAASs4O,EAAM1wQ,MAAMhC,KAAMiC,WAAc,OAEpX,SAAoClC,EAAM6F,GAAQ,GAAIA,IAA2B,WAAlBmsQ,EAAQnsQ,IAAsC,mBAATA,GAAwB,OAAOA,EAAQ,OAAO61E,EAAuB17E,EAAO,CAF2MkzQ,CAA2BjzQ,KAAMo6B,EAAS,CAAG,CAIxa,SAASqhD,EAAuB17E,GAAQ,QAAa,IAATA,EAAmB,MAAM,IAAImzQ,eAAe,6DAAgE,OAAOnzQ,CAAM,CAIrK,SAAS4yQ,EAAgB3W,GAAwJ,OAAnJ2W,EAAkBh3P,OAAOilB,eAAiBjlB,OAAOw6D,eAAiB,SAAyB6lL,GAAK,OAAOA,EAAE9hI,WAAav+G,OAAOw6D,eAAe6lL,EAAI,EAAU2W,EAAgB3W,EAAI,CAE5M,SAASiQ,EAAQ51I,EAAQ61I,GAAkB,IAAI1qO,EAAO7lB,OAAO6lB,KAAK60F,GAAS,GAAI16G,OAAOqsL,sBAAuB,CAAE,IAAImkE,EAAUxwP,OAAOqsL,sBAAsB3xE,GAAa61I,IAAgBC,EAAUA,EAAQj6O,QAAO,SAAUk6O,GAAO,OAAOzwP,OAAOkhH,yBAAyBxG,EAAQ+1I,GAAKzpE,UAAY,KAAInhK,EAAKv9B,KAAKjC,MAAMw/B,EAAM2qO,EAAU,CAAE,OAAO3qO,CAAM,CAEpV,SAASxoB,EAAcxE,GAAU,IAAK,IAAI1U,EAAI,EAAGA,EAAImC,UAAU8I,OAAQjL,IAAK,CAAE,IAAIghH,EAAyB,MAAhB7+G,UAAUnC,GAAamC,UAAUnC,GAAK,CAAC,EAAOA,EAAI,EAAKmsQ,EAAQtwP,OAAOmlG,IAAS,GAAM/yC,SAAQ,SAAUzwD,GAAO/I,EAAgBC,EAAQ8I,EAAKwjG,EAAOxjG,GAAO,IAAe3B,OAAO2wP,0BAA6B3wP,OAAO4wP,iBAAiB/3P,EAAQmH,OAAO2wP,0BAA0BxrJ,IAAmBmrJ,EAAQtwP,OAAOmlG,IAAS/yC,SAAQ,SAAUzwD,GAAO3B,OAAO66D,eAAehiE,EAAQ8I,EAAK3B,OAAOkhH,yBAAyB/b,EAAQxjG,GAAO,GAAM,CAAE,OAAO9I,CAAQ,CAErhB,SAASD,EAAgBm3D,EAAKpuD,EAAKnJ,GAAiK,OAApJmJ,KAAOouD,EAAO/vD,OAAO66D,eAAe9K,EAAKpuD,EAAK,CAAEnJ,MAAOA,EAAOwuL,YAAY,EAAMthF,cAAc,EAAMD,UAAU,IAAkB11C,EAAIpuD,GAAOnJ,EAAgBu3D,CAAK,CAGhN,IAAI0/N,EAAkB,SAAyB9I,GAC7C,IAAI+I,EAAaC,EAAaC,EAC1BC,EAAcvwR,EAgClB,OAxBAswR,GALEtwR,EADEqnR,EAAKd,IACCc,EAAKhD,WAAa,EAAIgD,EAAKrnR,MAE3BqnR,EAAKrnR,OAGO,GAAKA,GAASqnR,EAAKhD,WAErCgD,EAAK15M,YACP4iN,EAAer2P,KAAKspB,MAAM6jO,EAAKx5M,aAAe,GAC9CwiN,GAAerwR,EAAQqnR,EAAKjD,cAAgBiD,EAAKhD,YAAe,EAE5DrkR,EAAQqnR,EAAKjD,aAAemM,EAAe,GAAKvwR,GAASqnR,EAAKjD,aAAemM,IAC/EH,GAAc,IAGhBA,EAAc/I,EAAKjD,cAAgBpkR,GAASA,EAAQqnR,EAAKjD,aAAeiD,EAAKx5M,aAcxE,CACL,eAAe,EACf,eAAgBuiN,EAChB,eAAgBC,EAChB,eAAgBC,EAChB,gBANiBtwR,KARfqnR,EAAK8B,YAAc,EACN9B,EAAK8B,YAAc9B,EAAKhD,WAC9BgD,EAAK8B,aAAe9B,EAAKhD,WACnBgD,EAAK8B,YAAc9B,EAAKhD,WAExBgD,EAAK8B,aAYxB,EA4BIqH,EAAS,SAAgBznO,EAAO0nO,GAClC,OAAO1nO,EAAM1mD,KAAOouR,CACtB,EAEIC,EAAe,SAAsBrJ,GACvC,IAAIhlR,EACAqrM,EAAS,GACTijF,EAAiB,GACjBC,EAAkB,GAElB3E,EAAgBx4D,EAAgB,QAAEj7B,SAAStuI,MAAMm9N,EAAK3yQ,UAEtDouM,GAAa,EAAIghE,EAAkB+M,gBAAgBxJ,GACnDzrF,GAAW,EAAIkoF,EAAkBgN,cAAczJ,GAsGnD,OApGA5zD,EAAgB,QAAEj7B,SAAS1lI,QAAQu0N,EAAK3yQ,UAAU,SAAU+rB,EAAMzgC,GAChE,IAAI+oD,EACAgoO,EAAsB,CACxBvmS,QAAS,WACTwV,MAAOA,EACP0mR,eAAgBW,EAAKX,eACrBtC,aAAciD,EAAKjD,cAInBr7N,GADGs+N,EAAKvB,UAAYuB,EAAKvB,UAAYuB,EAAKe,eAAex8P,QAAQ5rB,IAAU,EACnEygC,EAEagzL,EAAgB,QAAE9jK,cAAc,MAAO,MAG9D,IAAIqhO,EAxDY,SAAuB3J,GACzC,IAAIpsR,EAAQ,CAAC,EAsBb,YApB2BxR,IAAvB49R,EAAKJ,gBAAsD,IAAvBI,EAAKJ,gBAC3ChsR,EAAMiL,MAAQmhR,EAAKl5E,YAGjBk5E,EAAK1B,OACP1qR,EAAMkU,SAAW,WAEbk4Q,EAAKH,SACPjsR,EAAMhH,KAAOozR,EAAKrnR,MAAQmwC,SAASk3O,EAAKmB,aAExCvtR,EAAM3G,MAAQ+yR,EAAKrnR,MAAQmwC,SAASk3O,EAAKl5E,YAG3ClzM,EAAMgjF,QAAUopM,EAAKjD,eAAiBiD,EAAKrnR,MAAQ,EAAI,EAEnDqnR,EAAKN,SACP9rR,EAAM04L,WAAa,WAAa0zF,EAAKt5M,MAAQ,MAAQs5M,EAAK9B,QAAvC,gBAAwE8B,EAAKt5M,MAAQ,MAAQs5M,EAAK9B,UAIlHtqR,CACT,CAgCqBg2R,CAAclzR,EAAcA,EAAc,CAAC,EAAGspR,GAAO,CAAC,EAAG,CACxErnR,MAAOA,KAELkxR,EAAanoO,EAAM9xD,MAAM0C,WAAa,GACtCw3R,EAAehB,EAAgBpyR,EAAcA,EAAc,CAAC,EAAGspR,GAAO,CAAC,EAAG,CAC5ErnR,MAAOA,KAqBT,GAlBA0tM,EAAO1kN,KAAmByqO,EAAgB,QAAE95B,aAAa5wI,EAAO,CAC9D1mD,IAAK,WAAamuR,EAAOznO,EAAO/oD,GAChC,aAAcA,EACdrG,WAAW,EAAIkqR,EAAqB,SAAGsN,EAAcD,GACrDt1M,SAAU,KACV,eAAgBu1M,EAAa,gBAC7Bl2R,MAAO8C,EAAcA,EAAc,CACjCqzR,QAAS,QACRroO,EAAM9xD,MAAMgE,OAAS,CAAC,GAAI+1R,GAC7Br+R,QAAS,SAAiBC,GACxBm2D,EAAM9xD,OAAS8xD,EAAM9xD,MAAMtE,SAAWo2D,EAAM9xD,MAAMtE,QAAQC,GAEtDy0R,EAAKzB,eACPyB,EAAKzB,cAAcmL,EAEvB,KAGE1J,EAAK35M,WAA0B,IAAd25M,EAAK1B,KAAgB,CACxC,IAAI0L,EAAapF,EAAgBjsR,EAE7BqxR,IAAc,EAAIvN,EAAkB6H,cAActE,IAAS4E,IAAkB5E,EAAKx5M,gBACpFxrE,GAAOgvR,IAEIvuE,IACT/5J,EAAQtoB,GAGV0wP,EAAehB,EAAgBpyR,EAAcA,EAAc,CAAC,EAAGspR,GAAO,CAAC,EAAG,CACxErnR,MAAOqC,KAETsuR,EAAe3nS,KAAmByqO,EAAgB,QAAE95B,aAAa5wI,EAAO,CACtE1mD,IAAK,YAAcmuR,EAAOznO,EAAO1mD,GACjC,aAAcA,EACdu5E,SAAU,KACVjiF,WAAW,EAAIkqR,EAAqB,SAAGsN,EAAcD,GACrD,eAAgBC,EAAa,gBAC7Bl2R,MAAO8C,EAAcA,EAAc,CAAC,EAAGgrD,EAAM9xD,MAAMgE,OAAS,CAAC,GAAI+1R,GACjEr+R,QAAS,SAAiBC,GACxBm2D,EAAM9xD,OAAS8xD,EAAM9xD,MAAMtE,SAAWo2D,EAAM9xD,MAAMtE,QAAQC,GAEtDy0R,EAAKzB,eACPyB,EAAKzB,cAAcmL,EAEvB,MAIA9E,IAAkB5E,EAAKx5M,gBACzBxrE,EAAM4pR,EAAgBjsR,GAEZ47L,IACR7yI,EAAQtoB,GAGV0wP,EAAehB,EAAgBpyR,EAAcA,EAAc,CAAC,EAAGspR,GAAO,CAAC,EAAG,CACxErnR,MAAOqC,KAETuuR,EAAgB5nS,KAAmByqO,EAAgB,QAAE95B,aAAa5wI,EAAO,CACvE1mD,IAAK,aAAemuR,EAAOznO,EAAO1mD,GAClC,aAAcA,EACdu5E,SAAU,KACVjiF,WAAW,EAAIkqR,EAAqB,SAAGsN,EAAcD,GACrD,eAAgBC,EAAa,gBAC7Bl2R,MAAO8C,EAAcA,EAAc,CAAC,EAAGgrD,EAAM9xD,MAAMgE,OAAS,CAAC,GAAI+1R,GACjEr+R,QAAS,SAAiBC,GACxBm2D,EAAM9xD,OAAS8xD,EAAM9xD,MAAMtE,SAAWo2D,EAAM9xD,MAAMtE,QAAQC,GAEtDy0R,EAAKzB,eACPyB,EAAKzB,cAAcmL,EAEvB,KAGN,CACF,IAEI1J,EAAKd,IACAoK,EAAevqS,OAAOsnN,EAAQkjF,GAAiB/rL,UAE/C8rL,EAAevqS,OAAOsnN,EAAQkjF,EAEzC,EAEI7B,EAAqB,SAAU/K,IArNnC,SAAmBxrB,EAAUC,GAAc,GAA0B,mBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAIxzO,UAAU,sDAAyDuzO,EAAS9zO,UAAYhkB,OAAOszB,OAAOykO,GAAcA,EAAW/zO,UAAW,CAAEkB,YAAa,CAAE1sB,MAAOs/P,EAAUryJ,UAAU,EAAMC,cAAc,KAAeqyJ,GAAYP,EAAgBM,EAAUC,EAAa,CAsN9XpuQ,CAAU0kS,EAAO/K,GAEjB,IA1NoBtrB,EAAaC,EAAYC,EA0NzCtuQ,EAASC,EAAawkS,GAE1B,SAASA,IACP,IAAItkS,GAjOR,SAAyB01E,EAAUu4L,GAAe,KAAMv4L,aAAoBu4L,GAAgB,MAAM,IAAIzzO,UAAU,oCAAwC,CAmOpJv6B,CAAgB3F,KAAMgqS,GAEtB,IAAK,IAAIxnP,EAAOvgD,UAAU8I,OAAQ00B,EAAO,IAAIC,MAAM8iB,GAAOE,EAAO,EAAGA,EAAOF,EAAME,IAC/EjjB,EAAKijB,GAAQzgD,UAAUygD,GAWzB,OANAnuC,EAAgBknE,EAFhB/1E,EAAQH,EAAOK,KAAK5D,MAAMuD,EAAQ,CAACvF,MAAMqB,OAAOo+B,KAED,OAAQ,MAEvDlrB,EAAgBknE,EAAuB/1E,GAAQ,aAAa,SAAUwV,GACpExV,EAAM6vM,KAAOr6L,CACf,IAEOxV,CACT,CAuBA,OArQoBiuQ,EAgPPq2B,GAhPoBp2B,EAgPb,CAAC,CACnBt2P,IAAK,SACLnJ,MAAO,WACL,IAAIw0M,EAASgjF,EAAa3rS,KAAKkS,OAC3ButE,EAAcz/E,KAAKkS,MAInBuwR,EAAc,CAChBjjP,aAJiBigC,EAAYjgC,aAK7B+iP,YAJgB9iN,EAAY8iN,YAK5Bl5N,aAJiBoW,EAAYpW,cAM/B,OAAoBqlK,EAAgB,QAAE9jK,cAAc,MAAOgB,EAAS,CAClE1wD,IAAKlb,KAAKusS,UACV33R,UAAW,cACXsB,MAAOlW,KAAKkS,MAAMgyR,YACjBzB,GAAc95E,EACnB,MAlQ0E6pD,EAAkBmB,EAAYh0O,UAAWi0O,GAAiBC,GAAarB,EAAkBmB,EAAaE,GAqQ3Km2B,CACT,CA/CyB,CA+CvBt7D,EAAgB,QAAE/Z,eAEpBn1N,EAAQwqS,MAAQA,C,oCC7RhBruR,OAAO66D,eAAeh3E,EAAS,aAAc,CAC3C2U,OAAO,IAET3U,EAAQk9O,MAAQA,EAChBl9O,EAAQm3E,UAAYn3E,EAAQgtS,aAAehtS,EAAQitS,cAAgBjtS,EAAQktS,iBAAmBltS,EAAQmtS,eAAiBntS,EAAQsnS,cAAgBtnS,EAAQonS,aAAepnS,EAAQ8mS,aAAe9mS,EAAQotS,mBAAqBptS,EAAQ+mS,YAAc/mS,EAAQqtS,cAAgBrtS,EAAQstS,cAAgBttS,EAAQutS,eAAiBvtS,EAAQwtS,oBAAsBxtS,EAAQipS,SAAWjpS,EAAQgpS,UAAYhpS,EAAQ+oS,WAAa/oS,EAAQ0oS,WAAa1oS,EAAQwpN,YAAcxpN,EAAQqoS,aAAeroS,EAAQ4mS,iBAAmB5mS,EAAQupS,cAAgBvpS,EAAQsgS,UAAYtgS,EAAQytS,kBAAoBztS,EAAQw0E,UAAYx0E,EAAQu0E,SAAWv0E,EAAQ0tS,kBAAoB1tS,EAAQ2tS,iBAAmB3tS,EAAQusS,aAAevsS,EAAQssS,eAAiBtsS,EAAQ4tS,sBAAwB5tS,EAAQqlS,2BAAwB,EAEtwB,IAEgCn5N,EAF5BgjK,GAE4BhjK,EAFI,EAAQ,QAESA,EAAI0wL,WAAa1wL,EAAM,CAAE,QAAWA,GAEzF,SAASugM,EAAQ51I,EAAQ61I,GAAkB,IAAI1qO,EAAO7lB,OAAO6lB,KAAK60F,GAAS,GAAI16G,OAAOqsL,sBAAuB,CAAE,IAAImkE,EAAUxwP,OAAOqsL,sBAAsB3xE,GAAa61I,IAAgBC,EAAUA,EAAQj6O,QAAO,SAAUk6O,GAAO,OAAOzwP,OAAOkhH,yBAAyBxG,EAAQ+1I,GAAKzpE,UAAY,KAAInhK,EAAKv9B,KAAKjC,MAAMw/B,EAAM2qO,EAAU,CAAE,OAAO3qO,CAAM,CAEpV,SAASxoB,EAAcxE,GAAU,IAAK,IAAI1U,EAAI,EAAGA,EAAImC,UAAU8I,OAAQjL,IAAK,CAAE,IAAIghH,EAAyB,MAAhB7+G,UAAUnC,GAAamC,UAAUnC,GAAK,CAAC,EAAOA,EAAI,EAAKmsQ,EAAQtwP,OAAOmlG,IAAS,GAAM/yC,SAAQ,SAAUzwD,GAAO/I,EAAgBC,EAAQ8I,EAAKwjG,EAAOxjG,GAAO,IAAe3B,OAAO2wP,0BAA6B3wP,OAAO4wP,iBAAiB/3P,EAAQmH,OAAO2wP,0BAA0BxrJ,IAAmBmrJ,EAAQtwP,OAAOmlG,IAAS/yC,SAAQ,SAAUzwD,GAAO3B,OAAO66D,eAAehiE,EAAQ8I,EAAK3B,OAAOkhH,yBAAyB/b,EAAQxjG,GAAO,GAAM,CAAE,OAAO9I,CAAQ,CAErhB,SAASD,EAAgBm3D,EAAKpuD,EAAKnJ,GAAiK,OAApJmJ,KAAOouD,EAAO/vD,OAAO66D,eAAe9K,EAAKpuD,EAAK,CAAEnJ,MAAOA,EAAOwuL,YAAY,EAAMthF,cAAc,EAAMD,UAAU,IAAkB11C,EAAIpuD,GAAOnJ,EAAgBu3D,CAAK,CAEhN,SAASgxK,EAAMx4N,EAAQmpR,EAAYC,GACjC,OAAOn4P,KAAK9+B,IAAIg3R,EAAYl4P,KAAK3+B,IAAI0N,EAAQopR,GAC/C,CAEA,IAAIzI,EAAwB,SAA+BvC,GAKzD,IAJA,IAAIiL,EAAiB,GACjBxvE,EAAa+tE,EAAexJ,GAC5BzrF,EAAWk1F,EAAazJ,GAEnBj8E,EAAa0X,EAAY1X,EAAaxP,EAAUwP,IACnDi8E,EAAKe,eAAex8P,QAAQw/K,GAAc,GAC5CknF,EAAetpS,KAAKoiN,GAIxB,OAAOknF,CACT,EAGA/tS,EAAQqlS,sBAAwBA,EAehCrlS,EAAQ4tS,sBAboB,SAA+B9K,GAKzD,IAJA,IAAIkL,EAAiB,GACjBzvE,EAAa+tE,EAAexJ,GAC5BzrF,EAAWk1F,EAAazJ,GAEnBj8E,EAAa0X,EAAY1X,EAAaxP,EAAUwP,IACvDmnF,EAAevpS,KAAKoiN,GAGtB,OAAOmnF,CACT,EAKA,IAAI1B,EAAiB,SAAwBxJ,GAC3C,OAAOA,EAAKjD,aAAe8N,EAAiB7K,EAC9C,EAEA9iS,EAAQssS,eAAiBA,EAEzB,IAAIC,EAAe,SAAsBzJ,GACvC,OAAOA,EAAKjD,aAAe6N,EAAkB5K,EAC/C,EAEA9iS,EAAQusS,aAAeA,EAEvB,IAAIoB,EAAmB,SAA0B7K,GAC/C,OAAOA,EAAK15M,WAAazzC,KAAKspB,MAAM6jO,EAAKx5M,aAAe,IAAM19B,SAASk3O,EAAKz5M,eAAiB,EAAI,EAAI,GAAK,CAC5G,EAEArpF,EAAQ2tS,iBAAmBA,EAE3B,IAAID,EAAoB,SAA2B5K,GACjD,OAAOA,EAAK15M,WAAazzC,KAAKspB,OAAO6jO,EAAKx5M,aAAe,GAAK,GAAK,GAAK19B,SAASk3O,EAAKz5M,eAAiB,EAAI,EAAI,GAAKy5M,EAAKx5M,YAC3H,EAGAtpF,EAAQ0tS,kBAAoBA,EAE5B,IAAIn5N,EAAW,SAAkBr4B,GAC/B,OAAOA,GAAQA,EAAKu8B,aAAe,CACrC,EAEAz4E,EAAQu0E,SAAWA,EAEnB,IAAIC,EAAY,SAAmBt4B,GACjC,OAAOA,GAAQA,EAAKw8B,cAAgB,CACtC,EAEA14E,EAAQw0E,UAAYA,EAEpB,IAAIi5N,EAAoB,SAA2BpJ,GACjD,IACI4J,EAAOC,EAAOjtO,EAAGktO,EADjBtF,EAAkBpmS,UAAU8I,OAAS,QAAsBrG,IAAjBzC,UAAU,IAAmBA,UAAU,GAWrF,OATAwrS,EAAQ5J,EAAYC,OAASD,EAAYG,KACzC0J,EAAQ7J,EAAYE,OAASF,EAAYI,KACzCxjO,EAAItrB,KAAKktJ,MAAMqrG,EAAOD,IACtBE,EAAax4P,KAAKkvB,MAAU,IAAJ5D,EAAUtrB,KAAKowB,KAEtB,IACfooO,EAAa,IAAMx4P,KAAKytC,IAAI+qN,IAG1BA,GAAc,IAAMA,GAAc,GAAKA,GAAc,KAAOA,GAAc,IACrE,OAGLA,GAAc,KAAOA,GAAc,IAC9B,SAGe,IAApBtF,EACEsF,GAAc,IAAMA,GAAc,IAC7B,KAEA,OAIJ,UACT,EAGAnuS,EAAQytS,kBAAoBA,EAE5B,IAAInN,EAAY,SAAmBwC,GACjC,IAAIsL,GAAQ,EAUZ,OARKtL,EAAK35M,WACJ25M,EAAK15M,YAAc05M,EAAKjD,cAAgBiD,EAAKhD,WAAa,GAEnDgD,EAAKhD,YAAcgD,EAAKx5M,cAAgBw5M,EAAKjD,cAAgBiD,EAAKhD,WAAagD,EAAKx5M,gBAD7F8kN,GAAQ,GAMLA,CACT,EAGApuS,EAAQsgS,UAAYA,EAWpBtgS,EAAQupS,cATY,SAAuBzG,EAAM9gQ,GAC/C,IAAIqsQ,EAAY,CAAC,EAIjB,OAHArsQ,EAAKusC,SAAQ,SAAUzwD,GACrB,OAAOuwR,EAAUvwR,GAAOglR,EAAKhlR,EAC/B,IACOuwR,CACT,EA2DAruS,EAAQ4mS,iBAtDe,SAA0B9D,GAE/C,IAMIl5E,EANAk2E,EAAa5wD,EAAgB,QAAEj7B,SAAStuI,MAAMm9N,EAAK3yQ,UAEnDm+Q,EAAWxL,EAAKyC,QAChBxB,EAAYpuP,KAAKukC,KAAK3F,EAAS+5N,IAC/BC,EAAYzL,EAAK0C,UAAY1C,EAAK0C,SAASzvF,KAC3C4uF,EAAahvP,KAAKukC,KAAK3F,EAASg6N,IAGpC,GAAKzL,EAAKH,SASR/4E,EAAam6E,MATK,CAClB,IAAIyK,EAAmB1L,EAAK15M,YAA6C,EAA/Bx9B,SAASk3O,EAAKz5M,eAEtB,iBAAvBy5M,EAAKz5M,eAA+D,MAAjCy5M,EAAKz5M,cAAcpwE,OAAO,KACtEu1R,GAAoBzK,EAAY,KAGlCn6E,EAAaj0K,KAAKukC,MAAM6pN,EAAYyK,GAAoB1L,EAAKx5M,aAC/D,CAIA,IAAI26M,EAAcqK,GAAY95N,EAAU85N,EAAS5mM,cAAc,qBAC3Do8L,EAAaG,EAAcnB,EAAKx5M,aAChCu2M,OAAqC36R,IAAtB49R,EAAKjD,aAA6BiD,EAAKxB,aAAewB,EAAKjD,aAE1EiD,EAAKd,UAA6B98R,IAAtB49R,EAAKjD,eACnBA,EAAeC,EAAa,EAAIgD,EAAKxB,cAGvC,IAAIuC,EAAiBf,EAAKe,gBAAkB,GACxCuB,EAAeC,EAAsB7rR,EAAcA,EAAc,CAAC,EAAGspR,GAAO,CAAC,EAAG,CAClFjD,aAAcA,EACdgE,eAAgBA,KAElBA,EAAehiS,OAAOujS,GACtB,IAAI73R,EAAQ,CACVuyR,WAAYA,EACZl2E,WAAYA,EACZm6E,UAAWA,EACXY,WAAYA,EACZ9E,aAAcA,EACdoE,YAAaA,EACbH,WAAYA,EACZD,eAAgBA,GAOlB,OAJyB,OAArBf,EAAKU,aAAwBV,EAAKhC,WACpCvzR,EAAmB,YAAI,WAGlBA,CACT,EA2HAvN,EAAQqoS,aAvHW,SAAsBvF,GACvC,IAAIF,EAAiBE,EAAKF,eACtBW,EAAYT,EAAKS,UACjBnC,EAAO0B,EAAK1B,KACZj4M,EAAW25M,EAAK35M,SAChB1tE,EAAQqnR,EAAKrnR,MACbqkR,EAAagD,EAAKhD,WAClB+D,EAAiBf,EAAKe,eACtBtC,EAAWuB,EAAKvB,SAChB1B,EAAeiD,EAAKjD,aACpBz2M,EAAa05M,EAAK15M,WAClB+4M,EAAiBW,EAAKX,eACtB74M,EAAew5M,EAAKx5M,aACpBk5M,EAASM,EAAKN,OAClB,GAAII,GAAkBW,EAAW,MAAO,CAAC,EACzC,IACIkL,EACAC,EACAC,EAHAC,EAAiBnzR,EAIjBlO,EAAQ,CAAC,EACT0hE,EAAY,CAAC,EACb21N,EAAcz7M,EAAW1tE,EAAQyhO,EAAMzhO,EAAO,EAAGqkR,EAAa,GAElE,GAAIsB,EAAM,CACR,IAAKj4M,IAAa1tE,EAAQ,GAAKA,GAASqkR,GAAa,MAAO,CAAC,EAEzDrkR,EAAQ,EACVmzR,EAAiBnzR,EAAQqkR,EAChBrkR,GAASqkR,IAClB8O,EAAiBnzR,EAAQqkR,GAGvByB,GAAYsC,EAAex8P,QAAQunQ,GAAkB,GACvD/K,EAAep/R,KAAKmqS,GAGtBrhS,EAAQ,CACNg2R,WAAW,EACX1D,aAAc+O,EACd/K,eAAgBA,EAChBe,YAAagK,GAEf3/N,EAAY,CACVs0N,WAAW,EACXqB,YAAagK,EAEjB,MACEH,EAAaG,EAETA,EAAiB,GACnBH,EAAaG,EAAiB9O,EACzB32M,EAAkC22M,EAAaqC,GAAmB,IAAGsM,EAAa3O,EAAaA,EAAaqC,GAAlGsM,EAAa,IAClBnO,EAAUwC,IAAS8L,EAAiB/O,EAC9C+O,EAAiBH,EAAa5O,EACrBz2M,GAAcwlN,GAAkB9O,GACzC8O,EAAiBzlN,EAAW22M,EAAaA,EAAa,EACtD2O,EAAatlN,EAAW,EAAI22M,EAAa,GAChC8O,GAAkB9O,IAC3B2O,EAAaG,EAAiB9O,EACzB32M,EAA0D22M,EAAaqC,GAAmB,IAAGsM,EAAa,GAAhGA,EAAa3O,EAAax2M,IAGtCH,GAAYylN,EAAiBtlN,GAAgBw2M,IAChD2O,EAAa3O,EAAax2M,GAG5BolN,EAAgB5H,EAAattR,EAAcA,EAAc,CAAC,EAAGspR,GAAO,CAAC,EAAG,CACtEj8E,WAAY+nF,KAEdD,EAAY7H,EAAattR,EAAcA,EAAc,CAAC,EAAGspR,GAAO,CAAC,EAAG,CAClEj8E,WAAY4nF,KAGTtlN,IACCulN,IAAkBC,IAAWC,EAAiBH,GAClDC,EAAgBC,GAGlBpN,GAAYsC,EAAehiS,OAAOwjS,EAAsB7rR,EAAcA,EAAc,CAAC,EAAGspR,GAAO,CAAC,EAAG,CACjGjD,aAAc+O,MAGXpM,GAUHj1R,EAAQ,CACNg2R,WAAW,EACX1D,aAAc4O,EACd/J,WAAY0I,EAAmB5zR,EAAcA,EAAc,CAAC,EAAGspR,GAAO,CAAC,EAAG,CACxE/yR,KAAM2+R,KAER7K,eAAgBA,EAChBe,YAAaA,GAEf31N,EAAY,CACVs0N,WAAW,EACX1D,aAAc4O,EACd/J,WAAYqC,EAAYvtR,EAAcA,EAAc,CAAC,EAAGspR,GAAO,CAAC,EAAG,CACjE/yR,KAAM4+R,KAERzK,UAAW,KACXU,YAAaA,IAzBfr3R,EAAQ,CACNsyR,aAAc4O,EACd/J,WAAYqC,EAAYvtR,EAAcA,EAAc,CAAC,EAAGspR,GAAO,CAAC,EAAG,CACjE/yR,KAAM4+R,KAER9K,eAAgBA,EAChBe,YAAaA,GAwBnB,MAAO,CACLr3R,MAAOA,EACP0hE,UAAWA,EAEf,EAgEAjvE,EAAQwpN,YA5DU,SAAqBs5E,EAAMx9R,GAC3C,IAAIupS,EAAaC,EAAaC,EAA2BnK,EACrDzC,EAAiBW,EAAKX,eACtB74M,EAAew5M,EAAKx5M,aACpBw2M,EAAagD,EAAKhD,WAClBD,EAAeiD,EAAKjD,aACpBmP,EAAsBlM,EAAK8B,YAC3BrD,EAAWuB,EAAKvB,SAChBp4M,EAAW25M,EAAK35M,SAIpB,GAFA0lN,EADe/O,EAAaqC,GAAmB,EAClB,GAAKrC,EAAaD,GAAgBsC,EAEvC,aAApB78R,EAAQW,QAEV2+R,EAAc/E,GADdkP,EAA8B,IAAhBF,EAAoB1M,EAAiB74M,EAAeulN,GAG9DtN,IAAap4M,IAEfy7M,GAA+B,KAD/BkK,EAAcjP,EAAekP,GACMjP,EAAa,EAAIgP,GAGjD3lN,IACHy7M,EAAcoK,EAAsB7M,QAEjC,GAAwB,SAApB78R,EAAQW,QAEjB2+R,EAAc/E,GADdkP,EAA8B,IAAhBF,EAAoB1M,EAAiB0M,GAG/CtN,IAAap4M,IACfy7M,GAAe/E,EAAesC,GAAkBrC,EAAa+O,GAG1D1lN,IACHy7M,EAAcoK,EAAsB7M,QAEjC,GAAwB,SAApB78R,EAAQW,QAEjB2+R,EAAct/R,EAAQmW,MAAQnW,EAAQ68R,oBACjC,GAAwB,aAApB78R,EAAQW,SAIjB,GAFA2+R,EAAct/R,EAAQmW,MAElB0tE,EAAU,CACZ,IAAIojH,EAAY2gG,EAAiB1zR,EAAcA,EAAc,CAAC,EAAGspR,GAAO,CAAC,EAAG,CAC1E8B,YAAaA,KAGXA,EAAct/R,EAAQu6R,cAA8B,SAAdtzF,EACxCq4F,GAA4B9E,EACnB8E,EAAct/R,EAAQu6R,cAA8B,UAAdtzF,IAC/Cq4F,GAA4B9E,EAEhC,MAC6B,UAApBx6R,EAAQW,UACjB2+R,EAAc3sQ,OAAO3yB,EAAQmW,QAG/B,OAAOmpR,CACT,EAWA5kS,EAAQ0oS,WAPS,SAAoBr6R,EAAGoyR,EAAeuB,GACrD,OAAI3zR,EAAE2G,OAAO0rG,QAAQrsG,MAAM,2BAA6BosR,EAAsB,GAC5D,KAAdpyR,EAAEkpF,QAAuByqM,EAAM,OAAS,WAC1B,KAAd3zR,EAAEkpF,QAAuByqM,EAAM,WAAa,OACzC,EACT,EAkBAhiS,EAAQ+oS,WAdS,SAAoB16R,EAAGk7E,EAAO9M,GAE7C,MADqB,QAArBpuE,EAAE2G,OAAO0rG,SAAqBryG,EAAE0C,kBAC3Bw4E,IAAU9M,IAA0C,IAA7BpuE,EAAE5I,KAAK4hC,QAAQ,SAAwB,GAC5D,CACLs8P,UAAU,EACVU,YAAa,CACXC,OAAQj2R,EAAEogN,QAAUpgN,EAAEogN,QAAQ,GAAG6tB,MAAQjuO,EAAE+zE,QAC3CmiN,OAAQl2R,EAAEogN,QAAUpgN,EAAEogN,QAAQ,GAAGwgF,MAAQ5gS,EAAEi0E,QAC3CkiN,KAAMn2R,EAAEogN,QAAUpgN,EAAEogN,QAAQ,GAAG6tB,MAAQjuO,EAAE+zE,QACzCqiN,KAAMp2R,EAAEogN,QAAUpgN,EAAEogN,QAAQ,GAAGwgF,MAAQ5gS,EAAEi0E,SAG/C,EAmGAtiF,EAAQgpS,UA/FQ,SAAmB36R,EAAGy0R,GAEpC,IAAIkB,EAAYlB,EAAKkB,UACjBT,EAAYT,EAAKS,UACjBZ,EAAWG,EAAKH,SAChBN,EAAeS,EAAKT,aACpBwG,EAAkB/F,EAAK+F,gBACvB7G,EAAMc,EAAKd,IACXnC,EAAeiD,EAAKjD,aACpBsB,EAAe2B,EAAK3B,aACpByC,EAAcd,EAAKc,YACnBpC,EAASsB,EAAKtB,OACd2C,EAASrB,EAAKqB,OACdC,EAAUtB,EAAKsB,QACftE,EAAagD,EAAKhD,WAClBqC,EAAiBW,EAAKX,eACtBh5M,EAAW25M,EAAK35M,SAChBk7M,EAAcvB,EAAKuB,YACnBjC,EAAaU,EAAKV,WAClB0B,EAAahB,EAAKgB,WAClBC,EAAYjB,EAAKiB,UACrB,IAAIC,EAAJ,CACA,GAAIT,EAAW,OAAOl1R,EAAE0C,iBACpB4xR,GAAYN,GAAgBwG,GAAiBx6R,EAAE0C,iBACnD,IAAImzR,EACA32R,EAAQ,CAAC,EACT2hS,EAAUpI,EAAahE,GAC3BuB,EAAYG,KAAOn2R,EAAEogN,QAAUpgN,EAAEogN,QAAQ,GAAG6tB,MAAQjuO,EAAE+zE,QACtDiiN,EAAYI,KAAOp2R,EAAEogN,QAAUpgN,EAAEogN,QAAQ,GAAGwgF,MAAQ5gS,EAAEi0E,QACtD+hN,EAAY8K,YAAcx5P,KAAKkvB,MAAMlvB,KAAK2mB,KAAK3mB,KAAK0mB,IAAIgoO,EAAYG,KAAOH,EAAYC,OAAQ,KAC/F,IAAI8K,EAAsBz5P,KAAKkvB,MAAMlvB,KAAK2mB,KAAK3mB,KAAK0mB,IAAIgoO,EAAYI,KAAOJ,EAAYE,OAAQ,KAE/F,IAAKsE,IAAoBzE,GAAWgL,EAAsB,GACxD,MAAO,CACLpL,WAAW,GAIX6E,IAAiBxE,EAAY8K,YAAcC,GAC/C,IAAIC,GAAmBrN,GAAW,EAAL,IAAWqC,EAAYG,KAAOH,EAAYC,OAAS,GAAK,GACjFuE,IAAiBwG,EAAiBhL,EAAYI,KAAOJ,EAAYE,OAAS,GAAK,GACnF,IAAIvB,EAAWrtP,KAAKukC,KAAK4lN,EAAaqC,GAClCmN,EAAiB7B,EAAkB3K,EAAKuB,YAAawE,GACrD0G,EAAmBlL,EAAY8K,YAwCnC,OAtCKhmN,IACkB,IAAjB02M,GAAyC,UAAnByP,GAA8BzP,EAAe,GAAKmD,GAA+B,SAAnBsM,IAA8BhP,EAAUwC,IAA4B,SAAnBwM,KACvIC,EAAmBlL,EAAY8K,YAAchO,GAEzB,IAAhByC,GAAyBpC,IAC3BA,EAAO8N,GACP/hS,EAAmB,aAAI,KAKxB42R,GAAU/B,IACbA,EAAWkN,GACX/hS,EAAc,QAAI,GAUlB22R,EAPGvB,EAOSuM,EAAUK,GAAoBzL,EAAaC,GAAasL,EAN/DrN,EAGSkN,EAAUK,EAAmBF,EAF7BH,EAAUK,EAAmBF,EAQzCxG,IACF3E,EAAYgL,EAAUK,EAAmBF,GAG3C9hS,EAAQiM,EAAcA,EAAc,CAAC,EAAGjM,GAAQ,CAAC,EAAG,CAClD82R,YAAaA,EACbH,UAAWA,EACXQ,WAAYqC,EAAYvtR,EAAcA,EAAc,CAAC,EAAGspR,GAAO,CAAC,EAAG,CACjE/yR,KAAMm0R,OAINvuP,KAAKytC,IAAIihN,EAAYG,KAAOH,EAAYC,QAA4D,GAAlD3uP,KAAKytC,IAAIihN,EAAYI,KAAOJ,EAAYE,QACrFh3R,GAGL82R,EAAY8K,YAAc,KAC5B5hS,EAAe,SAAI,EACnBc,EAAE0C,kBAGGxD,EAvEc,CAwEvB,EAsFAvN,EAAQipS,SAlFO,SAAkB56R,EAAGy0R,GAClC,IAAIa,EAAWb,EAAKa,SAChBp6M,EAAQu5M,EAAKv5M,MACb86M,EAAcvB,EAAKuB,YACnBN,EAAYjB,EAAKiB,UACjBxB,EAAiBO,EAAKP,eACtBsG,EAAkB/F,EAAK+F,gBACvB/E,EAAahB,EAAKgB,WAClBzB,EAAeS,EAAKT,aACpB2B,EAAYlB,EAAKkB,UACjBwL,EAAU1M,EAAK0M,QACf5K,EAAc9B,EAAK8B,YACnB/E,EAAeiD,EAAKjD,aACpB12M,EAAW25M,EAAK35M,SAEpB,IAAKw6M,EAEH,OADIp6M,GAAOl7E,EAAE0C,iBACN,CAAC,EAGV,IAAI0+R,EAAW5G,EAAkB/E,EAAavB,EAAiBwB,EAAYxB,EACvE+M,EAAiB7B,EAAkBpJ,EAAawE,GAEhDt7R,EAAQ,CACVo2R,UAAU,EACVC,aAAa,EACbI,WAAW,EACXI,SAAS,EACTD,QAAQ,EACRD,UAAW,KACXG,YAAa,CAAC,GAGhB,GAAIL,EACF,OAAOz2R,EAGT,IAAK82R,EAAY8K,YACf,OAAO5hS,EAGT,GAAI82R,EAAY8K,YAAcM,EAAU,CAOtC,IAAI3P,EAAY4L,EANhBr9R,EAAE0C,iBAEEy+R,GACFA,EAAQF,GAIV,IAAII,EAAcvmN,EAAW02M,EAAe+E,EAE5C,OAAQ0K,GACN,IAAK,OACL,IAAK,KACH5D,EAAWgE,EAAcpC,EAAcxK,GACvChD,EAAauC,EAAekL,EAAezK,EAAM4I,GAAYA,EAC7Dn+R,EAAwB,iBAAI,EAC5B,MAEF,IAAK,QACL,IAAK,OACHm+R,EAAWgE,EAAcpC,EAAcxK,GACvChD,EAAauC,EAAekL,EAAezK,EAAM4I,GAAYA,EAC7Dn+R,EAAwB,iBAAI,EAC5B,MAEF,QACEuyR,EAAa4P,EAGjBniS,EAA2B,oBAAIuyR,CACjC,KAAO,CAEL,IAAI4D,EAAcoD,EAAahE,GAC/Bv1R,EAAkB,WAAI6/R,EAAmB5zR,EAAcA,EAAc,CAAC,EAAGspR,GAAO,CAAC,EAAG,CAClF/yR,KAAM2zR,IAEV,CAEA,OAAOn2R,CACT,EAIA,IAAIigS,EAAsB,SAA6B1K,GAMrD,IALA,IAAIjsR,EAAMisR,EAAK35M,SAA6B,EAAlB25M,EAAKhD,WAAiBgD,EAAKhD,WACjDlwF,EAAakzF,EAAK35M,UAAgC,EAArB25M,EAAKx5M,aAAoB,EACtDogD,EAAUo5J,EAAK35M,UAAgC,EAArB25M,EAAKx5M,aAAoB,EACnDqmN,EAAU,GAEP//F,EAAa/4L,GAClB84R,EAAQlrS,KAAKmrM,GACbA,EAAalmE,EAAUo5J,EAAKX,eAC5Bz4J,GAAW/zF,KAAK3+B,IAAI8rR,EAAKX,eAAgBW,EAAKx5M,cAGhD,OAAOqmN,CACT,EAEA3vS,EAAQwtS,oBAAsBA,EAE9B,IAAID,EAAiB,SAAwBzK,EAAMrnR,GACjD,IAAIm0R,EAAapC,EAAoB1K,GACjC+M,EAAgB,EAEpB,GAAIp0R,EAAQm0R,EAAWA,EAAWrkS,OAAS,GACzCkQ,EAAQm0R,EAAWA,EAAWrkS,OAAS,QAEvC,IAAK,IAAIyhD,KAAK4iP,EAAY,CACxB,GAAIn0R,EAAQm0R,EAAW5iP,GAAI,CACzBvxC,EAAQo0R,EACR,KACF,CAEAA,EAAgBD,EAAW5iP,EAC7B,CAGF,OAAOvxC,CACT,EAEAzb,EAAQutS,eAAiBA,EAEzB,IAAID,EAAgB,SAAuBxK,GACzC,IAAIkJ,EAAelJ,EAAK15M,WAAa05M,EAAKl5E,WAAaj0K,KAAKspB,MAAM6jO,EAAKx5M,aAAe,GAAK,EAE3F,GAAIw5M,EAAKT,aAAc,CACrB,IAAIyN,EACAC,EAAYjN,EAAKyC,QACjBp8E,EAAS4mF,EAAU30G,kBAAoB20G,EAAU30G,iBAAiB,iBAAmB,GAiBzF,GAhBAl7J,MAAM7nB,KAAK8wM,GAAQrrG,OAAM,SAAUmkL,GACjC,GAAKa,EAAKH,UAMR,GAAIV,EAAM5mM,UAAY7mB,EAAUytN,GAAS,GAAsB,EAAlBa,EAAKoB,UAEhD,OADA4L,EAAc7N,GACP,OAPT,GAAIA,EAAM+N,WAAahE,EAAez3N,EAAS0tN,GAAS,GAAsB,EAAlBa,EAAKoB,UAE/D,OADA4L,EAAc7N,GACP,EASX,OAAO,CACT,KAEK6N,EACH,OAAO,EAGT,IAAIG,GAA4B,IAAbnN,EAAKd,IAAec,EAAKhD,WAAagD,EAAKjD,aAAeiD,EAAKjD,aAElF,OADsBlqP,KAAKytC,IAAI0sN,EAAYr5E,QAAQh7M,MAAQw0R,IAAiB,CAE9E,CACE,OAAOnN,EAAKX,cAEhB,EAEAniS,EAAQstS,cAAgBA,EAExB,IAAID,EAAgB,SAAuBvK,EAAMoN,GAC/C,OAAOA,EAAU12O,QAAO,SAAU7kD,EAAOmJ,GACvC,OAAOnJ,GAASmuR,EAAKvzP,eAAezxB,EACtC,IAAG,GAAQ,KAAO3b,QAAQC,MAAM,gBAAiB0gS,EACnD,EAEA9iS,EAAQqtS,cAAgBA,EAExB,IAAItG,EAAc,SAAqBjE,GAErC,IAAI6B,EAAYwL,EADhB9C,EAAcvK,EAAM,CAAC,OAAQ,gBAAiB,aAAc,eAAgB,eAE5E,IAAIsN,EAAgBtN,EAAKhD,WAAa,EAAIgD,EAAKx5M,aAE1Cw5M,EAAKH,SAGRwN,EAAcC,EAAgBtN,EAAKmB,YAFnCU,EAAawI,EAAerK,GAAQA,EAAKl5E,WAK3C,IAAIlzM,EAAQ,CACVgjF,QAAS,EACT01G,WAAY,GACZihG,iBAAkB,IAGpB,GAAIvN,EAAKL,aAAc,CACrB,IAAI6N,EAAmBxN,EAAKH,SAA0D,oBAAsBG,EAAK/yR,KAAO,WAAjF,eAAiB+yR,EAAK/yR,KAAO,gBAChE87K,EAAai3G,EAAKH,SAA0D,oBAAsBG,EAAK/yR,KAAO,WAAjF,eAAiB+yR,EAAK/yR,KAAO,gBAC1DwgS,EAAezN,EAAKH,SAA+C,cAAgBG,EAAK/yR,KAAO,MAAhE,cAAgB+yR,EAAK/yR,KAAO,MAC/D2G,EAAQ8C,EAAcA,EAAc,CAAC,EAAG9C,GAAQ,CAAC,EAAG,CAClD45R,gBAAiBA,EACjBzkH,UAAWA,EACX0kH,YAAaA,GAEjB,MACMzN,EAAKH,SACPjsR,EAAW,IAAIosR,EAAK/yR,KAEpB2G,EAAY,KAAIosR,EAAK/yR,KAkBzB,OAdI+yR,EAAK1B,OAAM1qR,EAAQ,CACrBgjF,QAAS,IAEPirM,IAAYjuR,EAAMiL,MAAQgjR,GAC1BwL,IAAaz5R,EAAM0M,OAAS+sR,GAE5Bv0Q,SAAWA,OAAO/a,kBAAoB+a,OAAOy7C,cAC1CyrN,EAAKH,SAGRjsR,EAAMub,UAAY6wQ,EAAK/yR,KAAO,KAF9B2G,EAAMO,WAAa6rR,EAAK/yR,KAAO,MAM5B2G,CACT,EAEA1W,EAAQ+mS,YAAcA,EAEtB,IAAIqG,EAAqB,SAA4BtK,GACnDuK,EAAcvK,EAAM,CAAC,OAAQ,gBAAiB,aAAc,eAAgB,aAAc,QAAS,YACnG,IAAIpsR,EAAQqwR,EAAYjE,GAaxB,OAXIA,EAAKL,cACP/rR,EAAM25R,iBAAmB,qBAAuBvN,EAAKt5M,MAAQ,MAAQs5M,EAAK9B,QAC1EtqR,EAAM04L,WAAa,aAAe0zF,EAAKt5M,MAAQ,MAAQs5M,EAAK9B,SAExD8B,EAAKH,SACPjsR,EAAM04L,WAAa,OAAS0zF,EAAKt5M,MAAQ,MAAQs5M,EAAK9B,QAEtDtqR,EAAM04L,WAAa,QAAU0zF,EAAKt5M,MAAQ,MAAQs5M,EAAK9B,QAIpDtqR,CACT,EAEA1W,EAAQotS,mBAAqBA,EAE7B,IAAItG,EAAe,SAAsBhE,GACvC,GAAIA,EAAKwH,QACP,OAAO,EAGT+C,EAAcvK,EAAM,CAAC,aAAc,WAAY,WAAY,aAAc,aAAc,eAAgB,iBAAkB,aAAc,YAAa,gBAAiB,gBACrK,IAcI+D,EACAjC,EAfA/9E,EAAai8E,EAAKj8E,WAClB2+E,EAAW1C,EAAK0C,SAChBr8M,EAAW25M,EAAK35M,SAChBC,EAAa05M,EAAK15M,WAClB02M,EAAagD,EAAKhD,WAClBx2M,EAAew5M,EAAKx5M,aACpB64M,EAAiBW,EAAKX,eACtBv4E,EAAak5E,EAAKl5E,WAClBm6E,EAAYjB,EAAKiB,UACjBrB,EAAgBI,EAAKJ,cACrBuB,EAAcnB,EAAKmB,YACnB7C,EAAO0B,EAAK1B,KACZuB,EAAWG,EAAKH,SAMpB,GAAIvB,GAA4B,IAApB0B,EAAKhD,WACf,OAAO,EAGT,IAAI0Q,EAAiB,EAiCrB,GA/BIrnN,GACFqnN,GAAkBpJ,EAAatE,GAG3BhD,EAAaqC,GAAmB,GAAKt7E,EAAas7E,EAAiBrC,IACrE0Q,IAAmB3pF,EAAai5E,EAAax2M,GAAgBu9H,EAAai5E,GAAcA,EAAaqC,IAInG/4M,IACFonN,GAAkB5kP,SAAS09B,EAAe,MAGxCw2M,EAAaqC,GAAmB,GAAKt7E,EAAas7E,EAAiBrC,IACrE0Q,EAAiBlnN,EAAew2M,EAAaqC,GAG3C/4M,IACFonN,EAAiB5kP,SAAS09B,EAAe,KAU3Cu9M,EAHGlE,EAGU97E,EAAao9E,GAAe,EAL1BuM,EAAiBvM,EAGnBp9E,EAAa+C,GAAc,EAJ5B4mF,EAAiB5mF,GAST,IAAlB84E,EAAwB,CAC1B,IAAI+N,EACAC,EAAYlL,GAAYA,EAASzvF,KAKrC,GAJA06F,EAAmB5pF,EAAaugF,EAAatE,GAE7C+D,GADAjC,EAAc8L,GAAaA,EAAUC,WAAWF,KACK,EAA1B7L,EAAYoL,WAAkB,GAEtC,IAAf5mN,EAAqB,CACvBqnN,EAAmBtnN,EAAW09H,EAAaugF,EAAatE,GAAQj8E,EAChE+9E,EAAc8L,GAAaA,EAAUvgR,SAASsgR,GAC9C5J,EAAa,EAEb,IAAK,IAAI5E,EAAQ,EAAGA,EAAQwO,EAAkBxO,IAC5C4E,GAAc6J,GAAaA,EAAUvgR,SAAS8xQ,IAAUyO,EAAUvgR,SAAS8xQ,GAAOxpN,YAGpFouN,GAAcj7O,SAASk3O,EAAKz5M,eAC5Bw9M,GAAcjC,IAAgBb,EAAYa,EAAYnsN,aAAe,CACvE,CACF,CAEA,OAAOouN,CACT,EAEA7mS,EAAQ8mS,aAAeA,EAEvB,IAAIM,EAAe,SAAsBtE,GACvC,OAAIA,EAAKwH,UAAYxH,EAAK35M,SACjB,EAGL25M,EAAKJ,cACAI,EAAKhD,WAGPgD,EAAKx5M,cAAgBw5M,EAAK15M,WAAa,EAAI,EACpD,EAEAppF,EAAQonS,aAAeA,EAEvB,IAAIE,EAAgB,SAAuBxE,GACzC,OAAIA,EAAKwH,UAAYxH,EAAK35M,SACjB,EAGF25M,EAAKhD,UACd,EAEA9/R,EAAQsnS,cAAgBA,EAExB,IAAI6F,EAAiB,SAAwBrK,GAC3C,OAA2B,IAApBA,EAAKhD,WAAmB,EAAIsH,EAAatE,GAAQA,EAAKhD,WAAawH,EAAcxE,EAC1F,EAEA9iS,EAAQmtS,eAAiBA,EAEzB,IAAID,EAAmB,SAA0BpK,GAC/C,OAAIA,EAAK8B,YAAc9B,EAAKjD,aACtBiD,EAAK8B,YAAc9B,EAAKjD,aAAeoN,EAAcnK,GAChD,OAGF,QAEHA,EAAK8B,YAAc9B,EAAKjD,aAAemN,EAAalK,GAC/C,QAGF,MAEX,EAEA9iS,EAAQktS,iBAAmBA,EAE3B,IAAID,EAAgB,SAAuBpsS,GACzC,IAAIyoF,EAAezoF,EAAKyoF,aACpBF,EAAavoF,EAAKuoF,WAClB44M,EAAMnhS,EAAKmhS,IACX34M,EAAgBxoF,EAAKwoF,cAGzB,GAAID,EAAY,CACd,IAAIp5E,GAASs5E,EAAe,GAAK,EAAI,EAGrC,OAFI19B,SAASy9B,GAAiB,IAAGr5E,GAAS,GACtCgyR,GAAO14M,EAAe,GAAM,IAAGt5E,GAAS,GACrCA,CACT,CAEA,OAAIgyR,EACK,EAGF14M,EAAe,CACxB,EAEAtpF,EAAQitS,cAAgBA,EAExB,IAAID,EAAe,SAAsBxmS,GACvC,IAAI8iF,EAAe9iF,EAAM8iF,aACrBF,EAAa5iF,EAAM4iF,WACnB44M,EAAMx7R,EAAMw7R,IACZ34M,EAAgB7iF,EAAM6iF,cAG1B,GAAID,EAAY,CACd,IAAIr5E,GAAQu5E,EAAe,GAAK,EAAI,EAGpC,OAFI19B,SAASy9B,GAAiB,IAAGt5E,GAAQ,GACpCiyR,GAAO14M,EAAe,GAAM,IAAGv5E,GAAQ,GACrCA,CACT,CAEA,OAAIiyR,EACK14M,EAAe,EAGjB,CACT,EAEAtpF,EAAQgtS,aAAeA,EAMvBhtS,EAAQm3E,UAJQ,WACd,QAA4B,oBAAXv7C,SAA0BA,OAAOhb,WAAYgb,OAAOhb,SAASwqD,cAChF,C,oCCx6BAjvD,OAAO66D,eAAeh3E,EAAS,aAA/B,CACE2U,OAAO,IAGT,IAAI5H,EAAib,SAAUsyD,EAAK/+D,GAAK,GAAI4/B,MAAMwT,QAAQ2rB,GAAQ,OAAOA,EAAY,GAAIu+L,OAAOS,YAAYliP,OAAOkjD,GAAQ,OAAxf,SAAuBA,EAAK/+D,GAAK,IAAIk5Q,EAAO,GAAQC,GAAK,EAAUnzL,GAAK,EAAWu5B,OAAK36G,EAAW,IAAM,IAAK,IAAiCwrJ,EAA7BgpH,EAAKr6M,EAAIu+L,OAAOS,cAAmBob,GAAM/oH,EAAKgpH,EAAGj4Q,QAAQugD,QAAoBw3N,EAAK/0Q,KAAKisJ,EAAG/7I,QAAYrU,GAAKk5Q,EAAKjuQ,SAAWjL,GAA3Dm5Q,GAAK,GAAkE,CAAE,MAAO1vQ,GAAOu8E,GAAK,EAAMu5B,EAAK91G,CAAK,CAAE,QAAU,KAAW0vQ,GAAMC,EAAW,QAAGA,EAAW,QAAK,CAAE,QAAU,GAAIpzL,EAAI,MAAMu5B,CAAI,CAAE,CAAE,OAAO25J,CAAM,CAAuHo3B,CAAcvxO,EAAK/+D,GAAa,MAAM,IAAIogC,UAAU,uDAA2D,EAIlpB,SAAS7F,EAAmBwkC,GAAO,GAAIn/B,MAAMwT,QAAQ2rB,GAAM,CAAE,IAAK,IAAI/+D,EAAI,EAAG05Q,EAAO95O,MAAMm/B,EAAI9zD,QAASjL,EAAI++D,EAAI9zD,OAAQjL,IAAK05Q,EAAK15Q,GAAK++D,EAAI/+D,GAAI,OAAO05Q,CAAM,CAAS,OAAO95O,MAAM7nB,KAAKgnD,EAAQ,CAE9L,IAJgC6M,EAI5B2kO,EAAgB,EAAQ,MAExBC,GAN4B5kO,EAMY2kO,IANS3kO,EAAI0wL,WAAa1wL,EAAM,CAAE,QAAWA,GAQrF6kO,EAAS,SAAgBt1O,GAC3B,OAAOA,CACT,EAEAz7D,EAAA,QAAqB,SAAUuuB,GAC7B,IAAI1tB,EAAOq/B,MAAMwT,QAAQnlB,IAA2B,IAAjBA,EAAMhjB,OAAegjB,EAAQ,CAACA,EAAO,MAEpE/nB,EAAQuG,EAAelM,EAAM,GAE7BgpB,EAAQrjB,EAAM,GACdwqS,EAAqBxqS,EAAM,GAE/B,OAAO,SAAUsX,GACf,IAAK,IAAIklC,EAAOvgD,UAAU8I,OAAQu+P,EAAQ5pO,MAAM8iB,EAAO,EAAIA,EAAO,EAAI,GAAIE,EAAO,EAAGA,EAAOF,EAAME,IAC/F4mN,EAAM5mN,EAAO,GAAKzgD,UAAUygD,GAG9B,IAAI85B,EAAS8sL,EAAMvuP,KAAI,SAAUpW,GAC/B,OAAO0kB,EAAM1kB,EACf,IAAGutB,OAAOq+Q,GAEV,MAA4B,iBAAd/zN,EAAO,IAAiD,mBAAvBg0N,EAAoC,CAAElzR,IAAKA,EAAK1I,UAAW47R,EAAqBA,EAAmBxuS,WAAM0C,EAAW21B,EAAmBmiD,IAAWA,EAAO/6C,KAAK,MAAS,CAAEnkB,IAAKA,EAAKpH,MAAOo6R,EAAwB,QAAEtuS,WAAM0C,EAAW,CAAC,CAAC,GAAGrD,OAAOg5B,EAAmBmiD,KACrT,CACF,EAEA/8E,EAAOD,QAAUA,EAAiB,O,gCCxClC,IAAIixS,EAAmB90R,OAAOgkB,UAAUsoK,qBAUxC,SAASyoG,EAAkBhlO,GAC1B,IAAIlqC,EAAO7lB,OAAOw/L,oBAAoBzvI,GAMtC,OAJI/vD,OAAOqsL,wBACVxmK,EAAOA,EAAKngC,OAAOsa,OAAOqsL,sBAAsBt8H,KAG1ClqC,EAAKtP,QAAO,SAAU5U,GAC5B,OAAOmzR,EAAiB7qS,KAAK8lE,EAAKpuD,EACnC,GACD,CAEA7d,EAAOD,QAAUmc,OAAOC,QAAU,SAAUpH,EAAQssG,GAKnD,IAJA,IAAIjpG,EACA2pB,EACAuuB,EAvBL,SAAkBqlB,GACjB,GAAW,MAAPA,EACH,MAAM,IAAIl1C,UAAU,yDAGrB,OAAOvkB,OAAOy5D,EACf,CAiBUu7N,CAASn8R,GAET+3C,EAAI,EAAGA,EAAItqD,UAAU8I,OAAQwhD,IAAK,CAC1C10C,EAAO5V,UAAUsqD,GACjB/qB,EAAOkvQ,EAAkB/0R,OAAO9D,IAEhC,IAAK,IAAI/X,EAAI,EAAGA,EAAI0hC,EAAKz2B,OAAQjL,IAChCiwD,EAAGvuB,EAAK1hC,IAAM+X,EAAK2pB,EAAK1hC,GAE1B,CAEA,OAAOiwD,CACR,C,sGCtCA,SAAS6gP,EAAiBC,EAAWC,GACnC,OAAOD,EAAU3pS,QAAQ,IAAI+qB,OAAO,UAAY6+Q,EAAgB,YAAa,KAAM,MAAM5pS,QAAQ,OAAQ,KAAKA,QAAQ,aAAc,GACtI,C,2CCeI6pS,EAAc,SAAqBx7F,EAAMv1F,GAC3C,OAAOu1F,GAAQv1F,GAAWA,EAAQl5G,MAAM,KAAKinE,SAAQ,SAAUrgD,GAC7D,ODRyC9Y,ECQb8Y,QDRIiN,ECQV46K,GDPZn1J,UACVzlB,EAAQylB,UAAUyoF,OAAOj0H,GACa,iBAAtB+lB,EAAQ/lB,UACxB+lB,EAAQ/lB,UAAYg8R,EAAiBj2Q,EAAQ/lB,UAAWA,GAExD+lB,EAAQ1Y,aAAa,QAAS2uR,EAAiBj2Q,EAAQ/lB,WAAa+lB,EAAQ/lB,UAAUo8R,SAAW,GAAIp8R,KAN1F,IAAqB+lB,EAAS/lB,CCS3C,GACF,EAwEIy5E,EAA6B,SAAUsS,GAGzC,SAAStS,IAGP,IAFA,IAAI3oF,EAEK88C,EAAOvgD,UAAU8I,OAAQ00B,EAAO,IAAIC,MAAM8iB,GAAOE,EAAO,EAAGA,EAAOF,EAAME,IAC/EjjB,EAAKijB,GAAQzgD,UAAUygD,GAgHzB,OA7GAh9C,EAAQi7F,EAAiB/6F,KAAK5D,MAAM2+F,EAAkB,CAAC3gG,MAAMqB,OAAOo+B,KAAUz/B,MACxEixS,eAAiB,CACrB37F,OAAQ,CAAC,EACTR,MAAO,CAAC,EACRD,KAAM,CAAC,GAGTnvM,EAAMwrS,QAAU,SAAUC,EAAWC,GACnC,IAAIC,EAAwB3rS,EAAM4rS,iBAAiBH,EAAWC,GAC1D77F,EAAO87F,EAAsB,GAC7BE,EAAYF,EAAsB,GAEtC3rS,EAAM8rS,cAAcj8F,EAAM,QAE1B7vM,EAAM+rS,SAASl8F,EAAMg8F,EAAY,SAAW,QAAS,QAEjD7rS,EAAMwM,MAAMg/R,SACdxrS,EAAMwM,MAAMg/R,QAAQC,EAAWC,EAEnC,EAEA1rS,EAAMgsS,WAAa,SAAUP,EAAWC,GACtC,IAAIO,EAAyBjsS,EAAM4rS,iBAAiBH,EAAWC,GAC3D77F,EAAOo8F,EAAuB,GAG9B1sS,EAFY0sS,EAAuB,GAEhB,SAAW,QAElCjsS,EAAM+rS,SAASl8F,EAAMtwM,EAAM,UAEvBS,EAAMwM,MAAMw/R,YACdhsS,EAAMwM,MAAMw/R,WAAWP,EAAWC,EAEtC,EAEA1rS,EAAM+1F,UAAY,SAAU01M,EAAWC,GACrC,IAAIQ,EAAyBlsS,EAAM4rS,iBAAiBH,EAAWC,GAC3D77F,EAAOq8F,EAAuB,GAG9B3sS,EAFY2sS,EAAuB,GAEhB,SAAW,QAElClsS,EAAM8rS,cAAcj8F,EAAMtwM,GAE1BS,EAAM+rS,SAASl8F,EAAMtwM,EAAM,QAEvBS,EAAMwM,MAAMupF,WACd/1F,EAAMwM,MAAMupF,UAAU01M,EAAWC,EAErC,EAEA1rS,EAAMmsS,OAAS,SAAUV,GACvB,IACI57F,EADyB7vM,EAAM4rS,iBAAiBH,GAClB,GAElCzrS,EAAM8rS,cAAcj8F,EAAM,UAE1B7vM,EAAM8rS,cAAcj8F,EAAM,SAE1B7vM,EAAM+rS,SAASl8F,EAAM,OAAQ,QAEzB7vM,EAAMwM,MAAM2/R,QACdnsS,EAAMwM,MAAM2/R,OAAOV,EAEvB,EAEAzrS,EAAMosS,UAAY,SAAUX,GAC1B,IACI57F,EADyB7vM,EAAM4rS,iBAAiBH,GAClB,GAElCzrS,EAAM+rS,SAASl8F,EAAM,OAAQ,UAEzB7vM,EAAMwM,MAAM4/R,WACdpsS,EAAMwM,MAAM4/R,UAAUX,EAE1B,EAEAzrS,EAAMg2F,SAAW,SAAUy1M,GACzB,IACI57F,EADyB7vM,EAAM4rS,iBAAiBH,GAClB,GAElCzrS,EAAM8rS,cAAcj8F,EAAM,QAE1B7vM,EAAM+rS,SAASl8F,EAAM,OAAQ,QAEzB7vM,EAAMwM,MAAMwpF,UACdh2F,EAAMwM,MAAMwpF,SAASy1M,EAEzB,EAEAzrS,EAAM4rS,iBAAmB,SAAUH,EAAWC,GAC5C,OAAO1rS,EAAMwM,MAAM6/R,QAAU,CAACrsS,EAAMwM,MAAM6/R,QAAQxiR,QAAS4hR,GACzD,CAACA,EAAWC,EAChB,EAEA1rS,EAAMssS,cAAgB,SAAU/sS,GAC9B,IAAIspF,EAAa7oF,EAAMwM,MAAMq8E,WACzB0jN,EAA2C,iBAAf1jN,EAE5B2jN,EAAgBD,EAAqB,IAD5BA,GAAsB1jN,EAAaA,EAAa,IAAM,IACZtpF,EAAOspF,EAAWtpF,GAGzE,MAAO,CACLitS,cAAeA,EACfC,gBAJoBF,EAAqBC,EAAgB,UAAY3jN,EAAWtpF,EAAO,UAKvFmtS,cAJkBH,EAAqBC,EAAgB,QAAU3jN,EAAWtpF,EAAO,QAMvF,EAEOS,CACT,EAvHA,OAAe2oF,EAAesS,GAyH9B,IAAIl2B,EAAS4jB,EAAc1uD,UA4D3B,OA1DA8qC,EAAOgnO,SAAW,SAAkBl8F,EAAMtwM,EAAMotS,GAC9C,IAAIz9R,EAAY5U,KAAKgyS,cAAc/sS,GAAMotS,EAAQ,aAG7CD,EADsBpyS,KAAKgyS,cAAc,SACLI,cAE3B,WAATntS,GAA+B,SAAVotS,GAAoBD,IAC3Cx9R,GAAa,IAAMw9R,GAKP,WAAVC,GACE98F,IAAM,OAAYA,GAGpB3gM,IACF5U,KAAKixS,eAAehsS,GAAMotS,GAASz9R,EA/NzB,SAAkB2gM,EAAMv1F,GAC/Bu1F,GAAQv1F,GAAWA,EAAQl5G,MAAM,KAAKinE,SAAQ,SAAUrgD,GAC7D,OCLsC9Y,EDKb8Y,QCLIiN,EDKV46K,GCJTn1J,UAAWzlB,EAAQylB,UAAUC,IAAIzrC,GCHhC,SAAkB+lB,EAAS/lB,GACxC,OAAI+lB,EAAQylB,YAAoBxrC,GAAa+lB,EAAQylB,UAAU5wB,SAAS5a,IACkC,KAAlG,KAAO+lB,EAAQ/lB,UAAUo8R,SAAWr2Q,EAAQ/lB,WAAa,KAAKiyB,QAAQ,IAAMjyB,EAAY,IAClG,CDAoE09R,CAAS33Q,EAAS/lB,KAA6C,iBAAtB+lB,EAAQ/lB,UAAwB+lB,EAAQ/lB,UAAY+lB,EAAQ/lB,UAAY,IAAMA,EAAe+lB,EAAQ1Y,aAAa,SAAU0Y,EAAQ/lB,WAAa+lB,EAAQ/lB,UAAUo8R,SAAW,IAAM,IAAMp8R,KADxR,IAAkB+lB,EAAS/lB,CDMxC,GACF,CA6NM29R,CAAUh9F,EAAM3gM,GAEpB,EAEA61D,EAAO+mO,cAAgB,SAAuBj8F,EAAMtwM,GAClD,IAAIutS,EAAwBxyS,KAAKixS,eAAehsS,GAC5CitS,EAAgBM,EAAsBpzL,KACtC+yL,EAAkBK,EAAsB3tP,OACxCutP,EAAgBI,EAAsBhxP,KAC1CxhD,KAAKixS,eAAehsS,GAAQ,CAAC,EAEzBitS,GACFnB,EAAYx7F,EAAM28F,GAGhBC,GACFpB,EAAYx7F,EAAM48F,GAGhBC,GACFrB,EAAYx7F,EAAM68F,EAEtB,EAEA3nO,EAAOE,OAAS,WACd,IAAI8U,EAAcz/E,KAAKkS,MAEnBA,GADIutE,EAAY8O,YACR,OAA8B9O,EAAa,CAAC,gBAExD,OAAoB,kBAAoBq4H,EAAA,IAAY,OAAS,CAAC,EAAG5lM,EAAO,CACtEg/R,QAASlxS,KAAKkxS,QACdz1M,UAAWz7F,KAAKy7F,UAChBi2M,WAAY1xS,KAAK0xS,WACjBG,OAAQ7xS,KAAK6xS,OACbC,UAAW9xS,KAAK8xS,UAChBp2M,SAAU17F,KAAK07F,WAEnB,EAEOrN,CACT,CAvLiC,CAuL/B,eAEFA,EAAche,aAAe,CAC3Bke,WAAY,IAEdF,EAAcle,UAiIT,CAAC,EACN,O,mIG3ZA,GACY,E,oBCQDsiO,EAAY,YACZC,EAAS,SACTC,EAAW,WACXC,EAAU,UACVC,EAAU,UA6FjB/6F,EAA0B,SAAUn3G,GAGtC,SAASm3G,EAAW5lM,EAAOi/B,GACzB,IAAIzrC,EAEJA,EAAQi7F,EAAiB/6F,KAAK5F,KAAMkS,EAAOi/B,IAAYnxC,KACvD,IAGI8yS,EADAx9F,EAFcnkK,MAEuB+jK,WAAahjM,EAAM4iM,MAAQ5iM,EAAMojM,OAuB1E,OArBA5vM,EAAMqtS,aAAe,KAEjB7gS,EAAMo8E,GACJgnH,GACFw9F,EAAgBJ,EAChBhtS,EAAMqtS,aAAeJ,GAErBG,EAAgBF,EAIhBE,EADE5gS,EAAM8gS,eAAiB9gS,EAAM+gS,aACfR,EAEAC,EAIpBhtS,EAAMqH,MAAQ,CACZpC,OAAQmoS,GAEVptS,EAAMwtS,aAAe,KACdxtS,CACT,EAhCA,OAAeoyM,EAAYn3G,GAkC3Bm3G,EAAWzC,yBAA2B,SAAkCh1M,EAAMkhN,GAG5E,OAFalhN,EAAKiuF,IAEJizH,EAAU52M,SAAW8nS,EAC1B,CACL9nS,OAAQ+nS,GAIL,IACT,EAkBA,IAAIjoO,EAASqtI,EAAWn4K,UAkPxB,OAhPA8qC,EAAO6D,kBAAoB,WACzBtuE,KAAKmzS,cAAa,EAAMnzS,KAAK+yS,aAC/B,EAEAtoO,EAAOkZ,mBAAqB,SAA4BC,GACtD,IAAIwvN,EAAa,KAEjB,GAAIxvN,IAAc5jF,KAAKkS,MAAO,CAC5B,IAAIvH,EAAS3K,KAAK+M,MAAMpC,OAEpB3K,KAAKkS,MAAMo8E,GACT3jF,IAAWgoS,GAAYhoS,IAAWioS,IACpCQ,EAAaT,GAGXhoS,IAAWgoS,GAAYhoS,IAAWioS,IACpCQ,EAAaP,EAGnB,CAEA7yS,KAAKmzS,cAAa,EAAOC,EAC3B,EAEA3oO,EAAOkE,qBAAuB,WAC5B3uE,KAAKqzS,oBACP,EAEA5oO,EAAO6oO,YAAc,WACnB,IACIz+F,EAAMC,EAAOQ,EADbjtM,EAAUrI,KAAKkS,MAAM7J,QAWzB,OATAwsM,EAAOC,EAAQQ,EAASjtM,EAET,MAAXA,GAAsC,iBAAZA,IAC5BwsM,EAAOxsM,EAAQwsM,KACfC,EAAQzsM,EAAQysM,MAEhBQ,OAA4B5wM,IAAnB2D,EAAQitM,OAAuBjtM,EAAQitM,OAASR,GAGpD,CACLD,KAAMA,EACNC,MAAOA,EACPQ,OAAQA,EAEZ,EAEA7qI,EAAO0oO,aAAe,SAAsBI,EAAUH,GAKpD,QAJiB,IAAbG,IACFA,GAAW,GAGM,OAAfH,EAIF,GAFApzS,KAAKqzS,qBAEDD,IAAeT,EAAU,CAC3B,GAAI3yS,KAAKkS,MAAM8gS,eAAiBhzS,KAAKkS,MAAM+gS,aAAc,CACvD,IAAI19F,EAAOv1M,KAAKkS,MAAM6/R,QAAU/xS,KAAKkS,MAAM6/R,QAAQxiR,QAAU,gBAAqBvvB,MAI9Eu1M,IAAM,OAAYA,EACxB,CAEAv1M,KAAKwzS,aAAaD,EACpB,MACEvzS,KAAKyzS,mBAEEzzS,KAAKkS,MAAM8gS,eAAiBhzS,KAAK+M,MAAMpC,SAAW+nS,GAC3D1yS,KAAK23C,SAAS,CACZhtC,OAAQ8nS,GAGd,EAEAhoO,EAAO+oO,aAAe,SAAsBD,GAC1C,IAAI3kO,EAAS5uE,KAET80M,EAAQ90M,KAAKkS,MAAM4iM,MACnBy8F,EAAYvxS,KAAKmxC,QAAUnxC,KAAKmxC,QAAQ+jK,WAAaq+F,EAErDvtS,EAAQhG,KAAKkS,MAAM6/R,QAAU,CAACR,GAAa,CAAC,gBAAqBvxS,MAAOuxS,GACxEJ,EAAYnrS,EAAM,GAClBorS,EAAiBprS,EAAM,GAEvB0tS,EAAW1zS,KAAKszS,cAChBK,EAAepC,EAAYmC,EAASp+F,OAASo+F,EAAS5+F,OAGrDy+F,IAAaz+F,GAASl+L,EACzB5W,KAAK4zS,aAAa,CAChBjpS,OAAQioS,IACP,WACDhkO,EAAO18D,MAAMupF,UAAU01M,EACzB,KAIFnxS,KAAKkS,MAAMg/R,QAAQC,EAAWC,GAC9BpxS,KAAK4zS,aAAa,CAChBjpS,OAAQgoS,IACP,WACD/jO,EAAO18D,MAAMw/R,WAAWP,EAAWC,GAEnCxiO,EAAOilO,gBAAgBF,GAAc,WACnC/kO,EAAOglO,aAAa,CAClBjpS,OAAQioS,IACP,WACDhkO,EAAO18D,MAAMupF,UAAU01M,EAAWC,EACpC,GACF,GACF,IACF,EAEA3mO,EAAOgpO,YAAc,WACnB,IAAI5vN,EAAS7jF,KAET60M,EAAO70M,KAAKkS,MAAM2iM,KAClB6+F,EAAW1zS,KAAKszS,cAChBnC,EAAYnxS,KAAKkS,MAAM6/R,aAAUrtS,EAAY,gBAAqB1E,MAEjE60M,IAAQj+L,GASb5W,KAAKkS,MAAM2/R,OAAOV,GAClBnxS,KAAK4zS,aAAa,CAChBjpS,OAAQkoS,IACP,WACDhvN,EAAO3xE,MAAM4/R,UAAUX,GAEvBttN,EAAOgwN,gBAAgBH,EAAS7+F,MAAM,WACpChxH,EAAO+vN,aAAa,CAClBjpS,OAAQ+nS,IACP,WACD7uN,EAAO3xE,MAAMwpF,SAASy1M,EACxB,GACF,GACF,KArBEnxS,KAAK4zS,aAAa,CAChBjpS,OAAQ+nS,IACP,WACD7uN,EAAO3xE,MAAMwpF,SAASy1M,EACxB,GAkBJ,EAEA1mO,EAAO4oO,mBAAqB,WACA,OAAtBrzS,KAAKkzS,eACPlzS,KAAKkzS,aAAat8N,SAClB52E,KAAKkzS,aAAe,KAExB,EAEAzoO,EAAOmpO,aAAe,SAAsBnlO,EAAWkG,GAIrDA,EAAW30E,KAAK8zS,gBAAgBn/N,GAChC30E,KAAK23C,SAAS82B,EAAWkG,EAC3B,EAEAlK,EAAOqpO,gBAAkB,SAAyBn/N,GAChD,IAAImwB,EAAS9kG,KAET6kD,GAAS,EAcb,OAZA7kD,KAAKkzS,aAAe,SAAUhtR,GACxB2+B,IACFA,GAAS,EACTigD,EAAOouM,aAAe,KACtBv+N,EAASzuD,GAEb,EAEAlmB,KAAKkzS,aAAat8N,OAAS,WACzB/xB,GAAS,CACX,EAEO7kD,KAAKkzS,YACd,EAEAzoO,EAAOopO,gBAAkB,SAAyBxrS,EAASq/G,GACzD1nH,KAAK8zS,gBAAgBpsL,GACrB,IAAI6tF,EAAOv1M,KAAKkS,MAAM6/R,QAAU/xS,KAAKkS,MAAM6/R,QAAQxiR,QAAU,gBAAqBvvB,MAC9E+zS,EAA0C,MAAX1rS,IAAoBrI,KAAKkS,MAAM8hS,eAElE,GAAKz+F,IAAQw+F,EAAb,CAKA,GAAI/zS,KAAKkS,MAAM8hS,eAAgB,CAC7B,IAAIzrS,EAAQvI,KAAKkS,MAAM6/R,QAAU,CAAC/xS,KAAKkzS,cAAgB,CAAC39F,EAAMv1M,KAAKkzS,cAC/D/B,EAAY5oS,EAAM,GAClB0rS,EAAoB1rS,EAAM,GAE9BvI,KAAKkS,MAAM8hS,eAAe7C,EAAW8C,EACvC,CAEe,MAAX5rS,GACFwnB,WAAW7vB,KAAKkzS,aAAc7qS,EAXhC,MAFEwnB,WAAW7vB,KAAKkzS,aAAc,EAelC,EAEAzoO,EAAOE,OAAS,WACd,IAAIhgE,EAAS3K,KAAK+M,MAAMpC,OAExB,GAAIA,IAAW8nS,EACb,OAAO,KAGT,IAAIhzN,EAAcz/E,KAAKkS,MACnByd,EAAW8vD,EAAY9vD,SAgBvBy9C,GAfMqS,EAAY6O,GACF7O,EAAYwzN,aACXxzN,EAAYuzN,cACnBvzN,EAAY61H,OACb71H,EAAYq1H,MACbr1H,EAAYo1H,KACTp1H,EAAYp3E,QACLo3E,EAAYu0N,eACnBv0N,EAAYyxN,QACTzxN,EAAYiyN,WACbjyN,EAAYgc,UACfhc,EAAYoyN,OACTpyN,EAAYqyN,UACbryN,EAAYic,SACbjc,EAAYsyN,SACV,OAA8BtyN,EAAa,CAAC,WAAY,KAAM,eAAgB,gBAAiB,SAAU,QAAS,OAAQ,UAAW,iBAAkB,UAAW,aAAc,YAAa,SAAU,YAAa,WAAY,aAEjP,OAGE,kBAAoBi2H,EAAA,EAAuB/xJ,SAAU,CACnDxvC,MAAO,MACc,mBAAbwb,EAA0BA,EAAShlB,EAAQyiE,GAAc,iBAAmB,aAAe8mO,KAAKvkR,GAAWy9C,GAEzH,EAEO0qI,CACT,CAlT8B,CAkT5B,eA+LF,SAAS1N,IAAQ,CA7LjB0N,EAAWu2D,YAAc34D,EAAA,EACzBoC,EAAW3nI,UA0LP,CAAC,EAIL2nI,EAAWznI,aAAe,CACxBie,IAAI,EACJ2kN,cAAc,EACdD,eAAe,EACf19F,QAAQ,EACRR,OAAO,EACPD,MAAM,EACNq8F,QAAS9mG,EACTsnG,WAAYtnG,EACZ3uG,UAAW2uG,EACXynG,OAAQznG,EACR0nG,UAAW1nG,EACX1uG,SAAU0uG,GAEZ0N,EAAW26F,UAAYA,EACvB36F,EAAW46F,OAASA,EACpB56F,EAAW66F,SAAWA,EACtB76F,EAAW86F,QAAUA,EACrB96F,EAAW+6F,QAAUA,EACrB,O,2DC/mBA,IAAe,kBAAoB,K,oECD5B,IAAIsB,EAAc,SAAqB5+F,GAC5C,OAAOA,EAAKx9H,SACd,C,oCCOA,SAASq8N,EAAuB5vS,GAC9B,MAAO,yBAA2BA,EAAO,4CAA8CA,EAAhF,iFACT,C,iFAGA,IAAI6vS,EACuB,mBAAXj3C,QAAyBA,OAAOk3C,YAAc,eAS1DC,EAAe,WACjB,OAAOp/P,KAAKwuE,SAASv+F,SAAS,IAAI2nB,UAAU,GAAGjmC,MAAM,IAAI26B,KAAK,IAChE,EAEI+yQ,EAAc,CAChBC,KAAM,eAAiBF,IACvBG,QAAS,kBAAoBH,IAC7BI,qBAAsB,WACpB,MAAO,+BAAiCJ,GAC1C,GAOF,SAASt+N,EAAcvK,GACrB,GAAmB,iBAARA,GAA4B,OAARA,EAAc,OAAO,EAGpD,IAFA,IAAIwK,EAAQxK,EAE4B,OAAjC/vD,OAAOw6D,eAAeD,IAC3BA,EAAQv6D,OAAOw6D,eAAeD,GAGhC,OAAOv6D,OAAOw6D,eAAezK,KAASwK,CACxC,CAuFA,SAAStzB,EAAY80H,EAASk9H,EAAgBC,GAC5C,IAAI7uS,EAEJ,GAA8B,mBAAnB4uS,GAAqD,mBAAbC,GAA+C,mBAAbA,GAAmD,mBAAjB5yS,UAAU,GAC/H,MAAM,IAAI8D,MAA8CquS,EAAuB,IAQjF,GAL8B,mBAAnBQ,QAAqD,IAAbC,IACjDA,EAAWD,EACXA,OAAiBlwS,QAGK,IAAbmwS,EAA0B,CACnC,GAAwB,mBAAbA,EACT,MAAM,IAAI9uS,MAA8CquS,EAAuB,IAGjF,OAAOS,EAASjyP,EAATiyP,CAAsBn9H,EAASk9H,EACxC,CAEA,GAAuB,mBAAZl9H,EACT,MAAM,IAAI3xK,MAA8CquS,EAAuB,IAGjF,IAAIU,EAAiBp9H,EACjBq9H,EAAeH,EACfI,EAAmB,GACnBC,EAAgBD,EAChBE,GAAgB,EASpB,SAASC,IACHF,IAAkBD,IACpBC,EAAgBD,EAAiBv8R,QAErC,CAQA,SAAS5J,IACP,GAAIqmS,EACF,MAAM,IAAInvS,MAA8CquS,EAAuB,IAGjF,OAAOW,CACT,CA0BA,SAASzxP,EAAU0U,GACjB,GAAwB,mBAAbA,EACT,MAAM,IAAIjyD,MAA8CquS,EAAuB,IAGjF,GAAIc,EACF,MAAM,IAAInvS,MAA8CquS,EAAuB,IAGjF,IAAIve,GAAe,EAGnB,OAFAsf,IACAF,EAAchxS,KAAK+zD,GACZ,WACL,GAAK69N,EAAL,CAIA,GAAIqf,EACF,MAAM,IAAInvS,MAA8CquS,EAAuB,IAGjFve,GAAe,EACfsf,IACA,IAAIl6R,EAAQg6R,EAAcpuQ,QAAQmxB,GAClCi9O,EAAc/wN,OAAOjpE,EAAO,GAC5B+5R,EAAmB,IAVnB,CAWF,CACF,CA4BA,SAASrhS,EAAS22F,GAChB,IAAKr0B,EAAcq0B,GACjB,MAAM,IAAIvkG,MAA8CquS,EAAuB,IAGjF,QAA2B,IAAhB9pM,EAAOrlG,KAChB,MAAM,IAAIc,MAA8CquS,EAAuB,IAGjF,GAAIc,EACF,MAAM,IAAInvS,MAA8CquS,EAAuB,IAGjF,IACEc,GAAgB,EAChBH,EAAeD,EAAeC,EAAczqM,EAC9C,CAAE,QACA4qM,GAAgB,CAClB,CAIA,IAFA,IAAI3rC,EAAYyrC,EAAmBC,EAE1Bn1S,EAAI,EAAGA,EAAIypQ,EAAUx+P,OAAQjL,IAAK,EAEzCk4D,EADeuxM,EAAUzpQ,KAE3B,CAEA,OAAOwqG,CACT,CA4EA,OAHA32F,EAAS,CACP1O,KAAMuvS,EAAYC,QAEbzuS,EAAQ,CACb2N,SAAUA,EACV2vC,UAAWA,EACXz0C,SAAUA,EACVumS,eAnEF,SAAwBC,GACtB,GAA2B,mBAAhBA,EACT,MAAM,IAAItvS,MAA8CquS,EAAuB,KAGjFU,EAAiBO,EAKjB1hS,EAAS,CACP1O,KAAMuvS,EAAYE,SAEtB,IAuDSL,GA9CT,WACE,IAAIh0S,EAEAi1S,EAAiBhyP,EACrB,OAAOjjD,EAAO,CASZijD,UAAW,SAAmBqnD,GAC5B,GAAwB,iBAAbA,GAAsC,OAAbA,EAClC,MAAM,IAAI5kG,MAA8CquS,EAAuB,KAGjF,SAASmB,IACH5qM,EAAS1pG,MACX0pG,EAAS1pG,KAAK4N,IAElB,CAIA,OAFA0mS,IAEO,CACLhgB,YAFgB+f,EAAeC,GAInC,IACMlB,GAAgB,WACtB,OAAOr0S,IACT,EAAGK,CACL,EAaqC2F,CACvC,CAsHA,SAASk1G,EAAgBs6L,GAIvB,IAHA,IAAIC,EAAc95R,OAAO6lB,KAAKg0Q,GAC1BE,EAAgB,CAAC,EAEZ51S,EAAI,EAAGA,EAAI21S,EAAY1qS,OAAQjL,IAAK,CAC3C,IAAIwd,EAAMm4R,EAAY31S,GAElB,EAMyB,mBAAlB01S,EAASl4R,KAClBo4R,EAAcp4R,GAAOk4R,EAASl4R,GAElC,CAEA,IASIq4R,EATAC,EAAmBj6R,OAAO6lB,KAAKk0Q,GAWnC,KAjEF,SAA4BF,GAC1B75R,OAAO6lB,KAAKg0Q,GAAUznO,SAAQ,SAAUzwD,GACtC,IAAIo6J,EAAU89H,EAASl4R,GAKvB,QAA4B,IAJTo6J,OAAQhzK,EAAW,CACpCO,KAAMuvS,EAAYC,OAIlB,MAAM,IAAI1uS,MAA8CquS,EAAuB,KAGjF,QAEO,IAFI18H,OAAQhzK,EAAW,CAC5BO,KAAMuvS,EAAYG,yBAElB,MAAM,IAAI5uS,MAA8CquS,EAAuB,IAEnF,GACF,CAiDIyB,CAAmBH,EACrB,CAAE,MAAO7nS,GACP8nS,EAAsB9nS,CACxB,CAEA,OAAO,SAAqBd,EAAOu9F,GAKjC,QAJc,IAAVv9F,IACFA,EAAQ,CAAC,GAGP4oS,EACF,MAAMA,EAcR,IAX2C,IAQvCG,GAAa,EACbrnO,EAAY,CAAC,EAERyqM,EAAK,EAAGA,EAAK08B,EAAiB7qS,OAAQmuQ,IAAM,CACnD,IAAIx2N,EAAOkzP,EAAiB18B,GACxBxhG,EAAUg+H,EAAchzP,GACxBqzP,EAAsBhpS,EAAM21C,GAC5BszP,EAAkBt+H,EAAQq+H,EAAqBzrM,GAEnD,QAA+B,IAApB0rM,EAAiC,CACzB1rM,GAAUA,EAAOrlG,KAClC,MAAM,IAAIc,MAA8CquS,EAAuB,IACjF,CAEA3lO,EAAU/rB,GAAQszP,EAClBF,EAAaA,GAAcE,IAAoBD,CACjD,CAGA,OADAD,EAAaA,GAAcF,EAAiB7qS,SAAW4Q,OAAO6lB,KAAKz0B,GAAOhC,QACtD0jE,EAAY1hE,CAClC,CACF,CA8DA,SAASkpS,IACP,IAAK,IAAIzzP,EAAOvgD,UAAU8I,OAAQ03C,EAAQ,IAAI/iB,MAAM8iB,GAAOE,EAAO,EAAGA,EAAOF,EAAME,IAChFD,EAAMC,GAAQzgD,UAAUygD,GAG1B,OAAqB,IAAjBD,EAAM13C,OACD,SAAU6xH,GACf,OAAOA,CACT,EAGmB,IAAjBn6E,EAAM13C,OACD03C,EAAM,GAGRA,EAAMuW,QAAO,SAAUn5D,EAAG+1B,GAC/B,OAAO,WACL,OAAO/1B,EAAE+1B,EAAE5zB,WAAM,EAAQC,WAC3B,CACF,GACF,C,2CCxoBA,IAAIi0S,EAAU,WACV,GAAmB,oBAARn5N,IACP,OAAOA,IASX,SAASo5N,EAASt3O,EAAKvhD,GACnB,IAAI8c,GAAU,EAQd,OAPAykC,EAAI7wC,MAAK,SAAU68E,EAAO5vF,GACtB,OAAI4vF,EAAM,KAAOvtF,IACb8c,EAASnf,GACF,EAGf,IACOmf,CACX,CACA,OAAsB,WAClB,SAASg8Q,IACLp2S,KAAKq2S,YAAc,EACvB,CAsEA,OArEA16R,OAAO66D,eAAe4/N,EAAQz2Q,UAAW,OAAQ,CAI7Cv+B,IAAK,WACD,OAAOpB,KAAKq2S,YAAYtrS,MAC5B,EACA43L,YAAY,EACZthF,cAAc,IAMlB+0L,EAAQz2Q,UAAUv+B,IAAM,SAAUkc,GAC9B,IAAIrC,EAAQk7R,EAASn2S,KAAKq2S,YAAa/4R,GACnCutF,EAAQ7qG,KAAKq2S,YAAYp7R,GAC7B,OAAO4vF,GAASA,EAAM,EAC1B,EAMAurM,EAAQz2Q,UAAU6yC,IAAM,SAAUl1D,EAAKnJ,GACnC,IAAI8G,EAAQk7R,EAASn2S,KAAKq2S,YAAa/4R,IAClCrC,EACDjb,KAAKq2S,YAAYp7R,GAAO,GAAK9G,EAG7BnU,KAAKq2S,YAAYpyS,KAAK,CAACqZ,EAAKnJ,GAEpC,EAKAiiS,EAAQz2Q,UAAUm3F,OAAS,SAAUx5G,GACjC,IAAIm5F,EAAUz2G,KAAKq2S,YACfp7R,EAAQk7R,EAAS1/L,EAASn5F,IACzBrC,GACDw7F,EAAQvyB,OAAOjpE,EAAO,EAE9B,EAKAm7R,EAAQz2Q,UAAUk3F,IAAM,SAAUv5G,GAC9B,SAAU64R,EAASn2S,KAAKq2S,YAAa/4R,EACzC,EAIA84R,EAAQz2Q,UAAUw8E,MAAQ,WACtBn8G,KAAKq2S,YAAYnyN,OAAO,EAC5B,EAMAkyN,EAAQz2Q,UAAUouC,QAAU,SAAU4G,EAAUksL,QAChC,IAARA,IAAkBA,EAAM,MAC5B,IAAK,IAAIqY,EAAK,EAAGv4Q,EAAKX,KAAKq2S,YAAan9B,EAAKv4Q,EAAGoK,OAAQmuQ,IAAM,CAC1D,IAAIruK,EAAQlqG,EAAGu4Q,GACfvkM,EAAS/uE,KAAKi7P,EAAKh2J,EAAM,GAAIA,EAAM,GACvC,CACJ,EACOurM,CACX,CA1EqB,EA2ExB,CAjGa,GAsGVrzG,EAA8B,oBAAX3nK,QAA8C,oBAAbhb,UAA4Bgb,OAAOhb,WAAaA,SAGpGk2R,OACsB,IAAX,EAAAn/K,GAA0B,EAAAA,EAAOhiF,OAASA,KAC1C,EAAAgiF,EAES,oBAATp3H,MAAwBA,KAAKo1C,OAASA,KACtCp1C,KAEW,oBAAXq7B,QAA0BA,OAAO+Z,OAASA,KAC1C/Z,OAGJ46C,SAAS,cAATA,GASPugO,EACqC,mBAA1B3hO,sBAIAA,sBAAsBq9C,KAAKqkL,GAE/B,SAAU3hO,GAAY,OAAO9kD,YAAW,WAAc,OAAO8kD,EAASjlB,KAAKmS,MAAQ,GAAG,IAAO,GAAK,EAqE7G,IAGI20O,EAAiB,CAAC,MAAO,QAAS,SAAU,OAAQ,QAAS,SAAU,OAAQ,UAE/EC,EAAwD,oBAArBrxF,iBAInCsxF,EAA0C,WAM1C,SAASA,IAML12S,KAAK22S,YAAa,EAMlB32S,KAAK42S,sBAAuB,EAM5B52S,KAAK62S,mBAAqB,KAM1B72S,KAAK82S,WAAa,GAClB92S,KAAK+2S,iBAAmB/2S,KAAK+2S,iBAAiB9kL,KAAKjyH,MACnDA,KAAKg3S,QAjGb,SAAmBriO,EAAUo1D,GACzB,IAAIktK,GAAc,EAAOC,GAAe,EAAO/hM,EAAe,EAO9D,SAASgiM,IACDF,IACAA,GAAc,EACdtiO,KAEAuiO,GACA/c,GAER,CAQA,SAASid,IACLb,EAAwBY,EAC5B,CAMA,SAAShd,IACL,IAAI3zC,EAAY92L,KAAKmS,MACrB,GAAIo1O,EAAa,CAEb,GAAIzwD,EAAYrxI,EA7CN,EA8CN,OAMJ+hM,GAAe,CACnB,MAEID,GAAc,EACdC,GAAe,EACfrnR,WAAWunR,EAAiBrtK,GAEhC50B,EAAeqxI,CACnB,CACA,OAAO2zC,CACX,CA4CuBkd,CAASr3S,KAAKg3S,QAAQ/kL,KAAKjyH,MAzC9B,GA0ChB,CA+JA,OAxJA02S,EAAyB/2Q,UAAU23Q,YAAc,SAAU3sM,IACjD3qG,KAAK82S,WAAWjwQ,QAAQ8jE,IAC1B3qG,KAAK82S,WAAW7yS,KAAK0mG,GAGpB3qG,KAAK22S,YACN32S,KAAKu3S,UAEb,EAOAb,EAAyB/2Q,UAAU63Q,eAAiB,SAAU7sM,GAC1D,IAAI8sM,EAAYz3S,KAAK82S,WACjB77R,EAAQw8R,EAAU5wQ,QAAQ8jE,IAEzB1vF,GACDw8R,EAAUvzN,OAAOjpE,EAAO,IAGvBw8R,EAAU1sS,QAAU/K,KAAK22S,YAC1B32S,KAAK03S,aAEb,EAOAhB,EAAyB/2Q,UAAUq3Q,QAAU,WACnBh3S,KAAK23S,oBAIvB33S,KAAKg3S,SAEb,EASAN,EAAyB/2Q,UAAUg4Q,iBAAmB,WAElD,IAAIC,EAAkB53S,KAAK82S,WAAW5kR,QAAO,SAAUy4E,GACnD,OAAOA,EAASktM,eAAgBltM,EAASmtM,WAC7C,IAOA,OADAF,EAAgB7pO,SAAQ,SAAU48B,GAAY,OAAOA,EAASotM,iBAAmB,IAC1EH,EAAgB7sS,OAAS,CACpC,EAOA2rS,EAAyB/2Q,UAAU43Q,SAAW,WAGrCx0G,IAAa/iM,KAAK22S,aAMvBv2R,SAASC,iBAAiB,gBAAiBrgB,KAAK+2S,kBAChD37Q,OAAO/a,iBAAiB,SAAUrgB,KAAKg3S,SACnCP,GACAz2S,KAAK62S,mBAAqB,IAAIzxF,iBAAiBplN,KAAKg3S,SACpDh3S,KAAK62S,mBAAmB/rM,QAAQ1qF,SAAU,CACtCoQ,YAAY,EACZ60L,WAAW,EACX2yF,eAAe,EACf1yF,SAAS,MAIbllM,SAASC,iBAAiB,qBAAsBrgB,KAAKg3S,SACrDh3S,KAAK42S,sBAAuB,GAEhC52S,KAAK22S,YAAa,EACtB,EAOAD,EAAyB/2Q,UAAU+3Q,YAAc,WAGxC30G,GAAc/iM,KAAK22S,aAGxBv2R,SAASE,oBAAoB,gBAAiBtgB,KAAK+2S,kBACnD37Q,OAAO9a,oBAAoB,SAAUtgB,KAAKg3S,SACtCh3S,KAAK62S,oBACL72S,KAAK62S,mBAAmB9rM,aAExB/qG,KAAK42S,sBACLx2R,SAASE,oBAAoB,qBAAsBtgB,KAAKg3S,SAE5Dh3S,KAAK62S,mBAAqB,KAC1B72S,KAAK42S,sBAAuB,EAC5B52S,KAAK22S,YAAa,EACtB,EAQAD,EAAyB/2Q,UAAUo3Q,iBAAmB,SAAUp2S,GAC5D,IAAI0kD,EAAK1kD,EAAGs3S,aAAcA,OAAsB,IAAP5yP,EAAgB,GAAKA,EAEvCmxP,EAAexoR,MAAK,SAAU1Q,GACjD,SAAU26R,EAAapxQ,QAAQvpB,EACnC,KAEItd,KAAKg3S,SAEb,EAMAN,EAAyBwB,YAAc,WAInC,OAHKl4S,KAAKm4S,YACNn4S,KAAKm4S,UAAY,IAAIzB,GAElB12S,KAAKm4S,SAChB,EAMAzB,EAAyByB,UAAY,KAC9BzB,CACX,CAjM6C,GA0MzC0B,EAAqB,SAAW5jS,EAAQtC,GACxC,IAAK,IAAIgnQ,EAAK,EAAGv4Q,EAAKgb,OAAO6lB,KAAKtvB,GAAQgnQ,EAAKv4Q,EAAGoK,OAAQmuQ,IAAM,CAC5D,IAAI57P,EAAM3c,EAAGu4Q,GACbv9P,OAAO66D,eAAehiE,EAAQ8I,EAAK,CAC/BnJ,MAAOjC,EAAMoL,GACbqlL,YAAY,EACZvhF,UAAU,EACVC,cAAc,GAEtB,CACA,OAAO7sG,CACV,EAQG6jS,EAAc,SAAW7jS,GAOzB,OAHkBA,GAAUA,EAAO6kN,eAAiB7kN,EAAO6kN,cAAci/E,aAGnDhC,CACzB,EAGGiC,EAAYC,EAAe,EAAG,EAAG,EAAG,GAOxC,SAASC,EAAQtkS,GACb,OAAOmpF,WAAWnpF,IAAU,CAChC,CAQA,SAASukS,EAAel8N,GAEpB,IADA,IAAIhB,EAAY,GACP09L,EAAK,EAAGA,EAAKj3Q,UAAU8I,OAAQmuQ,IACpC19L,EAAU09L,EAAK,GAAKj3Q,UAAUi3Q,GAElC,OAAO19L,EAAUxiB,QAAO,SAAU9qD,EAAMkc,GAEpC,OAAOlc,EAAOuqS,EADFj8N,EAAO,UAAYpyD,EAAW,UAE9C,GAAG,EACP,CAkCA,SAASuuR,EAA0BnkS,GAG/B,IAAI4sE,EAAc5sE,EAAO4sE,YAAa/+B,EAAe7tC,EAAO6tC,aAS5D,IAAK++B,IAAgB/+B,EACjB,OAAOk2P,EAEX,IAAI/7N,EAAS67N,EAAY7jS,GAAQ6uE,iBAAiB7uE,GAC9CokS,EA3CR,SAAqBp8N,GAGjB,IAFA,IACIo8N,EAAW,CAAC,EACP1/B,EAAK,EAAG2/B,EAFD,CAAC,MAAO,QAAS,SAAU,QAED3/B,EAAK2/B,EAAY9tS,OAAQmuQ,IAAM,CACrE,IAAI9uP,EAAWyuR,EAAY3/B,GACvB/kQ,EAAQqoE,EAAO,WAAapyD,GAChCwuR,EAASxuR,GAAYquR,EAAQtkS,EACjC,CACA,OAAOykS,CACX,CAkCmBE,CAAYt8N,GACvBu8N,EAAWH,EAASrpS,KAAOqpS,EAASppS,MACpCwpS,EAAUJ,EAAS1pS,IAAM0pS,EAAStpS,OAKlC6R,EAAQs3R,EAAQj8N,EAAOr7D,OAAQyB,EAAS61R,EAAQj8N,EAAO55D,QAqB3D,GAlByB,eAArB45D,EAAOy8N,YAOH9jQ,KAAKkvB,MAAMljD,EAAQ43R,KAAc33N,IACjCjgE,GAASu3R,EAAel8N,EAAQ,OAAQ,SAAWu8N,GAEnD5jQ,KAAKkvB,MAAMzhD,EAASo2R,KAAa32P,IACjCz/B,GAAU81R,EAAel8N,EAAQ,MAAO,UAAYw8N,KAoDhE,SAA2BxkS,GACvB,OAAOA,IAAW6jS,EAAY7jS,GAAQ4L,SAAS+/B,eACnD,CA/CS+4P,CAAkB1kS,GAAS,CAK5B,IAAI2kS,EAAgBhkQ,KAAKkvB,MAAMljD,EAAQ43R,GAAY33N,EAC/Cg4N,EAAiBjkQ,KAAKkvB,MAAMzhD,EAASo2R,GAAW32P,EAMpB,IAA5BlN,KAAKytC,IAAIu2N,KACTh4R,GAASg4R,GAEoB,IAA7BhkQ,KAAKytC,IAAIw2N,KACTx2R,GAAUw2R,EAElB,CACA,OAAOZ,EAAeI,EAASrpS,KAAMqpS,EAAS1pS,IAAKiS,EAAOyB,EAC9D,CAOA,IAAIy2R,EAGkC,oBAAvBC,mBACA,SAAU9kS,GAAU,OAAOA,aAAkB6jS,EAAY7jS,GAAQ8kS,kBAAoB,EAKzF,SAAU9kS,GAAU,OAAQA,aAAkB6jS,EAAY7jS,GAAQ+kS,YAC3C,mBAAnB/kS,EAAOglS,OAAyB,EAiB/C,SAASC,EAAejlS,GACpB,OAAKuuL,EAGDs2G,EAAqB7kS,GAhH7B,SAA2BA,GACvB,IAAIwtD,EAAOxtD,EAAOglS,UAClB,OAAOhB,EAAe,EAAG,EAAGx2O,EAAK7gD,MAAO6gD,EAAKp/C,OACjD,CA8Ge82R,CAAkBllS,GAEtBmkS,EAA0BnkS,GALtB+jS,CAMf,CAiCA,SAASC,EAAev9O,EAAGF,EAAG55C,EAAOyB,GACjC,MAAO,CAAEq4C,EAAGA,EAAGF,EAAGA,EAAG55C,MAAOA,EAAOyB,OAAQA,EAC/C,CAMA,IAAI+2R,EAAmC,WAMnC,SAASA,EAAkBnlS,GAMvBxU,KAAK45S,eAAiB,EAMtB55S,KAAK65S,gBAAkB,EAMvB75S,KAAK85S,aAAetB,EAAe,EAAG,EAAG,EAAG,GAC5Cx4S,KAAKwU,OAASA,CAClB,CAyBA,OAlBAmlS,EAAkBh6Q,UAAU4c,SAAW,WACnC,IAAIw9P,EAAON,EAAez5S,KAAKwU,QAE/B,OADAxU,KAAK85S,aAAeC,EACZA,EAAK54R,QAAUnhB,KAAK45S,gBACxBG,EAAKn3R,SAAW5iB,KAAK65S,eAC7B,EAOAF,EAAkBh6Q,UAAUq6Q,cAAgB,WACxC,IAAID,EAAO/5S,KAAK85S,aAGhB,OAFA95S,KAAK45S,eAAiBG,EAAK54R,MAC3BnhB,KAAK65S,gBAAkBE,EAAKn3R,OACrBm3R,CACX,EACOJ,CACX,CApDsC,GAsDlCM,EAOA,SAA6BzlS,EAAQ0lS,GACjC,IA/FoBv5S,EACpBs6D,EAAUF,EAAU55C,EAAkByB,EAEtCu3R,EACAJ,EA2FIK,GA9FJn/O,GADoBt6D,EA+FiBu5S,GA9F9Bj/O,EAAGF,EAAIp6D,EAAGo6D,EAAG55C,EAAQxgB,EAAGwgB,MAAOyB,EAASjiB,EAAGiiB,OAElDu3R,EAAoC,oBAApBE,gBAAkCA,gBAAkB1+R,OACpEo+R,EAAOp+R,OAAOszB,OAAOkrQ,EAAOx6Q,WAEhCy4Q,EAAmB2B,EAAM,CACrB9+O,EAAGA,EAAGF,EAAGA,EAAG55C,MAAOA,EAAOyB,OAAQA,EAClC1T,IAAK6rD,EACLvrD,MAAOyrD,EAAI95C,EACX7R,OAAQsT,EAASm4C,EACjBxrD,KAAM0rD,IAEH8+O,GAyFH3B,EAAmBp4S,KAAM,CAAEwU,OAAQA,EAAQ4lS,YAAaA,GAC5D,EAIAE,EAAmC,WAWnC,SAASA,EAAkB3lO,EAAU4lO,EAAYC,GAc7C,GAPAx6S,KAAKy6S,oBAAsB,GAM3Bz6S,KAAK06S,cAAgB,IAAIxE,EACD,mBAAbvhO,EACP,MAAM,IAAIz0C,UAAU,2DAExBlgC,KAAK26S,UAAYhmO,EACjB30E,KAAK46S,YAAcL,EACnBv6S,KAAK66S,aAAeL,CACxB,CAmHA,OA5GAF,EAAkB36Q,UAAUmrE,QAAU,SAAUt2F,GAC5C,IAAKvS,UAAU8I,OACX,MAAM,IAAIm1B,UAAU,4CAGxB,GAAuB,oBAAZ4hF,SAA6BA,mBAAmBnmG,OAA3D,CAGA,KAAMnH,aAAkB6jS,EAAY7jS,GAAQstG,SACxC,MAAM,IAAI5hF,UAAU,yCAExB,IAAI46Q,EAAe96S,KAAK06S,cAEpBI,EAAajkL,IAAIriH,KAGrBsmS,EAAatoO,IAAIh+D,EAAQ,IAAImlS,EAAkBnlS,IAC/CxU,KAAK46S,YAAYtD,YAAYt3S,MAE7BA,KAAK46S,YAAY5D,UAZjB,CAaJ,EAOAsD,EAAkB36Q,UAAUo7Q,UAAY,SAAUvmS,GAC9C,IAAKvS,UAAU8I,OACX,MAAM,IAAIm1B,UAAU,4CAGxB,GAAuB,oBAAZ4hF,SAA6BA,mBAAmBnmG,OAA3D,CAGA,KAAMnH,aAAkB6jS,EAAY7jS,GAAQstG,SACxC,MAAM,IAAI5hF,UAAU,yCAExB,IAAI46Q,EAAe96S,KAAK06S,cAEnBI,EAAajkL,IAAIriH,KAGtBsmS,EAAahkL,OAAOtiH,GACfsmS,EAAa5sS,MACdlO,KAAK46S,YAAYpD,eAAex3S,MAXpC,CAaJ,EAMAs6S,EAAkB36Q,UAAUorE,WAAa,WACrC/qG,KAAKg7S,cACLh7S,KAAK06S,cAAcv+L,QACnBn8G,KAAK46S,YAAYpD,eAAex3S,KACpC,EAOAs6S,EAAkB36Q,UAAUk4Q,aAAe,WACvC,IAAInyS,EAAQ1F,KACZA,KAAKg7S,cACLh7S,KAAK06S,cAAc3sO,SAAQ,SAAUktO,GAC7BA,EAAY1+P,YACZ72C,EAAM+0S,oBAAoBx2S,KAAKg3S,EAEvC,GACJ,EAOAX,EAAkB36Q,UAAUo4Q,gBAAkB,WAE1C,GAAK/3S,KAAK83S,YAAV,CAGA,IAAIj3C,EAAM7gQ,KAAK66S,aAEXpkM,EAAUz2G,KAAKy6S,oBAAoB1/R,KAAI,SAAUkgS,GACjD,OAAO,IAAIhB,EAAoBgB,EAAYzmS,OAAQymS,EAAYjB,gBACnE,IACAh6S,KAAK26S,UAAU/0S,KAAKi7P,EAAKpqJ,EAASoqJ,GAClC7gQ,KAAKg7S,aAPL,CAQJ,EAMAV,EAAkB36Q,UAAUq7Q,YAAc,WACtCh7S,KAAKy6S,oBAAoBv2N,OAAO,EACpC,EAMAo2N,EAAkB36Q,UAAUm4Q,UAAY,WACpC,OAAO93S,KAAKy6S,oBAAoB1vS,OAAS,CAC7C,EACOuvS,CACX,CAnJsC,GAwJlC7C,EAA+B,oBAAZllC,QAA0B,IAAIA,QAAY,IAAI2jC,EAKjEgF,EAOA,SAASA,EAAevmO,GACpB,KAAM30E,gBAAgBk7S,GAClB,MAAM,IAAIh7Q,UAAU,sCAExB,IAAKj+B,UAAU8I,OACX,MAAM,IAAIm1B,UAAU,4CAExB,IAAIq6Q,EAAa7D,EAAyBwB,cACtCvtM,EAAW,IAAI2vM,EAAkB3lO,EAAU4lO,EAAYv6S,MAC3Dy3S,EAAUjlO,IAAIxyE,KAAM2qG,EACxB,EAIJ,CACI,UACA,YACA,cACF58B,SAAQ,SAAUuhD,GAChB4rL,EAAev7Q,UAAU2vF,GAAU,WAC/B,IAAI3uH,EACJ,OAAQA,EAAK82S,EAAUr2S,IAAIpB,OAAOsvH,GAAQttH,MAAMrB,EAAIsB,UACxD,CACJ,IAEA,IAAIgZ,OAEuC,IAA5Bq7R,EAAS4E,eACT5E,EAAS4E,eAEbA,EAGX,W,iFC95BE,SAAO,EAAa,GACrB,0B,CCID,OAAsB,EAKb,EAAE,CAUT,aAAI,E,yCACF,CAAW,GACT,IACa,WACd,MAIF,GAED,E,yCACE,GACD,QACD,GC5BA,SAAW,EAAQ,GACpB,mC,CCFC,IAAM,EAAM,CACZ,UACA,KAAK,SAAL,GAAc,E,MACZ,SAAW,G,GACT,EAAM,sCACP,QAEA,IAEH,EACA,uB,6FCNyD,W,SAClD,EAAY,GAOlB,OANC,MAAK,W,KACA,QAAO,EAER,EAAK,OAAG,4CAAsB,qEAClCl7S,KAAK,KAAO,sBACZ,YAAY,EACb,IAED,CAGE,OADF,EAAO,UAAwB,+BAC5B,CAML,CAnB2D,GC+BzD,EAAY,W,SAXL,EAAkB,GAGf,eAEF,sBAAqC,KAO3C,KAAI,eAAa,KACd,IACAA,KAAa,kBAAe,EAC9B,oBASH,CAsKD,O,EArKO,UAAc,uBAElB,IAAI,E,IACF,Y,CAKF,IC7DmB,ED6Df,EAAC,KAAS,EAAK,4E,GACnBA,KAAK,UAGLA,KAAK,iBAAiB,KAEtB,KAAI,eAAgB,KAClBm7S,aAA4B,EAC7B,oBACC,GAA0B,OAArB,E,IACH,IAAM,EAAO,EAAE,EAAAA,EAAwB,YAC1B,EAAO,GACrB,YACF,C,GAYC,EAAI,GAAkB,CACnB,IACF,0B,IAGA,YAAC,C,MACAttS,GACD,gCACF,CAED,C,GACE,EAAI,GACJ,CAAI,GAAM,E,IAAV,IAEA,EAAS,EAAa,SACd,EAAM,IACZ,IAAI,IAAe,G,GCrG1B,QADsB,EDuGT,ICtGb,mB,IDwGU,eAAC,C,MACAA,GACA,EAAK,GAAY,GACfA,aAAS,EACV,wBAEA,SAEJ,CAEJ,CAjBW,C,GAoBV,EACD,cA5DG,CAmFN,E,EACM,UAA8B,aAAU,GAE5C,IAAI,EAAW,E,IACb,EACD,e,cAGM,G,IACH,WACF,EAAa,S,IACX,S,GAEE,IAAO,MAAa,2CACrB,SACC,eAED,OADC,EAAO,cACR,EACC,KAAS,aAAgB,IACzB,MAAA4nR,GACAA,EAAa,OACd,kBACD,CACF,M,QAEC,sEAKH,IAAI0lB,EAAgB,EAAW,iB,GAGhB,OAAb,EACD,6BACC,GAAIA,aAA2B,G,GAE7B,IAAoB,KACrB,SAIF,2B,KAEC,KAA4B,IAA5BA,EAAsB,QAAM,MAI7B,SAHA,YAMD,CACA,IAAIC,EAAa,KAAK,eAOvB,OANQ,OAAL,EACD,wBAEA,UAGF,CAQD,E,EACQ,UAAa,OAAQ,YAC3B,IAAIA,EAAe,oB,GACjB,EAAM,CACN,IAAIC,EAAiB,EAAS,YACP,IAArB,GACD,aAEJ,CAtMa,E,EACN,MAAS,SAAK,GAEpB,OADA,UAAa,EACT,CAoMR,CAtMmB,CAsMnB,OAAC,C,CAnLa,G,SAsLb,EAAsB,GACtB,+E,CE7NC,MAA4B,W,MACjB,0BACP,OAAoB,gBAAiB,+BAK3C,CAP8B,GCgBK,WAAY,G,SAuC7C,EAGE,EAAO,EA2BR,GA7CgB,aAAsB,OAAK,K,OAC3B,iBAAe,KACf,mBAAkB,EAEzB,sBAA2B,EAgBnC,aAAkB,EAChB,UAAM,Q,KACJ,EACA,EAAM,cACR,M,KACE,E,IACE,EAAmB,CACnB,EAAM,cACP,KACD,C,GACuB,iBAAjBC,EAA6B,CAC/B,aAA0B,GAC1B,EAAK,mBAAcA,EAAkB,mBACrC,EAAAC,YAAkB,EACnB,WAEC,EAAK,oBAAkB,EACxB,0BAEF,KACH,C,QAEE,EAAK,oBAAkB,EACvB,EAAM,2BAEX,QAnED,CAFiC,OAuCjC,OAAY,GAvBL,YAAP,GAEiB,WAAqB,a,EAC9B,OAAU,SAAO,EAAW,EAAM,GACxC,IAAAC,EAAW,MAAqB,EAAM,KAEvC,OADC,EAAO,oBAAW,EACnB,CAwDD,E,EACO,UAAK,KAAW,YACnBx7S,KAAK,WACN,aAUH,E,EACO,UAAK,MAAW,YACnBA,KAAKy7S,YACLz7S,KAAK,WAAY,EAClB,eASH,E,EACO,UAAK,SAAW,WACnBA,KAAKy7S,YACLz7S,KAAK,WAAY,EAClB,iBAGH,E,EACM,UAAa,uBACf,cAGF,gBAAM,EACP,mCAES,E,EACH,UAAY,MAAK,SAAO,GAC9B,wBAES,E,EACH,UAAY,OAAS,SAAE,GAC5BA,KAAK,YAAW,MAAG,GACpB,kBAES,E,EACH,UAAY,UAAW,WAC5BA,KAAK,YAAW,WACjB,kBAGD,E,EACW,4CACT,IAAI,EAAiB,KAAO,iBAM7B,OALCA,KAAK,iBAAc,KACnBA,KAAK,cACLA,KAAK,QAAS,EACdA,KAAK,aACL,sBAAY,EACb,IACH,EA/ImC,C,CAAA,C,GAsJI,WAAa,G,SAIlD,EAIE,EAwBD,OA5BmB,IAOd,EAPc,SAAiB,OAAjB,KAMlB,EAAI,kBAA2B,EAG/B,IAAI,EAAU,EAmBf,OAlBG,EAA+B07S,GAChC,IACK,IACJ,EAAK,EAAwC,KAC7C,EAAQ,EAAyB,MACjC,EAAIA,EAAmB,SACrB,IAAiB,IAEf,GADF,EAAI,OAAW,OAAQ,IACSnmB,cAC/B,6BAEF,sCAIH,EAAK,SAAQ,EACb,EAAK,MAAM,EACX,EAAK,OAAS,E,cACf,CAED,CAlCqC,OAIrC,OAAoB,G,EA+BR,UAAS,KAAS,SAAO,G,IACzB,4BACR,IAAI,EAAQ,uBACV,EAAK,uCAAgC,qBAEhC,qBAAc,iBACpB,mBAFA,+BAIJ,CAED,E,EACY,UAAW,kB,IACX,gBACA,6BACJ,EAAa,wC,GACf,KAAK,OACH,GAAoC,sBAIpCv1R,KAAK,gBAAc,iBACpB,qBAJCA,KAAK,aAAa,KAAC,UACpB,yBAKD,GAAK,EAAc,mBAOjB,GACA27S,EAAkB,eAAe,EAClC,sBAEA,KAEF,uBAboB,C,GACnB,KAAI,cACF,EACD,QAEF,I,CAUJ,CAED,E,EAAA,UAiBC,oBAhBC,IAAI,EAAM,K,IACA,gBACR,IAAI,EAAgB,uB,GAClB,KAAM,WAEN,IAAI,EAAQ,oBAAqC,UAAK,gBAAkB,EACtE,EAAK,uCAA8B,sBAInC37S,KAAK,gBAAc,KACpB,qBAJCA,KAAK,aAAa,GACnB,mB,MAMF,kBAEJ,CAEO,E,EACF,qC,IAEH,uBAAC,C,MACA,G,GACA,KAAI,cACF,EAAM,sCACP,QAEA,IAEJ,CAEO,E,EACK,UAAC,yBAAqC,EAAE,K,IACjD,EAAM,sCACP,4B,IAGA,uBAAC,C,MACA,G,OACE,EAAO,uCACPqkN,EAAO,eAAe,EACtB,EAAO,iBAAK,GACb,IAEC,EAAY,IACb,EAEH,CACD,QAGD,E,EACU,kCACR,IAAI,EAAiB,uBACrBrkN,KAAK,cACL,KAAA27S,kBAAkB,KACnB,eACH,EArIuC,C,CAAA,C,0FCvKrC,SAAS,KACV,Q,CCsBC,SAAQ,EAAc,G,OACsB,IAA1C,SACD,EAGe,IAAd,SACD,KAGC,SAAkB,GAClB,+CACH,C,KCCC,EAAY,W,SAfL,EAAS,GAgBd,KAAI,WAAW,EACb,IACD,kBA0BH,CAySD,O,EAxSS,UAAa,KAAI,SAAgB,GACvC,IAAArH,EAAiB,IAAG,EAGrB,OAFCA,EAAW,OAAS,KACpB,EAAO,SAAW,EACnB,CAuID,E,EAIU,oBAAkB,gBAC1B,IAAM,EAAO,cAET,EC1MN,SAAoB,O,GAClB,EAAI,C,GACF,aAAwC,EACzC,S,GAGC,EAAO,GACR,aAGH,C,OACE,GAAW,GAAW,EAIzB,aAHE,Q,CD8LK,CAAU,O,GACZ,EACD,6B,EAGG,IAAK,aAAgB,EAAE,6DACvBt0S,KAAK,cAER,uBAGC,EAAI,uCACF47S,EAAKC,qBACL,EAAI,oBAAsB,EACxB,mBACD,uBAKN,QAGD,E,EACM,oC,IAEH,yBAAC,C,MACA,GACE,EAAK,wCACLD,EAAK,iBAAiB,EACvB,qBExOL,SAAiB,G,KACT,IACN,IAAI,IAAU,EAAW,uC,GACvB,GAAY,EACb,SAEA,EADC,GAAWL,aAAY,EACxB,EAEA,IAEH,CACD,Q,CF+NO,CAAe,GAGhB,gBAFA,UAIJ,CASD,E,EAAA,UAkBC,sBAjBC,MAAY,K,OAKV,IAHF,EAAW,EAAkB,KAGI,cAC/B,IAAA9lB,E,EACM,yB,IAEH,IAAC,C,MACA,GACA,EAAI,GACFA,GACD,eAEF,CACe,OACrB,GAGD,E,EACU,qBAAgB,YACxB,MAAa,KAAI30K,OAClB,wBAoBD,E,EACS,UAAK,cACb,WAoCD,E,EAAK,eAA2C,W,UAA3C,0BAA2C,I,yBAEzB,IAAnB,EAAkB,OACnB,KAGF,UAQD,E,EAAA,UAOC,sBANC,MAAY,K,OAGV,IADF,EAAW,EAAY,KACN,cACf,MACe,2FAClB,GAnTM,E,EACE,OAAI,SAAcx9D,GAC1B,eAkTH,EAAC,C,CAtUa,G,SAgVP,EAAa,G,GAChBw4P,IACD,uBAGC,EACD,yCAGF,Q,OGrXqC,W,SAC7B,IAIN,OAHC,MAAK,WACL97S,KAAK,QAAO,sBACZ,UAAY,0BACb,IAED,CAGE,OADF,EAAO,UAA4B,+BAChC,CAWL,CArBsC,GCCM,WAAY,G,SAGtD,EACE,EAAO,GADU,aAAmB,YAErC,OAF8C,UAAU,EAFzD,aAAkB,E,YAIjB,CAED,CAP0C,OAG1C,OAA+C,G,EAK9B,UAAE,uB,IACf,Y,CAKF,KAAM,QAAU,EAChB,IAAM,EAAU,KAAE+7S,QAEd,EAAW,EAAK,U,GAEpB,KAAK,QAAU,KACb,GAAO,sC,CAKT,IAAIC,EAAe,EAAS,0BACT,IAAjB,GACD,aAJD,CAXA,CAiBJ,EA7B4C,C,CAAA,C,GCGF,WAAa,G,SACrD,EACE,GADoB,QAAW,KAAX,KAAAT,IAAuB,KAE5C,O,gBAAA,CACH,CAJ0C,OACxC,OAAsB,GADkB,C,CAAA,C,GAeV,WAAa,G,SAgB3C,IAVA,QAA2B,KAAG,YAY7B,OAVD,YAAS,GAET,UAAS,EAET,aAAW,EAEX,YAAW,E,mBAIV,CAhBD,CAF8B,OAgB9B,U,EAbE,UAAW,GAAwB,WACpC,kBAuBD,E,EACQ,UAAU,KAAI,YACpB,IAAAQ,EAAQ,IAAQ,EAAiB,WAElC,OADC,EAAY,SAAQ,EACrB,CAED,E,EACM,UAAK,KAAQ,Y,GACf,YACD,Y,IAES,e,IACR,IAAM,EAAM,KAAU,UAChB,EAAI,EAAY,OACtB,EAAW,EAAS,QACbj8S,EAAG,EAAI,EAAC,EAAO,IACrB,YAIL,E,EACM,UAAK,MAAQ,Y,GACf,YACD,YAEDE,KAAK,UAAW,EAChBA,KAAK,YAAY,EACT,kB,IACR,IAAM,EAAM,KAAU,UAChB,EAAI,EAAY,OACtB,EAAW,EAAS,QACbF,EAAG,IAAM,EAAK,IACpB,cAEF,uBAED,E,EACM,UAAK,SAAQ,W,GACf,YACD,YAEO,kB,IACR,IAAM,EAAM,KAAU,UAChB,EAAI,EAAY,OACtB,EAAW,EAAS,QACbA,EAAG,IAAQ,EAAG,IACpB,gBAEF,uBAED,E,EACM,UAAU,YAAQ,WACtBE,KAAK,WAAS,EACdA,KAAK,QAAS,EACf,mBAGD,E,EACM,UAAK,cAAQ,Y,GACf,YACD,YAEA,6CAIH,E,EACM,UAAK,WAAQ,Y,GACf,YACD,YACC,YAAU,UACV,EAAO,WAAa,aACrB,SACC,KAAU,WACV,EAAO,WACR,UAEC,eAAW,QACZ,cASH,E,EACQ,UAAU,aAAO,WACjB,IAAAs0S,EAAkB,IAAG,EAE5B,OADC,EAAO,OAAW,KACnB,CA/FM,E,EACL,OAAW,WAAoB,GAChC,iBA8FH,EAvHgC,C,CAAA,C,GA4HS,WAAU,G,SACjD,EACE,EAAO,GADa,QAAW,KAAX,OAAyB,KAG9C,OADC,EAAK,YAAS,E,WACf,CAED,CANuC,OACvC,OAAsB,G,EAMZ,wBAAqB,GAC7B,IAAIiH,EAAW,KAAIA,YACjBA,GAAY,EAAY,MACzB,SAGH,E,EACU,yBAAqB,GAC7B,IAAIA,EAAW,KAAIA,YACjB,GAAKA,EAAsB,OAC5B,yBAGH,E,EACU,mBAAW,WACnB,IAAIA,EAAW,KAAIA,YACjB,GAAKA,EAAsB,UAC5B,2BAIH,E,EACU,qBAAgB,Y,OACZ,YAEX,yBAEA,OAEL,EApCgD,C,CAAP,C,GC3ID,WAAU,G,SAEhD,EACE,GADkB,MAAM,EAAN,KAAS,YAE5B,O,WAAA,CAED,CANsC,OAEtC,OAA6B,G,sBAI7B,qB,IACE,WACD,sB,gBAAA,kB,EAIO,UAAe,oBAAM,GAC3B,IAAI9lB,EAAY,EAAwB,UAAc,WAAQ,aAI/D,OAHG,IAAgB,EAAa,QAC9B,oBAEF,CAED,E,EACW,UAAU,oB,GACjB,cACD,uBACC,QAAU,OACX,YAEA,kBAGH,E,EACE,UAAU,cAAM,GACjB,yCACH,EAhC+C,C,CAAP,C,kCCVxC,IAAIlpR,EAAgb,SAAUsyD,EAAK/+D,GAAK,GAAI4/B,MAAMwT,QAAQ2rB,GAAQ,OAAOA,EAAY,GAAIu+L,OAAOS,YAAYliP,OAAOkjD,GAAQ,OAAxf,SAAuBA,EAAK/+D,GAAK,IAAIk5Q,EAAO,GAAQC,GAAK,EAAUnzL,GAAK,EAAWu5B,OAAK36G,EAAW,IAAM,IAAK,IAAiCwrJ,EAA7BgpH,EAAKr6M,EAAIu+L,OAAOS,cAAmBob,GAAM/oH,EAAKgpH,EAAGj4Q,QAAQugD,QAAoBw3N,EAAK/0Q,KAAKisJ,EAAG/7I,QAAYrU,GAAKk5Q,EAAKjuQ,SAAWjL,GAA3Dm5Q,GAAK,GAAkE,CAAE,MAAO1vQ,GAAOu8E,GAAK,EAAMu5B,EAAK91G,CAAK,CAAE,QAAU,KAAW0vQ,GAAMC,EAAW,QAAGA,EAAW,QAAK,CAAE,QAAU,GAAIpzL,EAAI,MAAMu5B,CAAI,CAAE,CAAE,OAAO25J,CAAM,CAAuHo3B,CAAcvxO,EAAK/+D,GAAa,MAAM,IAAIogC,UAAU,uDAA2D,EAEjpBzgC,EAAOD,QAAU,SAAUa,GACzB,IAAIkB,EAAOlB,EAAKkB,KACZkzQ,EAAep0Q,EAAKo0Q,aA8BxB,SAASxzQ,EAAKmpB,GACZ,IAAI6xR,EAAY1vS,EAAe6d,EAAU,GAErC+pP,EAAe8nC,EAAU,GACzB7nC,EAAY6nC,EAAU,GAG1B,OAAIxnC,EACgB,OAAdL,GAAsBA,IAAc7yQ,EAAK4yQ,GAAgB,EAGtC,QAFrBA,EArCN,SAAkCA,GAOhC,IANqB,OAAjBA,EACFA,EAAe,EAEfA,IAGKA,EAAe5yQ,EAAKwJ,QAAiC,IAAvBxJ,EAAK4yQ,IACxCA,IAGF,OAAOA,IAAiB5yQ,EAAKwJ,OAAS,KAAOopQ,CAC/C,CAyBqB+nC,CAAyB/nC,IAG/B,CAAC,KAAM,MAGT,CAACA,EAAc,GAGjB,CAACA,EAAcC,EAAY,GAGvB,IAAT7yQ,GAAc6yQ,IAAc7yQ,EAAO,EAC9B,CAAC,KAAM,MAGE,OAAd6yQ,EACK,CAAC,KAAM,GAGT,CAAC,KAAMA,EAAY,EAC5B,CAsCA,MAAO,CACLnzQ,KAAMA,EACND,KAtCF,SAAcopB,GACZ,IAAI+xR,EAAa5vS,EAAe6d,EAAU,GAEtC+pP,EAAegoC,EAAW,GAC1B/nC,EAAY+nC,EAAW,GAG3B,OAAI1nC,EACgB,OAAdL,GAAoC,IAAdA,EAGH,QAFrBD,EAvDN,SAAkCA,GAOhC,IANqB,OAAjBA,EACFA,EAAe5yQ,EAAKwJ,OAAS,EAE7BopQ,IAGKA,GAAgB,GAA4B,IAAvB5yQ,EAAK4yQ,IAC/BA,IAGF,OAAyB,IAAlBA,EAAsB,KAAOA,CACtC,CA2CqBioC,CAAyBjoC,IAG/B,CAAC,KAAM,MAGT,CAACA,EAAc5yQ,EAAK4yQ,GAAgB,GAGtC,CAACA,EAAcC,EAAY,GAGvB,IAAT7yQ,GAA4B,IAAd6yQ,EACT,CAAC,KAAM,MAGE,OAAdA,EACK,CAAC,KAAM7yQ,EAAO,GAGhB,CAAC,KAAM6yQ,EAAY,EAC5B,EASE1jH,OAPF,SAAgBtmI,GACd,OAA6B,OAAtBnpB,EAAKmpB,GAAU,EACxB,EAOF,C,gCCnFA3qB,EAAOD,QAxBP,SAA4B68S,EAAMC,GAChC,GAAID,IAASC,EACX,OAAO,EAGT,IAAKD,IAASC,EACZ,OAAO,EAGT,IAAI58L,EAAM28L,EAAKtxS,OAEf,GAAIuxS,EAAKvxS,SAAW20G,EAClB,OAAO,EAGT,IAAK,IAAI5/G,EAAI,EAAGA,EAAI4/G,EAAK5/G,IACvB,GAAIu8S,EAAKv8S,KAAOw8S,EAAKx8S,GACnB,OAAO,EAIX,OAAO,CACT,C,mBChBAL,EAAOD,QARY,SAAUihH,GAC3B,OAAOA,EACEv5G,QAAQ,UAAU,SAAU2M,GAC3B,MAAO,IAAMA,EAAMkE,aACrB,IACCA,aACX,C,oCCDsCvY,EAAQ,QAAY,EAE1D,IAAI+8S,EAAoB,EAAQ,MAE5BvmL,GAAY,EAAIumL,EAAkBpyO,KAAK,CAAC,sxDAC5C3qE,EAAQ,GAAYw2H,GACJ,EAAIumL,EAAkB3wD,mBAAmB51H,E;;;;;;;;;;;;;;;ACKzD,IAAIwmL,EAAgB,SAASzrO,EAAGn7C,GAI5B,OAHA4mR,EAAgB7gS,OAAOilB,gBAClB,CAAEs5F,UAAW,cAAgBx6F,OAAS,SAAUqxC,EAAGn7C,GAAKm7C,EAAEmpD,UAAYtkG,CAAG,GAC1E,SAAUm7C,EAAGn7C,GAAK,IAAK,IAAIyJ,KAAKzJ,EAAOA,EAAEmZ,eAAe1P,KAAI0xC,EAAE1xC,GAAKzJ,EAAEyJ,GAAI,EACtEm9Q,EAAczrO,EAAGn7C,EAC5B,EAEO,SAAS6mR,EAAU1rO,EAAGn7C,GAEzB,SAASm9M,IAAO/yO,KAAK6gC,YAAckwC,CAAG,CADtCyrO,EAAczrO,EAAGn7C,GAEjBm7C,EAAEpxC,UAAkB,OAAN/J,EAAaja,OAAOszB,OAAOrZ,IAAMm9M,EAAGpzM,UAAY/J,EAAE+J,UAAW,IAAIozM,EACnF,CAEO,IAAI3iB,EAAW,WAQlB,OAPAA,EAAWz0M,OAAOC,QAAU,SAAkBoa,GAC1C,IAAK,IAAIu2B,EAAGzsD,EAAI,EAAG0sD,EAAIvqD,UAAU8I,OAAQjL,EAAI0sD,EAAG1sD,IAE5C,IAAK,IAAIu/B,KADTktB,EAAItqD,UAAUnC,GACO6b,OAAOgkB,UAAUoP,eAAenpC,KAAK2mD,EAAGltB,KAAIrJ,EAAEqJ,GAAKktB,EAAEltB,IAE9E,OAAOrJ,CACX,EACOo6L,EAASpuN,MAAMhC,KAAMiC,UAChC,EA4EO,SAASy6S,EAAS1gD,GACrB,IAAIzvM,EAAsB,mBAAX6wM,QAAyBA,OAAOS,SAAU55O,EAAIsoC,GAAKyvM,EAAEzvM,GAAIzsD,EAAI,EAC5E,GAAImkB,EAAG,OAAOA,EAAEre,KAAKo2P,GACrB,GAAIA,GAAyB,iBAAbA,EAAEjxP,OAAqB,MAAO,CAC1C9J,KAAM,WAEF,OADI+6P,GAAKl8P,GAAKk8P,EAAEjxP,SAAQixP,OAAI,GACrB,CAAE7nP,MAAO6nP,GAAKA,EAAEl8P,KAAM0hD,MAAOw6M,EACxC,GAEJ,MAAM,IAAI97N,UAAUqsB,EAAI,0BAA4B,kCACxD,CAEO,SAASowP,EAAO3gD,EAAGxvM,GACtB,IAAIvoC,EAAsB,mBAAXm5O,QAAyBpB,EAAEoB,OAAOS,UACjD,IAAK55O,EAAG,OAAO+3O,EACf,IAAmBv7L,EAAY5yD,EAA3B/N,EAAImkB,EAAEre,KAAKo2P,GAAO79C,EAAK,GAC3B,IACI,WAAc,IAAN3xJ,GAAgBA,KAAM,MAAQiU,EAAI3gE,EAAEmB,QAAQugD,MAAM28J,EAAGl6M,KAAKw8D,EAAEtsD,MACxE,CACA,MAAOvS,GAASiM,EAAI,CAAEjM,MAAOA,EAAS,CACtC,QACI,IACQ6+D,IAAMA,EAAEjf,OAASv9B,EAAInkB,EAAU,SAAImkB,EAAEre,KAAK9F,EAClD,CACA,QAAU,GAAI+N,EAAG,MAAMA,EAAEjM,KAAO,CACpC,CACA,OAAOu8M,CACX,CAEO,SAASy+F,IACZ,IAAK,IAAIz+F,EAAK,GAAIr+M,EAAI,EAAGA,EAAImC,UAAU8I,OAAQjL,IAC3Cq+M,EAAKA,EAAG98M,OAAOs7S,EAAO16S,UAAUnC,KACpC,OAAOq+M,CACX,C,oBCnJA,OAGA,SAAU/iL,EAAO12B,GAAW,aAAa,IAA6Cm4S,EAAU,WAAWC,EAAW,YAAYC,EAAS,SAASC,EAAS,SAASC,EAAM,QAAQC,EAAM,QAAQC,EAAK,OAAOC,EAAK,OAAOC,EAAO,SAASC,EAAQ,UAAUC,EAAa,eAAeC,EAAQ,UAAUC,EAAO,SAASC,EAAO,SAASC,EAAQ,UAAUC,EAAS,WAAWC,EAAS,WAAiCC,EAAO,SAASC,EAAM,QAAQC,EAAK,OAAOC,EAAW,aAAaC,EAAQ,UAAUC,EAAO,SAAqBC,EAAQ,UAAUC,EAAO,SAASC,EAAO,SAASC,EAAG,KAAKC,EAAU,YAAYC,EAAS,WAAWC,EAAM,QAAQC,EAAQ,UAAUC,EAAM,QAAQC,EAAK,OAAqBC,EAAO,SAASC,EAAM,QAAQC,EAAS,WAAWC,EAAY,cAAcx+B,EAAO,SAAoPy+B,EAAU,SAASrgP,GAAkB,IAAb,IAAIsgP,EAAM,CAAC,EAAUr/S,EAAE,EAAEA,EAAE++D,EAAI9zD,OAAOjL,IAAKq/S,EAAMtgP,EAAI/+D,GAAG0Y,eAAeqmD,EAAI/+D,GAAG,OAAOq/S,CAAK,EAAEtoL,EAAI,SAASuoL,EAAKC,GAAM,cAAcD,IAAOpC,IAAmD,IAA1CsC,EAASD,GAAMx4Q,QAAQy4Q,EAASF,GAAiB,EAAEE,EAAS,SAAS7+L,GAAK,OAAOA,EAAI1oG,aAAa,EAAyHia,EAAK,SAASyuF,EAAIf,GAAK,UAAUe,IAAMu8L,EAA0C,OAAhCv8L,EAAIA,EAAIv5G,QAAQ,SAA53C,WAA05Cw4G,IAAMo9L,EAAWr8L,EAAIA,EAAI1zE,UAAU,EAAlnC,IAAmoC,EAAMwyQ,EAAU,SAAS1gC,EAAG2gC,GAAsC,IAA9B,IAAQ9gP,EAAEN,EAAE/+B,EAAEkpO,EAAEt6N,EAAQp6B,EAApB/T,EAAE,EAA8BA,EAAE0/S,EAAOz0S,SAASkjC,GAAQ,CAAC,IAAInjB,EAAM00R,EAAO1/S,GAAGoS,EAAMstS,EAAO1/S,EAAE,GAAS,IAAN4+D,EAAEN,EAAE,EAAQM,EAAE5zC,EAAM/f,SAASkjC,GAAanjB,EAAM4zC,IAAsC,GAA5BzwB,EAAQnjB,EAAM4zC,KAAKl0B,KAAKq0O,GAAkB,IAAIx/O,EAAE,EAAEA,EAAEntB,EAAMnH,OAAOs0B,IAAKxrB,EAAMo6B,IAAUmwB,UAAGmqM,EAAEr2P,EAAMmtB,MAAiB09Q,GAAUx0C,EAAEx9P,OAAO,EAAiB,IAAXw9P,EAAEx9P,cAAsBw9P,EAAE,IAAIs0C,EAAW78S,KAAKuoQ,EAAE,IAAIA,EAAE,GAAG3iQ,KAAK5F,KAAK6T,GAAY7T,KAAKuoQ,EAAE,IAAIA,EAAE,GAAuB,IAAXA,EAAEx9P,cAAsBw9P,EAAE,KAAKs0C,GAAat0C,EAAE,GAAG/9N,MAAM+9N,EAAE,GAAGr6O,KAAkEluB,KAAKuoQ,EAAE,IAAI10P,EAAMA,EAAM3M,QAAQqhQ,EAAE,GAAGA,EAAE,IAAI7jQ,EAArG1E,KAAKuoQ,EAAE,IAAI10P,EAAM00P,EAAE,GAAG3iQ,KAAK5F,KAAK6T,EAAM00P,EAAE,IAAI7jQ,EAAuF,IAAX6jQ,EAAEx9P,SAAY/K,KAAKuoQ,EAAE,IAAI10P,EAAM00P,EAAE,GAAG3iQ,KAAK5F,KAAK6T,EAAM3M,QAAQqhQ,EAAE,GAAGA,EAAE,KAAK7jQ,GAAgB1E,KAAKuoQ,GAAG10P,GAAYnP,EAAa5E,GAAG,CAAC,CAAC,EAAE2/S,EAAU,SAASh/L,EAAI1lG,GAAK,IAAI,IAAIjb,KAAKib,EAAK,UAAUA,EAAIjb,KAAKi9S,GAAUhiS,EAAIjb,GAAGiL,OAAO,GAAG,IAAI,IAAI2zD,EAAE,EAAEA,EAAE3jD,EAAIjb,GAAGiL,OAAO2zD,IAAK,GAAGm4D,EAAI97G,EAAIjb,GAAG4+D,GAAG+hD,GAAM,MAAx0E,MAA+0E3gH,EAAY4E,EAAU5E,OAAS,GAAG+2H,EAAI97G,EAAIjb,GAAG2gH,GAAM,MAAl4E,MAAy4E3gH,EAAY4E,EAAU5E,EAAG,OAAO2gH,CAAG,EAAoHi/L,EAAkB,CAACC,GAAG,OAAO,UAAU,SAAS,SAAS,QAAQ,IAAI,SAASC,GAAG,CAAC,SAAS,UAAUC,MAAM,SAAS,EAAE,SAAS,EAAE,SAAS,IAAI,SAAS,GAAG,CAAC,SAAS,WAAWC,GAAG,OAAWC,EAAQ,CAAC1hC,QAAQ,CAAC,CAAC,gCAAgC,CAACi/B,EAAQ,CAACH,EAAK,WAAW,CAAC,+BAA+B,CAACG,EAAQ,CAACH,EAAK,SAAS,CAAC,4BAA4B,mDAAmD,2CAA2C,CAACA,EAAKG,GAAS,CAAC,yBAAyB,CAACA,EAAQ,CAACH,EAAKuB,EAAM,UAAU,CAAC,qBAAqB,CAACpB,EAAQ,CAACH,EAAKuB,IAAQ,CAAC,uBAAuB,8DAA8D,qDAAqD,kCAAkC,2BAA2B,+LAA+L,kCAAkC,uBAAuB,CAACvB,EAAKG,GAAS,CAAC,qDAAqD,CAACA,EAAQ,CAACH,EAAK,KAAKe,IAAU,CAAC,+BAA+B,gCAAgC,CAACZ,EAAQ,CAACH,EAAK,wBAAwB,CAAC,8BAA8B,CAACG,EAAQ,CAACH,EAAK,WAAW,CAAC,yBAAyB,CAACG,EAAQ,CAACH,EAAK,cAAc,CAAC,+CAA+C,CAACG,EAAQ,CAACH,EAAK,OAAO,CAAC,oCAAoC,CAACG,EAAQ,CAACH,EAAK,WAAW,CAAC,2BAA2B,CAAC,CAACA,EAAK,OAAO,aAAae,GAASZ,GAAS,CAAC,uBAAuB,CAACA,EAAQ,CAACH,EAAKiB,EAAQ,WAAW,CAAC,qBAAqB,CAACd,EAAQ,CAACH,EAAKuB,EAAM,WAAW,CAAC,0BAA0B,CAACpB,EAAQ,CAACH,EAAK,YAAY,CAAC,sBAAsB,CAACG,EAAQ,CAACH,EAAK,YAAY,CAAC,qBAAqB,CAACG,EAAQ,CAACH,EAAKuB,EAAM,WAAW,CAAC,2BAA2B,CAACpB,EAAQ,CAACH,EAAK,QAAQe,IAAU,CAAC,sBAAsB,CAACZ,EAAQ,CAACH,EAAKiB,IAAU,CAAC,iCAAiC,CAAC,CAACjB,EAAK,OAAOe,IAAU,CAAC,uDAAuD,CAAC,CAACf,EAAK,OAAO,MAAMe,GAASZ,GAAS,CAAC,+BAA+B,CAAC,CAACH,EAAK,KAAK,KAAKG,GAAS,CAAC,gCAAgC,iDAAiD,0DAA0D,CAACH,EAAKG,GAAS,CAAC,2BAA2B,eAAe,sBAAsB,CAACH,GAAM,CAAC,+DAA+D,CAAC,CAACA,EAAK6B,GAAU1B,GAAS,CAAC,uCAAuC,kCAAkC,4BAA4B,4BAA4B,iDAAiD,CAACH,EAAKG,GAAS,CAAC,gCAAgC,CAACA,EAAQ,CAACH,EAAK,QAAQ,CAAC,8CAA8C,CAACG,EAAQ,CAACH,EAAK,WAAW,CAAC,oCAAoC,CAACG,EAAQ,CAACH,EAAKgB,EAAO,cAAc,CAAC,+BAA+B,CAAC,CAAChB,EAAKgB,EAAO,YAAYb,GAAS,CAAC,2DAA2D,CAACA,EAAQ,CAACH,EAAK,WAAWe,IAAU,CAAC,+DAA+D,CAACf,EAAKG,GAAS,CAAC,gDAAgD,CAACA,EAAQ,CAACH,EAAK,kBAAkB,CAAC,sDAAsD,CAACG,EAAQH,GAAM,CAAC,gDAAgD,CAACA,EAAK,CAACG,EAAQmC,EAA3zG,CAAC,MAAM,KAAK,IAAI,KAAK,IAAI,KAAK,MAAM,OAAO,QAAQ,OAAO,QAAQ,OAAO,QAAQ,OAAO,IAAI,OAAwvG,CAAC,8BAA8B,CAACtC,EAAKG,GAAS,CAAC,wCAAwC,CAAC,CAACH,EAAK,YAAYG,GAAS,CAAC,uCAAuC,CAACA,EAAQ,CAACH,EAAKiB,EAAQ,aAAa,CAAC,6BAA6B,cAAc,mGAAmG,+FAA+F,wBAAwB,2CAA2C,wHAAwH,uBAAuB,sBAAsB,CAACjB,EAAKG,GAAS,CAAC,wBAAwB,CAACH,EAAK,CAACG,EAAQ,eAAe,MAAM0C,IAAI,CAAC,CAAC,iDAAiD,CAAC,CAACzC,EAAa,UAAU,CAAC,gBAAgB,CAAC,CAACA,EAAa+B,IAAW,CAAC,0BAA0B,CAAC,CAAC/B,EAAa,SAAS,CAAC,oCAAoC,CAAC,CAACA,EAAa,UAAU,CAAC,mCAAmC,CAAC,CAACA,EAAa,UAAU,CAAC,8BAA8B,CAAC,CAACA,EAAa,QAAQ,CAAC,0CAA0C,CAAC,CAACA,EAAa,OAAx5N,GAAq6N+B,IAAW,CAAC,kBAAkB,CAAC,CAAC/B,EAAa,UAAU,CAAC,2HAA2H,CAAC,CAACA,EAAa+B,KAAYv5M,OAAO,CAAC,CAAC,mFAAmF,CAACm3M,EAAM,CAACG,EAAOsB,GAAS,CAACvB,EAAKM,IAAS,CAAC,yDAAyD,uBAAuB,iBAAiB,CAACR,EAAM,CAACG,EAAOsB,GAAS,CAACvB,EAAKK,IAAS,CAAC,4CAA4C,CAACP,EAAM,CAACG,EAAOU,GAAO,CAACX,EAAKK,IAAS,CAAC,6BAA6B,oCAAoC,kCAAkC,CAACP,EAAM,CAACG,EAAOU,GAAO,CAACX,EAAKM,IAAS,CAAC,iBAAiB,CAACR,EAAM,CAACG,EAAOU,IAAQ,CAAC,iCAAiC,CAACb,EAAM,CAACG,EAAOuB,GAAO,CAACxB,EAAKK,IAAS,CAAC,+DAA+D,CAACP,EAAM,CAACG,EAAOiB,GAAQ,CAAClB,EAAKM,IAAS,CAAC,kCAAkC,sEAAsE,CAACR,EAAM,CAACG,EAAOiB,GAAQ,CAAClB,EAAKK,IAAS,CAAC,kDAAkD,yBAAyB,uCAAuC,iDAAiD,yGAAyG,CAAC,CAACP,EAAM,KAAK,KAAK,CAACG,EAAOyB,GAAQ,CAAC1B,EAAKK,IAAS,CAAC,8CAA8C,CAAC,CAACP,EAAM,KAAK,KAAK,CAACG,EAAOyB,GAAQ,CAAC1B,EAAKM,IAAS,CAAC,sBAAsB,mEAAmE,CAACR,EAAM,CAACG,EAAO,QAAQ,CAACD,EAAKK,IAAS,CAAC,yBAAyB,oCAAoC,CAACP,EAAM,CAACG,EAAO,QAAQ,CAACD,EAAKK,IAAS,CAAC,kCAAkC,CAACP,EAAM,CAACG,EAAO,UAAU,CAACD,EAAKK,IAAS,CAAC,iFAAiF,4BAA4B,sDAAsD,CAACP,EAAM,CAACG,EAAOoB,GAAU,CAACrB,EAAKK,IAAS,CAAC,qCAAqC,CAACP,EAAM,CAACG,EAAOoB,GAAU,CAACrB,EAAKM,IAAS,CAAC,iEAAiE,CAACR,EAAM,CAACG,EAAOkB,GAAI,CAACnB,EAAKM,IAAS,CAAC,sDAAsD,oDAAoD,wBAAwB,CAACR,EAAM,CAACG,EAAOkB,GAAI,CAACnB,EAAKK,IAAS,CAAC,oBAAoB,qEAAqE,CAACP,EAAM,CAACG,EAAO,UAAU,CAACD,EAAKM,IAAS,CAAC,qCAAqC,0BAA0B,CAAC,CAACR,EAAM,KAAK,KAAK,CAACG,EAAO,SAAS,CAACD,EAAKK,IAAS,CAAC,gBAAgB,CAACP,EAAM,CAACG,EAAOgB,GAAQ,CAACjB,EAAKM,IAAS,CAAC,6CAA6C,CAACR,EAAM,CAACG,EAAOgB,GAAQ,CAACjB,EAAKK,IAAS,CAAC,0GAA0G,CAACP,EAAM,CAACG,EAAOwB,GAAM,CAACzB,EAAKK,IAAS,CAAC,oBAAoB,iCAAiC,CAAC,CAACP,EAAM,iBAAiB,CAACG,EAAOwB,GAAM,CAACzB,EAAKM,IAAS,CAAC,sCAAsC,0CAA0C,CAACR,EAAM,CAACG,EAAO,WAAW,CAACD,EAAKK,IAAS,CAAC,eAAe,uCAAuC,gCAAgC,CAACP,EAAM,CAACG,EAAOS,GAAQ,CAACV,EAAKM,IAAS,CAAC,iDAAiD,CAAC,CAACR,EAAM,QAAQ,iBAAiB,CAACG,EAAOS,GAAQ,CAACV,EAAKK,IAAS,CAAC,gCAAgC,CAACP,EAAMG,EAAO,CAACD,EAAKM,IAAS,CAAC,gCAAgC,kBAAkB,CAACR,EAAM,CAACG,EAAOY,GAAY,CAACb,EAAKK,IAAS,CAAC,qFAAqF,CAACP,EAAM,CAACG,EAAOW,GAAM,CAACZ,EAAKM,IAAS,CAAC,iDAAiD,CAACR,EAAM,CAACG,EAAOW,GAAM,CAACZ,EAAKK,IAAS,CAAC,cAAc,CAACP,EAAM,CAACG,EAAO,OAAO,CAACD,EAAKM,IAAS,CAAC,2CAA2C,oCAAoC,iFAAiF,CAACL,EAAO,CAACH,EAAM,KAAK,KAAK,CAACE,EAAKK,IAAS,CAAC,uCAAuC,CAACP,EAAM,CAACG,EAAO,QAAQ,CAACD,EAAKM,IAAS,CAAC,8BAA8B,qBAAqB,CAACR,EAAM,CAACG,EAAO,SAAS,CAACD,EAAKK,IAAS,CAAC,gHAAgH,mBAAmB,iBAAiB,8BAA8B,0BAA0B,WAAW,yBAAyB,CAACJ,EAAOH,EAAM,CAACE,EAAKK,IAAS,CAAC,2BAA2B,wBAAwB,uCAAuC,uBAAuB,4BAA4B,iCAAiC,kCAAkC,8BAA8B,gCAAgC,mCAAmC,CAACJ,EAAOH,EAAM,CAACE,EAAKM,IAAS,CAAC,kBAAkB,CAACR,EAAM,CAACG,EAAOmB,GAAW,CAACpB,EAAKM,IAAS,CAAC,qCAAqC,CAACR,EAAM,CAACG,EAAO,aAAa,CAACD,EAAKK,IAAS,CAAC,aAAa,CAACP,EAAM,CAACG,EAAO,QAAQ,CAACD,EAAKK,IAAS,CAAC,gBAAgB,CAACP,EAAM,CAACG,EAAO,WAAW,CAACD,EAAKK,IAAS,CAAC,iBAAiB,CAACP,EAAM,CAACG,EAAO,OAAO,CAACD,EAAKM,IAAS,CAAC,0BAA0B,CAACR,EAAM,CAACG,EAAO,QAAQ,CAACD,EAAKM,IAAS,CAAC,wBAAwB,CAACR,EAAM,CAACG,EAAO,WAAW,CAACD,EAAKM,IAAS,CAAC,+CAA+C,CAACR,EAAM,CAACG,EAAO,kBAAkB,CAACD,EAAKM,IAAS,CAAC,qBAAqB,CAACR,EAAM,CAACG,EAAO,YAAY,CAACD,EAAKM,IAAS,CAAC,cAAc,CAACR,EAAM,CAACG,EAAO,OAAO,CAACD,EAAKM,IAAS,CAAC,mBAAmB,CAACR,EAAM,CAACG,EAAO,OAAO,CAACD,EAAKK,IAAS,CAAC,wBAAwB,CAACP,EAAM,CAACG,EAAO,SAAS,CAACD,EAAKK,IAAS,CAAC,mBAAmB,CAACP,EAAM,CAACG,EAAO,SAAS,CAACD,EAAKM,IAAS,CAAC,wBAAwB,CAACR,EAAM,CAACG,EAAO,QAAQ,CAACD,EAAKM,IAAS,CAAC,mBAAmB,sCAAsC,CAAC,CAACL,EAAO,gBAAgBH,EAAM,CAACE,EAAKM,IAAS,CAAC,sBAAsB,CAACR,EAAM,CAACG,EAAO,YAAY,CAACD,EAAKM,IAAS,CAAC,8BAA8B,CAACR,EAAM,CAACG,EAAO,YAAY,CAACD,EAAKM,IAAS,CAAC,oDAAoD,CAAC,CAACL,EAAO,SAASH,EAAM,CAACE,EAAKK,IAAS,CAAC,2BAA2B,CAAC,CAACJ,EAAO,SAASH,EAAM,CAACE,EAAKK,IAAS,CAAC,cAAc,CAACP,EAAM,CAACG,EAAO,aAAa,CAACD,EAAKK,IAAS,CAAC,uCAAuC,CAACP,EAAM,CAACG,EAAO,WAAW,CAACD,EAAKM,IAAS,CAAC,wBAAwB,CAACR,EAAM,CAACG,EAAO,aAAa,CAACD,EAAKM,IAAS,CAAC,kBAAkB,CAACR,EAAM,CAACG,EAAO,SAAS,CAACD,EAAKM,IAAS,CAAC,qBAAqB,CAACR,EAAM,CAACG,EAAO,UAAU,CAACD,EAAKM,IAAS,CAAC,mBAAmB,CAACL,EAAOH,EAAM,CAACE,EAAKK,IAAS,CAAC,sBAAsB,CAAC,CAACP,EAAM,MAAM,KAAK,CAACG,EAAOmB,GAAW,CAACpB,EAAKK,IAAS,CAAC,yDAAyD,CAACP,EAAM,CAACG,EAAO0B,GAAO,CAAC3B,EAAKM,IAAS,CAAC,yCAAyC,CAACR,EAAM,CAACG,EAAO0B,GAAO,CAAC3B,EAAKK,IAAS,CAAC,wBAAwB,CAACJ,EAAO,CAACD,EAAKO,IAAU,CAAC,uBAAuB,CAAC,CAACT,EAAM,IAAI,WAAW,CAACG,EAAOsB,GAAS,CAACvB,EAAKO,IAAU,CAAC,8DAA8D,CAAC,CAACN,EAAOkB,GAAI,CAACnB,EAAKO,IAAU,CAAC,gBAAgB,CAACN,EAAO,CAACH,EAAMa,EAAM,OAAO,CAACX,EAAKO,IAAU,CAAC,UAAU,CAAC,CAACT,EAAMiB,EAAO,QAAQ,CAACd,EAAOgB,GAAQ,CAACjB,EAAKO,IAAU,CAAC,6BAA6B,CAACT,EAAM,CAACG,EAAOS,GAAQ,CAACV,EAAKO,IAAU,CAAC,uBAAuB,uBAAuB,CAACT,EAAM,CAACG,EAAOuB,GAAO,CAACxB,EAAKO,IAAU,CAAC,4BAA4B,CAACT,EAAM,CAACG,EAAOwB,GAAM,CAACzB,EAAKO,IAAU,CAAC,qBAAqB,CAACT,EAAM,CAACG,EAAOyB,GAAQ,CAAC1B,EAAKO,IAAU,CAAC,6BAA6B,CAACN,EAAOH,EAAM,CAACE,EAAKO,IAAU,CAAC,0CAA0C,6DAA6D,CAAC,CAACN,EAAOrrR,GAAM,CAACkrR,EAAMlrR,GAAM,CAACorR,EAAKO,IAAU,CAAC,mDAAmD,CAAC,CAACP,EAAKO,IAAU,CAAC,UAAU,8BAA8B,CAACN,EAAOH,EAAM,CAACE,EAAKI,IAAU,CAAC,0BAA0B,CAACN,EAAM,CAACG,EAAO,UAAU,CAACD,EAAKI,IAAU,CAAC,mCAAmC,CAACN,EAAM,CAACG,EAAOwB,GAAM,CAACzB,EAAKI,IAAU,CAAC,sCAAsC,CAACN,EAAM,CAACG,EAAOmB,GAAW,CAACpB,EAAKI,IAAU,CAAC,kBAAkB,CAACH,EAAOH,EAAM,CAACE,EAAKQ,IAAW,CAAC,wCAAwC,CAACV,EAAM,CAACG,EAAOU,GAAO,CAACX,EAAKQ,IAAW,CAAC,wBAAwB,CAACV,EAAM,CAACG,EAAOgB,GAAQ,CAACjB,EAAKQ,IAAW,CAAC,6BAA6B,CAACV,EAAM,CAACG,EAAO0B,GAAO,CAAC3B,EAAKQ,IAAW,CAAC,sBAAsB,CAACV,EAAM,CAACG,EAAO2B,GAAU,CAAC5B,EAAKQ,IAAW,CAAC,wCAAwC,CAACP,EAAO,CAACD,EAAKS,IAAW,CAAC,cAAc,CAACX,EAAM,CAACG,EAAOS,GAAQ,CAACV,EAAKS,IAAW,CAAC,2DAA2D,CAACX,EAAM,CAACE,EAAKK,IAAS,CAAC,+DAA+D,CAACP,EAAM,CAACE,EAAKM,IAAS,CAAC,gDAAgD,CAAC,CAACN,EAAKM,IAAS,CAAC,kEAAkE,CAAC,CAACN,EAAKK,IAAS,CAAC,kCAAkC,CAACP,EAAM,CAACG,EAAO,aAAa5+B,OAAO,CAAC,CAAC,8BAA8B,CAAC6+B,EAAQ,CAACH,EAAK8C,aAAc,CAAC,6CAA6C,CAAC3C,EAAQ,CAACH,EAAK,UAAU,CAAC,uBAAuB,sEAAsE,0BAA0B,yCAAyC,8BAA8B,eAAe,CAACA,EAAKG,GAAS,CAAC,iCAAiC,CAACA,EAAQH,IAAOx+B,GAAG,CAAC,CAAC,mCAAmC,CAACw+B,EAAKG,GAAS,CAAC,4BAA4B,wDAAwD,8CAA8C,CAACH,EAAK,CAACG,EAAQmC,EAAUC,IAAoB,CAAC,sCAAsC,CAAC,CAACvC,EAAK,WAAW,CAACG,EAAQmC,EAAUC,IAAoB,CAAC,sDAAsD,4CAA4C,wBAAwB,CAAC,CAACpC,EAAQ,KAAK,KAAK,CAACH,EAAK,QAAQ,CAAC,0BAA0B,yCAAyC,CAAC,CAACA,EAAK18B,GAAQ,CAAC68B,EAAQ,KAAK,MAAM,CAAC,kDAAkD,CAACA,EAAQH,GAAM,CAAC,+EAA+E,8BAA8B,+BAA+B,kBAAkB,CAACA,EAAKG,GAAS,CAAC,cAAc,CAACA,EAAQ,CAACH,EAAKc,IAAa,CAAC,6DAA6D,CAACX,EAAQ,CAACH,EAAK,YAAY,CAAC,mFAAmF,CAACG,EAAQ,CAACH,EAAKiB,EAAQ,QAAQ,CAAC,kBAAkB,wCAAwC,CAACd,EAAQ,CAACH,EAAK,UAAU,CAAC,wCAAwC,CAACG,EAAQ,CAACH,EAAK,YAAY,CAAC,qBAAqB,CAACG,EAAQ,CAACH,EAAKgB,EAAO,SAAS,CAAC,oCAAoC,CAAC,CAAChB,EAAK8B,GAAa3B,GAAS,CAAC,qBAAqB,iBAAiB,2BAA2B,mDAAmD,2BAA2B,wCAAwC,yBAAyB,4BAA4B,8SAA8S,2BAA2B,oBAAoB,6EAA6E,kBAAkB,CAACH,EAAKG,GAAS,CAAC,yBAAyB,CAAC,CAACH,EAAK,WAAWG,GAAS,CAAC,sCAAsC,kCAAkC,mEAAmE,sBAAsB,CAACH,EAAKG,KAAe4C,EAAS,SAASrhC,EAAGnvJ,GAAgE,UAA1CmvJ,IAAKk+B,IAAUrtL,EAAWmvJ,EAAGA,EAAGn6Q,KAAe1E,gBAAgBkgT,GAAW,OAAO,IAAIA,EAASrhC,EAAGnvJ,GAAYywL,YAAY,IAAIC,SAAkBhlR,IAAS0hR,GAAY1hR,EAAO4qC,UAAU5qC,EAAO4qC,UAAUthE,EAAc27S,EAAIxhC,IAAKuhC,GAAYA,EAAW1qO,UAAU0qO,EAAW1qO,UAA9xkB,IAAmzkB4qO,EAAMF,GAAYA,EAAWG,cAAcH,EAAWG,cAAc77S,EAAc87S,EAAQ9wL,EAAvrjB,SAASqwL,EAAQrwL,GAAY,IAAI+wL,EAAc,CAAC,EAAE,IAAI,IAAI3gT,KAAKigT,EAAYrwL,EAAW5vH,IAAI4vH,EAAW5vH,GAAGiL,OAAO,GAAI,EAAG01S,EAAc3gT,GAAG4vH,EAAW5vH,GAAGuB,OAAO0+S,EAAQjgT,IAAS2gT,EAAc3gT,GAAGigT,EAAQjgT,GAAI,OAAO2gT,CAAa,CAAo+iBl/O,CAAOw+O,EAAQrwL,GAAYqwL,EAAYW,EAAWN,GAAYA,EAAW1qO,WAAW2qO,EAAmlD,OAA/kDrgT,KAAKs+Q,WAAW,WAAW,IAArziBz5O,EAAyziB87Q,EAAS,CAAC,EAAgQ,OAA9PA,EAASxD,GAAMz4S,EAAUi8S,EAASrD,GAAS54S,EAAU66S,EAAU35S,KAAK+6S,EAASN,EAAIG,EAAQniC,SAASsiC,EAAS1D,UAAh7iBp4Q,EAAg8iB87Q,EAASrD,MAAx6iBN,EAASn4Q,EAAQ39B,QAAQ,WAAhxC,IAAkyCJ,MAAM,KAAK,GAAGpC,EAA43iBg8S,GAAYN,GAAYA,EAAWQ,cAAcR,EAAWQ,MAAMC,SAAShE,IAAW8D,EAASxD,GAAM,SAAewD,CAAQ,EAAE3gT,KAAKu+Q,OAAO,WAAW,IAAIuiC,EAAK,CAAC,EAAoE,OAAlEA,EAAKvD,GAAc74S,EAAU66S,EAAU35S,KAAKk7S,EAAKT,EAAIG,EAAQR,KAAYc,CAAI,EAAE9gT,KAAKw+Q,UAAU,WAAW,IAAIuiC,EAAQ,CAAC,EAAuY,OAArYA,EAAQ1D,GAAQ34S,EAAUq8S,EAAQ7D,GAAOx4S,EAAUq8S,EAAQ3D,GAAM14S,EAAU66S,EAAU35S,KAAKm7S,EAAQV,EAAIG,EAAQz6M,QAAW26M,IAAaK,EAAQ3D,IAAOkD,GAAOA,EAAMrkH,SAAQ8kH,EAAQ3D,GAAMK,GAAUiD,GAA4B,aAAhBK,EAAQ7D,IAAqBkD,UAAmBA,EAAWY,aAAalE,GAAYsD,EAAWjhC,gBAAgBihC,EAAWjhC,eAAe,IAAG4hC,EAAQ7D,GAAO,OAAO6D,EAAQ3D,GAAMM,GAAcqD,CAAO,EAAE/gT,KAAK0+Q,UAAU,WAAW,IAAIuiC,EAAQ,CAAC,EAAgG,OAA9FA,EAAQ9D,GAAMz4S,EAAUu8S,EAAQ3D,GAAS54S,EAAU66S,EAAU35S,KAAKq7S,EAAQZ,EAAIG,EAAQ/hC,QAAewiC,CAAO,EAAEjhT,KAAK4+Q,MAAM,WAAW,IAAIsiC,EAAI,CAAC,EAAiO,OAA/NA,EAAI/D,GAAMz4S,EAAUw8S,EAAI5D,GAAS54S,EAAU66S,EAAU35S,KAAKs7S,EAAIb,EAAIG,EAAQ7hC,IAAO+hC,IAAaQ,EAAI/D,IAAOmD,GAAuB,WAAhBA,EAAMxyK,WAAqBozK,EAAI/D,GAAMmD,EAAMxyK,SAAS5mI,QAAQ,aAAa+3S,GAAa/3S,QAAQ,SAASu5Q,IAAeygC,CAAG,EAAElhT,KAAKmgT,UAAU,WAAW,MAAM,CAACthC,GAAG7+Q,KAAK8+Q,QAAQT,QAAQr+Q,KAAKs+Q,aAAaG,OAAOz+Q,KAAK0+Q,YAAYC,GAAG3+Q,KAAK4+Q,QAAQ74K,OAAO/lG,KAAKw+Q,YAAYwhC,IAAIhgT,KAAKu+Q,SAAS,EAAEv+Q,KAAK8+Q,MAAM,WAAW,OAAOuhC,CAAG,EAAErgT,KAAKmhT,MAAM,SAAStiC,GAAgF,OAA5EwhC,SAAWxhC,IAAKm+B,GAAUn+B,EAAG9zQ,OAAxqnB,IAA6rnBinB,EAAK6sP,EAAlsnB,KAAotnBA,EAAU7+Q,IAAI,EAAEA,KAAKmhT,MAAMd,GAAYrgT,IAAI,EAAEkgT,EAAS5C,QAApmoB,SAAunoB4C,EAAShC,QAAQgB,EAAU,CAAC/B,EAAKG,EAAQL,IAAQiD,EAASkB,IAAIlC,EAAU,CAAC3B,IAAe2C,EAASmB,OAAOnC,EAAU,CAAChC,EAAMG,EAAOD,EAAKI,EAAQC,EAAOE,EAAQD,EAAOE,EAASC,IAAWqC,EAASoB,OAAOpB,EAASqB,GAAGrC,EAAU,CAAC/B,EAAKG,WAAoB99S,IAAUs9S,GAA2Cr9S,EAAOD,UAASA,EAAQC,EAAOD,QAAQ0gT,GAAS1gT,EAAQ0gT,SAASA,GAA4C,QAAY,aAAkB,OAAOA,CAAS,2CAAiB9kR,IAAS0hR,IAAY1hR,EAAO8kR,SAASA,GAAU,IAAIn3K,SAAS3tG,IAAS0hR,IAAa1hR,EAAOomR,QAAQpmR,EAAOqmR,OAAO,GAAG14K,IAAIA,EAAE81I,GAAG,CAAC,IAAItmO,GAAO,IAAI2nQ,EAASn3K,EAAE81I,GAAGtmO,GAAO4nQ,YAAYp3K,EAAE81I,GAAGz9Q,IAAI,WAAW,OAAOm3C,GAAOumO,OAAO,EAAE/1I,EAAE81I,GAAGrsM,IAAI,SAASqsM,GAAItmO,GAAO4oQ,MAAMtiC,GAAI,IAAIzkP,EAAOme,GAAO4nQ,YAAY,IAAI,IAAIhmL,KAAQ//F,EAAQ2uG,EAAE81I,GAAG1kJ,GAAM//F,EAAO+/F,EAAM,CAAC,CAAE,CAAt9pB,CAAw+pB,iBAAT/+F,OAAkBA,OAAOp7B,K,mBCHx/pBP,EAAOD,QAAU,wpL,mBCAjBC,EAAOD,QAAU,wpL,mBCAjBC,EAAOD,QAAU,g4H,kBCAjBC,EAAOD,QAAU,gjJ,mBCAjBC,EAAOD,QAAU,g4G,mBCAjBC,EAAOD,QAAU,ojE,mBCAjBC,EAAOD,QAAU,goC,mBCAjBC,EAAOD,QAAU,guF,mBCAjBC,EAAOD,QAAU,olD,mBCAjBC,EAAOD,QAAU,gkJ,mBCAjBC,EAAOD,QAAU,g3yB,gCCAjBC,EAAOD,QAAUS,C,gCCAjBR,EAAOD,QAAUU,C,gCCAjBT,EAAOD,QAAUW,C,oCCAF,SAASk5Q,EAAkBx6M,EAAK6gD,IAClC,MAAPA,GAAeA,EAAM7gD,EAAI9zD,UAAQ20G,EAAM7gD,EAAI9zD,QAC/C,IAAK,IAAIjL,EAAI,EAAG05Q,EAAO,IAAI95O,MAAMggF,GAAM5/G,EAAI4/G,EAAK5/G,IAAK05Q,EAAK15Q,GAAK++D,EAAI/+D,GACnE,OAAO05Q,CACT,C,mECJe,SAAS/9L,EAAuB17E,GAC7C,QAAa,IAATA,EACF,MAAM,IAAImzQ,eAAe,6DAE3B,OAAOnzQ,CACT,C,mECLA,SAAS2hT,EAAmBC,EAAK77O,EAASC,EAAQ67O,EAAOC,EAAQvkS,EAAKs/G,GACpE,IACE,IAAI+Y,EAAOgsK,EAAIrkS,GAAKs/G,GAChBzoH,EAAQwhI,EAAKxhI,KACnB,CAAE,MAAOvS,GAEP,YADAmkE,EAAOnkE,EAET,CACI+zI,EAAKn0F,KACPskB,EAAQ3xD,GAER0xD,QAAQC,QAAQ3xD,GAAO/K,KAAKw4S,EAAOC,EAEvC,CACe,SAASvhT,EAAkB40E,GACxC,OAAO,WACL,IAAIn1E,EAAOC,KACTy/B,EAAOx9B,UACT,OAAO,IAAI4jE,SAAQ,SAAUC,EAASC,GACpC,IAAI47O,EAAMzsO,EAAGlzE,MAAMjC,EAAM0/B,GACzB,SAASmiR,EAAMztS,GACbutS,EAAmBC,EAAK77O,EAASC,EAAQ67O,EAAOC,EAAQ,OAAQ1tS,EAClE,CACA,SAAS0tS,EAAOt4S,GACdm4S,EAAmBC,EAAK77O,EAASC,EAAQ67O,EAAOC,EAAQ,QAASt4S,EACnE,CACAq4S,OAAMl9S,EACR,GACF,CACF,C,mEC7Be,SAASiB,EAAgBy1E,EAAUu4L,GAChD,KAAMv4L,aAAoBu4L,GACxB,MAAM,IAAIzzO,UAAU,oCAExB,C,iHCHA,SAASsyO,EAAkBh+P,EAAQtC,GACjC,IAAK,IAAIpS,EAAI,EAAGA,EAAIoS,EAAMnH,OAAQjL,IAAK,CACrC,IAAIs7M,EAAalpM,EAAMpS,GACvBs7M,EAAWzY,WAAayY,EAAWzY,aAAc,EACjDyY,EAAW/5F,cAAe,EACtB,UAAW+5F,IAAYA,EAAWh6F,UAAW,GACjDzlG,OAAO66D,eAAehiE,GAAQ,OAAc4mM,EAAW99L,KAAM89L,EAC/D,CACF,CACe,SAASv1M,EAAa8tQ,EAAaC,EAAYC,GAM5D,OALID,GAAYpB,EAAkBmB,EAAYh0O,UAAWi0O,GACrDC,GAAarB,EAAkBmB,EAAaE,GAChDl4P,OAAO66D,eAAem9L,EAAa,YAAa,CAC9CvyJ,UAAU,IAELuyJ,CACT,C,iFChBe,SAASrnN,EAA2B0vM,EAAG8lD,GACpD,IAAIC,EAAuB,oBAAX3kD,QAA0BpB,EAAEoB,OAAOS,WAAa7B,EAAE,cAClE,IAAK+lD,EAAI,CACP,GAAIriR,MAAMwT,QAAQ8oN,KAAO+lD,GAAK,OAA2B/lD,KAAO8lD,GAAkB9lD,GAAyB,iBAAbA,EAAEjxP,OAAqB,CAC/Gg3S,IAAI/lD,EAAI+lD,GACZ,IAAIjiT,EAAI,EACJ0hO,EAAI,WAAc,EACtB,MAAO,CACLj1K,EAAGi1K,EACHh1K,EAAG,WACD,OAAI1sD,GAAKk8P,EAAEjxP,OAAe,CACxBy2C,MAAM,GAED,CACLA,MAAM,EACNrtC,MAAO6nP,EAAEl8P,KAEb,EACA+N,EAAG,SAAWwxG,GACZ,MAAMA,CACR,EACAtyD,EAAGy0K,EAEP,CACA,MAAM,IAAIthM,UAAU,wIACtB,CACA,IAEE32B,EAFEy4S,GAAmB,EACrBC,GAAS,EAEX,MAAO,CACL11P,EAAG,WACDw1P,EAAKA,EAAGn8S,KAAKo2P,EACf,EACAxvM,EAAG,WACD,IAAIlM,EAAOyhQ,EAAG9gT,OAEd,OADA+gT,EAAmB1hQ,EAAKkB,KACjBlB,CACT,EACAzyC,EAAG,SAAWq0S,GACZD,GAAS,EACT14S,EAAM24S,CACR,EACAn1P,EAAG,WACD,IACOi1P,GAAoC,MAAhBD,EAAW,QAAWA,EAAW,QAC5D,CAAE,QACA,GAAIE,EAAQ,MAAM14S,CACpB,CACF,EAEJ,C,+GChDe,SAAS/D,EAAaitQ,GACnC,IAAIusB,GAA4B,EAAAmjB,EAAA,KAChC,OAAO,WACL,IACE/nR,EADEs4O,GAAQ,EAAAv8L,EAAA,GAAes8L,GAE3B,GAAIusB,EAA2B,CAC7B,IAAIhsB,GAAY,EAAA78L,EAAA,GAAen2E,MAAM6gC,YACrCzG,EAASw4O,QAAQC,UAAUH,EAAOzwQ,UAAW+wQ,EAC/C,MACE54O,EAASs4O,EAAM1wQ,MAAMhC,KAAMiC,WAE7B,OCZW,SAAoClC,EAAM6F,GACvD,GAAIA,IAA2B,YAAlB,OAAQA,IAAsC,mBAATA,GAChD,OAAOA,EACF,QAAa,IAATA,EACT,MAAM,IAAIs6B,UAAU,4DAEtB,OAAO,EAAAkiR,EAAA,GAAsBriT,EAC/B,CDKW,CAA0BC,KAAMo6B,EACzC,CACF,C,iFEfe,SAAS7lB,EAAgBm3D,EAAKpuD,EAAKnJ,GAYhD,OAXAmJ,GAAM,OAAcA,MACTouD,EACT/vD,OAAO66D,eAAe9K,EAAKpuD,EAAK,CAC9BnJ,MAAOA,EACPwuL,YAAY,EACZthF,cAAc,EACdD,UAAU,IAGZ11C,EAAIpuD,GAAOnJ,EAENu3D,CACT,C,oCCde,SAASE,IAYtB,OAXAA,EAAWjwD,OAAOC,OAASD,OAAOC,OAAOq2G,OAAS,SAAUz9G,GAC1D,IAAK,IAAI1U,EAAI,EAAGA,EAAImC,UAAU8I,OAAQjL,IAAK,CACzC,IAAIghH,EAAS7+G,UAAUnC,GACvB,IAAK,IAAIwd,KAAOwjG,EACVnlG,OAAOgkB,UAAUoP,eAAenpC,KAAKk7G,EAAQxjG,KAC/C9I,EAAO8I,GAAOwjG,EAAOxjG,GAG3B,CACA,OAAO9I,CACT,EACOo3D,EAAS5pE,MAAMhC,KAAMiC,UAC9B,C,kECbe,SAAS0wQ,EAAgB3W,GAItC,OAHA2W,EAAkBh3P,OAAOilB,eAAiBjlB,OAAOw6D,eAAe87C,OAAS,SAAyB+pI,GAChG,OAAOA,EAAE9hI,WAAav+G,OAAOw6D,eAAe6lL,EAC9C,EACO2W,EAAgB3W,EACzB,C,gHCJe,SAAS12P,EAAUmuQ,EAAUC,GAC1C,GAA0B,mBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAIxzO,UAAU,sDAEtBuzO,EAAS9zO,UAAYhkB,OAAOszB,OAAOykO,GAAcA,EAAW/zO,UAAW,CACrEkB,YAAa,CACX1sB,MAAOs/P,EACPryJ,UAAU,EACVC,cAAc,KAGlB1lG,OAAO66D,eAAei9L,EAAU,YAAa,CAC3CryJ,UAAU,IAERsyJ,IAAY,OAAeD,EAAUC,EAC3C,C,iFCfe,SAASlpM,EAAeipM,EAAUC,GAC/CD,EAAS9zO,UAAYhkB,OAAOszB,OAAOykO,EAAW/zO,WAC9C8zO,EAAS9zO,UAAUkB,YAAc4yO,GACjC,OAAeA,EAAUC,EAC3B,C,oCCLe,SAASX,IACtB,GAAuB,oBAAZH,UAA4BA,QAAQC,UAAW,OAAO,EACjE,GAAID,QAAQC,UAAUC,KAAM,OAAO,EACnC,GAAqB,mBAAVtY,MAAsB,OAAO,EACxC,IAEE,OADAr7I,QAAQx/E,UAAUmhK,QAAQl7L,KAAKgtQ,QAAQC,UAAU1zJ,QAAS,IAAI,WAAa,MACpE,CACT,CAAE,MAAOtxG,GACP,OAAO,CACT,CACF,C,gHCTA,SAASo+P,EAAQp+P,EAAG4yD,GAClB,IAAIzqC,EAAIra,OAAO6lB,KAAK3zB,GACpB,GAAI8N,OAAOqsL,sBAAuB,CAChC,IAAIg0D,EAAIrgP,OAAOqsL,sBAAsBn6L,GACrC4yD,IAAMu7L,EAAIA,EAAE9pO,QAAO,SAAUuuC,GAC3B,OAAO9kD,OAAOkhH,yBAAyBhvH,EAAG4yD,GAAGkiI,UAC/C,KAAK3sK,EAAE/xB,KAAKjC,MAAMg0B,EAAGgmO,EACvB,CACA,OAAOhmO,CACT,CACe,SAAS+qP,EAAelzQ,GACrC,IAAK,IAAI4yD,EAAI,EAAGA,EAAIx+D,UAAU8I,OAAQ01D,IAAK,CACzC,IAAIzqC,EAAI,MAAQ/zB,UAAUw+D,GAAKx+D,UAAUw+D,GAAK,CAAC,EAC/CA,EAAI,EAAIwrM,EAAQtwP,OAAOqa,IAAI,GAAI+3C,SAAQ,SAAUtN,IAC/C,OAAe5yD,EAAG4yD,EAAGzqC,EAAEyqC,GACzB,IAAK9kD,OAAO2wP,0BAA4B3wP,OAAO4wP,iBAAiB1+P,EAAG8N,OAAO2wP,0BAA0Bt2O,IAAMi2O,EAAQtwP,OAAOqa,IAAI+3C,SAAQ,SAAUtN,GAC7I9kD,OAAO66D,eAAe3oE,EAAG4yD,EAAG9kD,OAAOkhH,yBAAyB7mG,EAAGyqC,GACjE,GACF,CACA,OAAO5yD,CACT,C,oCCrBe,SAAS0uQ,EAA8Bz7J,EAAQu7J,GAC5D,GAAc,MAAVv7J,EAAgB,MAAO,CAAC,EAC5B,IAEIxjG,EAAKxd,EAFL0U,EAAS,CAAC,EACV8nQ,EAAa3gQ,OAAO6lB,KAAKs/E,GAE7B,IAAKhhH,EAAI,EAAGA,EAAIw8Q,EAAWvxQ,OAAQjL,IACjCwd,EAAMg/P,EAAWx8Q,GACbu8Q,EAASx1O,QAAQvpB,IAAQ,IAC7B9I,EAAO8I,GAAOwjG,EAAOxjG,IAEvB,OAAO9I,CACT,C,iHCVe,SAASjU;AAEtBA,EAAsB,WACpB,OAAOsN,CACT,EACA,IAAImoB,EACFnoB,EAAI,CAAC,EACL4yD,EAAI9kD,OAAOgkB,UACX6sB,EAAIiU,EAAE1xB,eACNitN,EAAIrgP,OAAO66D,gBAAkB,SAAUxgD,EAAGnoB,EAAG4yD,GAC3CzqC,EAAEnoB,GAAK4yD,EAAEtsD,KACX,EACArU,EAAI,mBAAqBs9P,OAASA,OAAS,CAAC,EAC5Cv9P,EAAIC,EAAE+9P,UAAY,aAClBnwO,EAAI5tB,EAAEuiT,eAAiB,kBACvBvhD,EAAIhhQ,EAAEwiT,aAAe,gBACvB,SAAS3iT,EAAOq2B,EAAGnoB,EAAG4yD,GACpB,OAAO9kD,OAAO66D,eAAexgD,EAAGnoB,EAAG,CACjCsG,MAAOssD,EACPkiI,YAAY,EACZthF,cAAc,EACdD,UAAU,IACRprF,EAAEnoB,EACR,CACA,IACElO,EAAO,CAAC,EAAG,GACb,CAAE,MAAOq2B,GACPr2B,EAAS,SAAgBq2B,EAAGnoB,EAAG4yD,GAC7B,OAAOzqC,EAAEnoB,GAAK4yD,CAChB,CACF,CACA,SAAS3/D,EAAKk1B,EAAGnoB,EAAG4yD,EAAGjU,GACrB,IAAI1sD,EAAI+N,GAAKA,EAAE8xB,qBAAqB4iR,EAAY10S,EAAI00S,EAClD1iT,EAAI8b,OAAOszB,OAAOnvC,EAAE6/B,WACpBjS,EAAI,IAAIyoQ,EAAQ3pO,GAAK,IACvB,OAAOwvM,EAAEn8P,EAAG,UAAW,CACrBsU,MAAOquS,EAAiBxsR,EAAGyqC,EAAG/yC,KAC5B7tB,CACN,CACA,SAAS4iT,EAASzsR,EAAGnoB,EAAG4yD,GACtB,IACE,MAAO,CACLx7D,KAAM,SACN23H,IAAK5mG,EAAEpwB,KAAKiI,EAAG4yD,GAEnB,CAAE,MAAOzqC,GACP,MAAO,CACL/wB,KAAM,QACN23H,IAAK5mG,EAET,CACF,CACAnoB,EAAE/M,KAAOA,EACT,IAAIi+F,EAAI,iBACNg6H,EAAI,iBACJhsK,EAAI,YACJR,EAAI,YACJwO,EAAI,CAAC,EACP,SAASwnP,IAAa,CACtB,SAASG,IAAqB,CAC9B,SAASC,IAA8B,CACvC,IAAItjR,EAAI,CAAC,EACT1/B,EAAO0/B,EAAGx/B,GAAG,WACX,OAAOG,IACT,IACA,IAAI+wE,EAAIp1D,OAAOw6D,eACbutC,EAAI3yC,GAAKA,EAAEA,EAAEnrD,EAAO,MACtB89F,GAAKA,IAAMjjD,GAAKjU,EAAE5mD,KAAK89G,EAAG7jH,KAAOw/B,EAAIqkF,GACrC,IAAIyT,EAAIwrL,EAA2BhjR,UAAY4iR,EAAU5iR,UAAYhkB,OAAOszB,OAAO5P,GACnF,SAASujR,EAAsB5sR,GAC7B,CAAC,OAAQ,QAAS,UAAU+3C,SAAQ,SAAUlgE,GAC5ClO,EAAOq2B,EAAGnoB,GAAG,SAAUmoB,GACrB,OAAOh2B,KAAK6iT,QAAQh1S,EAAGmoB,EACzB,GACF,GACF,CACA,SAAS8sR,EAAc9sR,EAAGnoB,GACxB,SAASk1S,EAAOtiP,EAAGu7L,EAAGl8P,EAAGD,GACvB,IAAI6tB,EAAI+0R,EAASzsR,EAAEyqC,GAAIzqC,EAAGgmO,GAC1B,GAAI,UAAYtuO,EAAEzoB,KAAM,CACtB,IAAI67P,EAAIpzO,EAAEkvG,IACR79B,EAAI+hK,EAAE3sP,MACR,OAAO4qF,GAAK,WAAY,OAAQA,IAAMvyC,EAAE5mD,KAAKm5F,EAAG,WAAalxF,EAAEi4D,QAAQi5B,EAAEikN,SAAS55S,MAAK,SAAU4sB,GAC/F+sR,EAAO,OAAQ/sR,EAAGl2B,EAAGD,EACvB,IAAG,SAAUm2B,GACX+sR,EAAO,QAAS/sR,EAAGl2B,EAAGD,EACxB,IAAKgO,EAAEi4D,QAAQi5B,GAAG31F,MAAK,SAAU4sB,GAC/B8qO,EAAE3sP,MAAQ6hB,EAAGl2B,EAAEghQ,EACjB,IAAG,SAAU9qO,GACX,OAAO+sR,EAAO,QAAS/sR,EAAGl2B,EAAGD,EAC/B,GACF,CACAA,EAAE6tB,EAAEkvG,IACN,CACA,IAAIn8D,EACJu7L,EAAEh8P,KAAM,UAAW,CACjBmU,MAAO,SAAe6hB,EAAGw2B,GACvB,SAASy2P,IACP,OAAO,IAAIp1S,GAAE,SAAUA,EAAG4yD,GACxBsiP,EAAO/sR,EAAGw2B,EAAG3+C,EAAG4yD,EAClB,GACF,CACA,OAAOA,EAAIA,EAAIA,EAAEr3D,KAAK65S,EAA4BA,GAA8BA,GAClF,GAEJ,CACA,SAAST,EAAiB30S,EAAG4yD,EAAGjU,GAC9B,IAAIwvM,EAAIj9J,EACR,OAAO,SAAUj/F,EAAGD,GAClB,GAAIm8P,IAAMjvM,EAAG,MAAM,IAAIhnD,MAAM,gCAC7B,GAAIi2P,IAAMzvM,EAAG,CACX,GAAI,UAAYzsD,EAAG,MAAMD,EACzB,MAAO,CACLsU,MAAO6hB,EACPwrB,MAAM,EAEV,CACA,IAAKgL,EAAE8iE,OAASxvH,EAAG0sD,EAAEowE,IAAM/8H,IAAK,CAC9B,IAAI6tB,EAAI8+B,EAAE02P,SACV,GAAIx1R,EAAG,CACL,IAAIozO,EAAIqiD,EAAoBz1R,EAAG8+B,GAC/B,GAAIs0M,EAAG,CACL,GAAIA,IAAM/lM,EAAG,SACb,OAAO+lM,CACT,CACF,CACA,GAAI,SAAWt0M,EAAE8iE,OAAQ9iE,EAAElrD,KAAOkrD,EAAE42P,MAAQ52P,EAAEowE,SAAS,GAAI,UAAYpwE,EAAE8iE,OAAQ,CAC/E,GAAI0sI,IAAMj9J,EAAG,MAAMi9J,EAAIzvM,EAAGC,EAAEowE,IAC5BpwE,EAAE62P,kBAAkB72P,EAAEowE,IACxB,KAAO,WAAapwE,EAAE8iE,QAAU9iE,EAAE/qD,OAAO,SAAU+qD,EAAEowE,KACrDo/H,EAAIjvM,EACJ,IAAI1tB,EAAIojR,EAAS50S,EAAG4yD,EAAGjU,GACvB,GAAI,WAAantB,EAAEp6B,KAAM,CACvB,GAAI+2P,EAAIxvM,EAAEhL,KAAO+K,EAAIwsK,EAAG15L,EAAEu9F,MAAQ7hE,EAAG,SACrC,MAAO,CACL5mD,MAAOkrB,EAAEu9F,IACTp7E,KAAMgL,EAAEhL,KAEZ,CACA,UAAYniB,EAAEp6B,OAAS+2P,EAAIzvM,EAAGC,EAAE8iE,OAAS,QAAS9iE,EAAEowE,IAAMv9F,EAAEu9F,IAC9D,CACF,CACF,CACA,SAASumL,EAAoBt1S,EAAG4yD,GAC9B,IAAIjU,EAAIiU,EAAE6uD,OACR0sI,EAAInuP,EAAEgwP,SAASrxM,GACjB,GAAIwvM,IAAMhmO,EAAG,OAAOyqC,EAAEyiP,SAAW,KAAM,UAAY12P,GAAK3+C,EAAEgwP,SAAiB,SAAMp9L,EAAE6uD,OAAS,SAAU7uD,EAAEm8D,IAAM5mG,EAAGmtR,EAAoBt1S,EAAG4yD,GAAI,UAAYA,EAAE6uD,SAAW,WAAa9iE,IAAMiU,EAAE6uD,OAAS,QAAS7uD,EAAEm8D,IAAM,IAAI18F,UAAU,oCAAsCssB,EAAI,aAAcuO,EAC1R,IAAIj7D,EAAI2iT,EAASzmD,EAAGnuP,EAAEgwP,SAAUp9L,EAAEm8D,KAClC,GAAI,UAAY98H,EAAEmF,KAAM,OAAOw7D,EAAE6uD,OAAS,QAAS7uD,EAAEm8D,IAAM98H,EAAE88H,IAAKn8D,EAAEyiP,SAAW,KAAMnoP,EACrF,IAAIl7D,EAAIC,EAAE88H,IACV,OAAO/8H,EAAIA,EAAE2hD,MAAQif,EAAE5yD,EAAEy1S,YAAczjT,EAAEsU,MAAOssD,EAAEx/D,KAAO4M,EAAE01S,QAAS,WAAa9iP,EAAE6uD,SAAW7uD,EAAE6uD,OAAS,OAAQ7uD,EAAEm8D,IAAM5mG,GAAIyqC,EAAEyiP,SAAW,KAAMnoP,GAAKl7D,GAAK4gE,EAAE6uD,OAAS,QAAS7uD,EAAEm8D,IAAM,IAAI18F,UAAU,oCAAqCugC,EAAEyiP,SAAW,KAAMnoP,EAC9P,CACA,SAASyoP,EAAaxtR,GACpB,IAAInoB,EAAI,CACN41S,OAAQztR,EAAE,IAEZ,KAAKA,IAAMnoB,EAAE61S,SAAW1tR,EAAE,IAAK,KAAKA,IAAMnoB,EAAE81S,WAAa3tR,EAAE,GAAInoB,EAAE+1S,SAAW5tR,EAAE,IAAKh2B,KAAK6jT,WAAW5/S,KAAK4J,EAC1G,CACA,SAASi2S,EAAc9tR,GACrB,IAAInoB,EAAImoB,EAAE+tR,YAAc,CAAC,EACzBl2S,EAAE5I,KAAO,gBAAiB4I,EAAE+uH,IAAK5mG,EAAE+tR,WAAal2S,CAClD,CACA,SAASsoR,EAAQngQ,GACfh2B,KAAK6jT,WAAa,CAAC,CACjBJ,OAAQ,SACNztR,EAAE+3C,QAAQy1O,EAAcxjT,MAAOA,KAAKs4C,OAAM,EAChD,CACA,SAAS1yB,EAAO/X,GACd,GAAIA,GAAK,KAAOA,EAAG,CACjB,IAAI4yD,EAAI5yD,EAAEhO,GACV,GAAI4gE,EAAG,OAAOA,EAAE76D,KAAKiI,GACrB,GAAI,mBAAqBA,EAAE5M,KAAM,OAAO4M,EACxC,IAAKqzB,MAAMrzB,EAAE9C,QAAS,CACpB,IAAIixP,GAAK,EACPl8P,EAAI,SAASmB,IACX,OAAS+6P,EAAInuP,EAAE9C,QAAS,GAAIyhD,EAAE5mD,KAAKiI,EAAGmuP,GAAI,OAAO/6P,EAAKkT,MAAQtG,EAAEmuP,GAAI/6P,EAAKugD,MAAO,EAAIvgD,EACpF,OAAOA,EAAKkT,MAAQ6hB,EAAG/0B,EAAKugD,MAAO,EAAIvgD,CACzC,EACF,OAAOnB,EAAEmB,KAAOnB,CAClB,CACF,CACA,MAAM,IAAIogC,WAAU,OAAQryB,GAAK,mBACnC,CACA,OAAO60S,EAAkB/iR,UAAYgjR,EAA4B3mD,EAAE7kI,EAAG,cAAe,CACnFhjH,MAAOwuS,EACPthM,cAAc,IACZ26I,EAAE2mD,EAA4B,cAAe,CAC/CxuS,MAAOuuS,EACPrhM,cAAc,IACZqhM,EAAkB91J,YAAcjtJ,EAAOgjT,EAA4B7hD,EAAG,qBAAsBjzP,EAAEm2S,oBAAsB,SAAUhuR,GAChI,IAAInoB,EAAI,mBAAqBmoB,GAAKA,EAAE6K,YACpC,QAAShzB,IAAMA,IAAM60S,GAAqB,uBAAyB70S,EAAE++I,aAAe/+I,EAAElJ,MACxF,EAAGkJ,EAAErN,KAAO,SAAUw1B,GACpB,OAAOra,OAAOilB,eAAiBjlB,OAAOilB,eAAe5K,EAAG2sR,IAA+B3sR,EAAEkkG,UAAYyoL,EAA4BhjT,EAAOq2B,EAAG8qO,EAAG,sBAAuB9qO,EAAE2J,UAAYhkB,OAAOszB,OAAOkoF,GAAInhG,CACvM,EAAGnoB,EAAEo2S,MAAQ,SAAUjuR,GACrB,MAAO,CACLgtR,QAAShtR,EAEb,EAAG4sR,EAAsBE,EAAcnjR,WAAYhgC,EAAOmjT,EAAcnjR,UAAWjS,GAAG,WACpF,OAAO1tB,IACT,IAAI6N,EAAEi1S,cAAgBA,EAAej1S,EAAEmvH,MAAQ,SAAUhnG,EAAGyqC,EAAGjU,EAAGwvM,EAAGl8P,QACnE,IAAWA,IAAMA,EAAI+lE,SACrB,IAAIhmE,EAAI,IAAIijT,EAAchiT,EAAKk1B,EAAGyqC,EAAGjU,EAAGwvM,GAAIl8P,GAC5C,OAAO+N,EAAEm2S,oBAAoBvjP,GAAK5gE,EAAIA,EAAEoB,OAAOmI,MAAK,SAAU4sB,GAC5D,OAAOA,EAAEwrB,KAAOxrB,EAAE7hB,MAAQtU,EAAEoB,MAC9B,GACF,EAAG2hT,EAAsBzrL,GAAIx3H,EAAOw3H,EAAG2pI,EAAG,aAAcnhQ,EAAOw3H,EAAGt3H,GAAG,WACnE,OAAOG,IACT,IAAIL,EAAOw3H,EAAG,YAAY,WACxB,MAAO,oBACT,IAAItpH,EAAE2zB,KAAO,SAAUxL,GACrB,IAAInoB,EAAI8N,OAAOqa,GACbyqC,EAAI,GACN,IAAK,IAAIjU,KAAK3+C,EAAG4yD,EAAEx8D,KAAKuoD,GACxB,OAAOiU,EAAEq/C,UAAW,SAAS7+G,IAC3B,KAAOw/D,EAAE11D,QAAS,CAChB,IAAIirB,EAAIyqC,EAAEjwB,MACV,GAAIxa,KAAKnoB,EAAG,OAAO5M,EAAKkT,MAAQ6hB,EAAG/0B,EAAKugD,MAAO,EAAIvgD,CACrD,CACA,OAAOA,EAAKugD,MAAO,EAAIvgD,CACzB,CACF,EAAG4M,EAAE+X,OAASA,EAAQuwQ,EAAQx2P,UAAY,CACxCkB,YAAas1P,EACb79O,MAAO,SAAezqC,GACpB,GAAI7N,KAAKgB,KAAO,EAAGhB,KAAKiB,KAAO,EAAGjB,KAAKsB,KAAOtB,KAAKojT,MAAQptR,EAAGh2B,KAAKwhD,MAAO,EAAIxhD,KAAKkjT,SAAW,KAAMljT,KAAKsvH,OAAS,OAAQtvH,KAAK48H,IAAM5mG,EAAGh2B,KAAK6jT,WAAW91O,QAAQ+1O,IAAiBj2S,EAAG,IAAK,IAAI4yD,KAAKzgE,KAAM,MAAQygE,EAAEloD,OAAO,IAAMi0C,EAAE5mD,KAAK5F,KAAMygE,KAAOv/B,OAAOu/B,EAAEhoD,MAAM,MAAQzY,KAAKygE,GAAKzqC,EACtR,EACAl0B,KAAM,WACJ9B,KAAKwhD,MAAO,EACZ,IAAIxrB,EAAIh2B,KAAK6jT,WAAW,GAAGE,WAC3B,GAAI,UAAY/tR,EAAE/wB,KAAM,MAAM+wB,EAAE4mG,IAChC,OAAO58H,KAAKkkT,IACd,EACAb,kBAAmB,SAA2Bx1S,GAC5C,GAAI7N,KAAKwhD,KAAM,MAAM3zC,EACrB,IAAI4yD,EAAIzgE,KACR,SAASmkT,EAAO33P,EAAGwvM,GACjB,OAAOn8P,EAAEoF,KAAO,QAASpF,EAAE+8H,IAAM/uH,EAAG4yD,EAAEx/D,KAAOurD,EAAGwvM,IAAMv7L,EAAE6uD,OAAS,OAAQ7uD,EAAEm8D,IAAM5mG,KAAMgmO,CACzF,CACA,IAAK,IAAIA,EAAIh8P,KAAK6jT,WAAW94S,OAAS,EAAGixP,GAAK,IAAKA,EAAG,CACpD,IAAIl8P,EAAIE,KAAK6jT,WAAW7nD,GACtBn8P,EAAIC,EAAEikT,WACR,GAAI,SAAWjkT,EAAE2jT,OAAQ,OAAOU,EAAO,OACvC,GAAIrkT,EAAE2jT,QAAUzjT,KAAKgB,KAAM,CACzB,IAAI0sB,EAAI8+B,EAAE5mD,KAAK9F,EAAG,YAChBghQ,EAAIt0M,EAAE5mD,KAAK9F,EAAG,cAChB,GAAI4tB,GAAKozO,EAAG,CACV,GAAI9gQ,KAAKgB,KAAOlB,EAAE4jT,SAAU,OAAOS,EAAOrkT,EAAE4jT,UAAU,GACtD,GAAI1jT,KAAKgB,KAAOlB,EAAE6jT,WAAY,OAAOQ,EAAOrkT,EAAE6jT,WAChD,MAAO,GAAIj2R,GACT,GAAI1tB,KAAKgB,KAAOlB,EAAE4jT,SAAU,OAAOS,EAAOrkT,EAAE4jT,UAAU,OACjD,CACL,IAAK5iD,EAAG,MAAM,IAAI/6P,MAAM,0CACxB,GAAI/F,KAAKgB,KAAOlB,EAAE6jT,WAAY,OAAOQ,EAAOrkT,EAAE6jT,WAChD,CACF,CACF,CACF,EACAliT,OAAQ,SAAgBu0B,EAAGnoB,GACzB,IAAK,IAAI4yD,EAAIzgE,KAAK6jT,WAAW94S,OAAS,EAAG01D,GAAK,IAAKA,EAAG,CACpD,IAAIu7L,EAAIh8P,KAAK6jT,WAAWpjP,GACxB,GAAIu7L,EAAEynD,QAAUzjT,KAAKgB,MAAQwrD,EAAE5mD,KAAKo2P,EAAG,eAAiBh8P,KAAKgB,KAAOg7P,EAAE2nD,WAAY,CAChF,IAAI7jT,EAAIk8P,EACR,KACF,CACF,CACAl8P,IAAM,UAAYk2B,GAAK,aAAeA,IAAMl2B,EAAE2jT,QAAU51S,GAAKA,GAAK/N,EAAE6jT,aAAe7jT,EAAI,MACvF,IAAID,EAAIC,EAAIA,EAAEikT,WAAa,CAAC,EAC5B,OAAOlkT,EAAEoF,KAAO+wB,EAAGn2B,EAAE+8H,IAAM/uH,EAAG/N,GAAKE,KAAKsvH,OAAS,OAAQtvH,KAAKiB,KAAOnB,EAAE6jT,WAAY5oP,GAAK/6D,KAAKujD,SAAS1jD,EACxG,EACA0jD,SAAU,SAAkBvtB,EAAGnoB,GAC7B,GAAI,UAAYmoB,EAAE/wB,KAAM,MAAM+wB,EAAE4mG,IAChC,MAAO,UAAY5mG,EAAE/wB,MAAQ,aAAe+wB,EAAE/wB,KAAOjF,KAAKiB,KAAO+0B,EAAE4mG,IAAM,WAAa5mG,EAAE/wB,MAAQjF,KAAKkkT,KAAOlkT,KAAK48H,IAAM5mG,EAAE4mG,IAAK58H,KAAKsvH,OAAS,SAAUtvH,KAAKiB,KAAO,OAAS,WAAa+0B,EAAE/wB,MAAQ4I,IAAM7N,KAAKiB,KAAO4M,GAAIktD,CAC1N,EACAqpP,OAAQ,SAAgBpuR,GACtB,IAAK,IAAInoB,EAAI7N,KAAK6jT,WAAW94S,OAAS,EAAG8C,GAAK,IAAKA,EAAG,CACpD,IAAI4yD,EAAIzgE,KAAK6jT,WAAWh2S,GACxB,GAAI4yD,EAAEkjP,aAAe3tR,EAAG,OAAOh2B,KAAKujD,SAASkd,EAAEsjP,WAAYtjP,EAAEmjP,UAAWE,EAAcrjP,GAAI1F,CAC5F,CACF,EACA,MAAS,SAAgB/kC,GACvB,IAAK,IAAInoB,EAAI7N,KAAK6jT,WAAW94S,OAAS,EAAG8C,GAAK,IAAKA,EAAG,CACpD,IAAI4yD,EAAIzgE,KAAK6jT,WAAWh2S,GACxB,GAAI4yD,EAAEgjP,SAAWztR,EAAG,CAClB,IAAIw2B,EAAIiU,EAAEsjP,WACV,GAAI,UAAYv3P,EAAEvnD,KAAM,CACtB,IAAI+2P,EAAIxvM,EAAEowE,IACVknL,EAAcrjP,EAChB,CACA,OAAOu7L,CACT,CACF,CACA,MAAM,IAAIj2P,MAAM,wBAClB,EACAs+S,cAAe,SAAuBx2S,EAAG4yD,EAAGjU,GAC1C,OAAOxsD,KAAKkjT,SAAW,CACrBrlD,SAAUj4O,EAAO/X,GACjBy1S,WAAY7iP,EACZ8iP,QAAS/2P,GACR,SAAWxsD,KAAKsvH,SAAWtvH,KAAK48H,IAAM5mG,GAAI+kC,CAC/C,GACCltD,CACL,C,mCC9Se,SAASslQ,EAAgBnX,EAAG38N,GAKzC,OAJA8zO,EAAkBx3P,OAAOilB,eAAiBjlB,OAAOilB,eAAeqxF,OAAS,SAAyB+pI,EAAG38N,GAEnG,OADA28N,EAAE9hI,UAAY76F,EACP28N,CACT,EACOmX,EAAgBnX,EAAG38N,EAC5B,C,iHCFe,SAAS9yB,EAAesyD,EAAK/+D,GAC1C,OCLa,SAAyB++D,GACtC,GAAIn/B,MAAMwT,QAAQ2rB,GAAM,OAAOA,CACjC,CDGS,CAAeA,IELT,SAA+B4B,EAAGs4J,GAC/C,IAAI/iM,EAAI,MAAQyqC,EAAI,KAAO,oBAAsB28L,QAAU38L,EAAE28L,OAAOS,WAAap9L,EAAE,cACnF,GAAI,MAAQzqC,EAAG,CACb,IAAInoB,EACF2+C,EACA1sD,EACAghQ,EACAjhQ,EAAI,GACJktD,GAAI,EACJivM,GAAI,EACN,IACE,GAAIl8P,GAAKk2B,EAAIA,EAAEpwB,KAAK66D,IAAIx/D,KAAM,IAAM83N,EAAG,CACrC,GAAIp9M,OAAOqa,KAAOA,EAAG,OACrB+2B,GAAI,CACN,MAAO,OAASA,GAAKl/C,EAAI/N,EAAE8F,KAAKowB,IAAIwrB,QAAU3hD,EAAEoE,KAAK4J,EAAEsG,OAAQtU,EAAEkL,SAAWguN,GAAIhsK,GAAI,GACtF,CAAE,MAAO0T,GACPu7L,GAAI,EAAIxvM,EAAIiU,CACd,CAAE,QACA,IACE,IAAK1T,GAAK,MAAQ/2B,EAAU,SAAM8qO,EAAI9qO,EAAU,SAAKra,OAAOmlP,KAAOA,GAAI,MACzE,CAAE,QACA,GAAI9E,EAAG,MAAMxvM,CACf,CACF,CACA,OAAO3sD,CACT,CACF,CFrBgC,CAAqBg/D,EAAK/+D,KAAM,EAAAwkT,EAAA,GAA2BzlP,EAAK/+D,IGLjF,WACb,MAAM,IAAIogC,UAAU,4IACtB,CHGsG,EACtG,C,oCINe,SAASpuB,EAAuByyS,EAASlyE,GAItD,OAHKA,IACHA,EAAMkyE,EAAQ9rS,MAAM,IAEfkD,OAAO6oS,OAAO7oS,OAAO4wP,iBAAiBg4C,EAAS,CACpDlyE,IAAK,CACHl+N,MAAOwH,OAAO6oS,OAAOnyE,MAG3B,C,+HCLe,SAASh4M,EAAmBwkC,GACzC,OCJa,SAA4BA,GACzC,GAAIn/B,MAAMwT,QAAQ2rB,GAAM,OAAO,EAAA4lP,EAAA,GAAiB5lP,EAClD,CDES,CAAkBA,IELZ,SAA0B6lP,GACvC,GAAsB,oBAAXtnD,QAAmD,MAAzBsnD,EAAKtnD,OAAOS,WAA2C,MAAtB6mD,EAAK,cAAuB,OAAOhlR,MAAM7nB,KAAK6sS,EACtH,CFGmC,CAAgB7lP,KAAQ,EAAAylP,EAAA,GAA2BzlP,IGLvE,WACb,MAAM,IAAI3+B,UAAU,uIACtB,CHG8F,EAC9F,C,kFIJe,SAASykR,EAAe/nL,GACrC,IAAIt/G,ECFS,SAAsByQ,EAAOs9F,GAC1C,GAAuB,YAAnB,OAAQt9F,IAAiC,OAAVA,EAAgB,OAAOA,EAC1D,IAAI62R,EAAO72R,EAAMqvO,OAAOynD,aACxB,QAAangT,IAATkgT,EAAoB,CACtB,IAAInwO,EAAMmwO,EAAKh/S,KAAKmoB,EAAOs9F,GAAQ,WACnC,GAAqB,YAAjB,OAAQ52C,GAAmB,OAAOA,EACtC,MAAM,IAAIv0C,UAAU,+CACtB,CACA,OAAiB,WAATmrF,EAAoB3lG,OAAS+R,QAAQ1J,EAC/C,CDPY,CAAY6uG,EAAK,UAC3B,MAAwB,YAAjB,OAAQt/G,GAAoBA,EAAMoI,OAAOpI,EAClD,C,oCELe,SAASy0P,EAAQ/V,GAG9B,OAAO+V,EAAU,mBAAqB3U,QAAU,iBAAmBA,OAAOS,SAAW,SAAU7B,GAC7F,cAAcA,CAChB,EAAI,SAAUA,GACZ,OAAOA,GAAK,mBAAqBoB,QAAUpB,EAAEn7N,cAAgBu8N,QAAUpB,IAAMoB,OAAOz9N,UAAY,gBAAkBq8N,CACpH,EAAG+V,EAAQ/V,EACb,C,iHCPe,SAASsd,EAA4Btd,EAAGod,GACrD,GAAKpd,EAAL,CACA,GAAiB,iBAANA,EAAgB,OAAO,OAAiBA,EAAGod,GACtD,IAAI5sN,EAAI7wC,OAAOgkB,UAAUva,SAASxf,KAAKo2P,GAAGvjP,MAAM,GAAI,GAEpD,MADU,WAAN+zC,GAAkBwvM,EAAEn7N,cAAa2rB,EAAIwvM,EAAEn7N,YAAYl8B,MAC7C,QAAN6nD,GAAqB,QAANA,EAAoB9sB,MAAM7nB,KAAKmkP,GACxC,cAANxvM,GAAqB,2CAA2Ct+B,KAAKs+B,IAAW,OAAiBwvM,EAAGod,QAAxG,CALc,CAMhB,C,wGCNe,SAAS0rC,EAAWC,EAAQtlR,EAAMulR,GAa/C,OAXEF,GADE,EAAA3C,EAAA,KACWvvC,QAAQC,UAAU5gJ,OAElB,SAAoB8yL,EAAQtlR,EAAMulR,GAC7C,IAAInlT,EAAI,CAAC,MACTA,EAAEoE,KAAKjC,MAAMnC,EAAG4/B,GAChB,IACI27C,EAAW,IADGpF,SAASi8C,KAAKjwH,MAAM+iT,EAAQllT,IAG9C,OADImlT,IAAO,EAAApkR,EAAA,GAAew6C,EAAU4pO,EAAMrlR,WACnCy7C,CACT,EAEK0pO,EAAW9iT,MAAM,KAAMC,UAChC,CCZe,SAAS6D,EAAiBk/S,GACvC,IAAIC,EAAwB,mBAARloO,IAAqB,IAAIA,SAAQr4E,EAuBrD,OAtBAoB,EAAmB,SAA0Bk/S,GAC3C,GAAc,OAAVA,ICPkC9vO,EDOE8vO,GCNsB,IAAzDhvO,SAAS5wD,SAASxf,KAAKsvE,GAAIruC,QAAQ,kBDMQ,OAAOm+Q,ECP5C,IAA2B9vO,EDQtC,GAAqB,mBAAV8vO,EACT,MAAM,IAAI9kR,UAAU,sDAEtB,QAAsB,IAAX+kR,EAAwB,CACjC,GAAIA,EAAOpuL,IAAImuL,GAAQ,OAAOC,EAAO7jT,IAAI4jT,GACzCC,EAAOzyO,IAAIwyO,EAAOlyS,EACpB,CACA,SAASA,IACP,OAAO,EAAUkyS,EAAO/iT,WAAW,EAAAk0E,EAAA,GAAen2E,MAAM6gC,YAC1D,CASA,OARA/tB,EAAQ6sB,UAAYhkB,OAAOszB,OAAO+1Q,EAAMrlR,UAAW,CACjDkB,YAAa,CACX1sB,MAAOrB,EACP6vL,YAAY,EACZvhF,UAAU,EACVC,cAAc,MAGX,EAAAzgF,EAAA,GAAe9tB,EAASkyS,EACjC,EACOl/S,EAAiBk/S,EAC1B,C,oCE3Be,SAAS/yL,EAAK/8C,EAAIwgC,GAC/B,OAAO,WACL,OAAOxgC,EAAGlzE,MAAM0zG,EAASzzG,UAC3B,CACF,C,iCCAA,MAAOmjB,SAAQ,GAAIzJ,OAAOgkB,WACpB,eAACw2C,GAAkBx6D,OAEnBupS,GAAUlpM,EAGbrgG,OAAOszB,OAAO,MAHQk2Q,IACrB,MAAM1kM,EAAM,EAAS76G,KAAKu/S,GAC1B,OAAOnpM,EAAMyE,KAASzE,EAAMyE,GAAOA,EAAIhoG,MAAM,GAAI,GAAGV,cAAc,GAFvD,IAACikG,EAKhB,MAAMopM,EAAcngT,IAClBA,EAAOA,EAAK8S,cACJotS,GAAUD,EAAOC,KAAWlgT,GAGhCogT,EAAapgT,GAAQkgT,UAAgBA,IAAUlgT,GAS/C,QAACiuC,GAAWxT,MASZklP,EAAcygC,EAAW,aAqB/B,MAAMC,EAAgBF,EAAW,eA2BjC,MAAMrmM,EAAWsmM,EAAW,UAQtBl9C,EAAak9C,EAAW,YASxB/vO,EAAW+vO,EAAW,UAStBllR,EAAYglR,GAAoB,OAAVA,GAAmC,iBAAVA,EAiB/ClvO,EAAiBb,IACrB,GAAoB,WAAhB8vO,EAAO9vO,GACT,OAAO,EAGT,MAAMz1C,EAAYw2C,EAAef,GACjC,QAAsB,OAAdz1C,GAAsBA,IAAchkB,OAAOgkB,WAAkD,OAArChkB,OAAOw6D,eAAex2C,IAA0By9N,OAAOklD,eAAeltO,GAAUgoL,OAAOS,YAAYzoL,EAAI,EAUnKmwO,EAASH,EAAW,QASpBI,EAASJ,EAAW,QASpBK,EAASL,EAAW,QASpBM,EAAaN,EAAW,YAsCxBO,EAAoBP,EAAW,mBA2BrC,SAASr3O,EAAQrC,EAAKwJ,GAAI,WAAC0wO,GAAa,GAAS,CAAC,GAEhD,GAAIl6O,QACF,OAGF,IAAI5rE,EACAi5N,EAQJ,GALmB,iBAARrtJ,IAETA,EAAM,CAACA,IAGLx4B,EAAQw4B,GAEV,IAAK5rE,EAAI,EAAGi5N,EAAIrtJ,EAAI3gE,OAAQjL,EAAIi5N,EAAGj5N,IACjCo1E,EAAGtvE,KAAK,KAAM8lE,EAAI5rE,GAAIA,EAAG4rE,OAEtB,CAEL,MAAMlqC,EAAOokR,EAAajqS,OAAOw/L,oBAAoBzvI,GAAO/vD,OAAO6lB,KAAKkqC,GAClEg0C,EAAMl+E,EAAKz2B,OACjB,IAAIuS,EAEJ,IAAKxd,EAAI,EAAGA,EAAI4/G,EAAK5/G,IACnBwd,EAAMkkB,EAAK1hC,GACXo1E,EAAGtvE,KAAK,KAAM8lE,EAAIpuD,GAAMA,EAAKouD,EAEjC,CACF,CAEA,SAASm6O,EAAQn6O,EAAKpuD,GACpBA,EAAMA,EAAIvF,cACV,MAAMypB,EAAO7lB,OAAO6lB,KAAKkqC,GACzB,IACIhpB,EADA5iD,EAAI0hC,EAAKz2B,OAEb,KAAOjL,KAAM,GAEX,GADA4iD,EAAOlhB,EAAK1hC,GACRwd,IAAQolC,EAAK3qC,cACf,OAAO2qC,EAGX,OAAO,IACT,CAEA,MAAMojQ,EAEsB,oBAAfjxM,WAAmCA,WACvB,oBAAT90G,KAAuBA,KAA0B,oBAAXq7B,OAAyBA,OAASu5E,OAGlFoxM,EAAoB50Q,IAAayzO,EAAYzzO,IAAYA,IAAY20Q,EAoD3E,MA8HME,GAAgBC,EAKG,oBAAfznD,YAA8BroL,EAAeqoL,YAH9C2mD,GACEc,GAAcd,aAAiBc,GAHrB,IAACA,EAetB,MAiCMC,EAAad,EAAW,mBAWxB,EAAiB,GAAGr2Q,oBAAoB,CAAC28B,EAAKyuD,IAASprF,EAAenpC,KAAK8lE,EAAKyuD,GAA/D,CAAsEx+G,OAAOgkB,WAS9FwmR,EAAWf,EAAW,UAEtBgB,EAAoB,CAAC16O,EAAKgsG,KAC9B,MAAM2uI,EAAc1qS,OAAO2wP,0BAA0B5gM,GAC/C46O,EAAqB,CAAC,EAE5Bv4O,EAAQs4O,GAAa,CAACjrG,EAAYz2M,KAChC,IAAIiwN,GAC2C,KAA1CA,EAAMl9C,EAAQ0jC,EAAYz2M,EAAM+mE,MACnC46O,EAAmB3hT,GAAQiwN,GAAOxZ,EACpC,IAGFz/L,OAAO4wP,iBAAiB7gM,EAAK46O,EAAmB,EAuD5CC,EAAQ,6BAERC,EAAQ,aAERC,EAAW,CACfD,QACAD,QACAG,YAAaH,EAAQA,EAAM/tS,cAAgBguS,GAwB7C,MA+BMG,EAAYvB,EAAW,iBAK7B,OACElyQ,UACAoyQ,gBACAsB,SAnnBF,SAAkBxxO,GAChB,OAAe,OAARA,IAAiBwvM,EAAYxvM,IAA4B,OAApBA,EAAIv0C,cAAyB+jP,EAAYxvM,EAAIv0C,cACpFsnO,EAAW/yL,EAAIv0C,YAAY+lR,WAAaxxO,EAAIv0C,YAAY+lR,SAASxxO,EACxE,EAinBEyxO,WArekB1B,IAClB,IAAI2B,EACJ,OAAO3B,IACgB,mBAAb9wJ,UAA2B8wJ,aAAiB9wJ,UAClD8zG,EAAWg9C,EAAM7wJ,UACY,cAA1BwyJ,EAAO5B,EAAOC,KAEL,WAAT2B,GAAqB3+C,EAAWg9C,EAAM//R,WAAkC,sBAArB+/R,EAAM//R,YAGhE,EA4dAm4O,kBA/lBF,SAA2BnoL,GACzB,IAAIh7C,EAMJ,OAJEA,EAD0B,oBAAhBojO,aAAiCA,YAAkB,OACpDA,YAAYC,OAAOroL,GAEnB,GAAUA,EAAU,QAAMkwO,EAAclwO,EAAIwzD,QAEhDxuG,CACT,EAwlBE2kF,WACAzpC,WACAoyM,UA/iBgBy9B,IAAmB,IAAVA,IAA4B,IAAVA,EAgjB3ChlR,WACA81C,gBACA2uM,cACA2gC,SACAC,SACAC,SACAU,WACAh+C,aACA4+C,SA3fgB3xO,GAAQj1C,EAASi1C,IAAQ+yL,EAAW/yL,EAAI4xO,MA4fxDrB,oBACAK,eACAN,aACA33O,UACAk5O,MA/XF,SAASA,IACP,MAAM,SAACC,GAAYnB,EAAiB/lT,OAASA,MAAQ,CAAC,EAChDo6B,EAAS,CAAC,EACV+sR,EAAc,CAAC/xO,EAAK93D,KACxB,MAAM8pS,EAAYF,GAAYrB,EAAQzrR,EAAQ9c,IAAQA,EAClD24D,EAAc77C,EAAOgtR,KAAenxO,EAAcb,GACpDh7C,EAAOgtR,GAAaH,EAAM7sR,EAAOgtR,GAAYhyO,GACpCa,EAAcb,GACvBh7C,EAAOgtR,GAAaH,EAAM,CAAC,EAAG7xO,GACrBliC,EAAQkiC,GACjBh7C,EAAOgtR,GAAahyO,EAAI38D,QAExB2hB,EAAOgtR,GAAahyO,CACtB,EAGF,IAAK,IAAIt1E,EAAI,EAAGi5N,EAAI92N,UAAU8I,OAAQjL,EAAIi5N,EAAGj5N,IAC3CmC,UAAUnC,IAAMiuE,EAAQ9rE,UAAUnC,GAAIqnT,GAExC,OAAO/sR,CACT,EA4WEmnC,OAhWa,CAAC1hE,EAAG+1B,EAAG8/E,GAAUkwM,cAAa,CAAC,KAC5C73O,EAAQn4C,GAAG,CAACw/C,EAAK93D,KACXo4F,GAAWyyJ,EAAW/yL,GACxBv1E,EAAEyd,GAAO20G,EAAK78C,EAAKsgC,GAEnB71G,EAAEyd,GAAO83D,CACX,GACC,CAACwwO,eACG/lT,GAyVPmyB,KA5dYyuF,GAAQA,EAAIzuF,KACxByuF,EAAIzuF,OAASyuF,EAAIv5G,QAAQ,qCAAsC,IA4d/DmgT,SAhVgB5gT,IACc,QAA1BA,EAAQ4rC,WAAW,KACrB5rC,EAAUA,EAAQgS,MAAM,IAEnBhS,GA6UP6gT,SAjUe,CAACzmR,EAAa0mR,EAAkBr1S,EAAOm0S,KACtDxlR,EAAYlB,UAAYhkB,OAAOszB,OAAOs4Q,EAAiB5nR,UAAW0mR,GAClExlR,EAAYlB,UAAUkB,YAAcA,EACpCllB,OAAO66D,eAAe31C,EAAa,QAAS,CAC1C1sB,MAAOozS,EAAiB5nR,YAE1BztB,GAASyJ,OAAOC,OAAOilB,EAAYlB,UAAWztB,EAAM,EA4TpDs1S,aAhTmB,CAACC,EAAWC,EAASx1R,EAAQy1R,KAChD,IAAIz1S,EACApS,EACAq6H,EACJ,MAAMvzF,EAAS,CAAC,EAIhB,GAFA8gR,EAAUA,GAAW,CAAC,EAEL,MAAbD,EAAmB,OAAOC,EAE9B,EAAG,CAGD,IAFAx1S,EAAQyJ,OAAOw/L,oBAAoBssG,GACnC3nT,EAAIoS,EAAMnH,OACHjL,KAAM,GACXq6H,EAAOjoH,EAAMpS,GACP6nT,IAAcA,EAAWxtL,EAAMstL,EAAWC,IAAc9gR,EAAOuzF,KACnEutL,EAAQvtL,GAAQstL,EAAUttL,GAC1BvzF,EAAOuzF,IAAQ,GAGnBstL,GAAuB,IAAXv1R,GAAoBikD,EAAesxO,EACjD,OAASA,KAAev1R,GAAUA,EAAOu1R,EAAWC,KAAaD,IAAc9rS,OAAOgkB,WAEtF,OAAO+nR,CAAO,EA0RdxC,SACAE,aACA90E,SAhRe,CAAC7vH,EAAKmnM,EAAcx9R,KACnCq2F,EAAM/6F,OAAO+6F,SACI/7G,IAAb0lB,GAA0BA,EAAWq2F,EAAI11G,UAC3Cqf,EAAWq2F,EAAI11G,QAEjBqf,GAAYw9R,EAAa78S,OACzB,MAAMwvN,EAAY95G,EAAI55E,QAAQ+gR,EAAcx9R,GAC5C,OAAsB,IAAfmwM,GAAoBA,IAAcnwM,CAAQ,EA0QjD4iL,QA/Pem4G,IACf,IAAKA,EAAO,OAAO,KACnB,GAAIjyQ,EAAQiyQ,GAAQ,OAAOA,EAC3B,IAAIrlT,EAAIqlT,EAAMp6S,OACd,IAAKuqE,EAASx1E,GAAI,OAAO,KACzB,MAAM++D,EAAM,IAAIn/B,MAAM5/B,GACtB,KAAOA,KAAM,GACX++D,EAAI/+D,GAAKqlT,EAAMrlT,GAEjB,OAAO++D,CAAG,EAuPVgpP,aA5NmB,CAACn8O,EAAKwJ,KACzB,MAEM2oL,GAFYnyL,GAAOA,EAAI0xL,OAAOS,WAETj4P,KAAK8lE,GAEhC,IAAItxC,EAEJ,MAAQA,EAASyjO,EAAS58P,UAAYm5B,EAAOonB,MAAM,CACjD,MAAMsmQ,EAAO1tR,EAAOjmB,MACpB+gE,EAAGtvE,KAAK8lE,EAAKo8O,EAAK,GAAIA,EAAK,GAC7B,GAmNAC,SAxMe,CAACppR,EAAQ8hF,KACxB,IAAIxyE,EACJ,MAAM4wB,EAAM,GAEZ,KAAwC,QAAhC5wB,EAAUtP,EAAO6L,KAAKi2E,KAC5B5hD,EAAI56D,KAAKgqC,GAGX,OAAO4wB,CAAG,EAiMVqnP,aACAn3Q,eAAc,EACdi5Q,WAAY,EACZ5B,oBACA6B,cAxJqBv8O,IACrB06O,EAAkB16O,GAAK,CAAC0vI,EAAYz2M,KAElC,GAAIwjQ,EAAWz8L,KAA6D,IAArD,CAAC,YAAa,SAAU,UAAU7kC,QAAQliC,GAC/D,OAAO,EAGT,MAAMwP,EAAQu3D,EAAI/mE,GAEbwjQ,EAAWh0P,KAEhBinM,EAAWzY,YAAa,EAEpB,aAAcyY,EAChBA,EAAWh6F,UAAW,EAInBg6F,EAAW5oI,MACd4oI,EAAW5oI,IAAM,KACf,MAAMzsE,MAAM,qCAAwCpB,EAAO,IAAK,GAEpE,GACA,EAkIFujT,YA/HkB,CAACC,EAAevnM,KAClC,MAAMl1C,EAAM,CAAC,EAEP/rE,EAAUk/D,IACdA,EAAIkP,SAAQ55D,IACVu3D,EAAIv3D,IAAS,CAAI,GACjB,EAKJ,OAFA++B,EAAQi1Q,GAAiBxoT,EAAOwoT,GAAiBxoT,EAAO+lB,OAAOyiS,GAAerhT,MAAM85G,IAE7El1C,CAAG,EAqHV08O,YAjMkB3nM,GACXA,EAAI1oG,cAAc7Q,QAAQ,yBAC/B,SAAkB+c,EAAGu3C,EAAIG,GACvB,OAAOH,EAAGhjD,cAAgBmjD,CAC5B,IA8LFyuI,KAnHW,OAoHXi+G,eAlHqB,CAACl0S,EAAOgb,KAC7Bhb,GAASA,EACFsjB,OAAOsvK,SAAS5yL,GAASA,EAAQgb,GAiHxC02R,UACAlxM,OAAQmxM,EACRC,mBACAU,WACA6B,eAxGqB,CAACp6S,EAAO,GAAIq6S,EAAW9B,EAASC,eACrD,IAAIjmM,EAAM,GACV,MAAM,OAAC11G,GAAUw9S,EACjB,KAAOr6S,KACLuyG,GAAO8nM,EAASpzQ,KAAKwuE,SAAW54G,EAAO,GAGzC,OAAO01G,CAAG,EAkGV+nM,oBAxFF,SAA6BrD,GAC3B,SAAUA,GAASh9C,EAAWg9C,EAAM7wJ,SAAyC,aAA9B6wJ,EAAM/nD,OAAOklD,cAA+B6C,EAAM/nD,OAAOS,UAC1G,EAuFE4qD,aArFoB/8O,IACpB,MAAMrL,EAAQ,IAAI3gC,MAAM,IAElBw2F,EAAQ,CAACpV,EAAQhhH,KAErB,GAAIqgC,EAAS2gF,GAAS,CACpB,GAAIzgD,EAAMx5B,QAAQi6E,IAAW,EAC3B,OAGF,KAAK,WAAYA,GAAS,CACxBzgD,EAAMvgE,GAAKghH,EACX,MAAMtsG,EAAS0+B,EAAQ4tE,GAAU,GAAK,CAAC,EASvC,OAPA/yC,EAAQ+yC,GAAQ,CAAC3sG,EAAOmJ,KACtB,MAAMorS,EAAexyL,EAAM/hH,EAAOrU,EAAI,IACrC8kR,EAAY8jC,KAAkBl0S,EAAO8I,GAAOorS,EAAa,IAG5DroP,EAAMvgE,QAAK4E,EAEJ8P,CACT,CACF,CAEA,OAAOssG,CAAM,EAGf,OAAOoV,EAAMxqD,EAAK,EAAE,EA0DpBi7O,YACAznM,WAtDkBimM,GAClBA,IAAUhlR,EAASglR,IAAUh9C,EAAWg9C,KAAWh9C,EAAWg9C,EAAM/7S,OAAS++P,EAAWg9C,EAAM77S,QC7oBhG,SAASq/S,EAAWljT,EAASjB,EAAMoS,EAAQiqH,EAASx+H,GAClD0D,MAAMH,KAAK5F,MAEP+F,MAAM6iT,kBACR7iT,MAAM6iT,kBAAkB5oT,KAAMA,KAAK6gC,aAEnC7gC,KAAKqgE,OAAQ,IAAKt6D,OAASs6D,MAG7BrgE,KAAKyF,QAAUA,EACfzF,KAAK2E,KAAO,aACZH,IAASxE,KAAKwE,KAAOA,GACrBoS,IAAW5W,KAAK4W,OAASA,GACzBiqH,IAAY7gI,KAAK6gI,QAAUA,GAC3Bx+H,IAAarC,KAAKqC,SAAWA,EAC/B,CAEAwmT,EAAMvB,SAASqB,EAAY5iT,MAAO,CAChCgnH,OAAQ,WACN,MAAO,CAELtnH,QAASzF,KAAKyF,QACdd,KAAM3E,KAAK2E,KAEXyC,YAAapH,KAAKoH,YAClB8c,OAAQlkB,KAAKkkB,OAEb4kS,SAAU9oT,KAAK8oT,SACfC,WAAY/oT,KAAK+oT,WACjBC,aAAchpT,KAAKgpT,aACnB3oP,MAAOrgE,KAAKqgE,MAEZzpD,OAAQiyS,EAAMJ,aAAazoT,KAAK4W,QAChCpS,KAAMxE,KAAKwE,KACXmG,OAAQ3K,KAAKqC,UAAYrC,KAAKqC,SAASsI,OAAS3K,KAAKqC,SAASsI,OAAS,KAE3E,IAGF,MAAM,EAAYg+S,EAAWhpR,UACvB0mR,EAAc,CAAC,EAErB,CACE,uBACA,iBACA,eACA,YACA,cACA,4BACA,iBACA,mBACA,kBACA,eACA,kBACA,mBAEAt4O,SAAQvpE,IACR6hT,EAAY7hT,GAAQ,CAAC2P,MAAO3P,EAAK,IAGnCmX,OAAO4wP,iBAAiBo8C,EAAYtC,GACpC1qS,OAAO66D,eAAe,EAAW,eAAgB,CAACriE,OAAO,IAGzDw0S,EAAW9wS,KAAO,CAACjW,EAAO4C,EAAMoS,EAAQiqH,EAASx+H,EAAUm9R,KACzD,MAAMypB,EAAattS,OAAOszB,OAAO,GAgBjC,OAdA45Q,EAAMrB,aAAa5lT,EAAOqnT,GAAY,SAAgBv9O,GACpD,OAAOA,IAAQ3lE,MAAM45B,SACvB,IAAGw6F,GACe,iBAATA,IAGTwuL,EAAW/iT,KAAKqjT,EAAYrnT,EAAM6D,QAASjB,EAAMoS,EAAQiqH,EAASx+H,GAElE4mT,EAAWC,MAAQtnT,EAEnBqnT,EAAWtkT,KAAO/C,EAAM+C,KAExB66R,GAAe7jR,OAAOC,OAAOqtS,EAAYzpB,GAElCypB,CAAU,EAGnB,QCrFA,SAASE,EAAYhE,GACnB,OAAO0D,EAAM5yO,cAAckvO,IAAU0D,EAAM31Q,QAAQiyQ,EACrD,CASA,SAASiE,EAAe9rS,GACtB,OAAOurS,EAAMv4E,SAAShzN,EAAK,MAAQA,EAAI7E,MAAM,GAAI,GAAK6E,CACxD,CAWA,SAAS+rS,EAAUrlM,EAAM1mG,EAAK+iR,GAC5B,OAAKr8K,EACEA,EAAK3iH,OAAOic,GAAKvC,KAAI,SAAc7S,EAAOpI,GAG/C,OADAoI,EAAQkhT,EAAelhT,IACfm4R,GAAQvgS,EAAI,IAAMoI,EAAQ,IAAMA,CAC1C,IAAGu5B,KAAK4+P,EAAO,IAAM,IALH/iR,CAMpB,CAaA,MAAMgsS,EAAaT,EAAMrB,aAAaqB,EAAO,CAAC,EAAG,MAAM,SAAgB1uL,GACrE,MAAO,WAAWjsG,KAAKisG,EACzB,IA8JA,MArIA,SAAoBzuD,EAAKvpE,EAAU2C,GACjC,IAAK+jT,EAAM1oR,SAASurC,GAClB,MAAM,IAAIxrC,UAAU,4BAItB/9B,EAAWA,GAAY,IAAyBkyJ,SAYhD,MAAMk1J,GATNzkT,EAAU+jT,EAAMrB,aAAa1iT,EAAS,CACpCykT,YAAY,EACZlpB,MAAM,EACN8O,SAAS,IACR,GAAO,SAAiBpqS,EAAQ+7G,GAEjC,OAAQ+nM,EAAMjkC,YAAY9jK,EAAO/7G,GACnC,KAE2BwkT,WAErBC,EAAU1kT,EAAQ0kT,SAAWC,EAC7BppB,EAAOv7R,EAAQu7R,KACf8O,EAAUrqS,EAAQqqS,QAElBua,GADQ5kT,EAAQu4P,MAAwB,oBAATA,MAAwBA,OACpCwrD,EAAML,oBAAoBrmT,GAEnD,IAAK0mT,EAAM1gD,WAAWqhD,GACpB,MAAM,IAAItpR,UAAU,8BAGtB,SAASypR,EAAax1S,GACpB,GAAc,OAAVA,EAAgB,MAAO,GAE3B,GAAI00S,EAAMtD,OAAOpxS,GACf,OAAOA,EAAMkyF,cAGf,IAAKqjN,GAAWb,EAAMpD,OAAOtxS,GAC3B,MAAM,IAAI,EAAW,gDAGvB,OAAI00S,EAAMvD,cAAcnxS,IAAU00S,EAAM7C,aAAa7xS,GAC5Cu1S,GAA2B,mBAATrsD,KAAsB,IAAIA,KAAK,CAAClpP,IAAUy1S,OAAO/xS,KAAK1D,GAG1EA,CACT,CAYA,SAASs1S,EAAet1S,EAAOmJ,EAAK0mG,GAClC,IAAInlD,EAAM1qD,EAEV,GAAIA,IAAU6vG,GAAyB,iBAAV7vG,EAC3B,GAAI00S,EAAMv4E,SAAShzN,EAAK,MAEtBA,EAAMisS,EAAajsS,EAAMA,EAAI7E,MAAM,GAAI,GAEvCtE,EAAQi/B,KAAKC,UAAUl/B,QAClB,GACJ00S,EAAM31Q,QAAQ/+B,IAnGvB,SAAqB0qD,GACnB,OAAOgqP,EAAM31Q,QAAQ2rB,KAASA,EAAI7wC,KAAKm7R,EACzC,CAiGiCU,CAAY11S,KACnC00S,EAAMnD,WAAWvxS,IAAU00S,EAAMv4E,SAAShzN,EAAK,SAAWuhD,EAAMgqP,EAAM77G,QAAQ74L,IAYhF,OATAmJ,EAAM8rS,EAAe9rS,GAErBuhD,EAAIkP,SAAQ,SAAchU,EAAI9+C,IAC1B4tS,EAAMjkC,YAAY7qN,IAAc,OAAPA,GAAgB53D,EAASmyJ,QAEtC,IAAZ66I,EAAmBka,EAAU,CAAC/rS,GAAMrC,EAAOolR,GAAqB,OAAZ8O,EAAmB7xR,EAAMA,EAAM,KACnFqsS,EAAa5vP,GAEjB,KACO,EAIX,QAAIovP,EAAYh1S,KAIhBhS,EAASmyJ,OAAO+0J,EAAUrlM,EAAM1mG,EAAK+iR,GAAOspB,EAAax1S,KAElD,EACT,CAEA,MAAMksD,EAAQ,GAERypP,EAAiBnuS,OAAOC,OAAO0tS,EAAY,CAC/CG,iBACAE,eACAR,gBAyBF,IAAKN,EAAM1oR,SAASurC,GAClB,MAAM,IAAIxrC,UAAU,0BAKtB,OA5BA,SAAS6pR,EAAM51S,EAAO6vG,GACpB,IAAI6kM,EAAMjkC,YAAYzwQ,GAAtB,CAEA,IAA8B,IAA1BksD,EAAMx5B,QAAQ1yB,GAChB,MAAMpO,MAAM,kCAAoCi+G,EAAKviF,KAAK,MAG5D4+B,EAAMp8D,KAAKkQ,GAEX00S,EAAM96O,QAAQ55D,GAAO,SAAc4lD,EAAIz8C,IAKtB,OAJEurS,EAAMjkC,YAAY7qN,IAAc,OAAPA,IAAgByvP,EAAQ5jT,KAChEzD,EAAU43D,EAAI8uP,EAAM9pM,SAASzhG,GAAOA,EAAI0U,OAAS1U,EAAK0mG,EAAM8lM,KAI5DC,EAAMhwP,EAAIiqD,EAAOA,EAAK3iH,OAAOic,GAAO,CAACA,GAEzC,IAEA+iD,EAAM7vB,KAlB8B,CAmBtC,CAMAu5Q,CAAMr+O,GAECvpE,CACT,EC5MA,SAAS6nT,EAAOvpM,GACd,MAAMwpM,EAAU,CACd,IAAK,MACL,IAAK,MACL,IAAK,MACL,IAAK,MACL,IAAK,MACL,MAAO,IACP,MAAO,MAET,OAAO7tL,mBAAmB3b,GAAKv5G,QAAQ,oBAAoB,SAAkB2M,GAC3E,OAAOo2S,EAAQp2S,EACjB,GACF,CAUA,SAASq2S,EAAqBxnN,EAAQ59F,GACpC9E,KAAKmqT,OAAS,GAEdznN,GAAU,EAAWA,EAAQ1iG,KAAM8E,EACrC,CAEA,MAAM,EAAYolT,EAAqBvqR,UAEvC,EAAU20H,OAAS,SAAgB3vJ,EAAMwP,GACvCnU,KAAKmqT,OAAOlmT,KAAK,CAACU,EAAMwP,GAC1B,EAEA,EAAUiR,SAAW,SAAkBglS,GACrC,MAAMC,EAAUD,EAAU,SAASj2S,GACjC,OAAOi2S,EAAQxkT,KAAK5F,KAAMmU,EAAO61S,EACnC,EAAIA,EAEJ,OAAOhqT,KAAKmqT,OAAOpvS,KAAI,SAAc+sS,GACnC,OAAOuC,EAAQvC,EAAK,IAAM,IAAMuC,EAAQvC,EAAK,GAC/C,GAAG,IAAIrmR,KAAK,IACd,EAEA,QC5CA,SAAS,EAAO2zC,GACd,OAAOgnD,mBAAmBhnD,GACxBluE,QAAQ,QAAS,KACjBA,QAAQ,OAAQ,KAChBA,QAAQ,QAAS,KACjBA,QAAQ,OAAQ,KAChBA,QAAQ,QAAS,KACjBA,QAAQ,QAAS,IACrB,CAWe,SAASojT,EAASpuR,EAAKwmE,EAAQ59F,GAE5C,IAAK49F,EACH,OAAOxmE,EAGT,MAAMmuR,EAAUvlT,GAAWA,EAAQklT,QAAU,EAEvCO,EAAczlT,GAAWA,EAAQ0lT,UAEvC,IAAIC,EAUJ,GAPEA,EADEF,EACiBA,EAAY7nN,EAAQ59F,GAEpB+jT,EAAMlD,kBAAkBjjN,GACzCA,EAAOt9E,WACP,IAAI,EAAqBs9E,EAAQ59F,GAASsgB,SAASilS,GAGnDI,EAAkB,CACpB,MAAMC,EAAgBxuR,EAAI2K,QAAQ,MAEX,IAAnB6jR,IACFxuR,EAAMA,EAAIzjB,MAAM,EAAGiyS,IAErBxuR,KAA8B,IAAtBA,EAAI2K,QAAQ,KAAc,IAAM,KAAO4jR,CACjD,CAEA,OAAOvuR,CACT,CCQA,MAlEA,MACE,WAAA2E,GACE7gC,KAAK0xH,SAAW,EAClB,CAUA,GAAAi5L,CAAIhqH,EAAWC,EAAU97L,GAOvB,OANA9E,KAAK0xH,SAASztH,KAAK,CACjB08L,YACAC,WACAgqH,cAAa9lT,GAAUA,EAAQ8lT,YAC/BC,QAAS/lT,EAAUA,EAAQ+lT,QAAU,OAEhC7qT,KAAK0xH,SAAS3mH,OAAS,CAChC,CASA,KAAA+/S,CAAM71R,GACAj1B,KAAK0xH,SAASz8F,KAChBj1B,KAAK0xH,SAASz8F,GAAM,KAExB,CAOA,KAAAknF,GACMn8G,KAAK0xH,WACP1xH,KAAK0xH,SAAW,GAEpB,CAYA,OAAA3jD,CAAQmH,GACN2zO,EAAM96O,QAAQ/tE,KAAK0xH,UAAU,SAAwB3yB,GACzC,OAANA,GACF7pB,EAAG6pB,EAEP,GACF,GCjEF,IACEgsN,mBAAmB,EACnBC,mBAAmB,EACnBC,qBAAqB,GCgDvB,QACEloH,WAAW,EACX/iF,QAAS,CACPpb,gBCrDsC,oBAApBA,gBAAkCA,gBAAkB,EDsDtEyvD,SEvD+B,oBAAbA,SAA2BA,SAAW,KFwDxDgpG,KGxD2B,oBAATA,KAAuBA,KAAO,MH0DlD6tD,qBAvC2B,MAC3B,IAAIC,EACJ,OAAyB,oBAAdnlP,WACyB,iBAAjCmlP,EAAUnlP,UAAUmlP,UACT,iBAAZA,GACY,OAAZA,KAKuB,oBAAX/vR,QAA8C,oBAAbhb,SAChD,EAX4B,GAwC3BgrS,8BAhB+B,oBAAtBC,mBAEPtrT,gBAAgBsrT,mBACc,mBAAvBtrT,KAAKurT,cAcdC,UAAW,CAAC,OAAQ,QAAS,OAAQ,OAAQ,MAAO,SI6BtD,OA3CA,SAAwBppT,GACtB,SAASqpT,EAAUxnM,EAAM7vG,EAAOK,EAAQyG,GACtC,IAAItW,EAAOq/G,EAAK/oG,KAChB,MAAMwwS,EAAeh0R,OAAOsvK,UAAUpiM,GAChC+rJ,EAASz1I,GAAS+oG,EAAKj5G,OAG7B,GAFApG,GAAQA,GAAQkkT,EAAM31Q,QAAQ1+B,GAAUA,EAAOzJ,OAASpG,EAEpD+rJ,EAOF,OANIm4J,EAAMb,WAAWxzS,EAAQ7P,GAC3B6P,EAAO7P,GAAQ,CAAC6P,EAAO7P,GAAOwP,GAE9BK,EAAO7P,GAAQwP,GAGTs3S,EAGLj3S,EAAO7P,IAAUkkT,EAAM1oR,SAAS3rB,EAAO7P,MAC1C6P,EAAO7P,GAAQ,IASjB,OANe6mT,EAAUxnM,EAAM7vG,EAAOK,EAAO7P,GAAOsW,IAEtC4tS,EAAM31Q,QAAQ1+B,EAAO7P,MACjC6P,EAAO7P,GA5Cb,SAAuBk6D,GACrB,MAAM6M,EAAM,CAAC,EACPlqC,EAAO7lB,OAAO6lB,KAAKq9B,GACzB,IAAI/+D,EACJ,MAAM4/G,EAAMl+E,EAAKz2B,OACjB,IAAIuS,EACJ,IAAKxd,EAAI,EAAGA,EAAI4/G,EAAK5/G,IACnBwd,EAAMkkB,EAAK1hC,GACX4rE,EAAIpuD,GAAOuhD,EAAIvhD,GAEjB,OAAOouD,CACT,CAiCqByqH,CAAc3hL,EAAO7P,MAG9B8mT,CACV,CAEA,GAAI5C,EAAMhC,WAAW1kT,IAAa0mT,EAAM1gD,WAAWhmQ,EAASs0G,SAAU,CACpE,MAAM/qC,EAAM,CAAC,EAMb,OAJAm9O,EAAMhB,aAAa1lT,GAAU,CAACwC,EAAMwP,KAClCq3S,EAvEN,SAAuB7mT,GAKrB,OAAOkkT,EAAMd,SAAS,gBAAiBpjT,GAAMoW,KAAIlH,GAC3B,OAAbA,EAAM,GAAc,GAAKA,EAAM,IAAMA,EAAM,IAEtD,CA+DgB63S,CAAc/mT,GAAOwP,EAAOu3D,EAAK,EAAE,IAGxCA,CACT,CAEA,OAAO,IACT,ECtDA,MAAM8kJ,GAAW,CAEfm7F,aAAc,GAEdC,QAAS,GAASC,OAAS,OAAS,MAEpCC,iBAAkB,CAAC,SAA0BvqT,EAAM4H,GACjD,MAAM4iT,EAAc5iT,EAAQ6iT,kBAAoB,GAC1CC,EAAqBF,EAAYllR,QAAQ,qBAAuB,EAChEqlR,EAAkBrD,EAAM1oR,SAAS5+B,GAEnC2qT,GAAmBrD,EAAM3C,WAAW3kT,KACtCA,EAAO,IAAI8yJ,SAAS9yJ,IAKtB,GAFmBsnT,EAAMhC,WAAWtlT,GAGlC,OAAK0qT,GAGEA,EAAqB74Q,KAAKC,UAAU,GAAe9xC,IAFjDA,EAKX,GAAIsnT,EAAMvD,cAAc/jT,IACtBsnT,EAAMjC,SAASrlT,IACfsnT,EAAM9B,SAASxlT,IACfsnT,EAAMrD,OAAOjkT,IACbsnT,EAAMpD,OAAOlkT,GAEb,OAAOA,EAET,GAAIsnT,EAAMtrD,kBAAkBh8P,GAC1B,OAAOA,EAAKqnI,OAEd,GAAIigL,EAAMlD,kBAAkBpkT,GAE1B,OADA4H,EAAQgjT,eAAe,mDAAmD,GACnE5qT,EAAK6jB,WAGd,IAAIsgS,EAEJ,GAAIwG,EAAiB,CACnB,GAAIH,EAAYllR,QAAQ,sCAAwC,EAC9D,OCzEO,SAA0BtlC,EAAMuD,GAC7C,OAAO,EAAWvD,EAAM,IAAI,GAASy+G,QAAQpb,gBAAmBjpF,OAAOC,OAAO,CAC5E4tS,QAAS,SAASr1S,EAAOmJ,EAAK0mG,EAAMooM,GAClC,OAAI,GAASP,QAAUhD,EAAMjC,SAASzyS,IACpCnU,KAAKs0J,OAAOh3I,EAAKnJ,EAAMiR,SAAS,YACzB,GAGFgnS,EAAQ3C,eAAeznT,MAAMhC,KAAMiC,UAC5C,GACC6C,GACL,CD8DeunT,CAAiB9qT,EAAMvB,KAAKssT,gBAAgBlnS,WAGrD,IAAKsgS,EAAamD,EAAMnD,WAAWnkT,KAAUwqT,EAAYllR,QAAQ,wBAA0B,EAAG,CAC5F,MAAM0lR,EAAYvsT,KAAK0Q,KAAO1Q,KAAK0Q,IAAI2jJ,SAEvC,OAAO,EACLqxJ,EAAa,CAAC,UAAWnkT,GAAQA,EACjCgrT,GAAa,IAAIA,EACjBvsT,KAAKssT,eAET,CACF,CAEA,OAAIJ,GAAmBD,GACrB9iT,EAAQgjT,eAAe,oBAAoB,GA1EjD,SAAyBl9B,EAAU12O,EAAQ6xQ,GACzC,GAAIvB,EAAM9pM,SAASkwK,GACjB,IAEE,OADC12O,GAAUnF,KAAK5F,OAAOyhP,GAChB45B,EAAM72R,KAAKi9P,EACpB,CAAE,MAAOphR,GACP,GAAe,gBAAXA,EAAElJ,KACJ,MAAMkJ,CAEV,CAGF,OAAQu8S,GAAWh3Q,KAAKC,WAAW47O,EACrC,CA8Dau9B,CAAgBjrT,IAGlBA,CACT,GAEAkrT,kBAAmB,CAAC,SAA2BlrT,GAC7C,MAAMoqT,EAAe3rT,KAAK2rT,cAAgBn7F,GAASm7F,aAC7CX,EAAoBW,GAAgBA,EAAaX,kBACjD0B,EAAsC,SAAtB1sT,KAAK0gQ,aAE3B,GAAIn/P,GAAQsnT,EAAM9pM,SAASx9G,KAAWypT,IAAsBhrT,KAAK0gQ,cAAiBgsD,GAAgB,CAChG,MACMC,IADoBhB,GAAgBA,EAAaZ,oBACP2B,EAEhD,IACE,OAAOt5Q,KAAK5F,MAAMjsC,EACpB,CAAE,MAAOsM,GACP,GAAI8+S,EAAmB,CACrB,GAAe,gBAAX9+S,EAAElJ,KACJ,MAAM,EAAWkT,KAAKhK,EAAG,EAAW++S,iBAAkB5sT,KAAM,KAAMA,KAAKqC,UAEzE,MAAMwL,CACR,CACF,CACF,CAEA,OAAOtM,CACT,GAMA8G,QAAS,EAETwkT,eAAgB,aAChBC,eAAgB,eAEhBC,kBAAmB,EACnBC,eAAgB,EAEhBt8S,IAAK,CACH2jJ,SAAU,GAASr0C,QAAQq0C,SAC3BgpG,KAAM,GAASr9I,QAAQq9I,MAGzB4vD,eAAgB,SAAwBtiT,GACtC,OAAOA,GAAU,KAAOA,EAAS,GACnC,EAEAxB,QAAS,CACPizN,OAAQ,CACN,OAAU,oCACV,oBAAgB13N,KAKtBmkT,EAAM96O,QAAQ,CAAC,SAAU,MAAO,OAAQ,OAAQ,MAAO,UAAWuhD,IAChEkhG,GAASrnN,QAAQmmH,GAAU,CAAC,CAAC,IAG/B,UExJA,MAAM49L,GAAoBrE,EAAMX,YAAY,CAC1C,MAAO,gBAAiB,iBAAkB,eAAgB,OAC1D,UAAW,OAAQ,OAAQ,oBAAqB,sBAChD,gBAAiB,WAAY,eAAgB,sBAC7C,UAAW,cAAe,eCL5B,MAAMiF,GAAa/vD,OAAO,aAE1B,SAASgwD,GAAgBpjL,GACvB,OAAOA,GAAUtkH,OAAOskH,GAAQh4G,OAAOja,aACzC,CAEA,SAAS4lP,GAAexpP,GACtB,OAAc,IAAVA,GAA4B,MAATA,EACdA,EAGF00S,EAAM31Q,QAAQ/+B,GAASA,EAAM4G,IAAI4iP,IAAkBj4O,OAAOvR,EACnE,CAgBA,SAASk5S,GAAiBl8Q,EAASh9B,EAAO61H,EAAQ93G,EAAQo7R,GACxD,OAAIzE,EAAM1gD,WAAWj2O,GACZA,EAAOtsB,KAAK5F,KAAMmU,EAAO61H,IAG9BsjL,IACFn5S,EAAQ61H,GAGL6+K,EAAM9pM,SAAS5qG,GAEhB00S,EAAM9pM,SAAS7sF,IACiB,IAA3B/d,EAAM0yB,QAAQ3U,GAGnB22R,EAAM1C,SAASj0R,GACVA,EAAOhE,KAAK/Z,QADrB,OANA,EASF,CAsBA,MAAMo5S,GACJ,WAAA1sR,CAAY13B,GACVA,GAAWnJ,KAAKwyE,IAAIrpE,EACtB,CAEA,GAAAqpE,CAAIw3D,EAAQwjL,EAAgBC,GAC1B,MAAM1tT,EAAOC,KAEb,SAAS0tT,EAAUllS,EAAQqnN,EAAS89E,GAClC,MAAMC,EAAUR,GAAgBv9E,GAEhC,IAAK+9E,EACH,MAAM,IAAI7nT,MAAM,0CAGlB,MAAMuX,EAAMurS,EAAMhD,QAAQ9lT,EAAM6tT,KAE5BtwS,QAAqB5Y,IAAd3E,EAAKud,KAAmC,IAAbqwS,QAAmCjpT,IAAbipT,IAAwC,IAAd5tT,EAAKud,MACzFvd,EAAKud,GAAOuyN,GAAW8tB,GAAen1O,GAE1C,CAEA,MAAMqlS,EAAa,CAAC1kT,EAASwkT,IAC3B9E,EAAM96O,QAAQ5kE,GAAS,CAACqf,EAAQqnN,IAAY69E,EAAUllS,EAAQqnN,EAAS89E,KAUzE,OARI9E,EAAM5yO,cAAc+zD,IAAWA,aAAkBhqI,KAAK6gC,YACxDgtR,EAAW7jL,EAAQwjL,GACX3E,EAAM9pM,SAASirB,KAAYA,EAASA,EAAOh4G,UArEtB,iCAAiC9D,KAqEmB87G,EArEVh4G,QAsEvE67R,ED1EN,CAAe1tD,IACb,MAAMxpB,EAAS,CAAC,EAChB,IAAIr5N,EACA83D,EACAt1E,EAsBJ,OApBAqgQ,GAAcA,EAAWr5P,MAAM,MAAMinE,SAAQ,SAAgB2iD,GAC3D5wH,EAAI4wH,EAAK7pF,QAAQ,KACjBvpB,EAAMozG,EAAK3jF,UAAU,EAAGjtC,GAAGkyB,OAAOja,cAClCq9D,EAAMs7C,EAAK3jF,UAAUjtC,EAAI,GAAGkyB,QAEvB1U,GAAQq5N,EAAOr5N,IAAQ4vS,GAAkB5vS,KAIlC,eAARA,EACEq5N,EAAOr5N,GACTq5N,EAAOr5N,GAAKrZ,KAAKmxE,GAEjBuhK,EAAOr5N,GAAO,CAAC83D,GAGjBuhK,EAAOr5N,GAAOq5N,EAAOr5N,GAAOq5N,EAAOr5N,GAAO,KAAO83D,EAAMA,EAE3D,IAEOuhK,CACR,EC+CgBm3E,CAAa9jL,GAASwjL,GAEvB,MAAVxjL,GAAkB0jL,EAAUF,EAAgBxjL,EAAQyjL,GAG/CztT,IACT,CAEA,GAAAoB,CAAI4oI,EAAQzxF,GAGV,GAFAyxF,EAASojL,GAAgBpjL,GAEb,CACV,MAAM1sH,EAAMurS,EAAMhD,QAAQ7lT,KAAMgqI,GAEhC,GAAI1sH,EAAK,CACP,MAAMnJ,EAAQnU,KAAKsd,GAEnB,IAAKi7B,EACH,OAAOpkC,EAGT,IAAe,IAAXokC,EACF,OAxGV,SAAqBkoE,GACnB,MAAMw3I,EAASt8O,OAAOszB,OAAO,MACvB8+Q,EAAW,mCACjB,IAAIl6S,EAEJ,KAAQA,EAAQk6S,EAASvjR,KAAKi2E,IAC5Bw3I,EAAOpkP,EAAM,IAAMA,EAAM,GAG3B,OAAOokP,CACT,CA8FiB+1D,CAAY75S,GAGrB,GAAI00S,EAAM1gD,WAAW5vN,GACnB,OAAOA,EAAO3yC,KAAK5F,KAAMmU,EAAOmJ,GAGlC,GAAIurS,EAAM1C,SAAS5tQ,GACjB,OAAOA,EAAO/N,KAAKr2B,GAGrB,MAAM,IAAI+rB,UAAU,yCACtB,CACF,CACF,CAEA,GAAA22F,CAAImT,EAAQikL,GAGV,GAFAjkL,EAASojL,GAAgBpjL,GAEb,CACV,MAAM1sH,EAAMurS,EAAMhD,QAAQ7lT,KAAMgqI,GAEhC,SAAU1sH,QAAqB5Y,IAAd1E,KAAKsd,IAAwB2wS,IAAWZ,GAAiBrtT,EAAMA,KAAKsd,GAAMA,EAAK2wS,GAClG,CAEA,OAAO,CACT,CAEA,OAAOjkL,EAAQikL,GACb,MAAMluT,EAAOC,KACb,IAAIkuT,GAAU,EAEd,SAASC,EAAat+E,GAGpB,GAFAA,EAAUu9E,GAAgBv9E,GAEb,CACX,MAAMvyN,EAAMurS,EAAMhD,QAAQ9lT,EAAM8vO,IAE5BvyN,GAAS2wS,IAAWZ,GAAiBttT,EAAMA,EAAKud,GAAMA,EAAK2wS,YACtDluT,EAAKud,GAEZ4wS,GAAU,EAEd,CACF,CAQA,OANIrF,EAAM31Q,QAAQ82F,GAChBA,EAAOj8D,QAAQogP,GAEfA,EAAankL,GAGRkkL,CACT,CAEA,KAAA/xM,CAAM8xM,GACJ,MAAMzsR,EAAO7lB,OAAO6lB,KAAKxhC,MACzB,IAAIF,EAAI0hC,EAAKz2B,OACTmjT,GAAU,EAEd,KAAOpuT,KAAK,CACV,MAAMwd,EAAMkkB,EAAK1hC,GACbmuT,IAAWZ,GAAiBrtT,EAAMA,KAAKsd,GAAMA,EAAK2wS,GAAS,YACtDjuT,KAAKsd,GACZ4wS,GAAU,EAEd,CAEA,OAAOA,CACT,CAEA,SAAAl4L,CAAUpyG,GACR,MAAM7jB,EAAOC,KACPmJ,EAAU,CAAC,EAsBjB,OApBA0/S,EAAM96O,QAAQ/tE,MAAM,CAACmU,EAAO61H,KAC1B,MAAM1sH,EAAMurS,EAAMhD,QAAQ18S,EAAS6gI,GAEnC,GAAI1sH,EAGF,OAFAvd,EAAKud,GAAOqgP,GAAexpP,eACpBpU,EAAKiqI,GAId,MAAM1T,EAAa1yG,EA1JzB,SAAsBomH,GACpB,OAAOA,EAAOh4G,OACXja,cAAc7Q,QAAQ,mBAAmB,CAACi6P,EAAG7tN,EAAMmtE,IAC3CntE,EAAK96B,cAAgBioG,GAElC,CAqJkC2tM,CAAapkL,GAAUtkH,OAAOskH,GAAQh4G,OAE9DskG,IAAe0T,UACVjqI,EAAKiqI,GAGdjqI,EAAKu2H,GAAcqnI,GAAexpP,GAElChL,EAAQmtH,IAAc,CAAI,IAGrBt2H,IACT,CAEA,MAAAqB,IAAUgtT,GACR,OAAOruT,KAAK6gC,YAAYx/B,OAAOrB,QAASquT,EAC1C,CAEA,MAAAthM,CAAOuhM,GACL,MAAM5iP,EAAM/vD,OAAOszB,OAAO,MAM1B,OAJA45Q,EAAM96O,QAAQ/tE,MAAM,CAACmU,EAAO61H,KACjB,MAAT71H,IAA2B,IAAVA,IAAoBu3D,EAAIs+D,GAAUskL,GAAazF,EAAM31Q,QAAQ/+B,GAASA,EAAMstB,KAAK,MAAQttB,EAAM,IAG3Gu3D,CACT,CAEA,CAAC0xL,OAAOS,YACN,OAAOliP,OAAO86F,QAAQz2G,KAAK+sH,UAAUqwI,OAAOS,WAC9C,CAEA,QAAAz4O,GACE,OAAOzJ,OAAO86F,QAAQz2G,KAAK+sH,UAAUhyG,KAAI,EAAEivH,EAAQ71H,KAAW61H,EAAS,KAAO71H,IAAOstB,KAAK,KAC5F,CAEA,IAAK27N,OAAOklD,eACV,MAAO,cACT,CAEA,WAAOzqS,CAAKstS,GACV,OAAOA,aAAiBnlT,KAAOmlT,EAAQ,IAAInlT,KAAKmlT,EAClD,CAEA,aAAO9jT,CAAOgjJ,KAAUgqK,GACtB,MAAME,EAAW,IAAIvuT,KAAKqkJ,GAI1B,OAFAgqK,EAAQtgP,SAASv5D,GAAW+5S,EAAS/7O,IAAIh+D,KAElC+5S,CACT,CAEA,eAAOC,CAASxkL,GACd,MAIMykL,GAJYzuT,KAAKmtT,IAAentT,KAAKmtT,IAAc,CACvDsB,UAAW,CAAC,IAGcA,UACtB9uR,EAAY3/B,KAAK2/B,UAEvB,SAAS+uR,EAAe7+E,GACtB,MAAM+9E,EAAUR,GAAgBv9E,GAE3B4+E,EAAUb,MAlNrB,SAAwBliP,EAAKs+D,GAC3B,MAAM2kL,EAAe9F,EAAMT,YAAY,IAAMp+K,GAE7C,CAAC,MAAO,MAAO,OAAOj8D,SAAQiqN,IAC5Br8Q,OAAO66D,eAAe9K,EAAKssN,EAAa22B,EAAc,CACpDx6S,MAAO,SAASy6S,EAAMC,EAAMC,GAC1B,OAAO9uT,KAAKg4R,GAAYpyR,KAAK5F,KAAMgqI,EAAQ4kL,EAAMC,EAAMC,EACzD,EACAztM,cAAc,GACd,GAEN,CAwMQ0tM,CAAepvR,EAAWkwM,GAC1B4+E,EAAUb,IAAW,EAEzB,CAIA,OAFA/E,EAAM31Q,QAAQ82F,GAAUA,EAAOj8D,QAAQ2gP,GAAkBA,EAAe1kL,GAEjEhqI,IACT,EAGFutT,GAAaiB,SAAS,CAAC,eAAgB,iBAAkB,SAAU,kBAAmB,aAAc,kBAGpG3F,EAAMzC,kBAAkBmH,GAAa5tR,WAAW,EAAExrB,SAAQmJ,KACxD,IAAI0xS,EAAS1xS,EAAI,GAAG9E,cAAgB8E,EAAI7E,MAAM,GAC9C,MAAO,CACLrX,IAAK,IAAM+S,EACX,GAAAq+D,CAAIy8O,GACFjvT,KAAKgvT,GAAUC,CACjB,EACF,IAGFpG,EAAMZ,cAAcsF,IAEpB,UC3Re,SAAS2B,GAAcC,EAAK9sT,GACzC,MAAMuU,EAAS5W,MAAQ,GACjBmxC,EAAU9uC,GAAYuU,EACtBzN,EAAU,GAAa0O,KAAKs5B,EAAQhoC,SAC1C,IAAI5H,EAAO4vC,EAAQ5vC,KAQnB,OANAsnT,EAAM96O,QAAQohP,GAAK,SAAmBj6O,GACpC3zE,EAAO2zE,EAAGtvE,KAAKgR,EAAQrV,EAAM4H,EAAQ6sH,YAAa3zH,EAAWA,EAASsI,YAASjG,EACjF,IAEAyE,EAAQ6sH,YAEDz0H,CACT,CCzBe,SAAS6tT,GAASj7S,GAC/B,SAAUA,IAASA,EAAMk7S,WAC3B,CCUA,SAASC,GAAc7pT,EAASmR,EAAQiqH,GAEtC,EAAWj7H,KAAK5F,KAAiB,MAAXyF,EAAkB,WAAaA,EAAS,EAAW8pT,aAAc34S,EAAQiqH,GAC/F7gI,KAAK2E,KAAO,eACd,CAEAkkT,EAAMvB,SAASgI,GAAe,EAAY,CACxCD,YAAY,IAGd,UCnBA,OAAe,GAASnE,qBAIb,CACLsE,MAAO,SAAe7qT,EAAMwP,EAAOs7S,EAASzrM,EAAMkM,EAAQw/L,GACxD,MAAMC,EAAS,GACfA,EAAO1rT,KAAKU,EAAO,IAAMy3H,mBAAmBjoH,IAExC00S,EAAMvzO,SAASm6O,IACjBE,EAAO1rT,KAAK,WAAa,IAAIyrD,KAAK+/P,GAASG,eAGzC/G,EAAM9pM,SAASiF,IACjB2rM,EAAO1rT,KAAK,QAAU+/G,GAGpB6kM,EAAM9pM,SAASmR,IACjBy/L,EAAO1rT,KAAK,UAAYisH,IAGX,IAAXw/L,GACFC,EAAO1rT,KAAK,UAGdmc,SAASuvS,OAASA,EAAOluR,KAAK,KAChC,EAEAmvL,KAAM,SAAcjsN,GAClB,MAAMkP,EAAQuM,SAASuvS,OAAO97S,MAAM,IAAIoe,OAAO,aAAettB,EAAO,cACrE,OAAQkP,EAAQ68N,mBAAmB78N,EAAM,IAAM,IACjD,EAEAg1H,OAAQ,SAAgBlkI,GACtB3E,KAAKwvT,MAAM7qT,EAAM,GAAI+qD,KAAKmS,MAAQ,MACpC,GAMK,CACL2tP,MAAO,WAAkB,EACzB5+F,KAAM,WAAkB,OAAO,IAAM,EACrC/nF,OAAQ,WAAmB,GClClB,SAASgnL,GAAcC,EAASC,GAC7C,OAAID,ICHG,8BAA8B5hS,KDGP6hS,GENjB,SAAqBD,EAASE,GAC3C,OAAOA,EACHF,EAAQ5oT,QAAQ,OAAQ,IAAM,IAAM8oT,EAAY9oT,QAAQ,OAAQ,IAChE4oT,CACN,CFGWG,CAAYH,EAASC,GAEvBA,CACT,CGfA,OAAe,GAAS7E,qBAItB,WACE,MAAMgF,EAAO,kBAAkBhiS,KAAK83C,UAAU0P,WACxCy6O,EAAiB/vS,SAASwqD,cAAc,KAC9C,IAAIwlP,EAQJ,SAASC,EAAWn0R,GAClB,IAAI1tB,EAAO0tB,EAWX,OATIg0R,IAEFC,EAAeluS,aAAa,OAAQzT,GACpCA,EAAO2hT,EAAe3hT,MAGxB2hT,EAAeluS,aAAa,OAAQzT,GAG7B,CACLA,KAAM2hT,EAAe3hT,KACrBy1G,SAAUksM,EAAelsM,SAAWksM,EAAelsM,SAAS/8G,QAAQ,KAAM,IAAM,GAChF68G,KAAMosM,EAAepsM,KACrBz6E,OAAQ6mR,EAAe7mR,OAAS6mR,EAAe7mR,OAAOpiC,QAAQ,MAAO,IAAM,GAC3EopT,KAAMH,EAAeG,KAAOH,EAAeG,KAAKppT,QAAQ,KAAM,IAAM,GACpE8xI,SAAUm3K,EAAen3K,SACzBve,KAAM01L,EAAe11L,KACrB15E,SAAiD,MAAtCovQ,EAAepvQ,SAASxoC,OAAO,GACxC43S,EAAepvQ,SACf,IAAMovQ,EAAepvQ,SAE3B,CAUA,OARAqvQ,EAAYC,EAAWj1R,OAAO0lB,SAAStyC,MAQhC,SAAyB+hT,GAC9B,MAAM55E,EAAUkyE,EAAM9pM,SAASwxM,GAAeF,EAAWE,GAAcA,EACvE,OAAQ55E,EAAO1yH,WAAamsM,EAAUnsM,UAClC0yH,EAAO5yH,OAASqsM,EAAUrsM,IAChC,CACD,CAlDD,GAsDS,WACL,OAAO,CACT,ECXJ,OA9CA,SAAqBysM,EAAch6S,GACjCg6S,EAAeA,GAAgB,GAC/B,MAAM7wD,EAAQ,IAAIjgO,MAAM8wR,GAClBC,EAAa,IAAI/wR,MAAM8wR,GAC7B,IAEIE,EAFAptO,EAAO,EACPqtO,EAAO,EAKX,OAFAn6S,OAAc9R,IAAR8R,EAAoBA,EAAM,IAEzB,SAAco6S,GACnB,MAAM/uP,EAAMnS,KAAKmS,MAEXgvP,EAAYJ,EAAWE,GAExBD,IACHA,EAAgB7uP,GAGlB89L,EAAMr8K,GAAQstO,EACdH,EAAWntO,GAAQzhB,EAEnB,IAAI/hE,EAAI6wT,EACJG,EAAa,EAEjB,KAAOhxT,IAAMwjF,GACXwtO,GAAcnxD,EAAM7/P,KACpBA,GAAQ0wT,EASV,GANAltO,GAAQA,EAAO,GAAKktO,EAEhBltO,IAASqtO,IACXA,GAAQA,EAAO,GAAKH,GAGlB3uP,EAAM6uP,EAAgBl6S,EACxB,OAGF,MAAMu6S,EAASF,GAAahvP,EAAMgvP,EAElC,OAAOE,EAAS57Q,KAAKkvB,MAAmB,IAAbysP,EAAoBC,QAAUrsT,CAC3D,CACF,ECpCA,SAASssT,GAAqBh5P,EAAUi5P,GACtC,IAAIC,EAAgB,EACpB,MAAMC,EAAe,GAAY,GAAI,KAErC,OAAOtjT,IACL,MAAMkqF,EAASlqF,EAAEkqF,OACXq5N,EAAQvjT,EAAEwjT,iBAAmBxjT,EAAEujT,WAAQ1sT,EACvC4sT,EAAgBv5N,EAASm5N,EACzB9oL,EAAO+oL,EAAaG,GAG1BJ,EAAgBn5N,EAEhB,MAAMx2F,EAAO,CACXw2F,SACAq5N,QACA3pF,SAAU2pF,EAASr5N,EAASq5N,OAAS1sT,EACrCi7P,MAAO2xD,EACPlpL,KAAMA,QAAc1jI,EACpB6sT,UAAWnpL,GAAQgpL,GAVLr5N,GAAUq5N,GAUeA,EAAQr5N,GAAUqwC,OAAO1jI,EAChEwhB,MAAOrY,GAGTtM,EAAK0vT,EAAmB,WAAa,WAAY,EAEjDj5P,EAASz2D,EAAK,CAElB,CCtCA,MAAMiwT,GAAgB,CACpBC,KCLF,KDME5+L,IDsCsD,oBAAnBF,gBAEG,SAAU/7G,GAChD,OAAO,IAAIivD,SAAQ,SAA4BC,EAASC,GACtD,IAAI2rP,EAAc96S,EAAOrV,KACzB,MAAMowT,EAAiB,GAAa95S,KAAKjB,EAAOzN,SAAS6sH,YACnD0qI,EAAe9pP,EAAO8pP,aAC5B,IAAIkxD,EACJ,SAASpwQ,IACH5qC,EAAOi7S,aACTj7S,EAAOi7S,YAAYt8B,YAAYq8B,GAG7Bh7S,EAAO8oP,QACT9oP,EAAO8oP,OAAOp/O,oBAAoB,QAASsxS,EAE/C,CAEI/I,EAAMhC,WAAW6K,KACf,GAASxG,sBAAwB,GAASE,8BAC5CuG,EAAexF,gBAAe,GAE9BwF,EAAexF,eAAe,wBAAwB,IAI1D,IAAItrL,EAAU,IAAIlO,eAGlB,GAAI/7G,EAAOk7S,KAAM,CACf,MAAMjlM,EAAWj2G,EAAOk7S,KAAKjlM,UAAY,GACnCklM,EAAWn7S,EAAOk7S,KAAKC,SAAWC,SAAS51L,mBAAmBxlH,EAAOk7S,KAAKC,WAAa,GAC7FJ,EAAen/O,IAAI,gBAAiB,SAAWy/O,KAAKplM,EAAW,IAAMklM,GACvE,CAEA,MAAMG,EAAWrC,GAAcj5S,EAAOk5S,QAASl5S,EAAOslB,KAOtD,SAASi2R,IACP,IAAKtxL,EACH,OAGF,MAAMuxL,EAAkB,GAAav6S,KACnC,0BAA2BgpH,GAAWA,EAAQu/H,0BGhFvC,SAAgBt6L,EAASC,EAAQ1jE,GAC9C,MAAM4qT,EAAiB5qT,EAASuU,OAAOq2S,eAClC5qT,EAASsI,QAAWsiT,IAAkBA,EAAe5qT,EAASsI,QAGjEo7D,EAAO,IAAI,EACT,mCAAqC1jE,EAASsI,OAC9C,CAAC,EAAW0nT,gBAAiB,EAAWzF,kBAAkBz3Q,KAAKspB,MAAMp8D,EAASsI,OAAS,KAAO,GAC9FtI,EAASuU,OACTvU,EAASw+H,QACTx+H,IAPFyjE,EAAQzjE,EAUZ,CHgFMiwT,EAAO,SAAkBn+S,GACvB2xD,EAAQ3xD,GACRqtC,GACF,IAAG,SAAiBj4C,GAClBw8D,EAAOx8D,GACPi4C,GACF,GAfiB,CACfjgD,KAHoBm/P,GAAiC,SAAjBA,GAA4C,SAAjBA,EACxC7/H,EAAQx+H,SAA/Bw+H,EAAQy/H,aAGR31P,OAAQk2H,EAAQl2H,OAChB4iI,WAAY1M,EAAQ0M,WACpBpkI,QAASipT,EACTx7S,SACAiqH,YAYFA,EAAU,IACZ,CAmEA,GArGAA,EAAQqM,KAAKt2H,EAAO04G,OAAO92G,cAAe8xS,EAAS4H,EAAUt7S,EAAO8rF,OAAQ9rF,EAAO27S,mBAAmB,GAGtG1xL,EAAQx4H,QAAUuO,EAAOvO,QAiCrB,cAAew4H,EAEjBA,EAAQsxL,UAAYA,EAGpBtxL,EAAQvN,mBAAqB,WACtBuN,GAAkC,IAAvBA,EAAQ3N,aAQD,IAAnB2N,EAAQl2H,QAAkBk2H,EAAQw/H,aAAwD,IAAzCx/H,EAAQw/H,YAAYx5N,QAAQ,WAKjFhX,WAAWsiS,EACb,EAIFtxL,EAAQ2/H,QAAU,WACX3/H,IAIL96D,EAAO,IAAI,EAAW,kBAAmB,EAAWysP,aAAc57S,EAAQiqH,IAG1EA,EAAU,KACZ,EAGAA,EAAQ5L,QAAU,WAGhBlvD,EAAO,IAAI,EAAW,gBAAiB,EAAW0sP,YAAa77S,EAAQiqH,IAGvEA,EAAU,IACZ,EAGAA,EAAQ0/H,UAAY,WAClB,IAAImyD,EAAsB97S,EAAOvO,QAAU,cAAgBuO,EAAOvO,QAAU,cAAgB,mBAC5F,MAAMsjT,EAAe/0S,EAAO+0S,cAAgB,GACxC/0S,EAAO87S,sBACTA,EAAsB97S,EAAO87S,qBAE/B3sP,EAAO,IAAI,EACT2sP,EACA/G,EAAaV,oBAAsB,EAAW0H,UAAY,EAAWH,aACrE57S,EACAiqH,IAGFA,EAAU,IACZ,EAKI,GAASqqL,qBAAsB,CAEjC,MAAM0H,GAAah8S,EAAO6pP,iBAAmBoyD,GAAgBX,KACxDt7S,EAAOi2S,gBAAkBiG,GAAQliG,KAAKh6M,EAAOi2S,gBAE9C+F,GACFjB,EAAen/O,IAAI57D,EAAOk2S,eAAgB8F,EAE9C,MAGgBluT,IAAhBgtT,GAA6BC,EAAexF,eAAe,MAGvD,qBAAsBtrL,GACxBgoL,EAAM96O,QAAQ4jP,EAAe5kM,UAAU,SAA0B33C,EAAK93D,GACpEujH,EAAQsM,iBAAiB7vH,EAAK83D,EAChC,IAIGyzO,EAAMjkC,YAAYhuQ,EAAO6pP,mBAC5B5/H,EAAQ4/H,kBAAoB7pP,EAAO6pP,iBAIjCC,GAAiC,SAAjBA,IAClB7/H,EAAQ6/H,aAAe9pP,EAAO8pP,cAIS,mBAA9B9pP,EAAOm8S,oBAChBlyL,EAAQxgH,iBAAiB,WAAY2wS,GAAqBp6S,EAAOm8S,oBAAoB,IAIhD,mBAA5Bn8S,EAAOo8S,kBAAmCnyL,EAAQoyL,QAC3DpyL,EAAQoyL,OAAO5yS,iBAAiB,WAAY2wS,GAAqBp6S,EAAOo8S,oBAGtEp8S,EAAOi7S,aAAej7S,EAAO8oP,UAG/BkyD,EAAah7O,IACNiqD,IAGL96D,GAAQ6Q,GAAUA,EAAO3xE,KAAO,IAAI,GAAc,KAAM2R,EAAQiqH,GAAWjqD,GAC3EiqD,EAAQq/H,QACRr/H,EAAU,KAAI,EAGhBjqH,EAAOi7S,aAAej7S,EAAOi7S,YAAYvuQ,UAAUsuQ,GAC/Ch7S,EAAO8oP,SACT9oP,EAAO8oP,OAAOM,QAAU4xD,IAAeh7S,EAAO8oP,OAAOr/O,iBAAiB,QAASuxS,KAInF,MAAM3tM,EI/OK,SAAuB/nF,GACpC,MAAMroB,EAAQ,4BAA4B22B,KAAKtO,GAC/C,OAAOroB,GAASA,EAAM,IAAM,EAC9B,CJ4OqBq/S,CAAchB,GAE3BjuM,IAAsD,IAA1C,GAASsnM,UAAU1kR,QAAQo9E,GACzCl+C,EAAO,IAAI,EAAW,wBAA0Bk+C,EAAW,IAAK,EAAWouM,gBAAiBz7S,IAM9FiqH,EAAQ4H,KAAKipL,GAAe,KAC9B,GACF,GClPA7I,EAAM96O,QAAQyjP,IAAe,CAACt8O,EAAI/gE,KAChC,GAAG+gE,EAAI,CACL,IACEv5D,OAAO66D,eAAetB,EAAI,OAAQ,CAAC/gE,SACrC,CAAE,MAAOtG,GAET,CACA8N,OAAO66D,eAAetB,EAAI,cAAe,CAAC/gE,SAC5C,KAGF,OACeg/S,IACXA,EAAWtK,EAAM31Q,QAAQigR,GAAYA,EAAW,CAACA,GAEjD,MAAM,OAACpoT,GAAUooT,EACjB,IAAIC,EACAxH,EAEJ,IAAK,IAAI9rT,EAAI,EAAGA,EAAIiL,IAClBqoT,EAAgBD,EAASrzT,KACrB8rT,EAAU/C,EAAM9pM,SAASq0M,GAAiB5B,GAAc4B,EAAcr7S,eAAiBq7S,IAFjEtzT,KAO5B,IAAK8rT,EAAS,CACZ,IAAgB,IAAZA,EACF,MAAM,IAAI,EACR,WAAWwH,wCACX,mBAIJ,MAAM,IAAIrtT,MACR8iT,EAAMb,WAAWwJ,GAAe4B,GAC9B,YAAYA,mCACZ,oBAAoBA,KAE1B,CAEA,IAAKvK,EAAM1gD,WAAWyjD,GACpB,MAAM,IAAI1rR,UAAU,6BAGtB,OAAO0rR,CAAO,EIvClB,SAASyH,GAA6Bz8S,GAKpC,GAJIA,EAAOi7S,aACTj7S,EAAOi7S,YAAYyB,mBAGjB18S,EAAO8oP,QAAU9oP,EAAO8oP,OAAOM,QACjC,MAAM,IAAI,GAAc,KAAMppP,EAElC,CASe,SAAS28S,GAAgB38S,GACtCy8S,GAA6Bz8S,GAE7BA,EAAOzN,QAAU,GAAa0O,KAAKjB,EAAOzN,SAG1CyN,EAAOrV,KAAO2tT,GAActpT,KAC1BgR,EACAA,EAAOk1S,mBAGgD,IAArD,CAAC,OAAQ,MAAO,SAASjlR,QAAQjwB,EAAO04G,SAC1C14G,EAAOzN,QAAQgjT,eAAe,qCAAqC,GAKrE,OAFgBgH,GAAoBv8S,EAAOg1S,SAAW,GAASA,QAExDA,CAAQh1S,GAAQxN,MAAK,SAA6B/G,GAYvD,OAXAgxT,GAA6Bz8S,GAG7BvU,EAASd,KAAO2tT,GAActpT,KAC5BgR,EACAA,EAAO61S,kBACPpqT,GAGFA,EAAS8G,QAAU,GAAa0O,KAAKxV,EAAS8G,SAEvC9G,CACT,IAAG,SAA4B4kH,GAe7B,OAdKmoM,GAASnoM,KACZosM,GAA6Bz8S,GAGzBqwG,GAAUA,EAAO5kH,WACnB4kH,EAAO5kH,SAASd,KAAO2tT,GAActpT,KACnCgR,EACAA,EAAO61S,kBACPxlM,EAAO5kH,UAET4kH,EAAO5kH,SAAS8G,QAAU,GAAa0O,KAAKovG,EAAO5kH,SAAS8G,WAIzD08D,QAAQE,OAAOkhD,EACxB,GACF,CC3EA,MAAMusM,GAAmBrO,GAAUA,aAAiB,GAAeA,EAAMp4L,SAAWo4L,EAWrE,SAASsO,GAAYC,EAASC,GAE3CA,EAAUA,GAAW,CAAC,EACtB,MAAM/8S,EAAS,CAAC,EAEhB,SAASg9S,EAAep/S,EAAQssG,EAAQomM,GACtC,OAAI2B,EAAM5yO,cAAczhE,IAAWq0S,EAAM5yO,cAAc6qC,GAC9C+nM,EAAM5B,MAAMrhT,KAAK,CAACshT,YAAW1yS,EAAQssG,GACnC+nM,EAAM5yO,cAAc6qC,GACtB+nM,EAAM5B,MAAM,CAAC,EAAGnmM,GACd+nM,EAAM31Q,QAAQ4tE,GAChBA,EAAOroG,QAETqoG,CACT,CAGA,SAAS+yM,EAAoBh0T,EAAG+1B,EAAGsxR,GACjC,OAAK2B,EAAMjkC,YAAYhvP,GAEXizR,EAAMjkC,YAAY/kR,QAAvB,EACE+zT,OAAelvT,EAAW7E,EAAGqnT,GAF7B0M,EAAe/zT,EAAG+1B,EAAGsxR,EAIhC,CAGA,SAAS4M,EAAiBj0T,EAAG+1B,GAC3B,IAAKizR,EAAMjkC,YAAYhvP,GACrB,OAAOg+R,OAAelvT,EAAWkxB,EAErC,CAGA,SAASm+R,EAAiBl0T,EAAG+1B,GAC3B,OAAKizR,EAAMjkC,YAAYhvP,GAEXizR,EAAMjkC,YAAY/kR,QAAvB,EACE+zT,OAAelvT,EAAW7E,GAF1B+zT,OAAelvT,EAAWkxB,EAIrC,CAGA,SAASo+R,EAAgBn0T,EAAG+1B,EAAGukG,GAC7B,OAAIA,KAAQw5L,EACHC,EAAe/zT,EAAG+1B,GAChBukG,KAAQu5L,EACVE,OAAelvT,EAAW7E,QAD5B,CAGT,CAEA,MAAMo0T,EAAW,CACf/3R,IAAK43R,EACLxkM,OAAQwkM,EACRvyT,KAAMuyT,EACNhE,QAASiE,EACTjI,iBAAkBiI,EAClBtH,kBAAmBsH,EACnBxB,iBAAkBwB,EAClB1rT,QAAS0rT,EACTG,eAAgBH,EAChBtzD,gBAAiBszD,EACjBnI,QAASmI,EACTrzD,aAAcqzD,EACdlH,eAAgBkH,EAChBjH,eAAgBiH,EAChBf,iBAAkBe,EAClBhB,mBAAoBgB,EACpBI,WAAYJ,EACZhH,iBAAkBgH,EAClB/G,cAAe+G,EACfK,eAAgBL,EAChB5tL,UAAW4tL,EACXM,UAAWN,EACXO,WAAYP,EACZlC,YAAakC,EACbQ,WAAYR,EACZS,iBAAkBT,EAClB9G,eAAgB+G,EAChB7qT,QAAS,CAACtJ,EAAG+1B,IAAMi+R,EAAoBL,GAAgB3zT,GAAI2zT,GAAgB59R,IAAI,IASjF,OANAizR,EAAM96O,QAAQpyD,OAAO6lB,KAAK7lB,OAAOC,OAAO,CAAC,EAAG83S,EAASC,KAAW,SAA4Bx5L,GAC1F,MAAM8sL,EAAQgN,EAAS95L,IAAS05L,EAC1BY,EAAcxN,EAAMyM,EAAQv5L,GAAOw5L,EAAQx5L,GAAOA,GACvD0uL,EAAMjkC,YAAY6vC,IAAgBxN,IAAU+M,IAAqBp9S,EAAOujH,GAAQs6L,EACnF,IAEO79S,CACT,CCxGO,MAAM0mS,GAAU,QCKjBoX,GAAa,CAAC,EAGpB,CAAC,SAAU,UAAW,SAAU,WAAY,SAAU,UAAU3mP,SAAQ,CAAC9oE,EAAMnF,KAC7E40T,GAAWzvT,GAAQ,SAAmBkgT,GACpC,cAAcA,IAAUlgT,GAAQ,KAAOnF,EAAI,EAAI,KAAO,KAAOmF,CAC/D,CAAC,IAGH,MAAM0vT,GAAqB,CAAC,EAW5BD,GAAW/I,aAAe,SAAsBiJ,EAAW/vR,EAASp/B,GAClE,SAASovT,EAAcC,EAAK/sK,GAC1B,MAAO,uCAAoD+sK,EAAM,IAAO/sK,GAAQtiJ,EAAU,KAAOA,EAAU,GAC7G,CAGA,MAAO,CAAC0O,EAAO2gT,EAAKC,KAClB,IAAkB,IAAdH,EACF,MAAM,IAAI,EACRC,EAAcC,EAAK,qBAAuBjwR,EAAU,OAASA,EAAU,KACvE,EAAWmwR,gBAef,OAXInwR,IAAY8vR,GAAmBG,KACjCH,GAAmBG,IAAO,EAE1BnzT,QAAQivE,KACNikP,EACEC,EACA,+BAAiCjwR,EAAU,8CAK1C+vR,GAAYA,EAAUzgT,EAAO2gT,EAAKC,EAAY,CAEzD,EAmCA,QACEE,cAxBF,SAAuBnwT,EAASowT,EAAQC,GACtC,GAAuB,iBAAZrwT,EACT,MAAM,IAAI,EAAW,4BAA6B,EAAWswT,sBAE/D,MAAM5zR,EAAO7lB,OAAO6lB,KAAK18B,GACzB,IAAIhF,EAAI0hC,EAAKz2B,OACb,KAAOjL,KAAM,GAAG,CACd,MAAMg1T,EAAMtzR,EAAK1hC,GACX80T,EAAYM,EAAOJ,GACzB,GAAIF,EAAJ,CACE,MAAMzgT,EAAQrP,EAAQgwT,GAChB16R,OAAmB11B,IAAVyP,GAAuBygT,EAAUzgT,EAAO2gT,EAAKhwT,GAC5D,IAAe,IAAXs1B,EACF,MAAM,IAAI,EAAW,UAAY06R,EAAM,YAAc16R,EAAQ,EAAWg7R,qBAG5E,MACA,IAAqB,IAAjBD,EACF,MAAM,IAAI,EAAW,kBAAoBL,EAAK,EAAWO,eAE7D,CACF,EAIEX,eC9EF,MAAM,GAAaE,GAAUF,WAS7B,MAAMtsT,GACJ,WAAAy4B,CAAYy0R,GACVt1T,KAAKwwN,SAAW8kG,EAChBt1T,KAAKu1T,aAAe,CAClB10L,QAAS,IAAI,EACbx+H,SAAU,IAAI,EAElB,CAUA,OAAAw+H,CAAQ20L,EAAa5+S,GAGQ,iBAAhB4+S,GACT5+S,EAASA,GAAU,CAAC,GACbslB,IAAMs5R,EAEb5+S,EAAS4+S,GAAe,CAAC,EAG3B5+S,EAAS68S,GAAYzzT,KAAKwwN,SAAU55M,GAEpC,MAAM,aAAC+0S,EAAY,iBAAE4G,EAAgB,QAAEppT,GAAWyN,OAE7BlS,IAAjBinT,GACFiJ,GAAUK,cAActJ,EAAc,CACpCZ,kBAAmB,GAAWY,aAAa,GAAW8J,SACtDzK,kBAAmB,GAAWW,aAAa,GAAW8J,SACtDxK,oBAAqB,GAAWU,aAAa,GAAW8J,WACvD,GAGmB,MAApBlD,IACE1J,EAAM1gD,WAAWoqD,GACnB37S,EAAO27S,iBAAmB,CACxB/H,UAAW+H,GAGbqC,GAAUK,cAAc1C,EAAkB,CACxCvI,OAAQ,GAAWn5L,SACnB25L,UAAW,GAAW35L,WACrB,IAKPj6G,EAAO04G,QAAU14G,EAAO04G,QAAUtvH,KAAKwwN,SAASlhG,QAAU,OAAOv3G,cAGjE,IAAI29S,EAAiBvsT,GAAW0/S,EAAM5B,MACpC99S,EAAQizN,OACRjzN,EAAQyN,EAAO04G,SAGjBnmH,GAAW0/S,EAAM96O,QACf,CAAC,SAAU,MAAO,OAAQ,OAAQ,MAAO,QAAS,WACjDuhD,WACQnmH,EAAQmmH,EAAO,IAI1B14G,EAAOzN,QAAU,GAAa9H,OAAOq0T,EAAgBvsT,GAGrD,MAAMwsT,EAA0B,GAChC,IAAIC,GAAiC,EACrC51T,KAAKu1T,aAAa10L,QAAQ9yD,SAAQ,SAAoC8nP,GACjC,mBAAxBA,EAAYhL,UAA0D,IAAhCgL,EAAYhL,QAAQj0S,KAIrEg/S,EAAiCA,GAAkCC,EAAYjL,YAE/E+K,EAAwBt5M,QAAQw5M,EAAYl1H,UAAWk1H,EAAYj1H,UACrE,IAEA,MAAMk1H,EAA2B,GAKjC,IAAInvL,EAJJ3mI,KAAKu1T,aAAalzT,SAAS0rE,SAAQ,SAAkC8nP,GACnEC,EAAyB7xT,KAAK4xT,EAAYl1H,UAAWk1H,EAAYj1H,SACnE,IAGA,IACIlhF,EADA5/G,EAAI,EAGR,IAAK81T,EAAgC,CACnC,MAAMG,EAAQ,CAACxC,GAAgBthM,KAAKjyH,WAAO0E,GAO3C,IANAqxT,EAAM15M,QAAQr6G,MAAM+zT,EAAOJ,GAC3BI,EAAM9xT,KAAKjC,MAAM+zT,EAAOD,GACxBp2M,EAAMq2M,EAAMhrT,OAEZ47H,EAAU9gE,QAAQC,QAAQlvD,GAEnB9W,EAAI4/G,GACTinB,EAAUA,EAAQv9H,KAAK2sT,EAAMj2T,KAAMi2T,EAAMj2T,MAG3C,OAAO6mI,CACT,CAEAjnB,EAAMi2M,EAAwB5qT,OAE9B,IAAIirT,EAAYp/S,EAIhB,IAFA9W,EAAI,EAEGA,EAAI4/G,GAAK,CACd,MAAMu2M,EAAcN,EAAwB71T,KACtCo2T,EAAaP,EAAwB71T,KAC3C,IACEk2T,EAAYC,EAAYD,EAC1B,CAAE,MAAOp0T,GACPs0T,EAAWtwT,KAAK5F,KAAM4B,GACtB,KACF,CACF,CAEA,IACE+kI,EAAU4sL,GAAgB3tT,KAAK5F,KAAMg2T,EACvC,CAAE,MAAOp0T,GACP,OAAOikE,QAAQE,OAAOnkE,EACxB,CAKA,IAHA9B,EAAI,EACJ4/G,EAAMo2M,EAAyB/qT,OAExBjL,EAAI4/G,GACTinB,EAAUA,EAAQv9H,KAAK0sT,EAAyBh2T,KAAMg2T,EAAyBh2T,MAGjF,OAAO6mI,CACT,CAEA,MAAAwvL,CAAOv/S,GAGL,OAAO0zS,EADUuF,IADjBj5S,EAAS68S,GAAYzzT,KAAKwwN,SAAU55M,IACEk5S,QAASl5S,EAAOslB,KAC5BtlB,EAAO8rF,OAAQ9rF,EAAO27S,iBAClD,EAIF1J,EAAM96O,QAAQ,CAAC,SAAU,MAAO,OAAQ,YAAY,SAA6BuhD,GAE/ElnH,GAAMu3B,UAAU2vF,GAAU,SAASpzF,EAAKtlB,GACtC,OAAO5W,KAAK6gI,QAAQ4yL,GAAY78S,GAAU,CAAC,EAAG,CAC5C04G,SACApzF,MACA36B,MAAOqV,GAAU,CAAC,GAAGrV,OAEzB,CACF,IAEAsnT,EAAM96O,QAAQ,CAAC,OAAQ,MAAO,UAAU,SAA+BuhD,GAGrE,SAAS8mM,EAAmBC,GAC1B,OAAO,SAAoBn6R,EAAK36B,EAAMqV,GACpC,OAAO5W,KAAK6gI,QAAQ4yL,GAAY78S,GAAU,CAAC,EAAG,CAC5C04G,SACAnmH,QAASktT,EAAS,CAChB,eAAgB,uBACd,CAAC,EACLn6R,MACA36B,SAEJ,CACF,CAEA6G,GAAMu3B,UAAU2vF,GAAU8mM,IAE1BhuT,GAAMu3B,UAAU2vF,EAAS,QAAU8mM,GAAmB,EACxD,IAEA,UC7LA,MAAME,GACJ,WAAAz1R,CAAYqmF,GACV,GAAwB,mBAAbA,EACT,MAAM,IAAIhnF,UAAU,gCAGtB,IAAIq2R,EAEJv2T,KAAK2mI,QAAU,IAAI9gE,SAAQ,SAAyBC,GAClDywP,EAAiBzwP,CACnB,IAEA,MAAM59D,EAAQlI,KAGdA,KAAK2mI,QAAQv9H,MAAKwtE,IAChB,IAAK1uE,EAAMsuT,WAAY,OAEvB,IAAI12T,EAAIoI,EAAMsuT,WAAWzrT,OAEzB,KAAOjL,KAAM,GACXoI,EAAMsuT,WAAW12T,GAAG82E,GAEtB1uE,EAAMsuT,WAAa,IAAI,IAIzBx2T,KAAK2mI,QAAQv9H,KAAOu+G,IAClB,IAAIN,EAEJ,MAAMsf,EAAU,IAAI9gE,SAAQC,IAC1B59D,EAAMo7C,UAAUwiB,GAChBuhD,EAAWvhD,CAAO,IACjB18D,KAAKu+G,GAMR,OAJAgf,EAAQ/vD,OAAS,WACf1uE,EAAMqtR,YAAYluK,EACpB,EAEOsf,CAAO,EAGhBzf,GAAS,SAAgBzhH,EAASmR,EAAQiqH,GACpC34H,EAAM++G,SAKV/+G,EAAM++G,OAAS,IAAI,GAAcxhH,EAASmR,EAAQiqH,GAClD01L,EAAeruT,EAAM++G,QACvB,GACF,CAKA,gBAAAqsM,GACE,GAAItzT,KAAKinH,OACP,MAAMjnH,KAAKinH,MAEf,CAMA,SAAA3jE,CAAU0U,GACJh4D,KAAKinH,OACPjvD,EAASh4D,KAAKinH,QAIZjnH,KAAKw2T,WACPx2T,KAAKw2T,WAAWvyT,KAAK+zD,GAErBh4D,KAAKw2T,WAAa,CAACx+P,EAEvB,CAMA,WAAAu9N,CAAYv9N,GACV,IAAKh4D,KAAKw2T,WACR,OAEF,MAAMv7S,EAAQjb,KAAKw2T,WAAW3vR,QAAQmxB,IACvB,IAAX/8C,GACFjb,KAAKw2T,WAAWtyO,OAAOjpE,EAAO,EAElC,CAMA,aAAO6lG,GACL,IAAIlqC,EAIJ,MAAO,CACL1uE,MAJY,IAAIouT,IAAY,SAAkB5oS,GAC9CkpD,EAASlpD,CACX,IAGEkpD,SAEJ,EAGF,UCxHA,MAAM6/O,GAAiB,CACrBC,SAAU,IACVC,mBAAoB,IACpBC,WAAY,IACZC,WAAY,IACZC,GAAI,IACJC,QAAS,IACTC,SAAU,IACVC,4BAA6B,IAC7BC,UAAW,IACXC,aAAc,IACdC,eAAgB,IAChBC,YAAa,IACbC,gBAAiB,IACjBC,OAAQ,IACRC,gBAAiB,IACjBC,iBAAkB,IAClBC,MAAO,IACPC,SAAU,IACVC,YAAa,IACbC,SAAU,IACVC,OAAQ,IACRC,kBAAmB,IACnBC,kBAAmB,IACnBC,WAAY,IACZC,aAAc,IACdC,gBAAiB,IACjBC,UAAW,IACXC,SAAU,IACVC,iBAAkB,IAClBC,cAAe,IACfC,4BAA6B,IAC7BC,eAAgB,IAChBC,SAAU,IACVC,KAAM,IACNC,eAAgB,IAChBC,mBAAoB,IACpBC,gBAAiB,IACjBC,WAAY,IACZC,qBAAsB,IACtBC,oBAAqB,IACrBC,kBAAmB,IACnBC,UAAW,IACXC,mBAAoB,IACpBC,oBAAqB,IACrBC,OAAQ,IACRC,iBAAkB,IAClBC,SAAU,IACVC,gBAAiB,IACjBC,qBAAsB,IACtBC,gBAAiB,IACjBC,4BAA6B,IAC7BC,2BAA4B,IAC5BC,oBAAqB,IACrBC,eAAgB,IAChBC,WAAY,IACZC,mBAAoB,IACpBC,eAAgB,IAChBC,wBAAyB,IACzBC,sBAAuB,IACvBC,oBAAqB,IACrBC,aAAc,IACdC,YAAa,IACbC,8BAA+B,KAGjC7+S,OAAO86F,QAAQggN,IAAgB1oP,SAAQ,EAAEzwD,EAAKnJ,MAC5CsiT,GAAetiT,GAASmJ,CAAG,IAG7B,UCxBA,MAAMnc,GAnBN,SAASs5T,EAAeC,GACtB,MAAMvpR,EAAU,IAAI,GAAMupR,GACpBt/O,EAAW62C,EAAK,GAAMtyF,UAAUkhG,QAAS1vF,GAa/C,OAVA03Q,EAAMtnP,OAAO6Z,EAAU,GAAMz7C,UAAWwR,EAAS,CAACy0Q,YAAY,IAG9DiD,EAAMtnP,OAAO6Z,EAAUjqC,EAAS,KAAM,CAACy0Q,YAAY,IAGnDxqO,EAASnsC,OAAS,SAAgBqmR,GAChC,OAAOmF,EAAehH,GAAYiH,EAAepF,GACnD,EAEOl6O,CACT,CAGcq/O,CAAe,IAG7Bt5T,GAAMiH,MAAQ,GAGdjH,GAAMmuT,cAAgB,GACtBnuT,GAAMm1T,YAAc,GACpBn1T,GAAMiuT,SAAWA,GACjBjuT,GAAMm8S,QAAUA,GAChBn8S,GAAMw5T,WAAa,EAGnBx5T,GAAMwnT,WAAa,EAGnBxnT,GAAMy5T,OAASz5T,GAAMmuT,cAGrBnuT,GAAMooI,IAAM,SAAasxL,GACvB,OAAOh1P,QAAQ0jE,IAAIsxL,EACrB,EAEA15T,GAAM25T,OC9CS,SAAgBnmP,GAC7B,OAAO,SAAc9V,GACnB,OAAO8V,EAAS3yE,MAAM,KAAM68D,EAC9B,CACF,ED6CA19D,GAAM45T,aE7DS,SAAsBzmT,GACnC,OAAOu0S,EAAM1oR,SAAS7rB,KAAsC,IAAzBA,EAAQymT,YAC7C,EF8DA55T,GAAMsyT,YAAcA,GAEpBtyT,GAAMosT,aAAe,GAErBpsT,GAAM65T,WAAa7V,GAAS,GAAe0D,EAAM3C,WAAWf,GAAS,IAAI9wJ,SAAS8wJ,GAASA,GAE3FhkT,GAAM85T,WAAa9H,GAEnBhyT,GAAMs1T,eAAiB,GAEvBt1T,GAAMwf,QAAUxf,GAGhB,S,GGvFI+5T,EAA2B,CAAC,EAGhC,SAASC,EAAoBtqL,GAE5B,IAAIuqL,EAAeF,EAAyBrqL,GAC5C,QAAqBnsI,IAAjB02T,EACH,OAAOA,EAAa57T,QAGrB,IAAIC,EAASy7T,EAAyBrqL,GAAY,CACjD57G,GAAI47G,EACJ94C,QAAQ,EACRv4F,QAAS,CAAC,GAUX,OANA67T,EAAoBxqL,GAAUjrI,KAAKnG,EAAOD,QAASC,EAAQA,EAAOD,QAAS27T,GAG3E17T,EAAOs4F,QAAS,EAGTt4F,EAAOD,OACf,C,OCzBA27T,EAAoBG,KAAO,CAAC,ECC5BH,EAAoB3uQ,EAAI,SAAS/sD,GAChC,IAAI87T,EAAS97T,GAAUA,EAAO28P,WAC7B,WAAa,OAAO38P,EAAgB,OAAG,EACvC,WAAa,OAAOA,CAAQ,EAE7B,OADA07T,EAAoBpqP,EAAEwqP,EAAQ,CAAE17T,EAAG07T,IAC5BA,CACR,ECNAJ,EAAoBpqP,EAAI,SAASvxE,EAASg8T,GACzC,IAAI,IAAIl+S,KAAOk+S,EACXL,EAAoBn/D,EAAEw/D,EAAYl+S,KAAS69S,EAAoBn/D,EAAEx8P,EAAS8d,IAC5E3B,OAAO66D,eAAeh3E,EAAS8d,EAAK,CAAEqlL,YAAY,EAAMvhM,IAAKo6T,EAAWl+S,IAG3E,ECPA69S,EAAoBhkM,EAAI,WACvB,GAA0B,iBAAftiB,WAAyB,OAAOA,WAC3C,IACC,OAAO70G,MAAQ,IAAIg2E,SAAS,cAAb,EAChB,CAAE,MAAOnoE,GACR,GAAsB,iBAAXutB,OAAqB,OAAOA,MACxC,CACA,CAPuB,GCAxB+/R,EAAoBM,IAAM,SAASh8T,GASlC,OARAA,EAASkc,OAAOszB,OAAOxvC,IACXkwB,WAAUlwB,EAAOkwB,SAAW,IACxChU,OAAO66D,eAAe/2E,EAAQ,UAAW,CACxCkjM,YAAY,EACZnwH,IAAK,WACJ,MAAM,IAAIzsE,MAAM,0FAA4FtG,EAAOw1B,GACpH,IAEMx1B,CACR,ECVA07T,EAAoBn/D,EAAI,SAAStwL,EAAKyuD,GAAQ,OAAOx+G,OAAOgkB,UAAUoP,eAAenpC,KAAK8lE,EAAKyuD,EAAO,ECCtGghM,EAAoB16P,EAAI,SAASjhE,GACX,oBAAX49P,QAA0BA,OAAOklD,aAC1C3mS,OAAO66D,eAAeh3E,EAAS49P,OAAOklD,YAAa,CAAEnuS,MAAO,WAE7DwH,OAAO66D,eAAeh3E,EAAS,aAAc,CAAE2U,OAAO,GACvD,ECH0BgnT,EAAoB,I","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/api/race-send.ts","webpack://vw-oneform-feature-app/./src/bff/get-data-url.ts","webpack://vw-oneform-feature-app/./src/bff/get-marketing-code.ts","webpack://vw-oneform-feature-app/./src/bff/api/appadap-appointment-create.ts","webpack://vw-oneform-feature-app/./src/bff/api/dps-send.ts","webpack://vw-oneform-feature-app/./src/bff/api/yumiwi-send.ts","webpack://vw-oneform-feature-app/./src/bff/get-molecular-cdn-url.ts","webpack://vw-oneform-feature-app/./src/bff/api/fetch-domains.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/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/get-molecular-url.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/get-data-vilma.ts","webpack://vw-oneform-feature-app/./src/bff/get-google-api-key.ts","webpack://vw-oneform-feature-app/./src/bff/report-error-sentry.ts","webpack://vw-oneform-feature-app/./src/components/PeriodoContacto.tsx","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/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/CarlineSelect/hooks/use-format-CEMVenta.ts","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-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/metadata.min.json.js","webpack://vw-oneform-feature-app/./node_modules/libphonenumber-js/min/exports/withMetadataArgument.js","webpack://vw-oneform-feature-app/./node_modules/libphonenumber-js/source/normalizeArguments.js","webpack://vw-oneform-feature-app/./node_modules/libphonenumber-js/source/constants.js","webpack://vw-oneform-feature-app/./node_modules/libphonenumber-js/source/ParseError.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/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/helpers/parseDigits.js","webpack://vw-oneform-feature-app/./node_modules/libphonenumber-js/source/parseIncompletePhoneNumber.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/isPossible.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/getNumberType.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/applyInternationalSeparatorStyle.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/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/helpers/stripIddPrefix.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/extractNationalNumber.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/extractCountryCallingCode.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/getCountryByCallingCode.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/isValidPhoneNumber.js","webpack://vw-oneform-feature-app/./node_modules/libphonenumber-js/source/parsePhoneNumber_.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/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/MultipleOptionsCTAs.tsx","webpack://vw-oneform-feature-app/./src/components/inputs/CustomSelect.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/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/./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/get-test-pincode.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/index.ts","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/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/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/CEMLegal.tsx","webpack://vw-oneform-feature-app/./src/forms/Cem/CemController.tsx","webpack://vw-oneform-feature-app/./src/forms/Cem/CemStepsPosventa.tsx","webpack://vw-oneform-feature-app/./src/forms/Cem/helpers.ts","webpack://vw-oneform-feature-app/./src/forms/Cem/CustomLegalCem.tsx","webpack://vw-oneform-feature-app/./src/forms/Cem/ChecksEnvio.tsx","webpack://vw-oneform-feature-app/./src/forms/Cem/ChecksPublicacion.tsx","webpack://vw-oneform-feature-app/./src/forms/Cem/ConfirmacionCem.tsx","webpack://vw-oneform-feature-app/./src/forms/Cem/FirstStepCEM.tsx","webpack://vw-oneform-feature-app/./src/forms/Cem/ThankYouCem.tsx","webpack://vw-oneform-feature-app/./src/forms/Cem/CemPosventa.tsx","webpack://vw-oneform-feature-app/./src/forms/Cem/CemSteps.tsx","webpack://vw-oneform-feature-app/./src/forms/Cem/CemVenta.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/MapaCita.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/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/EmpresasForm.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/ThankYouEmpresas.tsx","webpack://vw-oneform-feature-app/./src/forms/Empresa/MapaEmpresa/MapaEmpresas.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/FormsAdhoc/2023PlanIdeal/PlanIdealController.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/Checks.tsx","webpack://vw-oneform-feature-app/./src/forms/FormsAdhoc/2023PlanIdeal/QuestionWithImage.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/EurocopaForm.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/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/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/Checks.tsx","webpack://vw-oneform-feature-app/./src/forms/FormsAdhoc/TestID2023/QuestionWithImage.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/LastNavigationLEM.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/LEMLastScreenFields.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/MapaLeads.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/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/LeadInPageGenericoForm.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/MapaLeadsInPage/MapaLeadsInPage.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/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/NewsletterForm.tsx","webpack://vw-oneform-feature-app/./src/forms/Newsletter/ConfirmacionNewsletter.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/MapaNoCompra/MapaNoCompra.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/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/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/NoRenovacionYaTengo.tsx","webpack://vw-oneform-feature-app/./src/forms/NoRenovacion/MapaNoRenovacion/MapaNoRenovacion.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/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/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/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/bff/get-ofertas-suv.ts","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/CEMSegundaEntrega/CEMSegundaEntregaForm.tsx","webpack://vw-oneform-feature-app/./src/forms/Cem/CEM OneShop/ThankYouCEMOneShop.tsx","webpack://vw-oneform-feature-app/./src/forms/Cem/CEMSegundaEntrega/CEMSegundaEntregaController.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/valoracion/CEMSegundaEntregaValoracionForm.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/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/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/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/@volkswagen-onehub/components-core/dist-es/button-next-best-action/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.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/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/deprecated/index.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/dist-es/content-layer/index.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/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-images.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/a11y.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/react-clientside-effect/lib/index.es.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/focusMerge.js","webpack://vw-oneform-feature-app/./node_modules/focus-lock/dist/es2015/setFocus.js","webpack://vw-oneform-feature-app/./node_modules/focus-lock/dist/es2015/index.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/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/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/@react-hook/throttle/dist/module/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/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/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/media/media-context.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/dist-es/media/video.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/dist-es/media/controls/control-container.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/dist-es/media/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/media/controls/play-button.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/dist-es/media/controls/play-button-center.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/dist-es/media/controls/time-display.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/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/media/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/index.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/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/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/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/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/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/arrayLikeToArray.js","webpack://vw-oneform-feature-app/./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","webpack://vw-oneform-feature-app/./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","webpack://vw-oneform-feature-app/./node_modules/@babel/runtime/helpers/esm/classCallCheck.js","webpack://vw-oneform-feature-app/./node_modules/@babel/runtime/helpers/esm/createClass.js","webpack://vw-oneform-feature-app/./node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js","webpack://vw-oneform-feature-app/./node_modules/@babel/runtime/helpers/esm/createSuper.js","webpack://vw-oneform-feature-app/./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","webpack://vw-oneform-feature-app/./node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack://vw-oneform-feature-app/./node_modules/@babel/runtime/helpers/esm/extends.js","webpack://vw-oneform-feature-app/./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","webpack://vw-oneform-feature-app/./node_modules/@babel/runtime/helpers/esm/inherits.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/isNativeReflectConstruct.js","webpack://vw-oneform-feature-app/./node_modules/@babel/runtime/helpers/esm/objectSpread2.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/regeneratorRuntime.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/slicedToArray.js","webpack://vw-oneform-feature-app/./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","webpack://vw-oneform-feature-app/./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","webpack://vw-oneform-feature-app/./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","webpack://vw-oneform-feature-app/./node_modules/@babel/runtime/helpers/esm/taggedTemplateLiteral.js","webpack://vw-oneform-feature-app/./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","webpack://vw-oneform-feature-app/./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","webpack://vw-oneform-feature-app/./node_modules/@babel/runtime/helpers/esm/iterableToArray.js","webpack://vw-oneform-feature-app/./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.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/@babel/runtime/helpers/esm/typeof.js","webpack://vw-oneform-feature-app/./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","webpack://vw-oneform-feature-app/./node_modules/@babel/runtime/helpers/esm/construct.js","webpack://vw-oneform-feature-app/./node_modules/@babel/runtime/helpers/esm/wrapNativeSuper.js","webpack://vw-oneform-feature-app/./node_modules/@babel/runtime/helpers/esm/isNativeFunction.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/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/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), function(__WEBPACK_EXTERNAL_MODULE__8156__, __WEBPACK_EXTERNAL_MODULE__7111__, __WEBPACK_EXTERNAL_MODULE__1608__) {\nreturn ","import axios from 'axios';\nimport { reportErrorSentry } from 'src/bff';\nimport { DealersData } from 'src/types';\nimport { getDataUrl } from '../get-data-url';\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 axios, { AxiosResponse } from 'axios';\nimport { MolecularResponse } from 'src/types';\nimport { getMolecularUrl } from 'src/bff';\nimport { reportErrorSentry } from 'src/bff';\n\nexport const raceSend = async (formData: FormData): Promise> => {\n try {\n const MOLECULAR_URL = getMolecularUrl();\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","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 { 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 { AppadapResponse } from 'src/types';\nimport { getMolecularUrl } from 'src/bff';\nimport { reportErrorSentry } from 'src/bff';\n\nexport const appadapAppointmentCreate = async (formData: FormData): Promise> => {\n try {\n const MOLECULAR_URL = getMolecularUrl();\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, { AxiosResponse } from 'axios';\nimport { MolecularResponse } from 'src/types';\nimport { getMolecularUrl } from 'src/bff';\nimport { reportErrorSentry } from 'src/bff';\n\nexport const dpsSend = async (formData: FormData): Promise> => {\n try {\n const MOLECULAR_URL = getMolecularUrl();\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","import axios, { AxiosResponse } from 'axios';\nimport { MolecularResponse } from 'src/types';\nimport { getMolecularUrl } from 'src/bff';\nimport { reportErrorSentry } from 'src/bff';\n\nexport const yumiwiSend = async (formData: FormData): Promise> => {\n try {\n const MOLECULAR_URL = getMolecularUrl();\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","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 molecularCdn.urlOrigin + molecularCdn.urlPath;\n};\n","import Axios from 'axios';\nimport { reportErrorSentry } from 'src/bff';\nimport { DomainResponse } from 'src/types';\nimport { getMolecularCdnUrl } from '../get-molecular-cdn-url';\n\nexport const fetchProvince = async (token?: string): Promise => {\n const molecularCdn = getMolecularCdnUrl();\n const requestToken = token ? token : 'VW_DDB_FRM_LEM_REC_LEM';\n\n try {\n const response = await Axios.get(`${molecularCdn}/request-dps-domain.php?token=${requestToken}&domain=Province`, {\n timeout: 10000,\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 molecularCdn = getMolecularCdnUrl();\n const requestToken = token ? token : 'VW_DDB_FRM_LEM_REC_LEM';\n\n try {\n const response = await Axios.get(\n `${molecularCdn}/request-dps-domain.php?token=${requestToken}&domain=Installation&relatedDomain=FRML_TXT_codVentaProvincia__c&relatedValue=${code}`,\n { timeout: 10000 }\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 molecularCdn = getMolecularCdnUrl();\n const requestToken = token ? token : 'VW_DDB_FRM_LEM_REC_LEM';\n\n try {\n const response = await Axios.get(`${molecularCdn}/request-dps-domain.php?token=${requestToken}&domain=Treatment`, {\n timeout: 10000,\n });\n return response.data;\n } catch (err) {\n reportErrorSentry(err);\n return null;\n }\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 oneformBFFCdn.urlOrigin + oneformBFFCdn.urlPath;\n};\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 fetch from 'cross-fetch';\nimport * as settings from 'src';\nimport { reportErrorSentry } from '../report-error-sentry';\nimport { getOneformBFFCdnUrl } from '../get-oneform-bff-cdn-url';\nimport { getOneformBFFCdnApiKey } from '../get-oneform-bff-cdn-api-key';\n\nexport const fetchMarketingCode = async (\n marketingCode: string\n) => {\n\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 { getMolecularCdnUrl } from '../get-molecular-cdn-url';\nimport { reportErrorSentry } from 'src/bff';\n\nexport interface CarlinesCitaResponse {\n content: SelectExtendedList[];\n}\n\nexport const getCarlinesCita = 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 { getDataUrl } from '../get-data-url';\nimport { CarlineBase } from 'src/types';\nimport { 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 { reportErrorSentry } from 'src/bff';\nimport { getDataUrlWithoutTenant } from '../get-data-url';\n\ninterface ColoresRequest {\n colores: Color[];\n}\n\nexport const getColors = async () => {\n const dataUrl = getDataUrlWithoutTenant();\n // const dataUrl = 'https://pre-data-01.volkswagen.es/api';\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 { reportErrorSentry } from 'src/bff';\nimport { DealersData } from 'src/types';\nimport { getDataUrl } from '../get-data-url';\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 { reportErrorSentry } from 'src/bff';\nimport { DomainAttributesValues, InstallationResponse } from 'src/types';\nimport { getMolecularCdnUrl } from '../get-molecular-cdn-url';\n\nexport const getInstallations = async (token: string): Promise<{ attributes: DomainAttributesValues[] }[]> => {\n try {\n const molecularCdnUrl = getMolecularCdnUrl();\n\n if (!molecularCdnUrl) {\n console.error('Error during fetch.');\n return null;\n }\n\n const installations: AxiosResponse = await axios.get(\n `${molecularCdnUrl}/request-dps-domain.php?token=${token}&domain=Installation`\n );\n\n return installations.data.content;\n } catch (error) {\n reportErrorSentry(error);\n return null;\n }\n};\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 axios, { AxiosResponse } from 'axios';\nimport { reportErrorSentry } from 'src/bff';\nimport { getMolecularUrl } from '../get-molecular-url';\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 token?: string\n): Promise<{ pincodeData: PincodeData; pincodeUsed: boolean; pincodeError: boolean }> => {\n try {\n const MOLECULAR_URL = getMolecularUrl();\n\n if (!token) {\n token = getPincodeToken(pincode);\n\n if (!token) {\n return { pincodeData: null, pincodeUsed: false, pincodeError: true };\n }\n }\n const pincodeData: AxiosResponse = await axios.get(\n `${MOLECULAR_URL}/request-dps-pincode.php?pincode=${pincode}&token=${token}`\n );\n\n if (pincodeData && pincodeData.data && pincodeData.data.status.code === 1) {\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 { reportErrorSentry } from 'src/bff';\nimport { CarlinesWithSalesgroups } from 'src/types';\nimport { getDataUrl } from '../get-data-url';\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 { reportErrorSentry } from 'src/bff';\nimport { modelCar } from 'src/types';\nimport { getDataUrl } from '../get-data-url';\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","import axios from 'axios';\nimport { getMolecularCdnUrl } from './get-molecular-cdn-url';\nimport { reportErrorSentry } from './report-error-sentry';\nconst handleErrorInRetrievingExternalConfig = (): null => {\n console.error('Error retrieving Volkswagen Vilma service config provider.');\n return null;\n};\n\nexport const getVilmaData = async (frame: string) => {\n const molecularUrl = getMolecularCdnUrl();\n let dataRes: any;\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}\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 { 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 React, { useEffect, useState } from 'react';\nimport { useFormContext } from 'react-hook-form';\nimport { useSelector } from 'react-redux';\nimport { useOneFormContext } from 'src/feature-app/OneForm';\nimport { OneFormState } from 'src/types';\nimport { MultipleCTASelection } from '.';\nimport { periodoContactoOptions } from 'src/feature-app/InputsValues';\n\n\nexport function PeriodoContacto() {\n const { errors } = useFormContext();\n const [errorContacto, setErrorPeriodoContacto] = useState(false);\n const [periodoContacto, setContacto] = useState(null);\n const { fields } = useSelector((state: OneFormState) => state.formData);\n const { error } = useOneFormContext();\n\n useEffect(() => {\n if (fields.periodoContacto) {\n setContacto(fields.periodoContacto);\n }\n }, []);\n\n useEffect(() => {\n if (error) {\n !periodoContacto ? setErrorPeriodoContacto(true) : setErrorPeriodoContacto(false);\n }\n }, [error]);\n\n useEffect(() => {\n if (errors.periodoContacto) {\n setErrorPeriodoContacto(true);\n } else {\n setErrorPeriodoContacto(false);\n }\n }, [errors]);\n\n return ;\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 ContainerWrap,\n CTA,\n Text,\n TextAppearance,\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 ContainerHorizontalAlignment,\n ContainerPadding,\n ContainerWrap,\n CTA,\n Spinner,\n styled,\n Text,\n TextAlignment,\n TextAppearance,\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 TextAppearance,\n styled,\n Container,\n ContainerGutter,\n ContainerWrap,\n CTA,\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 TextAppearance,\n TextColor\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 ContainerWrap,\n CTA,\n styled,\n Text,\n TextAppearance,\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 ContainerPadding,\n ContainerGutter,\n ContainerWrap,\n CTA,\n styled,\n Text,\n TextAppearance,\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\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 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","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 ContainerWrap,\n CTA,\n Text,\n TextAppearance,\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 ContainerWrap,\n CTA,\n Text,\n TextAppearance,\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, ContainerHorizontalAlignment, ContainerPadding, ContainerWrap, FixedWidthContainer, Layout, TextAlignment, TextAppearance, 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\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 ContainerHorizontalAlignment,\n ContainerPadding,\n ContainerWrap,\n CTA,\n Layout,\n styled,\n Text,\n TextAlignment,\n TextAppearance,\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 ContainerWrap,\n ContainerHorizontalAlignment,\n ContainerPadding,\n InputAppearance,\n Text,\n TextAppearance,\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}\n\nexport function DetalleMotivo(props: DetalleMotivoProps) {\n const { hideCTA, CTALabel, name, label, limitedCharacters, numberOfMaxLength, showRecomendation } = 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: 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: 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 }, [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 ContainerHorizontalAlignment,\n ContainerWrap,\n CTA,\n Text,\n TextAppearance,\n styled,\n TextAlignment,\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 ContainerWrap,\n CTA,\n Text,\n TextAlignment,\n TextAppearance,\n ContainerGutter,\n styled,\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).TXT_V_Installation_Data_Name__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, useRef} from 'react';\nimport { useDispatch } from 'react-redux';\nimport { styled, Text, TextAppearance } 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 ContainerWrap,\n ContainerPadding,\n TextAppearance,\n CTA,\n ContainerGutter,\n Layout,\n Breakpoints\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 & 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 } from 'src/bff';\nimport { SelectExtendedList } from './CarlineSelect';\nimport { SelectExtended } from './SelectExtended';\nimport { TOKEN_LEADS_COMERCIALES, TOKEN_LEADS_TURISMOS } from 'src/globals';\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 = await fetchTreatment(isComerciales ? TOKEN_LEADS_COMERCIALES : TOKEN_LEADS_TURISMOS);\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, TextAppearance } 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 TextAppearance,\n TextAlignment, \n BreakpointWrapper, \n Breakpoints,\n Container,\n ContainerPadding,\n CTA,\n ContainerHorizontalAlignment,\n Layout\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, TextAppearance, TextColor, ThemeProvider, 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, TextAppearance, TextColor, ThemeProvider, styled, CTA } 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 { 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 ContainerWrap,\n TextAppearance,\n Text,\n TextAlignment\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 { 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 { 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';\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, getCarlinesCita } 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}\n\nexport function CarlineSelect(props: CarlineSelectProps) {\n const { useCarline, notALayer, noPaddingTop, isCEMVenta, alphabetical } = 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 } = 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 getCarlinesCita(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 (isSalesGroupMode(faContent) || isMixedMode(faContent)) {\n updateCarlineCode(Number(carline.code), carline.name);\n } else {\n updateCarlineCode(Number(carline.code));\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\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 TextAppearance,\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 TextAppearance,\n ContainerGutter,\n ContainerWrap\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 ContainerWrap,\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, ContainerWrap, TextAppearance } from '@volkswagen-onehub/components-core';\nimport { useSelector, useStore } from 'react-redux';\nimport { OneFormState } from 'src/types';\nimport { useDispatch } from 'react-redux';\nimport { useFeatureAppEnvironment, useFeatureServices, useOneFormContext, useTrackingManager } from 'src/feature-app';\nimport { useFormContext } from 'react-hook-form';\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) {\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 /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;\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","// This file is a workaround for a bug in web browsers' \"native\"\n// ES6 importing system which is uncapable of importing \"*.json\" files.\n// https://github.com/catamphetamine/libphonenumber-js/issues/239\nexport default {\"version\":4,\"country_calling_codes\":{\"1\":[\"US\",\"AG\",\"AI\",\"AS\",\"BB\",\"BM\",\"BS\",\"CA\",\"DM\",\"DO\",\"GD\",\"GU\",\"JM\",\"KN\",\"KY\",\"LC\",\"MP\",\"MS\",\"PR\",\"SX\",\"TC\",\"TT\",\"VC\",\"VG\",\"VI\"],\"7\":[\"RU\",\"KZ\"],\"20\":[\"EG\"],\"27\":[\"ZA\"],\"30\":[\"GR\"],\"31\":[\"NL\"],\"32\":[\"BE\"],\"33\":[\"FR\"],\"34\":[\"ES\"],\"36\":[\"HU\"],\"39\":[\"IT\",\"VA\"],\"40\":[\"RO\"],\"41\":[\"CH\"],\"43\":[\"AT\"],\"44\":[\"GB\",\"GG\",\"IM\",\"JE\"],\"45\":[\"DK\"],\"46\":[\"SE\"],\"47\":[\"NO\",\"SJ\"],\"48\":[\"PL\"],\"49\":[\"DE\"],\"51\":[\"PE\"],\"52\":[\"MX\"],\"53\":[\"CU\"],\"54\":[\"AR\"],\"55\":[\"BR\"],\"56\":[\"CL\"],\"57\":[\"CO\"],\"58\":[\"VE\"],\"60\":[\"MY\"],\"61\":[\"AU\",\"CC\",\"CX\"],\"62\":[\"ID\"],\"63\":[\"PH\"],\"64\":[\"NZ\"],\"65\":[\"SG\"],\"66\":[\"TH\"],\"81\":[\"JP\"],\"82\":[\"KR\"],\"84\":[\"VN\"],\"86\":[\"CN\"],\"90\":[\"TR\"],\"91\":[\"IN\"],\"92\":[\"PK\"],\"93\":[\"AF\"],\"94\":[\"LK\"],\"95\":[\"MM\"],\"98\":[\"IR\"],\"211\":[\"SS\"],\"212\":[\"MA\",\"EH\"],\"213\":[\"DZ\"],\"216\":[\"TN\"],\"218\":[\"LY\"],\"220\":[\"GM\"],\"221\":[\"SN\"],\"222\":[\"MR\"],\"223\":[\"ML\"],\"224\":[\"GN\"],\"225\":[\"CI\"],\"226\":[\"BF\"],\"227\":[\"NE\"],\"228\":[\"TG\"],\"229\":[\"BJ\"],\"230\":[\"MU\"],\"231\":[\"LR\"],\"232\":[\"SL\"],\"233\":[\"GH\"],\"234\":[\"NG\"],\"235\":[\"TD\"],\"236\":[\"CF\"],\"237\":[\"CM\"],\"238\":[\"CV\"],\"239\":[\"ST\"],\"240\":[\"GQ\"],\"241\":[\"GA\"],\"242\":[\"CG\"],\"243\":[\"CD\"],\"244\":[\"AO\"],\"245\":[\"GW\"],\"246\":[\"IO\"],\"247\":[\"AC\"],\"248\":[\"SC\"],\"249\":[\"SD\"],\"250\":[\"RW\"],\"251\":[\"ET\"],\"252\":[\"SO\"],\"253\":[\"DJ\"],\"254\":[\"KE\"],\"255\":[\"TZ\"],\"256\":[\"UG\"],\"257\":[\"BI\"],\"258\":[\"MZ\"],\"260\":[\"ZM\"],\"261\":[\"MG\"],\"262\":[\"RE\",\"YT\"],\"263\":[\"ZW\"],\"264\":[\"NA\"],\"265\":[\"MW\"],\"266\":[\"LS\"],\"267\":[\"BW\"],\"268\":[\"SZ\"],\"269\":[\"KM\"],\"290\":[\"SH\",\"TA\"],\"291\":[\"ER\"],\"297\":[\"AW\"],\"298\":[\"FO\"],\"299\":[\"GL\"],\"350\":[\"GI\"],\"351\":[\"PT\"],\"352\":[\"LU\"],\"353\":[\"IE\"],\"354\":[\"IS\"],\"355\":[\"AL\"],\"356\":[\"MT\"],\"357\":[\"CY\"],\"358\":[\"FI\",\"AX\"],\"359\":[\"BG\"],\"370\":[\"LT\"],\"371\":[\"LV\"],\"372\":[\"EE\"],\"373\":[\"MD\"],\"374\":[\"AM\"],\"375\":[\"BY\"],\"376\":[\"AD\"],\"377\":[\"MC\"],\"378\":[\"SM\"],\"380\":[\"UA\"],\"381\":[\"RS\"],\"382\":[\"ME\"],\"383\":[\"XK\"],\"385\":[\"HR\"],\"386\":[\"SI\"],\"387\":[\"BA\"],\"389\":[\"MK\"],\"420\":[\"CZ\"],\"421\":[\"SK\"],\"423\":[\"LI\"],\"500\":[\"FK\"],\"501\":[\"BZ\"],\"502\":[\"GT\"],\"503\":[\"SV\"],\"504\":[\"HN\"],\"505\":[\"NI\"],\"506\":[\"CR\"],\"507\":[\"PA\"],\"508\":[\"PM\"],\"509\":[\"HT\"],\"590\":[\"GP\",\"BL\",\"MF\"],\"591\":[\"BO\"],\"592\":[\"GY\"],\"593\":[\"EC\"],\"594\":[\"GF\"],\"595\":[\"PY\"],\"596\":[\"MQ\"],\"597\":[\"SR\"],\"598\":[\"UY\"],\"599\":[\"CW\",\"BQ\"],\"670\":[\"TL\"],\"672\":[\"NF\"],\"673\":[\"BN\"],\"674\":[\"NR\"],\"675\":[\"PG\"],\"676\":[\"TO\"],\"677\":[\"SB\"],\"678\":[\"VU\"],\"679\":[\"FJ\"],\"680\":[\"PW\"],\"681\":[\"WF\"],\"682\":[\"CK\"],\"683\":[\"NU\"],\"685\":[\"WS\"],\"686\":[\"KI\"],\"687\":[\"NC\"],\"688\":[\"TV\"],\"689\":[\"PF\"],\"690\":[\"TK\"],\"691\":[\"FM\"],\"692\":[\"MH\"],\"850\":[\"KP\"],\"852\":[\"HK\"],\"853\":[\"MO\"],\"855\":[\"KH\"],\"856\":[\"LA\"],\"880\":[\"BD\"],\"886\":[\"TW\"],\"960\":[\"MV\"],\"961\":[\"LB\"],\"962\":[\"JO\"],\"963\":[\"SY\"],\"964\":[\"IQ\"],\"965\":[\"KW\"],\"966\":[\"SA\"],\"967\":[\"YE\"],\"968\":[\"OM\"],\"970\":[\"PS\"],\"971\":[\"AE\"],\"972\":[\"IL\"],\"973\":[\"BH\"],\"974\":[\"QA\"],\"975\":[\"BT\"],\"976\":[\"MN\"],\"977\":[\"NP\"],\"992\":[\"TJ\"],\"993\":[\"TM\"],\"994\":[\"AZ\"],\"995\":[\"GE\"],\"996\":[\"KG\"],\"998\":[\"UZ\"]},\"countries\":{\"AC\":[\"247\",\"00\",\"(?:[01589]\\\\d|[46])\\\\d{4}\",[5,6]],\"AD\":[\"376\",\"00\",\"(?:1|6\\\\d)\\\\d{7}|[135-9]\\\\d{5}\",[6,8,9],[[\"(\\\\d{3})(\\\\d{3})\",\"$1 $2\",[\"[135-9]\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"1\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"6\"]]]],\"AE\":[\"971\",\"00\",\"(?:[4-7]\\\\d|9[0-689])\\\\d{7}|800\\\\d{2,9}|[2-4679]\\\\d{7}\",[5,6,7,8,9,10,11,12],[[\"(\\\\d{3})(\\\\d{2,9})\",\"$1 $2\",[\"60|8\"]],[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[236]|[479][2-8]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d)(\\\\d{5})\",\"$1 $2 $3\",[\"[479]\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"5\"],\"0$1\"]],\"0\"],\"AF\":[\"93\",\"00\",\"[2-7]\\\\d{8}\",[9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[2-7]\"],\"0$1\"]],\"0\"],\"AG\":[\"1\",\"011\",\"(?:268|[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"([457]\\\\d{6})$|1\",\"268$1\",0,\"268\"],\"AI\":[\"1\",\"011\",\"(?:264|[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"([2457]\\\\d{6})$|1\",\"264$1\",0,\"264\"],\"AL\":[\"355\",\"00\",\"(?:700\\\\d\\\\d|900)\\\\d{3}|8\\\\d{5,7}|(?:[2-5]|6\\\\d)\\\\d{7}\",[6,7,8,9],[[\"(\\\\d{3})(\\\\d{3,4})\",\"$1 $2\",[\"80|9\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"4[2-6]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[2358][2-5]|4\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"[23578]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"6\"],\"0$1\"]],\"0\"],\"AM\":[\"374\",\"00\",\"(?:[1-489]\\\\d|55|60|77)\\\\d{6}\",[8],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"[89]0\"],\"0 $1\"],[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"2|3[12]\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"1|47\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"[3-9]\"],\"0$1\"]],\"0\"],\"AO\":[\"244\",\"00\",\"[29]\\\\d{8}\",[9],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[29]\"]]]],\"AR\":[\"54\",\"00\",\"(?:11|[89]\\\\d\\\\d)\\\\d{8}|[2368]\\\\d{9}\",[10,11],[[\"(\\\\d{4})(\\\\d{2})(\\\\d{4})\",\"$1 $2-$3\",[\"2(?:2[024-9]|3[0-59]|47|6[245]|9[02-8])|3(?:3[28]|4[03-9]|5[2-46-8]|7[1-578]|8[2-9])\",\"2(?:[23]02|6(?:[25]|4[6-8])|9(?:[02356]|4[02568]|72|8[23]))|3(?:3[28]|4(?:[04679]|3[5-8]|5[4-68]|8[2379])|5(?:[2467]|3[237]|8[2-5])|7[1-578]|8(?:[2469]|3[2578]|5[4-8]|7[36-8]|8[5-8]))|2(?:2[24-9]|3[1-59]|47)\",\"2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3[78]|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8[23])|7[1-578]|8(?:[2469]|3[278]|5[56][46]|86[3-6]))|2(?:2[24-9]|3[1-59]|47)|38(?:[58][78]|7[378])|3(?:4[35][56]|58[45]|8(?:[38]5|54|76))[4-6]\",\"2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3(?:5(?:4[0-25689]|[56])|[78])|58|8[2379])|5(?:[2467]|3[237]|8(?:[23]|4(?:[45]|60)|5(?:4[0-39]|5|64)))|7[1-578]|8(?:[2469]|3[278]|54(?:4|5[13-7]|6[89])|86[3-6]))|2(?:2[24-9]|3[1-59]|47)|38(?:[58][78]|7[378])|3(?:454|85[56])[46]|3(?:4(?:36|5[56])|8(?:[38]5|76))[4-6]\"],\"0$1\",1],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2-$3\",[\"1\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"[68]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2-$3\",[\"[23]\"],\"0$1\",1],[\"(\\\\d)(\\\\d{4})(\\\\d{2})(\\\\d{4})\",\"$2 15-$3-$4\",[\"9(?:2[2-469]|3[3-578])\",\"9(?:2(?:2[024-9]|3[0-59]|47|6[245]|9[02-8])|3(?:3[28]|4[03-9]|5[2-46-8]|7[1-578]|8[2-9]))\",\"9(?:2(?:[23]02|6(?:[25]|4[6-8])|9(?:[02356]|4[02568]|72|8[23]))|3(?:3[28]|4(?:[04679]|3[5-8]|5[4-68]|8[2379])|5(?:[2467]|3[237]|8[2-5])|7[1-578]|8(?:[2469]|3[2578]|5[4-8]|7[36-8]|8[5-8])))|92(?:2[24-9]|3[1-59]|47)\",\"9(?:2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3[78]|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8[23])|7[1-578]|8(?:[2469]|3[278]|5(?:[56][46]|[78])|7[378]|8(?:6[3-6]|[78]))))|92(?:2[24-9]|3[1-59]|47)|93(?:4[35][56]|58[45]|8(?:[38]5|54|76))[4-6]\",\"9(?:2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3(?:5(?:4[0-25689]|[56])|[78])|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8(?:[23]|4(?:[45]|60)|5(?:4[0-39]|5|64)))|7[1-578]|8(?:[2469]|3[278]|5(?:4(?:4|5[13-7]|6[89])|[56][46]|[78])|7[378]|8(?:6[3-6]|[78]))))|92(?:2[24-9]|3[1-59]|47)|93(?:4(?:36|5[56])|8(?:[38]5|76))[4-6]\"],\"0$1\",0,\"$1 $2 $3-$4\"],[\"(\\\\d)(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$2 15-$3-$4\",[\"91\"],\"0$1\",0,\"$1 $2 $3-$4\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{5})\",\"$1-$2-$3\",[\"8\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$2 15-$3-$4\",[\"9\"],\"0$1\",0,\"$1 $2 $3-$4\"]],\"0\",0,\"0?(?:(11|2(?:2(?:02?|[13]|2[13-79]|4[1-6]|5[2457]|6[124-8]|7[1-4]|8[13-6]|9[1267])|3(?:02?|1[467]|2[03-6]|3[13-8]|[49][2-6]|5[2-8]|[67])|4(?:7[3-578]|9)|6(?:[0136]|2[24-6]|4[6-8]?|5[15-8])|80|9(?:0[1-3]|[19]|2\\\\d|3[1-6]|4[02568]?|5[2-4]|6[2-46]|72?|8[23]?))|3(?:3(?:2[79]|6|8[2578])|4(?:0[0-24-9]|[12]|3[5-8]?|4[24-7]|5[4-68]?|6[02-9]|7[126]|8[2379]?|9[1-36-8])|5(?:1|2[1245]|3[237]?|4[1-46-9]|6[2-4]|7[1-6]|8[2-5]?)|6[24]|7(?:[069]|1[1568]|2[15]|3[145]|4[13]|5[14-8]|7[2-57]|8[126])|8(?:[01]|2[15-7]|3[2578]?|4[13-6]|5[4-8]?|6[1-357-9]|7[36-8]?|8[5-8]?|9[124])))15)?\",\"9$1\"],\"AS\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|684|900)\\\\d{7}\",[10],0,\"1\",0,\"([267]\\\\d{6})$|1\",\"684$1\",0,\"684\"],\"AT\":[\"43\",\"00\",\"1\\\\d{3,12}|2\\\\d{6,12}|43(?:(?:0\\\\d|5[02-9])\\\\d{3,9}|2\\\\d{4,5}|[3467]\\\\d{4}|8\\\\d{4,6}|9\\\\d{4,7})|5\\\\d{4,12}|8\\\\d{7,12}|9\\\\d{8,12}|(?:[367]\\\\d|4[0-24-9])\\\\d{4,11}\",[4,5,6,7,8,9,10,11,12,13],[[\"(\\\\d)(\\\\d{3,12})\",\"$1 $2\",[\"1(?:11|[2-9])\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})\",\"$1 $2\",[\"517\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3,5})\",\"$1 $2\",[\"5[079]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3,10})\",\"$1 $2\",[\"(?:31|4)6|51|6(?:5[0-3579]|[6-9])|7(?:20|32|8)|[89]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3,9})\",\"$1 $2\",[\"[2-467]|5[2-6]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"5\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4,7})\",\"$1 $2 $3\",[\"5\"],\"0$1\"]],\"0\"],\"AU\":[\"61\",\"001[14-689]|14(?:1[14]|34|4[17]|[56]6|7[47]|88)0011\",\"1(?:[0-79]\\\\d{7}(?:\\\\d(?:\\\\d{2})?)?|8[0-24-9]\\\\d{7})|[2-478]\\\\d{8}|1\\\\d{4,7}\",[5,6,7,8,9,10,12],[[\"(\\\\d{2})(\\\\d{3,4})\",\"$1 $2\",[\"16\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2,4})\",\"$1 $2 $3\",[\"16\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"14|4\"],\"0$1\"],[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"[2378]\"],\"(0$1)\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1(?:30|[89])\"]]],\"0\",0,\"(183[12])|0\",0,0,0,[[\"(?:(?:2(?:[0-26-9]\\\\d|3[0-8]|4[02-9]|5[0135-9])|3(?:[0-3589]\\\\d|4[0-578]|6[1-9]|7[0-35-9])|7(?:[013-57-9]\\\\d|2[0-8]))\\\\d{3}|8(?:51(?:0(?:0[03-9]|[12479]\\\\d|3[2-9]|5[0-8]|6[1-9]|8[0-7])|1(?:[0235689]\\\\d|1[0-69]|4[0-589]|7[0-47-9])|2(?:0[0-79]|[18][13579]|2[14-9]|3[0-46-9]|[4-6]\\\\d|7[89]|9[0-4]))|(?:6[0-8]|[78]\\\\d)\\\\d{3}|9(?:[02-9]\\\\d{3}|1(?:(?:[0-58]\\\\d|6[0135-9])\\\\d|7(?:0[0-24-9]|[1-9]\\\\d)|9(?:[0-46-9]\\\\d|5[0-79])))))\\\\d{3}\",[9]],[\"4(?:(?:79|94)[01]|83[0-389])\\\\d{5}|4(?:[0-3]\\\\d|4[047-9]|5[0-25-9]|6[016-9]|7[02-8]|8[0-24-9]|9[0-37-9])\\\\d{6}\",[9]],[\"180(?:0\\\\d{3}|2)\\\\d{3}\",[7,10]],[\"190[0-26]\\\\d{6}\",[10]],0,0,0,[\"163\\\\d{2,6}\",[5,6,7,8,9]],[\"14(?:5(?:1[0458]|[23][458])|71\\\\d)\\\\d{4}\",[9]],[\"13(?:00\\\\d{6}(?:\\\\d{2})?|45[0-4]\\\\d{3})|13\\\\d{4}\",[6,8,10,12]]],\"0011\"],\"AW\":[\"297\",\"00\",\"(?:[25-79]\\\\d\\\\d|800)\\\\d{4}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[25-9]\"]]]],\"AX\":[\"358\",\"00|99(?:[01469]|5(?:[14]1|3[23]|5[59]|77|88|9[09]))\",\"2\\\\d{4,9}|35\\\\d{4,5}|(?:60\\\\d\\\\d|800)\\\\d{4,6}|7\\\\d{5,11}|(?:[14]\\\\d|3[0-46-9]|50)\\\\d{4,8}\",[5,6,7,8,9,10,11,12],0,\"0\",0,0,0,0,\"18\",0,\"00\"],\"AZ\":[\"994\",\"00\",\"365\\\\d{6}|(?:[124579]\\\\d|60|88)\\\\d{7}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"90\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"1[28]|2|365|46\",\"1[28]|2|365[45]|46\",\"1[28]|2|365(?:4|5[02])|46\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[13-9]\"],\"0$1\"]],\"0\"],\"BA\":[\"387\",\"00\",\"6\\\\d{8}|(?:[35689]\\\\d|49|70)\\\\d{6}\",[8,9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"6[1-3]|[7-9]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2-$3\",[\"[3-5]|6[56]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"6\"],\"0$1\"]],\"0\"],\"BB\":[\"1\",\"011\",\"(?:246|[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-9]\\\\d{6})$|1\",\"246$1\",0,\"246\"],\"BD\":[\"880\",\"00\",\"[1-469]\\\\d{9}|8[0-79]\\\\d{7,8}|[2-79]\\\\d{8}|[2-9]\\\\d{7}|[3-9]\\\\d{6}|[57-9]\\\\d{5}\",[6,7,8,9,10],[[\"(\\\\d{2})(\\\\d{4,6})\",\"$1-$2\",[\"31[5-8]|[459]1\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3,7})\",\"$1-$2\",[\"3(?:[67]|8[013-9])|4(?:6[168]|7|[89][18])|5(?:6[128]|9)|6(?:[15]|28|4[14])|7[2-589]|8(?:0[014-9]|[12])|9[358]|(?:3[2-5]|4[235]|5[2-578]|6[0389]|76|8[3-7]|9[24])1|(?:44|66)[01346-9]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3,6})\",\"$1-$2\",[\"[13-9]|22\"],\"0$1\"],[\"(\\\\d)(\\\\d{7,8})\",\"$1-$2\",[\"2\"],\"0$1\"]],\"0\"],\"BE\":[\"32\",\"00\",\"4\\\\d{8}|[1-9]\\\\d{7}\",[8,9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"(?:80|9)0\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[239]|4[23]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[15-8]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"4\"],\"0$1\"]],\"0\"],\"BF\":[\"226\",\"00\",\"[025-7]\\\\d{7}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[025-7]\"]]]],\"BG\":[\"359\",\"00\",\"00800\\\\d{7}|[2-7]\\\\d{6,7}|[89]\\\\d{6,8}|2\\\\d{5}\",[6,7,8,9,12],[[\"(\\\\d)(\\\\d)(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"2\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"43[1-6]|70[1-9]\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"2\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2,3})\",\"$1 $2 $3\",[\"[356]|4[124-7]|7[1-9]|8[1-6]|9[1-7]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"(?:70|8)0\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{2})\",\"$1 $2 $3\",[\"43[1-7]|7\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[48]|9[08]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"9\"],\"0$1\"]],\"0\"],\"BH\":[\"973\",\"00\",\"[136-9]\\\\d{7}\",[8],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[13679]|8[02-4679]\"]]]],\"BI\":[\"257\",\"00\",\"(?:[267]\\\\d|31)\\\\d{6}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[2367]\"]]]],\"BJ\":[\"229\",\"00\",\"[24-689]\\\\d{7}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[24-689]\"]]]],\"BL\":[\"590\",\"00\",\"590\\\\d{6}|(?:69|80|9\\\\d)\\\\d{7}\",[9],0,\"0\",0,0,0,0,0,[[\"590(?:2[7-9]|3[3-7]|5[12]|87)\\\\d{4}\"],[\"69(?:0\\\\d\\\\d|1(?:2[2-9]|3[0-5]))\\\\d{4}\"],[\"80[0-5]\\\\d{6}\"],0,0,0,0,0,[\"9(?:(?:395|76[018])\\\\d|475[0-5])\\\\d{4}\"]]],\"BM\":[\"1\",\"011\",\"(?:441|[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-9]\\\\d{6})$|1\",\"441$1\",0,\"441\"],\"BN\":[\"673\",\"00\",\"[2-578]\\\\d{6}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[2-578]\"]]]],\"BO\":[\"591\",\"00(?:1\\\\d)?\",\"(?:[2-467]\\\\d\\\\d|8001)\\\\d{5}\",[8,9],[[\"(\\\\d)(\\\\d{7})\",\"$1 $2\",[\"[23]|4[46]\"]],[\"(\\\\d{8})\",\"$1\",[\"[67]\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"]]],\"0\",0,\"0(1\\\\d)?\"],\"BQ\":[\"599\",\"00\",\"(?:[34]1|7\\\\d)\\\\d{5}\",[7],0,0,0,0,0,0,\"[347]\"],\"BR\":[\"55\",\"00(?:1[245]|2[1-35]|31|4[13]|[56]5|99)\",\"(?:[1-46-9]\\\\d\\\\d|5(?:[0-46-9]\\\\d|5[0-46-9]))\\\\d{8}|[1-9]\\\\d{9}|[3589]\\\\d{8}|[34]\\\\d{7}\",[8,9,10,11],[[\"(\\\\d{4})(\\\\d{4})\",\"$1-$2\",[\"300|4(?:0[02]|37)\",\"4(?:02|37)0|[34]00\"]],[\"(\\\\d{3})(\\\\d{2,3})(\\\\d{4})\",\"$1 $2 $3\",[\"(?:[358]|90)0\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2-$3\",[\"(?:[14689][1-9]|2[12478]|3[1-578]|5[13-5]|7[13-579])[2-57]\"],\"($1)\"],[\"(\\\\d{2})(\\\\d{5})(\\\\d{4})\",\"$1 $2-$3\",[\"[16][1-9]|[2-57-9]\"],\"($1)\"]],\"0\",0,\"(?:0|90)(?:(1[245]|2[1-35]|31|4[13]|[56]5|99)(\\\\d{10,11}))?\",\"$2\"],\"BS\":[\"1\",\"011\",\"(?:242|[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"([3-8]\\\\d{6})$|1\",\"242$1\",0,\"242\"],\"BT\":[\"975\",\"00\",\"[17]\\\\d{7}|[2-8]\\\\d{6}\",[7,8],[[\"(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[2-68]|7[246]\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"1[67]|7\"]]]],\"BW\":[\"267\",\"00\",\"(?:0800|(?:[37]|800)\\\\d)\\\\d{6}|(?:[2-6]\\\\d|90)\\\\d{5}\",[7,8,10],[[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"90\"]],[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[24-6]|3[15-9]\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[37]\"]],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"0\"]],[\"(\\\\d{3})(\\\\d{4})(\\\\d{3})\",\"$1 $2 $3\",[\"8\"]]]],\"BY\":[\"375\",\"810\",\"(?:[12]\\\\d|33|44|902)\\\\d{7}|8(?:0[0-79]\\\\d{5,7}|[1-7]\\\\d{9})|8(?:1[0-489]|[5-79]\\\\d)\\\\d{7}|8[1-79]\\\\d{6,7}|8[0-79]\\\\d{5}|8\\\\d{5}\",[6,7,8,9,10,11],[[\"(\\\\d{3})(\\\\d{3})\",\"$1 $2\",[\"800\"],\"8 $1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2,4})\",\"$1 $2 $3\",[\"800\"],\"8 $1\"],[\"(\\\\d{4})(\\\\d{2})(\\\\d{3})\",\"$1 $2-$3\",[\"1(?:5[169]|6[3-5]|7[179])|2(?:1[35]|2[34]|3[3-5])\",\"1(?:5[169]|6(?:3[1-3]|4|5[125])|7(?:1[3-9]|7[0-24-6]|9[2-7]))|2(?:1[35]|2[34]|3[3-5])\"],\"8 0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2-$3-$4\",[\"1(?:[56]|7[467])|2[1-3]\"],\"8 0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2-$3-$4\",[\"[1-4]\"],\"8 0$1\"],[\"(\\\\d{3})(\\\\d{3,4})(\\\\d{4})\",\"$1 $2 $3\",[\"[89]\"],\"8 $1\"]],\"8\",0,\"0|80?\",0,0,0,0,\"8~10\"],\"BZ\":[\"501\",\"00\",\"(?:0800\\\\d|[2-8])\\\\d{6}\",[7,11],[[\"(\\\\d{3})(\\\\d{4})\",\"$1-$2\",[\"[2-8]\"]],[\"(\\\\d)(\\\\d{3})(\\\\d{4})(\\\\d{3})\",\"$1-$2-$3-$4\",[\"0\"]]]],\"CA\":[\"1\",\"011\",\"(?:[2-8]\\\\d|90)\\\\d{8}|3\\\\d{6}\",[7,10],0,\"1\",0,0,0,0,0,[[\"(?:2(?:04|[23]6|[48]9|50|63)|3(?:06|43|54|6[578]|82)|4(?:03|1[68]|[26]8|3[178]|50|74)|5(?:06|1[49]|48|79|8[147])|6(?:04|[18]3|39|47|72)|7(?:0[59]|42|53|78|8[02])|8(?:[06]7|19|25|73)|90[25])[2-9]\\\\d{6}\",[10]],[\"\",[10]],[\"8(?:00|33|44|55|66|77|88)[2-9]\\\\d{6}\",[10]],[\"900[2-9]\\\\d{6}\",[10]],[\"52(?:3(?:[2-46-9][02-9]\\\\d|5(?:[02-46-9]\\\\d|5[0-46-9]))|4(?:[2-478][02-9]\\\\d|5(?:[034]\\\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\\\d)|9(?:[05-9]\\\\d|2[0-5]|49)))\\\\d{4}|52[34][2-9]1[02-9]\\\\d{4}|(?:5(?:00|2[125-9]|33|44|66|77|88)|622)[2-9]\\\\d{6}\",[10]],0,[\"310\\\\d{4}\",[7]],0,[\"600[2-9]\\\\d{6}\",[10]]]],\"CC\":[\"61\",\"001[14-689]|14(?:1[14]|34|4[17]|[56]6|7[47]|88)0011\",\"1(?:[0-79]\\\\d{8}(?:\\\\d{2})?|8[0-24-9]\\\\d{7})|[148]\\\\d{8}|1\\\\d{5,7}\",[6,7,8,9,10,12],0,\"0\",0,\"([59]\\\\d{7})$|0\",\"8$1\",0,0,[[\"8(?:51(?:0(?:02|31|60|89)|1(?:18|76)|223)|91(?:0(?:1[0-2]|29)|1(?:[28]2|50|79)|2(?:10|64)|3(?:[06]8|22)|4[29]8|62\\\\d|70[23]|959))\\\\d{3}\",[9]],[\"4(?:(?:79|94)[01]|83[0-389])\\\\d{5}|4(?:[0-3]\\\\d|4[047-9]|5[0-25-9]|6[016-9]|7[02-8]|8[0-24-9]|9[0-37-9])\\\\d{6}\",[9]],[\"180(?:0\\\\d{3}|2)\\\\d{3}\",[7,10]],[\"190[0-26]\\\\d{6}\",[10]],0,0,0,0,[\"14(?:5(?:1[0458]|[23][458])|71\\\\d)\\\\d{4}\",[9]],[\"13(?:00\\\\d{6}(?:\\\\d{2})?|45[0-4]\\\\d{3})|13\\\\d{4}\",[6,8,10,12]]],\"0011\"],\"CD\":[\"243\",\"00\",\"[189]\\\\d{8}|[1-68]\\\\d{6}\",[7,9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"88\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"[1-6]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[89]\"],\"0$1\"]],\"0\"],\"CF\":[\"236\",\"00\",\"(?:[27]\\\\d{3}|8776)\\\\d{4}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[278]\"]]]],\"CG\":[\"242\",\"00\",\"222\\\\d{6}|(?:0\\\\d|80)\\\\d{7}\",[9],[[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[02]\"]]]],\"CH\":[\"41\",\"00\",\"8\\\\d{11}|[2-9]\\\\d{8}\",[9],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"8[047]|90\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[2-79]|81\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4 $5\",[\"8\"],\"0$1\"]],\"0\"],\"CI\":[\"225\",\"00\",\"[02]\\\\d{9}\",[10],[[\"(\\\\d{2})(\\\\d{2})(\\\\d)(\\\\d{5})\",\"$1 $2 $3 $4\",[\"2\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3 $4\",[\"0\"]]]],\"CK\":[\"682\",\"00\",\"[2-578]\\\\d{4}\",[5],[[\"(\\\\d{2})(\\\\d{3})\",\"$1 $2\",[\"[2-578]\"]]]],\"CL\":[\"56\",\"(?:0|1(?:1[0-69]|2[02-5]|5[13-58]|69|7[0167]|8[018]))0\",\"12300\\\\d{6}|6\\\\d{9,10}|[2-9]\\\\d{8}\",[9,10,11],[[\"(\\\\d{5})(\\\\d{4})\",\"$1 $2\",[\"219\",\"2196\"],\"($1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"44\"]],[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"2[1-36]\"],\"($1)\"],[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"9[2-9]\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"3[2-5]|[47]|5[1-3578]|6[13-57]|8(?:0[1-9]|[1-9])\"],\"($1)\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"60|8\"]],[\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"60\"]]]],\"CM\":[\"237\",\"00\",\"[26]\\\\d{8}|88\\\\d{6,7}\",[8,9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"88\"]],[\"(\\\\d)(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4 $5\",[\"[26]|88\"]]]],\"CN\":[\"86\",\"00|1(?:[12]\\\\d|79)\\\\d\\\\d00\",\"1[127]\\\\d{8,9}|2\\\\d{9}(?:\\\\d{2})?|[12]\\\\d{6,7}|86\\\\d{6}|(?:1[03-689]\\\\d|6)\\\\d{7,9}|(?:[3-579]\\\\d|8[0-57-9])\\\\d{6,9}\",[7,8,9,10,11,12],[[\"(\\\\d{2})(\\\\d{5,6})\",\"$1 $2\",[\"(?:10|2[0-57-9])[19]\",\"(?:10|2[0-57-9])(?:10|9[56])\",\"10(?:10|9[56])|2[0-57-9](?:100|9[56])\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{5,6})\",\"$1 $2\",[\"3(?:[157]|35|49|9[1-68])|4(?:[17]|2[179]|6[47-9]|8[23])|5(?:[1357]|2[37]|4[36]|6[1-46]|80)|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]|4[13]|5[1-5])|(?:4[35]|59|85)[1-9]\",\"(?:3(?:[157]\\\\d|35|49|9[1-68])|4(?:[17]\\\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\\\d|4[13]|5[1-5]))[19]\",\"85[23](?:10|95)|(?:3(?:[157]\\\\d|35|49|9[1-68])|4(?:[17]\\\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\\\d|5[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\\\d|4[13]|5[1-5]))(?:10|9[56])\",\"85[23](?:100|95)|(?:3(?:[157]\\\\d|35|49|9[1-68])|4(?:[17]\\\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\\\d|5[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\\\d|4[13]|5[1-5]))(?:100|9[56])\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"(?:4|80)0\"]],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"10|2(?:[02-57-9]|1[1-9])\",\"10|2(?:[02-57-9]|1[1-9])\",\"10[0-79]|2(?:[02-57-9]|1[1-79])|(?:10|21)8(?:0[1-9]|[1-9])\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"3(?:[3-59]|7[02-68])|4(?:[26-8]|3[3-9]|5[2-9])|5(?:3[03-9]|[468]|7[028]|9[2-46-9])|6|7(?:[0-247]|3[04-9]|5[0-4689]|6[2368])|8(?:[1-358]|9[1-7])|9(?:[013479]|5[1-5])|(?:[34]1|55|79|87)[02-9]\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{7,8})\",\"$1 $2\",[\"9\"]],[\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"80\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"[3-578]\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"1[3-9]\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3 $4\",[\"[12]\"],\"0$1\",1]],\"0\",0,\"(1(?:[12]\\\\d|79)\\\\d\\\\d)|0\",0,0,0,0,\"00\"],\"CO\":[\"57\",\"00(?:4(?:[14]4|56)|[579])\",\"(?:60\\\\d\\\\d|9101)\\\\d{6}|(?:1\\\\d|3)\\\\d{9}\",[10,11],[[\"(\\\\d{3})(\\\\d{7})\",\"$1 $2\",[\"6\"],\"($1)\"],[\"(\\\\d{3})(\\\\d{7})\",\"$1 $2\",[\"3[0-357]|91\"]],[\"(\\\\d)(\\\\d{3})(\\\\d{7})\",\"$1-$2-$3\",[\"1\"],\"0$1\",0,\"$1 $2 $3\"]],\"0\",0,\"0(4(?:[14]4|56)|[579])?\"],\"CR\":[\"506\",\"00\",\"(?:8\\\\d|90)\\\\d{8}|(?:[24-8]\\\\d{3}|3005)\\\\d{4}\",[8,10],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[2-7]|8[3-9]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"[89]\"]]],0,0,\"(19(?:0[0-2468]|1[09]|20|66|77|99))\"],\"CU\":[\"53\",\"119\",\"[27]\\\\d{6,7}|[34]\\\\d{5,7}|63\\\\d{6}|(?:5|8\\\\d\\\\d)\\\\d{7}\",[6,7,8,10],[[\"(\\\\d{2})(\\\\d{4,6})\",\"$1 $2\",[\"2[1-4]|[34]\"],\"(0$1)\"],[\"(\\\\d)(\\\\d{6,7})\",\"$1 $2\",[\"7\"],\"(0$1)\"],[\"(\\\\d)(\\\\d{7})\",\"$1 $2\",[\"[56]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{7})\",\"$1 $2\",[\"8\"],\"0$1\"]],\"0\"],\"CV\":[\"238\",\"0\",\"(?:[2-59]\\\\d\\\\d|800)\\\\d{4}\",[7],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"[2-589]\"]]]],\"CW\":[\"599\",\"00\",\"(?:[34]1|60|(?:7|9\\\\d)\\\\d)\\\\d{5}\",[7,8],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[3467]\"]],[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"9[4-8]\"]]],0,0,0,0,0,\"[69]\"],\"CX\":[\"61\",\"001[14-689]|14(?:1[14]|34|4[17]|[56]6|7[47]|88)0011\",\"1(?:[0-79]\\\\d{8}(?:\\\\d{2})?|8[0-24-9]\\\\d{7})|[148]\\\\d{8}|1\\\\d{5,7}\",[6,7,8,9,10,12],0,\"0\",0,\"([59]\\\\d{7})$|0\",\"8$1\",0,0,[[\"8(?:51(?:0(?:01|30|59|88)|1(?:17|46|75)|2(?:22|35))|91(?:00[6-9]|1(?:[28]1|49|78)|2(?:09|63)|3(?:12|26|75)|4(?:56|97)|64\\\\d|7(?:0[01]|1[0-2])|958))\\\\d{3}\",[9]],[\"4(?:(?:79|94)[01]|83[0-389])\\\\d{5}|4(?:[0-3]\\\\d|4[047-9]|5[0-25-9]|6[016-9]|7[02-8]|8[0-24-9]|9[0-37-9])\\\\d{6}\",[9]],[\"180(?:0\\\\d{3}|2)\\\\d{3}\",[7,10]],[\"190[0-26]\\\\d{6}\",[10]],0,0,0,0,[\"14(?:5(?:1[0458]|[23][458])|71\\\\d)\\\\d{4}\",[9]],[\"13(?:00\\\\d{6}(?:\\\\d{2})?|45[0-4]\\\\d{3})|13\\\\d{4}\",[6,8,10,12]]],\"0011\"],\"CY\":[\"357\",\"00\",\"(?:[279]\\\\d|[58]0)\\\\d{6}\",[8],[[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"[257-9]\"]]]],\"CZ\":[\"420\",\"00\",\"(?:[2-578]\\\\d|60)\\\\d{7}|9\\\\d{8,11}\",[9],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[2-8]|9[015-7]\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"96\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"9\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"9\"]]]],\"DE\":[\"49\",\"00\",\"[2579]\\\\d{5,14}|49(?:[34]0|69|8\\\\d)\\\\d\\\\d?|49(?:37|49|60|7[089]|9\\\\d)\\\\d{1,3}|49(?:2[024-9]|3[2-689]|7[1-7])\\\\d{1,8}|(?:1|[368]\\\\d|4[0-8])\\\\d{3,13}|49(?:[015]\\\\d|2[13]|31|[46][1-8])\\\\d{1,9}\",[4,5,6,7,8,9,10,11,12,13,14,15],[[\"(\\\\d{2})(\\\\d{3,13})\",\"$1 $2\",[\"3[02]|40|[68]9\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3,12})\",\"$1 $2\",[\"2(?:0[1-389]|1[124]|2[18]|3[14])|3(?:[35-9][15]|4[015])|906|(?:2[4-9]|4[2-9]|[579][1-9]|[68][1-8])1\",\"2(?:0[1-389]|12[0-8])|3(?:[35-9][15]|4[015])|906|2(?:[13][14]|2[18])|(?:2[4-9]|4[2-9]|[579][1-9]|[68][1-8])1\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{2,11})\",\"$1 $2\",[\"[24-6]|3(?:[3569][02-46-9]|4[2-4679]|7[2-467]|8[2-46-8])|70[2-8]|8(?:0[2-9]|[1-8])|90[7-9]|[79][1-9]\",\"[24-6]|3(?:3(?:0[1-467]|2[127-9]|3[124578]|7[1257-9]|8[1256]|9[145])|4(?:2[135]|4[13578]|9[1346])|5(?:0[14]|2[1-3589]|6[1-4]|7[13468]|8[13568])|6(?:2[1-489]|3[124-6]|6[13]|7[12579]|8[1-356]|9[135])|7(?:2[1-7]|4[145]|6[1-5]|7[1-4])|8(?:21|3[1468]|6|7[1467]|8[136])|9(?:0[12479]|2[1358]|4[134679]|6[1-9]|7[136]|8[147]|9[1468]))|70[2-8]|8(?:0[2-9]|[1-8])|90[7-9]|[79][1-9]|3[68]4[1347]|3(?:47|60)[1356]|3(?:3[46]|46|5[49])[1246]|3[4579]3[1357]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"138\"],\"0$1\"],[\"(\\\\d{5})(\\\\d{2,10})\",\"$1 $2\",[\"3\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{5,11})\",\"$1 $2\",[\"181\"],\"0$1\"],[\"(\\\\d{3})(\\\\d)(\\\\d{4,10})\",\"$1 $2 $3\",[\"1(?:3|80)|9\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{7,8})\",\"$1 $2\",[\"1[67]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{7,12})\",\"$1 $2\",[\"8\"],\"0$1\"],[\"(\\\\d{5})(\\\\d{6})\",\"$1 $2\",[\"185\",\"1850\",\"18500\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"7\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{7})\",\"$1 $2\",[\"18[68]\"],\"0$1\"],[\"(\\\\d{5})(\\\\d{6})\",\"$1 $2\",[\"15[0568]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{7})\",\"$1 $2\",[\"15[1279]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{8})\",\"$1 $2\",[\"18\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{7,8})\",\"$1 $2 $3\",[\"1(?:6[023]|7)\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{2})(\\\\d{7})\",\"$1 $2 $3\",[\"15[279]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{8})\",\"$1 $2 $3\",[\"15\"],\"0$1\"]],\"0\"],\"DJ\":[\"253\",\"00\",\"(?:2\\\\d|77)\\\\d{6}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[27]\"]]]],\"DK\":[\"45\",\"00\",\"[2-9]\\\\d{7}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[2-9]\"]]]],\"DM\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|767|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-7]\\\\d{6})$|1\",\"767$1\",0,\"767\"],\"DO\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,0,0,0,\"8001|8[024]9\"],\"DZ\":[\"213\",\"00\",\"(?:[1-4]|[5-79]\\\\d|80)\\\\d{7}\",[8,9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[1-4]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"9\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[5-8]\"],\"0$1\"]],\"0\"],\"EC\":[\"593\",\"00\",\"1\\\\d{9,10}|(?:[2-7]|9\\\\d)\\\\d{7}\",[8,9,10,11],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2-$3\",[\"[2-7]\"],\"(0$1)\",0,\"$1-$2-$3\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"9\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"1\"]]],\"0\"],\"EE\":[\"372\",\"00\",\"8\\\\d{9}|[4578]\\\\d{7}|(?:[3-8]\\\\d|90)\\\\d{5}\",[7,8,10],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[369]|4[3-8]|5(?:[0-2]|5[0-478]|6[45])|7[1-9]|88\",\"[369]|4[3-8]|5(?:[02]|1(?:[0-8]|95)|5[0-478]|6(?:4[0-4]|5[1-589]))|7[1-9]|88\"]],[\"(\\\\d{4})(\\\\d{3,4})\",\"$1 $2\",[\"[45]|8(?:00|[1-49])\",\"[45]|8(?:00[1-9]|[1-49])\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"7\"]],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"8\"]]]],\"EG\":[\"20\",\"00\",\"[189]\\\\d{8,9}|[24-6]\\\\d{8}|[135]\\\\d{7}\",[8,9,10],[[\"(\\\\d)(\\\\d{7,8})\",\"$1 $2\",[\"[23]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{6,7})\",\"$1 $2\",[\"1[35]|[4-6]|8[2468]|9[235-7]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[89]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{8})\",\"$1 $2\",[\"1\"],\"0$1\"]],\"0\"],\"EH\":[\"212\",\"00\",\"[5-8]\\\\d{8}\",[9],0,\"0\",0,0,0,0,\"528[89]\"],\"ER\":[\"291\",\"00\",\"[178]\\\\d{6}\",[7],[[\"(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[178]\"],\"0$1\"]],\"0\"],\"ES\":[\"34\",\"00\",\"[5-9]\\\\d{8}\",[9],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[89]00\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[5-9]\"]]]],\"ET\":[\"251\",\"00\",\"(?:11|[2-579]\\\\d)\\\\d{7}\",[9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[1-579]\"],\"0$1\"]],\"0\"],\"FI\":[\"358\",\"00|99(?:[01469]|5(?:[14]1|3[23]|5[59]|77|88|9[09]))\",\"[1-35689]\\\\d{4}|7\\\\d{10,11}|(?:[124-7]\\\\d|3[0-46-9])\\\\d{8}|[1-9]\\\\d{5,8}\",[5,6,7,8,9,10,11,12],[[\"(\\\\d)(\\\\d{4,9})\",\"$1 $2\",[\"[2568][1-8]|3(?:0[1-9]|[1-9])|9\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3,7})\",\"$1 $2\",[\"[12]00|[368]|70[07-9]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4,8})\",\"$1 $2\",[\"[1245]|7[135]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{6,10})\",\"$1 $2\",[\"7\"],\"0$1\"]],\"0\",0,0,0,0,\"1[03-79]|[2-9]\",0,\"00\"],\"FJ\":[\"679\",\"0(?:0|52)\",\"45\\\\d{5}|(?:0800\\\\d|[235-9])\\\\d{6}\",[7,11],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[235-9]|45\"]],[\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"0\"]]],0,0,0,0,0,0,0,\"00\"],\"FK\":[\"500\",\"00\",\"[2-7]\\\\d{4}\",[5]],\"FM\":[\"691\",\"00\",\"(?:[39]\\\\d\\\\d|820)\\\\d{4}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[389]\"]]]],\"FO\":[\"298\",\"00\",\"[2-9]\\\\d{5}\",[6],[[\"(\\\\d{6})\",\"$1\",[\"[2-9]\"]]],0,0,\"(10(?:01|[12]0|88))\"],\"FR\":[\"33\",\"00\",\"[1-9]\\\\d{8}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"8\"],\"0 $1\"],[\"(\\\\d)(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4 $5\",[\"[1-79]\"],\"0$1\"]],\"0\"],\"GA\":[\"241\",\"00\",\"(?:[067]\\\\d|11)\\\\d{6}|[2-7]\\\\d{6}\",[7,8],[[\"(\\\\d)(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[2-7]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"0\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"11|[67]\"],\"0$1\"]],0,0,\"0(11\\\\d{6}|60\\\\d{6}|61\\\\d{6}|6[256]\\\\d{6}|7[467]\\\\d{6})\",\"$1\"],\"GB\":[\"44\",\"00\",\"[1-357-9]\\\\d{9}|[18]\\\\d{8}|8\\\\d{6}\",[7,9,10],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"800\",\"8001\",\"80011\",\"800111\",\"8001111\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"845\",\"8454\",\"84546\",\"845464\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{6})\",\"$1 $2\",[\"800\"],\"0$1\"],[\"(\\\\d{5})(\\\\d{4,5})\",\"$1 $2\",[\"1(?:38|5[23]|69|76|94)\",\"1(?:(?:38|69)7|5(?:24|39)|768|946)\",\"1(?:3873|5(?:242|39[4-6])|(?:697|768)[347]|9467)\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{5,6})\",\"$1 $2\",[\"1(?:[2-69][02-9]|[78])\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"[25]|7(?:0|6[02-9])\",\"[25]|7(?:0|6(?:[03-9]|2[356]))\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{6})\",\"$1 $2\",[\"7\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[1389]\"],\"0$1\"]],\"0\",0,0,0,0,0,[[\"(?:1(?:1(?:3(?:[0-58]\\\\d\\\\d|73[0235])|4(?:[0-5]\\\\d\\\\d|69[7-9]|70[0-79])|(?:(?:5[0-26-9]|[78][0-49])\\\\d|6(?:[0-4]\\\\d|50))\\\\d)|(?:2(?:(?:0[024-9]|2[3-9]|3[3-79]|4[1-689]|[58][02-9]|6[0-47-9]|7[013-9]|9\\\\d)\\\\d|1(?:[0-7]\\\\d|8[0-2]))|(?:3(?:0\\\\d|1[0-8]|[25][02-9]|3[02-579]|[468][0-46-9]|7[1-35-79]|9[2-578])|4(?:0[03-9]|[137]\\\\d|[28][02-57-9]|4[02-69]|5[0-8]|[69][0-79])|5(?:0[1-35-9]|[16]\\\\d|2[024-9]|3[015689]|4[02-9]|5[03-9]|7[0-35-9]|8[0-468]|9[0-57-9])|6(?:0[034689]|1\\\\d|2[0-35689]|[38][013-9]|4[1-467]|5[0-69]|6[13-9]|7[0-8]|9[0-24578])|7(?:0[0246-9]|2\\\\d|3[0236-8]|4[03-9]|5[0-46-9]|6[013-9]|7[0-35-9]|8[024-9]|9[02-9])|8(?:0[35-9]|2[1-57-9]|3[02-578]|4[0-578]|5[124-9]|6[2-69]|7\\\\d|8[02-9]|9[02569])|9(?:0[02-589]|[18]\\\\d|2[02-689]|3[1-57-9]|4[2-9]|5[0-579]|6[2-47-9]|7[0-24578]|9[2-57]))\\\\d)\\\\d)|2(?:0[013478]|3[0189]|4[017]|8[0-46-9]|9[0-2])\\\\d{3})\\\\d{4}|1(?:2(?:0(?:46[1-4]|87[2-9])|545[1-79]|76(?:2\\\\d|3[1-8]|6[1-6])|9(?:7(?:2[0-4]|3[2-5])|8(?:2[2-8]|7[0-47-9]|8[3-5])))|3(?:6(?:38[2-5]|47[23])|8(?:47[04-9]|64[0157-9]))|4(?:044[1-7]|20(?:2[23]|8\\\\d)|6(?:0(?:30|5[2-57]|6[1-8]|7[2-8])|140)|8(?:052|87[1-3]))|5(?:2(?:4(?:3[2-79]|6\\\\d)|76\\\\d)|6(?:26[06-9]|686))|6(?:06(?:4\\\\d|7[4-79])|295[5-7]|35[34]\\\\d|47(?:24|61)|59(?:5[08]|6[67]|74)|9(?:55[0-4]|77[23]))|7(?:26(?:6[13-9]|7[0-7])|(?:442|688)\\\\d|50(?:2[0-3]|[3-68]2|76))|8(?:27[56]\\\\d|37(?:5[2-5]|8[239])|843[2-58])|9(?:0(?:0(?:6[1-8]|85)|52\\\\d)|3583|4(?:66[1-8]|9(?:2[01]|81))|63(?:23|3[1-4])|9561))\\\\d{3}\",[9,10]],[\"7(?:457[0-57-9]|700[01]|911[028])\\\\d{5}|7(?:[1-3]\\\\d\\\\d|4(?:[0-46-9]\\\\d|5[0-689])|5(?:0[0-8]|[13-9]\\\\d|2[0-35-9])|7(?:0[1-9]|[1-7]\\\\d|8[02-9]|9[0-689])|8(?:[014-9]\\\\d|[23][0-8])|9(?:[024-9]\\\\d|1[02-9]|3[0-689]))\\\\d{6}\",[10]],[\"80[08]\\\\d{7}|800\\\\d{6}|8001111\"],[\"(?:8(?:4[2-5]|7[0-3])|9(?:[01]\\\\d|8[2-49]))\\\\d{7}|845464\\\\d\",[7,10]],[\"70\\\\d{8}\",[10]],0,[\"(?:3[0347]|55)\\\\d{8}\",[10]],[\"76(?:464|652)\\\\d{5}|76(?:0[0-28]|2[356]|34|4[01347]|5[49]|6[0-369]|77|8[14]|9[139])\\\\d{6}\",[10]],[\"56\\\\d{8}\",[10]]],0,\" x\"],\"GD\":[\"1\",\"011\",\"(?:473|[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-9]\\\\d{6})$|1\",\"473$1\",0,\"473\"],\"GE\":[\"995\",\"00\",\"(?:[3-57]\\\\d\\\\d|800)\\\\d{6}\",[9],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"70\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"32\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[57]\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[348]\"],\"0$1\"]],\"0\"],\"GF\":[\"594\",\"00\",\"[56]94\\\\d{6}|(?:80|9\\\\d)\\\\d{7}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[56]|9[47]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[89]\"],\"0$1\"]],\"0\"],\"GG\":[\"44\",\"00\",\"(?:1481|[357-9]\\\\d{3})\\\\d{6}|8\\\\d{6}(?:\\\\d{2})?\",[7,9,10],0,\"0\",0,\"([25-9]\\\\d{5})$|0\",\"1481$1\",0,0,[[\"1481[25-9]\\\\d{5}\",[10]],[\"7(?:(?:781|839)\\\\d|911[17])\\\\d{5}\",[10]],[\"80[08]\\\\d{7}|800\\\\d{6}|8001111\"],[\"(?:8(?:4[2-5]|7[0-3])|9(?:[01]\\\\d|8[0-3]))\\\\d{7}|845464\\\\d\",[7,10]],[\"70\\\\d{8}\",[10]],0,[\"(?:3[0347]|55)\\\\d{8}\",[10]],[\"76(?:464|652)\\\\d{5}|76(?:0[0-28]|2[356]|34|4[01347]|5[49]|6[0-369]|77|8[14]|9[139])\\\\d{6}\",[10]],[\"56\\\\d{8}\",[10]]]],\"GH\":[\"233\",\"00\",\"(?:[235]\\\\d{3}|800)\\\\d{5}\",[8,9],[[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"8\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[235]\"],\"0$1\"]],\"0\"],\"GI\":[\"350\",\"00\",\"(?:[25]\\\\d|60)\\\\d{6}\",[8],[[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"2\"]]]],\"GL\":[\"299\",\"00\",\"(?:19|[2-689]\\\\d|70)\\\\d{4}\",[6],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"19|[2-9]\"]]]],\"GM\":[\"220\",\"00\",\"[2-9]\\\\d{6}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[2-9]\"]]]],\"GN\":[\"224\",\"00\",\"722\\\\d{6}|(?:3|6\\\\d)\\\\d{7}\",[8,9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"3\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[67]\"]]]],\"GP\":[\"590\",\"00\",\"590\\\\d{6}|(?:69|80|9\\\\d)\\\\d{7}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[569]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"8\"],\"0$1\"]],\"0\",0,0,0,0,0,[[\"590(?:0[1-68]|[14][0-24-9]|2[0-68]|3[1-9]|5[3-579]|[68][0-689]|7[08]|9\\\\d)\\\\d{4}\"],[\"69(?:0\\\\d\\\\d|1(?:2[2-9]|3[0-5]))\\\\d{4}\"],[\"80[0-5]\\\\d{6}\"],0,0,0,0,0,[\"9(?:(?:395|76[018])\\\\d|475[0-5])\\\\d{4}\"]]],\"GQ\":[\"240\",\"00\",\"222\\\\d{6}|(?:3\\\\d|55|[89]0)\\\\d{7}\",[9],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[235]\"]],[\"(\\\\d{3})(\\\\d{6})\",\"$1 $2\",[\"[89]\"]]]],\"GR\":[\"30\",\"00\",\"5005000\\\\d{3}|8\\\\d{9,11}|(?:[269]\\\\d|70)\\\\d{8}\",[10,11,12],[[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"21|7\"]],[\"(\\\\d{4})(\\\\d{6})\",\"$1 $2\",[\"2(?:2|3[2-57-9]|4[2-469]|5[2-59]|6[2-9]|7[2-69]|8[2-49])|5\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[2689]\"]],[\"(\\\\d{3})(\\\\d{3,4})(\\\\d{5})\",\"$1 $2 $3\",[\"8\"]]]],\"GT\":[\"502\",\"00\",\"(?:1\\\\d{3}|[2-7])\\\\d{7}\",[8,11],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[2-7]\"]],[\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"]]]],\"GU\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|671|900)\\\\d{7}\",[10],0,\"1\",0,\"([3-9]\\\\d{6})$|1\",\"671$1\",0,\"671\"],\"GW\":[\"245\",\"00\",\"[49]\\\\d{8}|4\\\\d{6}\",[7,9],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"40\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[49]\"]]]],\"GY\":[\"592\",\"001\",\"9008\\\\d{3}|(?:[2-467]\\\\d\\\\d|510|862)\\\\d{4}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[2-9]\"]]]],\"HK\":[\"852\",\"00(?:30|5[09]|[126-9]?)\",\"8[0-46-9]\\\\d{6,7}|9\\\\d{4,7}|(?:[2-7]|9\\\\d{3})\\\\d{7}\",[5,6,7,8,9,11],[[\"(\\\\d{3})(\\\\d{2,5})\",\"$1 $2\",[\"900\",\"9003\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[2-7]|8[1-4]|9(?:0[1-9]|[1-8])\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"8\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"9\"]]],0,0,0,0,0,0,0,\"00\"],\"HN\":[\"504\",\"00\",\"8\\\\d{10}|[237-9]\\\\d{7}\",[8,11],[[\"(\\\\d{4})(\\\\d{4})\",\"$1-$2\",[\"[237-9]\"]]]],\"HR\":[\"385\",\"00\",\"(?:[24-69]\\\\d|3[0-79])\\\\d{7}|80\\\\d{5,7}|[1-79]\\\\d{7}|6\\\\d{5,6}\",[6,7,8,9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2,3})\",\"$1 $2 $3\",[\"6[01]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2,3})\",\"$1 $2 $3\",[\"8\"],\"0$1\"],[\"(\\\\d)(\\\\d{4})(\\\\d{3})\",\"$1 $2 $3\",[\"1\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[67]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"9\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[2-5]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"8\"],\"0$1\"]],\"0\"],\"HT\":[\"509\",\"00\",\"(?:[2-489]\\\\d|55)\\\\d{6}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"[2-589]\"]]]],\"HU\":[\"36\",\"00\",\"[235-7]\\\\d{8}|[1-9]\\\\d{7}\",[8,9],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"],\"(06 $1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[27][2-9]|3[2-7]|4[24-9]|5[2-79]|6|8[2-57-9]|9[2-69]\"],\"(06 $1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[2-9]\"],\"06 $1\"]],\"06\"],\"ID\":[\"62\",\"00[89]\",\"(?:(?:00[1-9]|8\\\\d)\\\\d{4}|[1-36])\\\\d{6}|00\\\\d{10}|[1-9]\\\\d{8,10}|[2-9]\\\\d{7}\",[7,8,9,10,11,12,13],[[\"(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"15\"]],[\"(\\\\d{2})(\\\\d{5,9})\",\"$1 $2\",[\"2[124]|[36]1\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{5,7})\",\"$1 $2\",[\"800\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{5,8})\",\"$1 $2\",[\"[2-79]\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{3,4})(\\\\d{3})\",\"$1-$2-$3\",[\"8[1-35-9]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{6,8})\",\"$1 $2\",[\"1\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"804\"],\"0$1\"],[\"(\\\\d{3})(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"80\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{4})(\\\\d{4,5})\",\"$1-$2-$3\",[\"8\"],\"0$1\"]],\"0\"],\"IE\":[\"353\",\"00\",\"(?:1\\\\d|[2569])\\\\d{6,8}|4\\\\d{6,9}|7\\\\d{8}|8\\\\d{8,9}\",[7,8,9,10],[[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"2[24-9]|47|58|6[237-9]|9[35-9]\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"[45]0\"],\"(0$1)\"],[\"(\\\\d)(\\\\d{3,4})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[2569]|4[1-69]|7[14]\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"70\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"81\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[78]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1\"]],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"4\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3 $4\",[\"8\"],\"0$1\"]],\"0\"],\"IL\":[\"972\",\"0(?:0|1[2-9])\",\"1\\\\d{6}(?:\\\\d{3,5})?|[57]\\\\d{8}|[1-489]\\\\d{7}\",[7,8,9,10,11,12],[[\"(\\\\d{4})(\\\\d{3})\",\"$1-$2\",[\"125\"]],[\"(\\\\d{4})(\\\\d{2})(\\\\d{2})\",\"$1-$2-$3\",[\"121\"]],[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"[2-489]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"[57]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1-$2-$3\",[\"12\"]],[\"(\\\\d{4})(\\\\d{6})\",\"$1-$2\",[\"159\"]],[\"(\\\\d)(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1-$2-$3-$4\",[\"1[7-9]\"]],[\"(\\\\d{3})(\\\\d{1,2})(\\\\d{3})(\\\\d{4})\",\"$1-$2 $3-$4\",[\"15\"]]],\"0\"],\"IM\":[\"44\",\"00\",\"1624\\\\d{6}|(?:[3578]\\\\d|90)\\\\d{8}\",[10],0,\"0\",0,\"([25-8]\\\\d{5})$|0\",\"1624$1\",0,\"74576|(?:16|7[56])24\"],\"IN\":[\"91\",\"00\",\"(?:000800|[2-9]\\\\d\\\\d)\\\\d{7}|1\\\\d{7,12}\",[8,9,10,11,12,13],[[\"(\\\\d{8})\",\"$1\",[\"5(?:0|2[23]|3[03]|[67]1|88)\",\"5(?:0|2(?:21|3)|3(?:0|3[23])|616|717|888)\",\"5(?:0|2(?:21|3)|3(?:0|3[23])|616|717|8888)\"],0,1],[\"(\\\\d{4})(\\\\d{4,5})\",\"$1 $2\",[\"180\",\"1800\"],0,1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"140\"],0,1],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"11|2[02]|33|4[04]|79[1-7]|80[2-46]\",\"11|2[02]|33|4[04]|79(?:[1-6]|7[19])|80(?:[2-4]|6[0-589])\",\"11|2[02]|33|4[04]|79(?:[124-6]|3(?:[02-9]|1[0-24-9])|7(?:1|9[1-6]))|80(?:[2-4]|6[0-589])\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1(?:2[0-249]|3[0-25]|4[145]|[68]|7[1257])|2(?:1[257]|3[013]|4[01]|5[0137]|6[0158]|78|8[1568])|3(?:26|4[1-3]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|5[12]|6[0-26-9]|7[0-24-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|5[12]|[78]1)|6(?:12|[2-4]1|5[17]|6[13]|80)|7(?:12|3[134]|4[47]|61|88)|8(?:16|2[014]|3[126]|6[136]|7[078]|8[34]|91)|(?:43|59|75)[15]|(?:1[59]|29|67|72)[14]\",\"1(?:2[0-24]|3[0-25]|4[145]|[59][14]|6[1-9]|7[1257]|8[1-57-9])|2(?:1[257]|3[013]|4[01]|5[0137]|6[058]|78|8[1568]|9[14])|3(?:26|4[1-3]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|3[15]|5[12]|6[0-26-9]|7[0-24-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|[578]1|9[15])|674|7(?:(?:2[14]|3[34]|5[15])[2-6]|61[346]|88[0-8])|8(?:70[2-6]|84[235-7]|91[3-7])|(?:1(?:29|60|8[06])|261|552|6(?:12|[2-47]1|5[17]|6[13]|80)|7(?:12|31|4[47])|8(?:16|2[014]|3[126]|6[136]|7[78]|83))[2-7]\",\"1(?:2[0-24]|3[0-25]|4[145]|[59][14]|6[1-9]|7[1257]|8[1-57-9])|2(?:1[257]|3[013]|4[01]|5[0137]|6[058]|78|8[1568]|9[14])|3(?:26|4[1-3]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|3[15]|5[12]|6[0-26-9]|7[0-24-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|[578]1|9[15])|6(?:12(?:[2-6]|7[0-8])|74[2-7])|7(?:(?:2[14]|5[15])[2-6]|3171|61[346]|88(?:[2-7]|82))|8(?:70[2-6]|84(?:[2356]|7[19])|91(?:[3-6]|7[19]))|73[134][2-6]|(?:74[47]|8(?:16|2[014]|3[126]|6[136]|7[78]|83))(?:[2-6]|7[19])|(?:1(?:29|60|8[06])|261|552|6(?:[2-4]1|5[17]|6[13]|7(?:1|4[0189])|80)|7(?:12|88[01]))[2-7]\"],\"0$1\",1],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1(?:[2-479]|5[0235-9])|[2-5]|6(?:1[1358]|2[2457-9]|3[2-5]|4[235-7]|5[2-689]|6[24578]|7[235689]|8[1-6])|7(?:1[013-9]|28|3[129]|4[1-35689]|5[29]|6[02-5]|70)|807\",\"1(?:[2-479]|5[0235-9])|[2-5]|6(?:1[1358]|2(?:[2457]|84|95)|3(?:[2-4]|55)|4[235-7]|5[2-689]|6[24578]|7[235689]|8[1-6])|7(?:1(?:[013-8]|9[6-9])|28[6-8]|3(?:17|2[0-49]|9[2-57])|4(?:1[2-4]|[29][0-7]|3[0-8]|[56]|8[0-24-7])|5(?:2[1-3]|9[0-6])|6(?:0[5689]|2[5-9]|3[02-8]|4|5[0-367])|70[13-7])|807[19]\",\"1(?:[2-479]|5(?:[0236-9]|5[013-9]))|[2-5]|6(?:2(?:84|95)|355|83)|73179|807(?:1|9[1-3])|(?:1552|6(?:1[1358]|2[2457]|3[2-4]|4[235-7]|5[2-689]|6[24578]|7[235689]|8[124-6])\\\\d|7(?:1(?:[013-8]\\\\d|9[6-9])|28[6-8]|3(?:2[0-49]|9[2-57])|4(?:1[2-4]|[29][0-7]|3[0-8]|[56]\\\\d|8[0-24-7])|5(?:2[1-3]|9[0-6])|6(?:0[5689]|2[5-9]|3[02-8]|4\\\\d|5[0-367])|70[13-7]))[2-7]\"],\"0$1\",1],[\"(\\\\d{5})(\\\\d{5})\",\"$1 $2\",[\"[6-9]\"],\"0$1\",1],[\"(\\\\d{4})(\\\\d{2,4})(\\\\d{4})\",\"$1 $2 $3\",[\"1(?:6|8[06])\",\"1(?:6|8[06]0)\"],0,1],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"18\"],0,1]],\"0\"],\"IO\":[\"246\",\"00\",\"3\\\\d{6}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"3\"]]]],\"IQ\":[\"964\",\"00\",\"(?:1|7\\\\d\\\\d)\\\\d{7}|[2-6]\\\\d{7,8}\",[8,9,10],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[2-6]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"7\"],\"0$1\"]],\"0\"],\"IR\":[\"98\",\"00\",\"[1-9]\\\\d{9}|(?:[1-8]\\\\d\\\\d|9)\\\\d{3,4}\",[4,5,6,7,10],[[\"(\\\\d{4,5})\",\"$1\",[\"96\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4,5})\",\"$1 $2\",[\"(?:1[137]|2[13-68]|3[1458]|4[145]|5[1468]|6[16]|7[1467]|8[13467])[12689]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"9\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"[1-8]\"],\"0$1\"]],\"0\"],\"IS\":[\"354\",\"00|1(?:0(?:01|[12]0)|100)\",\"(?:38\\\\d|[4-9])\\\\d{6}\",[7,9],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[4-9]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"3\"]]],0,0,0,0,0,0,0,\"00\"],\"IT\":[\"39\",\"00\",\"0\\\\d{5,10}|1\\\\d{8,10}|3(?:[0-8]\\\\d{7,10}|9\\\\d{7,8})|(?:55|70)\\\\d{8}|8\\\\d{5}(?:\\\\d{2,4})?\",[6,7,8,9,10,11],[[\"(\\\\d{2})(\\\\d{4,6})\",\"$1 $2\",[\"0[26]\"]],[\"(\\\\d{3})(\\\\d{3,6})\",\"$1 $2\",[\"0[13-57-9][0159]|8(?:03|4[17]|9[2-5])\",\"0[13-57-9][0159]|8(?:03|4[17]|9(?:2|3[04]|[45][0-4]))\"]],[\"(\\\\d{4})(\\\\d{2,6})\",\"$1 $2\",[\"0(?:[13-579][2-46-8]|8[236-8])\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"894\"]],[\"(\\\\d{2})(\\\\d{3,4})(\\\\d{4})\",\"$1 $2 $3\",[\"0[26]|5\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"1(?:44|[679])|[378]\"]],[\"(\\\\d{3})(\\\\d{3,4})(\\\\d{4})\",\"$1 $2 $3\",[\"0[13-57-9][0159]|14\"]],[\"(\\\\d{2})(\\\\d{4})(\\\\d{5})\",\"$1 $2 $3\",[\"0[26]\"]],[\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"0\"]],[\"(\\\\d{3})(\\\\d{4})(\\\\d{4,5})\",\"$1 $2 $3\",[\"3\"]]],0,0,0,0,0,0,[[\"0669[0-79]\\\\d{1,6}|0(?:1(?:[0159]\\\\d|[27][1-5]|31|4[1-4]|6[1356]|8[2-57])|2\\\\d\\\\d|3(?:[0159]\\\\d|2[1-4]|3[12]|[48][1-6]|6[2-59]|7[1-7])|4(?:[0159]\\\\d|[23][1-9]|4[245]|6[1-5]|7[1-4]|81)|5(?:[0159]\\\\d|2[1-5]|3[2-6]|4[1-79]|6[4-6]|7[1-578]|8[3-8])|6(?:[0-57-9]\\\\d|6[0-8])|7(?:[0159]\\\\d|2[12]|3[1-7]|4[2-46]|6[13569]|7[13-6]|8[1-59])|8(?:[0159]\\\\d|2[3-578]|3[1-356]|[6-8][1-5])|9(?:[0159]\\\\d|[238][1-5]|4[12]|6[1-8]|7[1-6]))\\\\d{2,7}\"],[\"3[1-9]\\\\d{8}|3[2-9]\\\\d{7}\",[9,10]],[\"80(?:0\\\\d{3}|3)\\\\d{3}\",[6,9]],[\"(?:0878\\\\d{3}|89(?:2\\\\d|3[04]|4(?:[0-4]|[5-9]\\\\d\\\\d)|5[0-4]))\\\\d\\\\d|(?:1(?:44|6[346])|89(?:38|5[5-9]|9))\\\\d{6}\",[6,8,9,10]],[\"1(?:78\\\\d|99)\\\\d{6}\",[9,10]],0,0,0,[\"55\\\\d{8}\",[10]],[\"84(?:[08]\\\\d{3}|[17])\\\\d{3}\",[6,9]]]],\"JE\":[\"44\",\"00\",\"1534\\\\d{6}|(?:[3578]\\\\d|90)\\\\d{8}\",[10],0,\"0\",0,\"([0-24-8]\\\\d{5})$|0\",\"1534$1\",0,0,[[\"1534[0-24-8]\\\\d{5}\"],[\"7(?:(?:(?:50|82)9|937)\\\\d|7(?:00[378]|97[7-9]))\\\\d{5}\"],[\"80(?:07(?:35|81)|8901)\\\\d{4}\"],[\"(?:8(?:4(?:4(?:4(?:05|42|69)|703)|5(?:041|800))|7(?:0002|1206))|90(?:066[59]|1810|71(?:07|55)))\\\\d{4}\"],[\"701511\\\\d{4}\"],0,[\"(?:3(?:0(?:07(?:35|81)|8901)|3\\\\d{4}|4(?:4(?:4(?:05|42|69)|703)|5(?:041|800))|7(?:0002|1206))|55\\\\d{4})\\\\d{4}\"],[\"76(?:464|652)\\\\d{5}|76(?:0[0-28]|2[356]|34|4[01347]|5[49]|6[0-369]|77|8[14]|9[139])\\\\d{6}\"],[\"56\\\\d{8}\"]]],\"JM\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|658|900)\\\\d{7}\",[10],0,\"1\",0,0,0,0,\"658|876\"],\"JO\":[\"962\",\"00\",\"(?:(?:[2689]|7\\\\d)\\\\d|32|53)\\\\d{6}\",[8,9],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[2356]|87\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{5,6})\",\"$1 $2\",[\"[89]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{7})\",\"$1 $2\",[\"70\"],\"0$1\"],[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"7\"],\"0$1\"]],\"0\"],\"JP\":[\"81\",\"010\",\"00[1-9]\\\\d{6,14}|[257-9]\\\\d{9}|(?:00|[1-9]\\\\d\\\\d)\\\\d{6}\",[8,9,10,11,12,13,14,15,16,17],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1-$2-$3\",[\"(?:12|57|99)0\"],\"0$1\"],[\"(\\\\d{4})(\\\\d)(\\\\d{4})\",\"$1-$2-$3\",[\"1(?:26|3[79]|4[56]|5[4-68]|6[3-5])|499|5(?:76|97)|746|8(?:3[89]|47|51)|9(?:80|9[16])\",\"1(?:267|3(?:7[247]|9[278])|466|5(?:47|58|64)|6(?:3[245]|48|5[4-68]))|499[2468]|5(?:76|97)9|7468|8(?:3(?:8[7-9]|96)|477|51[2-9])|9(?:802|9(?:1[23]|69))|1(?:45|58)[67]\",\"1(?:267|3(?:7[247]|9[278])|466|5(?:47|58|64)|6(?:3[245]|48|5[4-68]))|499[2468]|5(?:769|979[2-69])|7468|8(?:3(?:8[7-9]|96[2457-9])|477|51[2-9])|9(?:802|9(?:1[23]|69))|1(?:45|58)[67]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"60\"],\"0$1\"],[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1-$2-$3\",[\"[36]|4(?:2[09]|7[01])\",\"[36]|4(?:2(?:0|9[02-69])|7(?:0[019]|1))\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"1(?:1|5[45]|77|88|9[69])|2(?:2[1-37]|3[0-269]|4[59]|5|6[24]|7[1-358]|8[1369]|9[0-38])|4(?:[28][1-9]|3[0-57]|[45]|6[248]|7[2-579]|9[29])|5(?:2|3[0459]|4[0-369]|5[29]|8[02389]|9[0-389])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9[2-6])|8(?:2[124589]|3[26-9]|49|51|6|7[0-468]|8[68]|9[019])|9(?:[23][1-9]|4[15]|5[138]|6[1-3]|7[156]|8[189]|9[1-489])\",\"1(?:1|5(?:4[018]|5[017])|77|88|9[69])|2(?:2(?:[127]|3[014-9])|3[0-269]|4[59]|5(?:[1-3]|5[0-69]|9[19])|62|7(?:[1-35]|8[0189])|8(?:[16]|3[0134]|9[0-5])|9(?:[028]|17))|4(?:2(?:[13-79]|8[014-6])|3[0-57]|[45]|6[248]|7[2-47]|8[1-9]|9[29])|5(?:2|3(?:[045]|9[0-8])|4[0-369]|5[29]|8[02389]|9[0-3])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9(?:[23]|4[0-59]|5[01569]|6[0167]))|8(?:2(?:[1258]|4[0-39]|9[0-2469])|3(?:[29]|60)|49|51|6(?:[0-24]|36|5[0-3589]|7[23]|9[01459])|7[0-468]|8[68])|9(?:[23][1-9]|4[15]|5[138]|6[1-3]|7[156]|8[189]|9(?:[1289]|3[34]|4[0178]))|(?:264|837)[016-9]|2(?:57|93)[015-9]|(?:25[0468]|422|838)[01]|(?:47[59]|59[89]|8(?:6[68]|9))[019]\",\"1(?:1|5(?:4[018]|5[017])|77|88|9[69])|2(?:2[127]|3[0-269]|4[59]|5(?:[1-3]|5[0-69]|9(?:17|99))|6(?:2|4[016-9])|7(?:[1-35]|8[0189])|8(?:[16]|3[0134]|9[0-5])|9(?:[028]|17))|4(?:2(?:[13-79]|8[014-6])|3[0-57]|[45]|6[248]|7[2-47]|9[29])|5(?:2|3(?:[045]|9(?:[0-58]|6[4-9]|7[0-35689]))|4[0-369]|5[29]|8[02389]|9[0-3])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9(?:[23]|4[0-59]|5[01569]|6[0167]))|8(?:2(?:[1258]|4[0-39]|9[0169])|3(?:[29]|60|7(?:[017-9]|6[6-8]))|49|51|6(?:[0-24]|36[2-57-9]|5(?:[0-389]|5[23])|6(?:[01]|9[178])|7(?:2[2-468]|3[78])|9[0145])|7[0-468]|8[68])|9(?:4[15]|5[138]|7[156]|8[189]|9(?:[1289]|3(?:31|4[357])|4[0178]))|(?:8294|96)[1-3]|2(?:57|93)[015-9]|(?:223|8699)[014-9]|(?:25[0468]|422|838)[01]|(?:48|8292|9[23])[1-9]|(?:47[59]|59[89]|8(?:68|9))[019]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{4})\",\"$1-$2-$3\",[\"[14]|[289][2-9]|5[3-9]|7[2-4679]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"800\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1-$2-$3\",[\"[257-9]\"],\"0$1\"]],\"0\",0,\"(000[259]\\\\d{6})$|(?:(?:003768)0?)|0\",\"$1\"],\"KE\":[\"254\",\"000\",\"(?:[17]\\\\d\\\\d|900)\\\\d{6}|(?:2|80)0\\\\d{6,7}|[4-6]\\\\d{6,8}\",[7,8,9,10],[[\"(\\\\d{2})(\\\\d{5,7})\",\"$1 $2\",[\"[24-6]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{6})\",\"$1 $2\",[\"[17]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[89]\"],\"0$1\"]],\"0\"],\"KG\":[\"996\",\"00\",\"8\\\\d{9}|[235-9]\\\\d{8}\",[9,10],[[\"(\\\\d{4})(\\\\d{5})\",\"$1 $2\",[\"3(?:1[346]|[24-79])\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[235-79]|88\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d)(\\\\d{2,3})\",\"$1 $2 $3 $4\",[\"8\"],\"0$1\"]],\"0\"],\"KH\":[\"855\",\"00[14-9]\",\"1\\\\d{9}|[1-9]\\\\d{7,8}\",[8,9,10],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[1-9]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1\"]]],\"0\"],\"KI\":[\"686\",\"00\",\"(?:[37]\\\\d|6[0-79])\\\\d{6}|(?:[2-48]\\\\d|50)\\\\d{3}\",[5,8],0,\"0\"],\"KM\":[\"269\",\"00\",\"[3478]\\\\d{6}\",[7],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"[3478]\"]]]],\"KN\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-7]\\\\d{6})$|1\",\"869$1\",0,\"869\"],\"KP\":[\"850\",\"00|99\",\"85\\\\d{6}|(?:19\\\\d|[2-7])\\\\d{7}\",[8,10],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"8\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[2-7]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"],\"0$1\"]],\"0\"],\"KR\":[\"82\",\"00(?:[125689]|3(?:[46]5|91)|7(?:00|27|3|55|6[126]))\",\"00[1-9]\\\\d{8,11}|(?:[12]|5\\\\d{3})\\\\d{7}|[13-6]\\\\d{9}|(?:[1-6]\\\\d|80)\\\\d{7}|[3-6]\\\\d{4,5}|(?:00|7)0\\\\d{8}\",[5,6,8,9,10,11,12,13,14],[[\"(\\\\d{2})(\\\\d{3,4})\",\"$1-$2\",[\"(?:3[1-3]|[46][1-4]|5[1-5])1\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{4})\",\"$1-$2\",[\"1\"]],[\"(\\\\d)(\\\\d{3,4})(\\\\d{4})\",\"$1-$2-$3\",[\"2\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"60|8\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3,4})(\\\\d{4})\",\"$1-$2-$3\",[\"[1346]|5[1-5]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1-$2-$3\",[\"[57]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{5})(\\\\d{4})\",\"$1-$2-$3\",[\"5\"],\"0$1\"]],\"0\",0,\"0(8(?:[1-46-8]|5\\\\d\\\\d))?\"],\"KW\":[\"965\",\"00\",\"18\\\\d{5}|(?:[2569]\\\\d|41)\\\\d{6}\",[7,8],[[\"(\\\\d{4})(\\\\d{3,4})\",\"$1 $2\",[\"[169]|2(?:[235]|4[1-35-9])|52\"]],[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"[245]\"]]]],\"KY\":[\"1\",\"011\",\"(?:345|[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-9]\\\\d{6})$|1\",\"345$1\",0,\"345\"],\"KZ\":[\"7\",\"810\",\"(?:33622|8\\\\d{8})\\\\d{5}|[78]\\\\d{9}\",[10,14],0,\"8\",0,0,0,0,\"33|7\",0,\"8~10\"],\"LA\":[\"856\",\"00\",\"[23]\\\\d{9}|3\\\\d{8}|(?:[235-8]\\\\d|41)\\\\d{6}\",[8,9,10],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"2[13]|3[14]|[4-8]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"30[013-9]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"[23]\"],\"0$1\"]],\"0\"],\"LB\":[\"961\",\"00\",\"[27-9]\\\\d{7}|[13-9]\\\\d{6}\",[7,8],[[\"(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[13-69]|7(?:[2-57]|62|8[0-7]|9[04-9])|8[02-9]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[27-9]\"]]],\"0\"],\"LC\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|758|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-8]\\\\d{6})$|1\",\"758$1\",0,\"758\"],\"LI\":[\"423\",\"00\",\"[68]\\\\d{8}|(?:[2378]\\\\d|90)\\\\d{5}\",[7,9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"[2379]|8(?:0[09]|7)\",\"[2379]|8(?:0(?:02|9)|7)\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"8\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"69\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"6\"]]],\"0\",0,\"(1001)|0\"],\"LK\":[\"94\",\"00\",\"[1-9]\\\\d{8}\",[9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"7\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[1-689]\"],\"0$1\"]],\"0\"],\"LR\":[\"231\",\"00\",\"(?:[25]\\\\d|33|77|88)\\\\d{7}|(?:2\\\\d|[4-6])\\\\d{6}\",[7,8,9],[[\"(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[4-6]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"2\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[23578]\"],\"0$1\"]],\"0\"],\"LS\":[\"266\",\"00\",\"(?:[256]\\\\d\\\\d|800)\\\\d{5}\",[8],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[2568]\"]]]],\"LT\":[\"370\",\"00\",\"(?:[3469]\\\\d|52|[78]0)\\\\d{6}\",[8],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"52[0-7]\"],\"(8-$1)\",1],[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"[7-9]\"],\"8 $1\",1],[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"37|4(?:[15]|6[1-8])\"],\"(8-$1)\",1],[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"[3-6]\"],\"(8-$1)\",1]],\"8\",0,\"[08]\"],\"LU\":[\"352\",\"00\",\"35[013-9]\\\\d{4,8}|6\\\\d{8}|35\\\\d{2,4}|(?:[2457-9]\\\\d|3[0-46-9])\\\\d{2,9}\",[4,5,6,7,8,9,10,11],[[\"(\\\\d{2})(\\\\d{3})\",\"$1 $2\",[\"2(?:0[2-689]|[2-9])|[3-57]|8(?:0[2-9]|[13-9])|9(?:0[89]|[2-579])\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"2(?:0[2-689]|[2-9])|[3-57]|8(?:0[2-9]|[13-9])|9(?:0[89]|[2-579])\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"20[2-689]\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{1,2})\",\"$1 $2 $3 $4\",[\"2(?:[0367]|4[3-8])\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"80[01]|90[015]\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"20\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"6\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{1,2})\",\"$1 $2 $3 $4 $5\",[\"2(?:[0367]|4[3-8])\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{1,5})\",\"$1 $2 $3 $4\",[\"[3-57]|8[13-9]|9(?:0[89]|[2-579])|(?:2|80)[2-9]\"]]],0,0,\"(15(?:0[06]|1[12]|[35]5|4[04]|6[26]|77|88|99)\\\\d)\"],\"LV\":[\"371\",\"00\",\"(?:[268]\\\\d|90)\\\\d{6}\",[8],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[269]|8[01]\"]]]],\"LY\":[\"218\",\"00\",\"[2-9]\\\\d{8}\",[9],[[\"(\\\\d{2})(\\\\d{7})\",\"$1-$2\",[\"[2-9]\"],\"0$1\"]],\"0\"],\"MA\":[\"212\",\"00\",\"[5-8]\\\\d{8}\",[9],[[\"(\\\\d{5})(\\\\d{4})\",\"$1-$2\",[\"5(?:29|38)\",\"5(?:29[1289]|389)\",\"529(?:1[1-46-9]|2[013-8]|90)|5(?:298|389)[0-46-9]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"5[45]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{5})\",\"$1-$2\",[\"5(?:2[2-489]|3[5-9]|9)|892\",\"5(?:2(?:[2-49]|8[235-9])|3[5-9]|9)|892\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{7})\",\"$1-$2\",[\"8\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{6})\",\"$1-$2\",[\"[5-7]\"],\"0$1\"]],\"0\",0,0,0,0,0,[[\"5293[01]\\\\d{4}|5(?:2(?:[0-25-7]\\\\d|3[1-578]|4[02-46-8]|8[0235-7]|9[0-289])|3(?:[0-47]\\\\d|5[02-9]|6[02-8]|8[0189]|9[3-9])|(?:4[067]|5[03])\\\\d)\\\\d{5}\"],[\"(?:6(?:[0-79]\\\\d|8[0-247-9])|7(?:[017]\\\\d|2[0-2]|6[0-8]|8[0-3]))\\\\d{6}\"],[\"80\\\\d{7}\"],[\"89\\\\d{7}\"],0,0,0,0,[\"592(?:4[0-2]|93)\\\\d{4}\"]]],\"MC\":[\"377\",\"00\",\"(?:[3489]|6\\\\d)\\\\d{7}\",[8,9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"4\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[389]\"]],[\"(\\\\d)(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4 $5\",[\"6\"],\"0$1\"]],\"0\"],\"MD\":[\"373\",\"00\",\"(?:[235-7]\\\\d|[89]0)\\\\d{6}\",[8],[[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"[89]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"22|3\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"[25-7]\"],\"0$1\"]],\"0\"],\"ME\":[\"382\",\"00\",\"(?:20|[3-79]\\\\d)\\\\d{6}|80\\\\d{6,7}\",[8,9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[2-9]\"],\"0$1\"]],\"0\"],\"MF\":[\"590\",\"00\",\"590\\\\d{6}|(?:69|80|9\\\\d)\\\\d{7}\",[9],0,\"0\",0,0,0,0,0,[[\"590(?:0[079]|[14]3|[27][79]|3[03-7]|5[0-268]|87)\\\\d{4}\"],[\"69(?:0\\\\d\\\\d|1(?:2[2-9]|3[0-5]))\\\\d{4}\"],[\"80[0-5]\\\\d{6}\"],0,0,0,0,0,[\"9(?:(?:395|76[018])\\\\d|475[0-5])\\\\d{4}\"]]],\"MG\":[\"261\",\"00\",\"[23]\\\\d{8}\",[9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{3})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[23]\"],\"0$1\"]],\"0\",0,\"([24-9]\\\\d{6})$|0\",\"20$1\"],\"MH\":[\"692\",\"011\",\"329\\\\d{4}|(?:[256]\\\\d|45)\\\\d{5}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1-$2\",[\"[2-6]\"]]],\"1\"],\"MK\":[\"389\",\"00\",\"[2-578]\\\\d{7}\",[8],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"2|34[47]|4(?:[37]7|5[47]|64)\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[347]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d)(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[58]\"],\"0$1\"]],\"0\"],\"ML\":[\"223\",\"00\",\"[24-9]\\\\d{7}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[24-9]\"]]]],\"MM\":[\"95\",\"00\",\"1\\\\d{5,7}|95\\\\d{6}|(?:[4-7]|9[0-46-9])\\\\d{6,8}|(?:2|8\\\\d)\\\\d{5,8}\",[6,7,8,9,10],[[\"(\\\\d)(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"16|2\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"[45]|6(?:0[23]|[1-689]|7[235-7])|7(?:[0-4]|5[2-7])|8[1-6]\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[12]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[4-7]|8[1-35]\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{4,6})\",\"$1 $2 $3\",[\"9(?:2[0-4]|[35-9]|4[137-9])\"],\"0$1\"],[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"2\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"92\"],\"0$1\"],[\"(\\\\d)(\\\\d{5})(\\\\d{4})\",\"$1 $2 $3\",[\"9\"],\"0$1\"]],\"0\"],\"MN\":[\"976\",\"001\",\"[12]\\\\d{7,9}|[5-9]\\\\d{7}\",[8,9,10],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"[12]1\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[5-9]\"]],[\"(\\\\d{3})(\\\\d{5,6})\",\"$1 $2\",[\"[12]2[1-3]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{5,6})\",\"$1 $2\",[\"[12](?:27|3[2-8]|4[2-68]|5[1-4689])\",\"[12](?:27|3[2-8]|4[2-68]|5[1-4689])[0-3]\"],\"0$1\"],[\"(\\\\d{5})(\\\\d{4,5})\",\"$1 $2\",[\"[12]\"],\"0$1\"]],\"0\"],\"MO\":[\"853\",\"00\",\"0800\\\\d{3}|(?:28|[68]\\\\d)\\\\d{6}\",[7,8],[[\"(\\\\d{4})(\\\\d{3})\",\"$1 $2\",[\"0\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[268]\"]]]],\"MP\":[\"1\",\"011\",\"[58]\\\\d{9}|(?:67|90)0\\\\d{7}\",[10],0,\"1\",0,\"([2-9]\\\\d{6})$|1\",\"670$1\",0,\"670\"],\"MQ\":[\"596\",\"00\",\"596\\\\d{6}|(?:69|80|9\\\\d)\\\\d{7}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[569]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"8\"],\"0$1\"]],\"0\"],\"MR\":[\"222\",\"00\",\"(?:[2-4]\\\\d\\\\d|800)\\\\d{5}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[2-48]\"]]]],\"MS\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|664|900)\\\\d{7}\",[10],0,\"1\",0,\"([34]\\\\d{6})$|1\",\"664$1\",0,\"664\"],\"MT\":[\"356\",\"00\",\"3550\\\\d{4}|(?:[2579]\\\\d\\\\d|800)\\\\d{5}\",[8],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[2357-9]\"]]]],\"MU\":[\"230\",\"0(?:0|[24-7]0|3[03])\",\"(?:[57]|8\\\\d\\\\d)\\\\d{7}|[2-468]\\\\d{6}\",[7,8,10],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[2-46]|8[013]\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[57]\"]],[\"(\\\\d{5})(\\\\d{5})\",\"$1 $2\",[\"8\"]]],0,0,0,0,0,0,0,\"020\"],\"MV\":[\"960\",\"0(?:0|19)\",\"(?:800|9[0-57-9]\\\\d)\\\\d{7}|[34679]\\\\d{6}\",[7,10],[[\"(\\\\d{3})(\\\\d{4})\",\"$1-$2\",[\"[34679]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[89]\"]]],0,0,0,0,0,0,0,\"00\"],\"MW\":[\"265\",\"00\",\"(?:[1289]\\\\d|31|77)\\\\d{7}|1\\\\d{6}\",[7,9],[[\"(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1[2-9]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"2\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[137-9]\"],\"0$1\"]],\"0\"],\"MX\":[\"52\",\"0[09]\",\"1(?:(?:[27]2|44|99)[1-9]|65[0-689])\\\\d{7}|(?:1(?:[01]\\\\d|2[13-9]|[35][1-9]|4[0-35-9]|6[0-46-9]|7[013-9]|8[1-79]|9[1-8])|[2-9]\\\\d)\\\\d{8}\",[10,11],[[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"33|5[56]|81\"],0,1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[2-9]\"],0,1],[\"(\\\\d)(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$2 $3 $4\",[\"1(?:33|5[56]|81)\"],0,1],[\"(\\\\d)(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$2 $3 $4\",[\"1\"],0,1]],\"01\",0,\"0(?:[12]|4[45])|1\",0,0,0,0,\"00\"],\"MY\":[\"60\",\"00\",\"1\\\\d{8,9}|(?:3\\\\d|[4-9])\\\\d{7}\",[8,9,10],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1-$2 $3\",[\"[4-79]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1-$2 $3\",[\"1(?:[02469]|[378][1-9]|53)|8\",\"1(?:[02469]|[37][1-9]|53|8(?:[1-46-9]|5[7-9]))|8\"],\"0$1\"],[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1-$2 $3\",[\"3\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{2})(\\\\d{4})\",\"$1-$2-$3-$4\",[\"1(?:[367]|80)\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1-$2 $3\",[\"15\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1-$2 $3\",[\"1\"],\"0$1\"]],\"0\"],\"MZ\":[\"258\",\"00\",\"(?:2|8\\\\d)\\\\d{7}\",[8,9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"2|8[2-79]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"8\"]]]],\"NA\":[\"264\",\"00\",\"[68]\\\\d{7,8}\",[8,9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"88\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"6\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"87\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"],\"0$1\"]],\"0\"],\"NC\":[\"687\",\"00\",\"(?:050|[2-57-9]\\\\d\\\\d)\\\\d{3}\",[6],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1.$2.$3\",[\"[02-57-9]\"]]]],\"NE\":[\"227\",\"00\",\"[027-9]\\\\d{7}\",[8],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"08\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[089]|2[013]|7[047]\"]]]],\"NF\":[\"672\",\"00\",\"[13]\\\\d{5}\",[6],[[\"(\\\\d{2})(\\\\d{4})\",\"$1 $2\",[\"1[0-3]\"]],[\"(\\\\d)(\\\\d{5})\",\"$1 $2\",[\"[13]\"]]],0,0,\"([0-258]\\\\d{4})$\",\"3$1\"],\"NG\":[\"234\",\"009\",\"(?:[124-7]|9\\\\d{3})\\\\d{6}|[1-9]\\\\d{7}|[78]\\\\d{9,13}\",[7,8,10,11,12,13,14],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"78\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[12]|9(?:0[3-9]|[1-9])\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2,3})\",\"$1 $2 $3\",[\"[3-7]|8[2-9]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[7-9]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{4})(\\\\d{4,5})\",\"$1 $2 $3\",[\"[78]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{5})(\\\\d{5,6})\",\"$1 $2 $3\",[\"[78]\"],\"0$1\"]],\"0\"],\"NI\":[\"505\",\"00\",\"(?:1800|[25-8]\\\\d{3})\\\\d{4}\",[8],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[125-8]\"]]]],\"NL\":[\"31\",\"00\",\"(?:[124-7]\\\\d\\\\d|3(?:[02-9]\\\\d|1[0-8]))\\\\d{6}|8\\\\d{6,9}|9\\\\d{6,10}|1\\\\d{4,5}\",[5,6,7,8,9,10,11],[[\"(\\\\d{3})(\\\\d{4,7})\",\"$1 $2\",[\"[89]0\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{7})\",\"$1 $2\",[\"66\"],\"0$1\"],[\"(\\\\d)(\\\\d{8})\",\"$1 $2\",[\"6\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1[16-8]|2[259]|3[124]|4[17-9]|5[124679]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[1-578]|91\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{5})\",\"$1 $2 $3\",[\"9\"],\"0$1\"]],\"0\"],\"NO\":[\"47\",\"00\",\"(?:0|[2-9]\\\\d{3})\\\\d{4}\",[5,8],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"8\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[2-79]\"]]],0,0,0,0,0,\"[02-689]|7[0-8]\"],\"NP\":[\"977\",\"00\",\"(?:1\\\\d|9)\\\\d{9}|[1-9]\\\\d{7}\",[8,10,11],[[\"(\\\\d)(\\\\d{7})\",\"$1-$2\",[\"1[2-6]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{6})\",\"$1-$2\",[\"1[01]|[2-8]|9(?:[1-59]|[67][2-6])\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{7})\",\"$1-$2\",[\"9\"]]],\"0\"],\"NR\":[\"674\",\"00\",\"(?:444|(?:55|8\\\\d)\\\\d|666)\\\\d{4}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[4-68]\"]]]],\"NU\":[\"683\",\"00\",\"(?:[47]|888\\\\d)\\\\d{3}\",[4,7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"8\"]]]],\"NZ\":[\"64\",\"0(?:0|161)\",\"[1289]\\\\d{9}|50\\\\d{5}(?:\\\\d{2,3})?|[27-9]\\\\d{7,8}|(?:[34]\\\\d|6[0-35-9])\\\\d{6}|8\\\\d{4,6}\",[5,6,7,8,9,10],[[\"(\\\\d{2})(\\\\d{3,8})\",\"$1 $2\",[\"8[1-79]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2,3})\",\"$1 $2 $3\",[\"50[036-8]|8|90\",\"50(?:[0367]|88)|8|90\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"24|[346]|7[2-57-9]|9[2-9]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"2(?:10|74)|[589]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3,4})(\\\\d{4})\",\"$1 $2 $3\",[\"1|2[028]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,5})\",\"$1 $2 $3\",[\"2(?:[169]|7[0-35-9])|7\"],\"0$1\"]],\"0\",0,0,0,0,0,0,\"00\"],\"OM\":[\"968\",\"00\",\"(?:1505|[279]\\\\d{3}|500)\\\\d{4}|800\\\\d{5,6}\",[7,8,9],[[\"(\\\\d{3})(\\\\d{4,6})\",\"$1 $2\",[\"[58]\"]],[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"2\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[179]\"]]]],\"PA\":[\"507\",\"00\",\"(?:00800|8\\\\d{3})\\\\d{6}|[68]\\\\d{7}|[1-57-9]\\\\d{6}\",[7,8,10,11],[[\"(\\\\d{3})(\\\\d{4})\",\"$1-$2\",[\"[1-57-9]\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1-$2\",[\"[68]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"]]]],\"PE\":[\"51\",\"00|19(?:1[124]|77|90)00\",\"(?:[14-8]|9\\\\d)\\\\d{7}\",[8,9],[[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"80\"],\"(0$1)\"],[\"(\\\\d)(\\\\d{7})\",\"$1 $2\",[\"1\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"[4-8]\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"9\"]]],\"0\",0,0,0,0,0,0,\"00\",\" Anexo \"],\"PF\":[\"689\",\"00\",\"4\\\\d{5}(?:\\\\d{2})?|8\\\\d{7,8}\",[6,8,9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"44\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"4|8[7-9]\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"8\"]]]],\"PG\":[\"675\",\"00|140[1-3]\",\"(?:180|[78]\\\\d{3})\\\\d{4}|(?:[2-589]\\\\d|64)\\\\d{5}\",[7,8],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"18|[2-69]|85\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[78]\"]]],0,0,0,0,0,0,0,\"00\"],\"PH\":[\"63\",\"00\",\"(?:[2-7]|9\\\\d)\\\\d{8}|2\\\\d{5}|(?:1800|8)\\\\d{7,9}\",[6,8,9,10,11,12,13],[[\"(\\\\d)(\\\\d{5})\",\"$1 $2\",[\"2\"],\"(0$1)\"],[\"(\\\\d{4})(\\\\d{4,6})\",\"$1 $2\",[\"3(?:23|39|46)|4(?:2[3-6]|[35]9|4[26]|76)|544|88[245]|(?:52|64|86)2\",\"3(?:230|397|461)|4(?:2(?:35|[46]4|51)|396|4(?:22|63)|59[347]|76[15])|5(?:221|446)|642[23]|8(?:622|8(?:[24]2|5[13]))\"],\"(0$1)\"],[\"(\\\\d{5})(\\\\d{4})\",\"$1 $2\",[\"346|4(?:27|9[35])|883\",\"3469|4(?:279|9(?:30|56))|8834\"],\"(0$1)\"],[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"2\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[3-7]|8[2-8]\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[89]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"]],[\"(\\\\d{4})(\\\\d{1,2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3 $4\",[\"1\"]]],\"0\"],\"PK\":[\"92\",\"00\",\"122\\\\d{6}|[24-8]\\\\d{10,11}|9(?:[013-9]\\\\d{8,10}|2(?:[01]\\\\d\\\\d|2(?:[06-8]\\\\d|1[01]))\\\\d{7})|(?:[2-8]\\\\d{3}|92(?:[0-7]\\\\d|8[1-9]))\\\\d{6}|[24-9]\\\\d{8}|[89]\\\\d{7}\",[8,9,10,11,12],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{2,7})\",\"$1 $2 $3\",[\"[89]0\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{5})\",\"$1 $2\",[\"1\"]],[\"(\\\\d{3})(\\\\d{6,7})\",\"$1 $2\",[\"2(?:3[2358]|4[2-4]|9[2-8])|45[3479]|54[2-467]|60[468]|72[236]|8(?:2[2-689]|3[23578]|4[3478]|5[2356])|9(?:2[2-8]|3[27-9]|4[2-6]|6[3569]|9[25-8])\",\"9(?:2[3-8]|98)|(?:2(?:3[2358]|4[2-4]|9[2-8])|45[3479]|54[2-467]|60[468]|72[236]|8(?:2[2-689]|3[23578]|4[3478]|5[2356])|9(?:22|3[27-9]|4[2-6]|6[3569]|9[25-7]))[2-9]\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{7,8})\",\"$1 $2\",[\"(?:2[125]|4[0-246-9]|5[1-35-7]|6[1-8]|7[14]|8[16]|91)[2-9]\"],\"(0$1)\"],[\"(\\\\d{5})(\\\\d{5})\",\"$1 $2\",[\"58\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{7})\",\"$1 $2\",[\"3\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"2[125]|4[0-246-9]|5[1-35-7]|6[1-8]|7[14]|8[16]|91\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"[24-9]\"],\"(0$1)\"]],\"0\"],\"PL\":[\"48\",\"00\",\"(?:6|8\\\\d\\\\d)\\\\d{7}|[1-9]\\\\d{6}(?:\\\\d{2})?|[26]\\\\d{5}\",[6,7,8,9,10],[[\"(\\\\d{5})\",\"$1\",[\"19\"]],[\"(\\\\d{3})(\\\\d{3})\",\"$1 $2\",[\"11|20|64\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"(?:1[2-8]|2[2-69]|3[2-4]|4[1-468]|5[24-689]|6[1-3578]|7[14-7]|8[1-79]|9[145])1\",\"(?:1[2-8]|2[2-69]|3[2-4]|4[1-468]|5[24-689]|6[1-3578]|7[14-7]|8[1-79]|9[145])19\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2,3})\",\"$1 $2 $3\",[\"64\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"21|39|45|5[0137]|6[0469]|7[02389]|8(?:0[14]|8)\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"1[2-8]|[2-7]|8[1-79]|9[145]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"8\"]]]],\"PM\":[\"508\",\"00\",\"[45]\\\\d{5}|(?:708|80\\\\d)\\\\d{6}\",[6,9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"[45]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"7\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"8\"],\"0$1\"]],\"0\"],\"PR\":[\"1\",\"011\",\"(?:[589]\\\\d\\\\d|787)\\\\d{7}\",[10],0,\"1\",0,0,0,0,\"787|939\"],\"PS\":[\"970\",\"00\",\"[2489]2\\\\d{6}|(?:1\\\\d|5)\\\\d{8}\",[8,9,10],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[2489]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"5\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1\"]]],\"0\"],\"PT\":[\"351\",\"00\",\"1693\\\\d{5}|(?:[26-9]\\\\d|30)\\\\d{7}\",[9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"2[12]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"16|[236-9]\"]]]],\"PW\":[\"680\",\"01[12]\",\"(?:[24-8]\\\\d\\\\d|345|900)\\\\d{4}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[2-9]\"]]]],\"PY\":[\"595\",\"00\",\"59\\\\d{4,6}|9\\\\d{5,10}|(?:[2-46-8]\\\\d|5[0-8])\\\\d{4,7}\",[6,7,8,9,10,11],[[\"(\\\\d{3})(\\\\d{3,6})\",\"$1 $2\",[\"[2-9]0\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"[26]1|3[289]|4[1246-8]|7[1-3]|8[1-36]\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{4,5})\",\"$1 $2\",[\"2[279]|3[13-5]|4[359]|5|6(?:[34]|7[1-46-8])|7[46-8]|85\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"2[14-68]|3[26-9]|4[1246-8]|6(?:1|75)|7[1-35]|8[1-36]\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"87\"]],[\"(\\\\d{3})(\\\\d{6})\",\"$1 $2\",[\"9(?:[5-79]|8[1-6])\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[2-8]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"9\"]]],\"0\"],\"QA\":[\"974\",\"00\",\"800\\\\d{4}|(?:2|800)\\\\d{6}|(?:0080|[3-7])\\\\d{7}\",[7,8,9,11],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"2[16]|8\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[3-7]\"]]]],\"RE\":[\"262\",\"00\",\"(?:26|[689]\\\\d)\\\\d{7}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[2689]\"],\"0$1\"]],\"0\",0,0,0,0,0,[[\"26(?:2\\\\d\\\\d|3(?:0\\\\d|1[0-5]))\\\\d{4}\"],[\"69(?:2\\\\d\\\\d|3(?:[06][0-6]|1[013]|2[0-2]|3[0-39]|4\\\\d|5[0-5]|7[0-27]|8[0-8]|9[0-479]))\\\\d{4}\"],[\"80\\\\d{7}\"],[\"89[1-37-9]\\\\d{6}\"],0,0,0,0,[\"9(?:399[0-3]|479[0-5]|76(?:2[27]|3[0-37]))\\\\d{4}\"],[\"8(?:1[019]|2[0156]|84|90)\\\\d{6}\"]]],\"RO\":[\"40\",\"00\",\"(?:[2378]\\\\d|90)\\\\d{7}|[23]\\\\d{5}\",[6,9],[[\"(\\\\d{3})(\\\\d{3})\",\"$1 $2\",[\"2[3-6]\",\"2[3-6]\\\\d9\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})\",\"$1 $2\",[\"219|31\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[23]1\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[237-9]\"],\"0$1\"]],\"0\",0,0,0,0,0,0,0,\" int \"],\"RS\":[\"381\",\"00\",\"38[02-9]\\\\d{6,9}|6\\\\d{7,9}|90\\\\d{4,8}|38\\\\d{5,6}|(?:7\\\\d\\\\d|800)\\\\d{3,9}|(?:[12]\\\\d|3[0-79])\\\\d{5,10}\",[6,7,8,9,10,11,12],[[\"(\\\\d{3})(\\\\d{3,9})\",\"$1 $2\",[\"(?:2[389]|39)0|[7-9]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{5,10})\",\"$1 $2\",[\"[1-36]\"],\"0$1\"]],\"0\"],\"RU\":[\"7\",\"810\",\"8\\\\d{13}|[347-9]\\\\d{9}\",[10,14],[[\"(\\\\d{4})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"7(?:1[0-8]|2[1-9])\",\"7(?:1(?:[0-356]2|4[29]|7|8[27])|2(?:1[23]|[2-9]2))\",\"7(?:1(?:[0-356]2|4[29]|7|8[27])|2(?:13[03-69]|62[013-9]))|72[1-57-9]2\"],\"8 ($1)\",1],[\"(\\\\d{5})(\\\\d)(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"7(?:1[0-68]|2[1-9])\",\"7(?:1(?:[06][3-6]|[18]|2[35]|[3-5][3-5])|2(?:[13][3-5]|[24-689]|7[457]))\",\"7(?:1(?:0(?:[356]|4[023])|[18]|2(?:3[013-9]|5)|3[45]|43[013-79]|5(?:3[1-8]|4[1-7]|5)|6(?:3[0-35-9]|[4-6]))|2(?:1(?:3[178]|[45])|[24-689]|3[35]|7[457]))|7(?:14|23)4[0-8]|71(?:33|45)[1-79]\"],\"8 ($1)\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"7\"],\"8 ($1)\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2-$3-$4\",[\"[349]|8(?:[02-7]|1[1-8])\"],\"8 ($1)\",1],[\"(\\\\d{4})(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"8\"],\"8 ($1)\"]],\"8\",0,0,0,0,\"3[04-689]|[489]\",0,\"8~10\"],\"RW\":[\"250\",\"00\",\"(?:06|[27]\\\\d\\\\d|[89]00)\\\\d{6}\",[8,9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"0\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"2\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[7-9]\"],\"0$1\"]],\"0\"],\"SA\":[\"966\",\"00\",\"92\\\\d{7}|(?:[15]|8\\\\d)\\\\d{8}\",[9,10],[[\"(\\\\d{4})(\\\\d{5})\",\"$1 $2\",[\"9\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"5\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"81\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"]]],\"0\"],\"SB\":[\"677\",\"0[01]\",\"(?:[1-6]|[7-9]\\\\d\\\\d)\\\\d{4}\",[5,7],[[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"7|8[4-9]|9(?:[1-8]|9[0-8])\"]]]],\"SC\":[\"248\",\"010|0[0-2]\",\"800\\\\d{4}|(?:[249]\\\\d|64)\\\\d{5}\",[7],[[\"(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[246]|9[57]\"]]],0,0,0,0,0,0,0,\"00\"],\"SD\":[\"249\",\"00\",\"[19]\\\\d{8}\",[9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[19]\"],\"0$1\"]],\"0\"],\"SE\":[\"46\",\"00\",\"(?:[26]\\\\d\\\\d|9)\\\\d{9}|[1-9]\\\\d{8}|[1-689]\\\\d{7}|[1-4689]\\\\d{6}|2\\\\d{5}\",[6,7,8,9,10],[[\"(\\\\d{2})(\\\\d{2,3})(\\\\d{2})\",\"$1-$2 $3\",[\"20\"],\"0$1\",0,\"$1 $2 $3\"],[\"(\\\\d{3})(\\\\d{4})\",\"$1-$2\",[\"9(?:00|39|44|9)\"],\"0$1\",0,\"$1 $2\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})\",\"$1-$2 $3\",[\"[12][136]|3[356]|4[0246]|6[03]|90[1-9]\"],\"0$1\",0,\"$1 $2 $3\"],[\"(\\\\d)(\\\\d{2,3})(\\\\d{2})(\\\\d{2})\",\"$1-$2 $3 $4\",[\"8\"],\"0$1\",0,\"$1 $2 $3 $4\"],[\"(\\\\d{3})(\\\\d{2,3})(\\\\d{2})\",\"$1-$2 $3\",[\"1[2457]|2(?:[247-9]|5[0138])|3[0247-9]|4[1357-9]|5[0-35-9]|6(?:[125689]|4[02-57]|7[0-2])|9(?:[125-8]|3[02-5]|4[0-3])\"],\"0$1\",0,\"$1 $2 $3\"],[\"(\\\\d{3})(\\\\d{2,3})(\\\\d{3})\",\"$1-$2 $3\",[\"9(?:00|39|44)\"],\"0$1\",0,\"$1 $2 $3\"],[\"(\\\\d{2})(\\\\d{2,3})(\\\\d{2})(\\\\d{2})\",\"$1-$2 $3 $4\",[\"1[13689]|2[0136]|3[1356]|4[0246]|54|6[03]|90[1-9]\"],\"0$1\",0,\"$1 $2 $3 $4\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1-$2 $3 $4\",[\"10|7\"],\"0$1\",0,\"$1 $2 $3 $4\"],[\"(\\\\d)(\\\\d{3})(\\\\d{3})(\\\\d{2})\",\"$1-$2 $3 $4\",[\"8\"],\"0$1\",0,\"$1 $2 $3 $4\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1-$2 $3 $4\",[\"[13-5]|2(?:[247-9]|5[0138])|6(?:[124-689]|7[0-2])|9(?:[125-8]|3[02-5]|4[0-3])\"],\"0$1\",0,\"$1 $2 $3 $4\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1-$2 $3 $4\",[\"9\"],\"0$1\",0,\"$1 $2 $3 $4\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1-$2 $3 $4 $5\",[\"[26]\"],\"0$1\",0,\"$1 $2 $3 $4 $5\"]],\"0\"],\"SG\":[\"65\",\"0[0-3]\\\\d\",\"(?:(?:1\\\\d|8)\\\\d\\\\d|7000)\\\\d{7}|[3689]\\\\d{7}\",[8,10,11],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[369]|8(?:0[1-8]|[1-9])\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"]],[\"(\\\\d{4})(\\\\d{4})(\\\\d{3})\",\"$1 $2 $3\",[\"7\"]],[\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"]]]],\"SH\":[\"290\",\"00\",\"(?:[256]\\\\d|8)\\\\d{3}\",[4,5],0,0,0,0,0,0,\"[256]\"],\"SI\":[\"386\",\"00|10(?:22|66|88|99)\",\"[1-7]\\\\d{7}|8\\\\d{4,7}|90\\\\d{4,6}\",[5,6,7,8],[[\"(\\\\d{2})(\\\\d{3,6})\",\"$1 $2\",[\"8[09]|9\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"59|8\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[37][01]|4[0139]|51|6\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[1-57]\"],\"(0$1)\"]],\"0\",0,0,0,0,0,0,\"00\"],\"SJ\":[\"47\",\"00\",\"0\\\\d{4}|(?:[489]\\\\d|79)\\\\d{6}\",[5,8],0,0,0,0,0,0,\"79\"],\"SK\":[\"421\",\"00\",\"[2-689]\\\\d{8}|[2-59]\\\\d{6}|[2-5]\\\\d{5}\",[6,7,9],[[\"(\\\\d)(\\\\d{2})(\\\\d{3,4})\",\"$1 $2 $3\",[\"21\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2,3})\",\"$1 $2 $3\",[\"[3-5][1-8]1\",\"[3-5][1-8]1[67]\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{3})(\\\\d{2})\",\"$1/$2 $3 $4\",[\"2\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[689]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1/$2 $3 $4\",[\"[3-5]\"],\"0$1\"]],\"0\"],\"SL\":[\"232\",\"00\",\"(?:[237-9]\\\\d|66)\\\\d{6}\",[8],[[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"[236-9]\"],\"(0$1)\"]],\"0\"],\"SM\":[\"378\",\"00\",\"(?:0549|[5-7]\\\\d)\\\\d{6}\",[8,10],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[5-7]\"]],[\"(\\\\d{4})(\\\\d{6})\",\"$1 $2\",[\"0\"]]],0,0,\"([89]\\\\d{5})$\",\"0549$1\"],\"SN\":[\"221\",\"00\",\"(?:[378]\\\\d|93)\\\\d{7}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"8\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[379]\"]]]],\"SO\":[\"252\",\"00\",\"[346-9]\\\\d{8}|[12679]\\\\d{7}|[1-5]\\\\d{6}|[1348]\\\\d{5}\",[6,7,8,9],[[\"(\\\\d{2})(\\\\d{4})\",\"$1 $2\",[\"8[125]\"]],[\"(\\\\d{6})\",\"$1\",[\"[134]\"]],[\"(\\\\d)(\\\\d{6})\",\"$1 $2\",[\"[15]|2[0-79]|3[0-46-8]|4[0-7]\"]],[\"(\\\\d)(\\\\d{7})\",\"$1 $2\",[\"(?:2|90)4|[67]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[348]|64|79|90\"]],[\"(\\\\d{2})(\\\\d{5,7})\",\"$1 $2\",[\"1|28|6[0-35-9]|77|9[2-9]\"]]],\"0\"],\"SR\":[\"597\",\"00\",\"(?:[2-5]|68|[78]\\\\d)\\\\d{5}\",[6,7],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1-$2-$3\",[\"56\"]],[\"(\\\\d{3})(\\\\d{3})\",\"$1-$2\",[\"[2-5]\"]],[\"(\\\\d{3})(\\\\d{4})\",\"$1-$2\",[\"[6-8]\"]]]],\"SS\":[\"211\",\"00\",\"[19]\\\\d{8}\",[9],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[19]\"],\"0$1\"]],\"0\"],\"ST\":[\"239\",\"00\",\"(?:22|9\\\\d)\\\\d{5}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[29]\"]]]],\"SV\":[\"503\",\"00\",\"[267]\\\\d{7}|[89]00\\\\d{4}(?:\\\\d{4})?\",[7,8,11],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[89]\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[267]\"]],[\"(\\\\d{3})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"[89]\"]]]],\"SX\":[\"1\",\"011\",\"7215\\\\d{6}|(?:[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"(5\\\\d{6})$|1\",\"721$1\",0,\"721\"],\"SY\":[\"963\",\"00\",\"[1-39]\\\\d{8}|[1-5]\\\\d{7}\",[8,9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[1-5]\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"9\"],\"0$1\",1]],\"0\"],\"SZ\":[\"268\",\"00\",\"0800\\\\d{4}|(?:[237]\\\\d|900)\\\\d{6}\",[8,9],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[0237]\"]],[\"(\\\\d{5})(\\\\d{4})\",\"$1 $2\",[\"9\"]]]],\"TA\":[\"290\",\"00\",\"8\\\\d{3}\",[4],0,0,0,0,0,0,\"8\"],\"TC\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|649|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-479]\\\\d{6})$|1\",\"649$1\",0,\"649\"],\"TD\":[\"235\",\"00|16\",\"(?:22|[69]\\\\d|77)\\\\d{6}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[2679]\"]]],0,0,0,0,0,0,0,\"00\"],\"TG\":[\"228\",\"00\",\"[279]\\\\d{7}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[279]\"]]]],\"TH\":[\"66\",\"00[1-9]\",\"(?:001800|[2-57]|[689]\\\\d)\\\\d{7}|1\\\\d{7,9}\",[8,9,10,13],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"2\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[13-9]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1\"]]],\"0\"],\"TJ\":[\"992\",\"810\",\"[0-57-9]\\\\d{8}\",[9],[[\"(\\\\d{6})(\\\\d)(\\\\d{2})\",\"$1 $2 $3\",[\"331\",\"3317\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"44[04]|[34]7\"]],[\"(\\\\d{4})(\\\\d)(\\\\d{4})\",\"$1 $2 $3\",[\"3[1-5]\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[0-57-9]\"]]],0,0,0,0,0,0,0,\"8~10\"],\"TK\":[\"690\",\"00\",\"[2-47]\\\\d{3,6}\",[4,5,6,7]],\"TL\":[\"670\",\"00\",\"7\\\\d{7}|(?:[2-47]\\\\d|[89]0)\\\\d{5}\",[7,8],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[2-489]|70\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"7\"]]]],\"TM\":[\"993\",\"810\",\"[1-6]\\\\d{7}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2-$3-$4\",[\"12\"],\"(8 $1)\"],[\"(\\\\d{3})(\\\\d)(\\\\d{2})(\\\\d{2})\",\"$1 $2-$3-$4\",[\"[1-5]\"],\"(8 $1)\"],[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"6\"],\"8 $1\"]],\"8\",0,0,0,0,0,0,\"8~10\"],\"TN\":[\"216\",\"00\",\"[2-57-9]\\\\d{7}\",[8],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[2-57-9]\"]]]],\"TO\":[\"676\",\"00\",\"(?:0800|(?:[5-8]\\\\d\\\\d|999)\\\\d)\\\\d{3}|[2-8]\\\\d{4}\",[5,7],[[\"(\\\\d{2})(\\\\d{3})\",\"$1-$2\",[\"[2-4]|50|6[09]|7[0-24-69]|8[05]\"]],[\"(\\\\d{4})(\\\\d{3})\",\"$1 $2\",[\"0\"]],[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[5-9]\"]]]],\"TR\":[\"90\",\"00\",\"4\\\\d{6}|8\\\\d{11,12}|(?:[2-58]\\\\d\\\\d|900)\\\\d{7}\",[7,10,12,13],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"512|8[01589]|90\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"5(?:[0-59]|61)\",\"5(?:[0-59]|616)\",\"5(?:[0-59]|6161)\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[24][1-8]|3[1-9]\"],\"(0$1)\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{6,7})\",\"$1 $2 $3\",[\"80\"],\"0$1\",1]],\"0\"],\"TT\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-46-8]\\\\d{6})$|1\",\"868$1\",0,\"868\"],\"TV\":[\"688\",\"00\",\"(?:2|7\\\\d\\\\d|90)\\\\d{4}\",[5,6,7],[[\"(\\\\d{2})(\\\\d{3})\",\"$1 $2\",[\"2\"]],[\"(\\\\d{2})(\\\\d{4})\",\"$1 $2\",[\"90\"]],[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"7\"]]]],\"TW\":[\"886\",\"0(?:0[25-79]|19)\",\"[2-689]\\\\d{8}|7\\\\d{9,10}|[2-8]\\\\d{7}|2\\\\d{6}\",[7,8,9,10,11],[[\"(\\\\d{2})(\\\\d)(\\\\d{4})\",\"$1 $2 $3\",[\"202\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[258]0\"],\"0$1\"],[\"(\\\\d)(\\\\d{3,4})(\\\\d{4})\",\"$1 $2 $3\",[\"[23568]|4(?:0[02-48]|[1-47-9])|7[1-9]\",\"[23568]|4(?:0[2-48]|[1-47-9])|(?:400|7)[1-9]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[49]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4,5})\",\"$1 $2 $3\",[\"7\"],\"0$1\"]],\"0\",0,0,0,0,0,0,0,\"#\"],\"TZ\":[\"255\",\"00[056]\",\"(?:[25-8]\\\\d|41|90)\\\\d{7}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"[89]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[24]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{7})\",\"$1 $2\",[\"5\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[67]\"],\"0$1\"]],\"0\"],\"UA\":[\"380\",\"00\",\"[89]\\\\d{9}|[3-9]\\\\d{8}\",[9,10],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"6[12][29]|(?:3[1-8]|4[136-8]|5[12457]|6[49])2|(?:56|65)[24]\",\"6[12][29]|(?:35|4[1378]|5[12457]|6[49])2|(?:56|65)[24]|(?:3[1-46-8]|46)2[013-9]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{5})\",\"$1 $2\",[\"3[1-8]|4(?:[1367]|[45][6-9]|8[4-6])|5(?:[1-5]|6[0135689]|7[4-6])|6(?:[12][3-7]|[459])\",\"3[1-8]|4(?:[1367]|[45][6-9]|8[4-6])|5(?:[1-5]|6(?:[015689]|3[02389])|7[4-6])|6(?:[12][3-7]|[459])\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[3-7]|89|9[1-9]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[89]\"],\"0$1\"]],\"0\",0,0,0,0,0,0,\"0~0\"],\"UG\":[\"256\",\"00[057]\",\"800\\\\d{6}|(?:[29]0|[347]\\\\d)\\\\d{7}\",[9],[[\"(\\\\d{4})(\\\\d{5})\",\"$1 $2\",[\"202\",\"2024\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{6})\",\"$1 $2\",[\"[27-9]|4(?:6[45]|[7-9])\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{7})\",\"$1 $2\",[\"[34]\"],\"0$1\"]],\"0\"],\"US\":[\"1\",\"011\",\"[2-9]\\\\d{9}|3\\\\d{6}\",[10],[[\"(\\\\d{3})(\\\\d{4})\",\"$1-$2\",[\"310\"],0,1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"($1) $2-$3\",[\"[2-9]\"],0,1,\"$1-$2-$3\"]],\"1\",0,0,0,0,0,[[\"5056(?:[0-35-9]\\\\d|4[46])\\\\d{4}|(?:4722|505[2-57-9]|983[29])\\\\d{6}|(?:2(?:0[1-35-9]|1[02-9]|2[03-589]|3[149]|4[08]|5[1-46]|6[0279]|7[0269]|8[13])|3(?:0[1-57-9]|1[02-9]|2[01356]|3[0-24679]|4[167]|5[0-2]|6[014]|8[056])|4(?:0[124-9]|1[02-579]|2[3-5]|3[0245]|4[023578]|58|6[349]|7[0589]|8[04])|5(?:0[1-47-9]|1[0235-8]|20|3[0149]|4[01]|5[179]|6[1-47]|7[0-5]|8[0256])|6(?:0[1-35-9]|1[024-9]|2[03689]|[34][016]|5[01679]|6[0-279]|78|8[0-29])|7(?:0[1-46-8]|1[2-9]|2[04-7]|3[1247]|4[037]|5[47]|6[02359]|7[0-59]|8[156])|8(?:0[1-68]|1[02-8]|2[068]|3[0-2589]|4[03578]|5[046-9]|6[02-5]|7[028])|9(?:0[1346-9]|1[02-9]|2[0589]|3[0146-8]|4[01357-9]|5[12469]|7[0-389]|8[04-69]))[2-9]\\\\d{6}\"],[\"\"],[\"8(?:00|33|44|55|66|77|88)[2-9]\\\\d{6}\"],[\"900[2-9]\\\\d{6}\"],[\"52(?:3(?:[2-46-9][02-9]\\\\d|5(?:[02-46-9]\\\\d|5[0-46-9]))|4(?:[2-478][02-9]\\\\d|5(?:[034]\\\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\\\d)|9(?:[05-9]\\\\d|2[0-5]|49)))\\\\d{4}|52[34][2-9]1[02-9]\\\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\\\d{6}\"]]],\"UY\":[\"598\",\"0(?:0|1[3-9]\\\\d)\",\"(?:0004|4)\\\\d{9}|[1249]\\\\d{7}|(?:[49]\\\\d|80)\\\\d{5}\",[7,8,10,13],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"405|8|90\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"9\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[124]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"4\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3 $4\",[\"0\"]]],\"0\",0,0,0,0,0,0,\"00\",\" int. \"],\"UZ\":[\"998\",\"810\",\"200\\\\d{6}|(?:33|[5-79]\\\\d|88)\\\\d{7}\",[9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[235-9]\"],\"8 $1\"]],\"8\",0,0,0,0,0,0,\"8~10\"],\"VA\":[\"39\",\"00\",\"0\\\\d{5,10}|3[0-8]\\\\d{7,10}|55\\\\d{8}|8\\\\d{5}(?:\\\\d{2,4})?|(?:1\\\\d|39)\\\\d{7,8}\",[6,7,8,9,10,11],0,0,0,0,0,0,\"06698\"],\"VC\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|784|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-7]\\\\d{6})$|1\",\"784$1\",0,\"784\"],\"VE\":[\"58\",\"00\",\"[68]00\\\\d{7}|(?:[24]\\\\d|[59]0)\\\\d{8}\",[10],[[\"(\\\\d{3})(\\\\d{7})\",\"$1-$2\",[\"[24-689]\"],\"0$1\"]],\"0\"],\"VG\":[\"1\",\"011\",\"(?:284|[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-578]\\\\d{6})$|1\",\"284$1\",0,\"284\"],\"VI\":[\"1\",\"011\",\"[58]\\\\d{9}|(?:34|90)0\\\\d{7}\",[10],0,\"1\",0,\"([2-9]\\\\d{6})$|1\",\"340$1\",0,\"340\"],\"VN\":[\"84\",\"00\",\"[12]\\\\d{9}|[135-9]\\\\d{8}|[16]\\\\d{7}|[16-8]\\\\d{6}\",[7,8,9,10],[[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"80\"],\"0$1\",1],[\"(\\\\d{4})(\\\\d{4,6})\",\"$1 $2\",[\"1\"],0,1],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"6\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[357-9]\"],\"0$1\",1],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"2[48]\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{4})(\\\\d{3})\",\"$1 $2 $3\",[\"2\"],\"0$1\",1]],\"0\"],\"VU\":[\"678\",\"00\",\"[57-9]\\\\d{6}|(?:[238]\\\\d|48)\\\\d{3}\",[5,7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[57-9]\"]]]],\"WF\":[\"681\",\"00\",\"(?:40|72)\\\\d{4}|8\\\\d{5}(?:\\\\d{3})?\",[6,9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"[478]\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"8\"]]]],\"WS\":[\"685\",\"0\",\"(?:[2-6]|8\\\\d{5})\\\\d{4}|[78]\\\\d{6}|[68]\\\\d{5}\",[5,6,7,10],[[\"(\\\\d{5})\",\"$1\",[\"[2-5]|6[1-9]\"]],[\"(\\\\d{3})(\\\\d{3,7})\",\"$1 $2\",[\"[68]\"]],[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"7\"]]]],\"XK\":[\"383\",\"00\",\"[23]\\\\d{7,8}|(?:4\\\\d\\\\d|[89]00)\\\\d{5}\",[8,9],[[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"[89]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[2-4]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[23]\"],\"0$1\"]],\"0\"],\"YE\":[\"967\",\"00\",\"(?:1|7\\\\d)\\\\d{7}|[1-7]\\\\d{6}\",[7,8,9],[[\"(\\\\d)(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[1-6]|7(?:[24-6]|8[0-7])\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"7\"],\"0$1\"]],\"0\"],\"YT\":[\"262\",\"00\",\"(?:80|9\\\\d)\\\\d{7}|(?:26|63)9\\\\d{6}\",[9],0,\"0\",0,0,0,0,0,[[\"269(?:0[0-467]|5[0-4]|6\\\\d|[78]0)\\\\d{4}\"],[\"639(?:0[0-79]|1[019]|[267]\\\\d|3[09]|40|5[05-9]|9[04-79])\\\\d{4}\"],[\"80\\\\d{7}\"],0,0,0,0,0,[\"9(?:(?:39|47)8[01]|769\\\\d)\\\\d{4}\"]]],\"ZA\":[\"27\",\"00\",\"[1-79]\\\\d{8}|8\\\\d{4,9}\",[5,6,7,8,9,10],[[\"(\\\\d{2})(\\\\d{3,4})\",\"$1 $2\",[\"8[1-4]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2,3})\",\"$1 $2 $3\",[\"8[1-4]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"860\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[1-9]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"],\"0$1\"]],\"0\"],\"ZM\":[\"260\",\"00\",\"800\\\\d{6}|(?:21|63|[79]\\\\d)\\\\d{7}\",[9],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[28]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{7})\",\"$1 $2\",[\"[79]\"],\"0$1\"]],\"0\"],\"ZW\":[\"263\",\"00\",\"2(?:[0-57-9]\\\\d{6,8}|6[0-24-9]\\\\d{6,7})|[38]\\\\d{9}|[35-8]\\\\d{8}|[3-6]\\\\d{7}|[1-689]\\\\d{6}|[1-3569]\\\\d{5}|[1356]\\\\d{4}\",[5,6,7,8,9,10],[[\"(\\\\d{3})(\\\\d{3,5})\",\"$1 $2\",[\"2(?:0[45]|2[278]|[49]8)|3(?:[09]8|17)|6(?:[29]8|37|75)|[23][78]|(?:33|5[15]|6[68])[78]\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{2,4})\",\"$1 $2 $3\",[\"[49]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"80\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{7})\",\"$1 $2\",[\"24|8[13-59]|(?:2[05-79]|39|5[45]|6[15-8])2\",\"2(?:02[014]|4|[56]20|[79]2)|392|5(?:42|525)|6(?:[16-8]21|52[013])|8[13-59]\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"7\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"2(?:1[39]|2[0157]|[378]|[56][14])|3(?:12|29)\",\"2(?:1[39]|2[0157]|[378]|[56][14])|3(?:123|29)\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{6})\",\"$1 $2\",[\"8\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3,5})\",\"$1 $2\",[\"1|2(?:0[0-36-9]|12|29|[56])|3(?:1[0-689]|[24-6])|5(?:[0236-9]|1[2-4])|6(?:[013-59]|7[0-46-9])|(?:33|55|6[68])[0-69]|(?:29|3[09]|62)[0-79]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"29[013-9]|39|54\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3,5})\",\"$1 $2\",[\"(?:25|54)8\",\"258|5483\"],\"0$1\"]],\"0\"]},\"nonGeographic\":{\"800\":[\"800\",0,\"(?:00|[1-9]\\\\d)\\\\d{6}\",[8],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"\\\\d\"]]],0,0,0,0,0,0,[0,0,[\"(?:00|[1-9]\\\\d)\\\\d{6}\"]]],\"808\":[\"808\",0,\"[1-9]\\\\d{7}\",[8],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[1-9]\"]]],0,0,0,0,0,0,[0,0,0,0,0,0,0,0,0,[\"[1-9]\\\\d{7}\"]]],\"870\":[\"870\",0,\"7\\\\d{11}|[35-7]\\\\d{8}\",[9,12],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[35-7]\"]]],0,0,0,0,0,0,[0,[\"(?:[356]|774[45])\\\\d{8}|7[6-8]\\\\d{7}\"]]],\"878\":[\"878\",0,\"10\\\\d{10}\",[12],[[\"(\\\\d{2})(\\\\d{5})(\\\\d{5})\",\"$1 $2 $3\",[\"1\"]]],0,0,0,0,0,0,[0,0,0,0,0,0,0,0,[\"10\\\\d{10}\"]]],\"881\":[\"881\",0,\"[0-36-9]\\\\d{8}\",[9],[[\"(\\\\d)(\\\\d{3})(\\\\d{5})\",\"$1 $2 $3\",[\"[0-36-9]\"]]],0,0,0,0,0,0,[0,[\"[0-36-9]\\\\d{8}\"]]],\"882\":[\"882\",0,\"[13]\\\\d{6}(?:\\\\d{2,5})?|[19]\\\\d{7}|(?:[25]\\\\d\\\\d|4)\\\\d{7}(?:\\\\d{2})?\",[7,8,9,10,11,12],[[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"16|342\"]],[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"49\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"1[36]|9\"]],[\"(\\\\d{2})(\\\\d{4})(\\\\d{3})\",\"$1 $2 $3\",[\"3[23]\"]],[\"(\\\\d{2})(\\\\d{3,4})(\\\\d{4})\",\"$1 $2 $3\",[\"16\"]],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"10|23|3(?:[15]|4[57])|4|51\"]],[\"(\\\\d{3})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"34\"]],[\"(\\\\d{2})(\\\\d{4,5})(\\\\d{5})\",\"$1 $2 $3\",[\"[1-35]\"]]],0,0,0,0,0,0,[0,[\"342\\\\d{4}|(?:337|49)\\\\d{6}|(?:3(?:2|47|7\\\\d{3})|50\\\\d{3})\\\\d{7}\",[7,8,9,10,12]],0,0,0,0,0,0,[\"1(?:3(?:0[0347]|[13][0139]|2[035]|4[013568]|6[0459]|7[06]|8[15-8]|9[0689])\\\\d{4}|6\\\\d{5,10})|(?:345\\\\d|9[89])\\\\d{6}|(?:10|2(?:3|85\\\\d)|3(?:[15]|[69]\\\\d\\\\d)|4[15-8]|51)\\\\d{8}\"]]],\"883\":[\"883\",0,\"(?:[1-4]\\\\d|51)\\\\d{6,10}\",[8,9,10,11,12],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{2,8})\",\"$1 $2 $3\",[\"[14]|2[24-689]|3[02-689]|51[24-9]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"510\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"21\"]],[\"(\\\\d{4})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"51[13]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"[235]\"]]],0,0,0,0,0,0,[0,0,0,0,0,0,0,0,[\"(?:2(?:00\\\\d\\\\d|10)|(?:370[1-9]|51\\\\d0)\\\\d)\\\\d{7}|51(?:00\\\\d{5}|[24-9]0\\\\d{4,7})|(?:1[013-79]|2[24-689]|3[02-689]|4[0-4])0\\\\d{5,9}\"]]],\"888\":[\"888\",0,\"\\\\d{11}\",[11],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{5})\",\"$1 $2 $3\"]],0,0,0,0,0,0,[0,0,0,0,0,0,[\"\\\\d{11}\"]]],\"979\":[\"979\",0,\"[1359]\\\\d{8}\",[9],[[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"[1359]\"]]],0,0,0,0,0,0,[0,0,0,[\"[1359]\\\\d{8}\"]]]}}","// 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\nexport default function withMetadataArgument(func, _arguments) {\r\n\tvar args = Array.prototype.slice.call(_arguments)\r\n\targs.push(metadata)\r\n\treturn func.apply(this, args)\r\n}","// Extracts the following properties from function arguments:\r\n// * input `text`\r\n// * `options` object\r\n// * `metadata` JSON\r\nexport default function normalizeArguments(args) {\r\n\tconst [arg_1, arg_2, arg_3, arg_4] = Array.prototype.slice.call(args)\r\n\r\n\tlet text\r\n\tlet options\r\n\tlet metadata\r\n\r\n\t// If the phone number is passed as a string.\r\n\t// `parsePhoneNumber('88005553535', ...)`.\r\n\tif (typeof arg_1 === 'string') {\r\n\t\ttext = arg_1\r\n\t}\r\n\telse throw new TypeError('A text for parsing must be a string.')\r\n\r\n\t// If \"default country\" argument is being passed then move it to `options`.\r\n\t// `parsePhoneNumber('88005553535', 'RU', [options], metadata)`.\r\n\tif (!arg_2 || typeof arg_2 === 'string')\r\n\t{\r\n\t\tif (arg_4) {\r\n\t\t\toptions = arg_3\r\n\t\t\tmetadata = arg_4\r\n\t\t} else {\r\n\t\t\toptions = undefined\r\n\t\t\tmetadata = arg_3\r\n\t\t}\r\n\r\n\t\tif (arg_2) {\r\n\t\t\toptions = { defaultCountry: arg_2, ...options }\r\n\t\t}\r\n\t}\r\n\t// `defaultCountry` is not passed.\r\n\t// Example: `parsePhoneNumber('+78005553535', [options], metadata)`.\r\n\telse if (isObject(arg_2))\r\n\t{\r\n\t\tif (arg_3) {\r\n\t\t\toptions = arg_2\r\n\t\t\tmetadata = arg_3\r\n\t\t} else {\r\n\t\t\tmetadata = arg_2\r\n\t\t}\r\n\t}\r\n\telse throw new Error(`Invalid second argument: ${arg_2}`)\r\n\r\n\treturn {\r\n\t\ttext,\r\n\t\toptions,\r\n\t\tmetadata\r\n\t}\r\n}\r\n\r\n// Otherwise istanbul would show this as \"branch not covered\".\r\n/* istanbul ignore next */\r\nconst isObject = _ => typeof _ === 'object'","// The minimum length of the national significant number.\r\nexport const MIN_LENGTH_FOR_NSN = 2\r\n\r\n// The ITU says the maximum length should be 15,\r\n// but one can find longer numbers in Germany.\r\nexport const MAX_LENGTH_FOR_NSN = 17\r\n\r\n// The maximum length of the country calling code.\r\nexport const MAX_LENGTH_COUNTRY_CODE = 3\r\n\r\n// Digits accepted in phone numbers\r\n// (ascii, fullwidth, arabic-indic, and eastern arabic digits).\r\nexport const VALID_DIGITS = '0-9\\uFF10-\\uFF19\\u0660-\\u0669\\u06F0-\\u06F9'\r\n\r\n// `DASHES` will be right after the opening square bracket of the \"character class\"\r\nconst DASHES = '-\\u2010-\\u2015\\u2212\\u30FC\\uFF0D'\r\nconst SLASHES = '\\uFF0F/'\r\nconst DOTS = '\\uFF0E.'\r\nexport const WHITESPACE = ' \\u00A0\\u00AD\\u200B\\u2060\\u3000'\r\nconst BRACKETS = '()\\uFF08\\uFF09\\uFF3B\\uFF3D\\\\[\\\\]'\r\n// export const OPENING_BRACKETS = '(\\uFF08\\uFF3B\\\\\\['\r\nconst TILDES = '~\\u2053\\u223C\\uFF5E'\r\n\r\n// Regular expression of acceptable punctuation found in phone numbers. This\r\n// excludes punctuation found as a leading character only. This consists of dash\r\n// characters, white space characters, full stops, slashes, square brackets,\r\n// parentheses and tildes. Full-width variants are also present.\r\nexport const VALID_PUNCTUATION = `${DASHES}${SLASHES}${DOTS}${WHITESPACE}${BRACKETS}${TILDES}`\r\n\r\nexport const PLUS_CHARS = '+\\uFF0B'\r\n// const LEADING_PLUS_CHARS_PATTERN = new RegExp('^[' + PLUS_CHARS + ']+')","// https://stackoverflow.com/a/46971044/970769\r\n// \"Breaking changes in Typescript 2.1\"\r\n// \"Extending built-ins like Error, Array, and Map may no longer work.\"\r\n// \"As a recommendation, you can manually adjust the prototype immediately after any super(...) calls.\"\r\n// https://github.com/Microsoft/TypeScript-wiki/blob/main/Breaking-Changes.md#extending-built-ins-like-error-array-and-map-may-no-longer-work\r\nexport default class ParseError extends Error {\r\n constructor(code) {\r\n super(code)\r\n // Set the prototype explicitly.\r\n // Any subclass of FooError will have to manually set the prototype as well.\r\n Object.setPrototypeOf(this, ParseError.prototype)\r\n this.name = this.constructor.name\r\n }\r\n}","// Copy-pasted from:\r\n// https://github.com/substack/semver-compare/blob/master/index.js\r\n//\r\n// Inlining this function because some users reported issues with\r\n// importing from `semver-compare` in a browser with ES6 \"native\" modules.\r\n//\r\n// Fixes `semver-compare` not being able to compare versions with alpha/beta/etc \"tags\".\r\n// https://github.com/catamphetamine/libphonenumber-js/issues/381\r\nexport default function(a, b) {\r\n a = a.split('-')\r\n b = b.split('-')\r\n var pa = a[0].split('.')\r\n var pb = b[0].split('.')\r\n for (var i = 0; i < 3; i++) {\r\n var na = Number(pa[i])\r\n var nb = Number(pb[i])\r\n if (na > nb) return 1\r\n if (nb > na) return -1\r\n if (!isNaN(na) && isNaN(nb)) return 1\r\n if (isNaN(na) && !isNaN(nb)) return -1\r\n }\r\n if (a[1] && b[1]) {\r\n return a[1] > b[1] ? 1 : (a[1] < b[1] ? -1 : 0)\r\n }\r\n return !a[1] && b[1] ? 1 : (a[1] && !b[1] ? -1 : 0)\r\n}","import compare from './tools/semver-compare.js'\r\n\r\n// Added \"possibleLengths\" and renamed\r\n// \"country_phone_code_to_countries\" to \"country_calling_codes\".\r\nconst V2 = '1.0.18'\r\n\r\n// Added \"idd_prefix\" and \"default_idd_prefix\".\r\nconst V3 = '1.2.0'\r\n\r\n// Moved `001` country code to \"nonGeographic\" section of metadata.\r\nconst V4 = '1.7.35'\r\n\r\nconst DEFAULT_EXT_PREFIX = ' ext. '\r\n\r\nconst CALLING_CODE_REG_EXP = /^\\d+$/\r\n\r\n/**\r\n * See: https://gitlab.com/catamphetamine/libphonenumber-js/blob/master/METADATA.md\r\n */\r\nexport default class Metadata {\r\n\tconstructor(metadata) {\r\n\t\tvalidateMetadata(metadata)\r\n\t\tthis.metadata = metadata\r\n\t\tsetVersion.call(this, metadata)\r\n\t}\r\n\r\n\tgetCountries() {\r\n\t\treturn Object.keys(this.metadata.countries).filter(_ => _ !== '001')\r\n\t}\r\n\r\n\tgetCountryMetadata(countryCode) {\r\n\t\treturn this.metadata.countries[countryCode]\r\n\t}\r\n\r\n\tnonGeographic() {\r\n\t\tif (this.v1 || this.v2 || this.v3) return\r\n\t\t// `nonGeographical` was a typo.\r\n\t\t// It's present in metadata generated from `1.7.35` to `1.7.37`.\r\n\t\t// The test case could be found by searching for \"nonGeographical\".\r\n\t\treturn this.metadata.nonGeographic || this.metadata.nonGeographical\r\n\t}\r\n\r\n\thasCountry(country) {\r\n\t\treturn this.getCountryMetadata(country) !== undefined\r\n\t}\r\n\r\n\thasCallingCode(callingCode) {\r\n\t\tif (this.getCountryCodesForCallingCode(callingCode)) {\r\n\t\t\treturn true\r\n\t\t}\r\n\t\tif (this.nonGeographic()) {\r\n\t\t\tif (this.nonGeographic()[callingCode]) {\r\n\t\t\t\treturn true\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\t// A hacky workaround for old custom metadata (generated before V4).\r\n\t\t\tconst countryCodes = this.countryCallingCodes()[callingCode]\r\n\t\t\tif (countryCodes && countryCodes.length === 1 && countryCodes[0] === '001') {\r\n\t\t\t\treturn true\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tisNonGeographicCallingCode(callingCode) {\r\n\t\tif (this.nonGeographic()) {\r\n\t\t\treturn this.nonGeographic()[callingCode] ? true : false\r\n\t\t} else {\r\n\t\t\treturn this.getCountryCodesForCallingCode(callingCode) ? false : true\r\n\t\t}\r\n\t}\r\n\r\n\t// Deprecated.\r\n\tcountry(countryCode) {\r\n\t\treturn this.selectNumberingPlan(countryCode)\r\n\t}\r\n\r\n\tselectNumberingPlan(countryCode, callingCode) {\r\n\t\t// Supports just passing `callingCode` as the first argument.\r\n\t\tif (countryCode && CALLING_CODE_REG_EXP.test(countryCode)) {\r\n\t\t\tcallingCode = countryCode\r\n\t\t\tcountryCode = null\r\n\t\t}\r\n\t\tif (countryCode && countryCode !== '001') {\r\n\t\t\tif (!this.hasCountry(countryCode)) {\r\n\t\t\t\tthrow new Error(`Unknown country: ${countryCode}`)\r\n\t\t\t}\r\n\t\t\tthis.numberingPlan = new NumberingPlan(this.getCountryMetadata(countryCode), this)\r\n\t\t} else if (callingCode) {\r\n\t\t\tif (!this.hasCallingCode(callingCode)) {\r\n\t\t\t\tthrow new Error(`Unknown calling code: ${callingCode}`)\r\n\t\t\t}\r\n\t\t\tthis.numberingPlan = new NumberingPlan(this.getNumberingPlanMetadata(callingCode), this)\r\n\t\t} else {\r\n\t\t\tthis.numberingPlan = undefined\r\n\t\t}\r\n\t\treturn this\r\n\t}\r\n\r\n\tgetCountryCodesForCallingCode(callingCode) {\r\n\t\tconst countryCodes = this.countryCallingCodes()[callingCode]\r\n\t\tif (countryCodes) {\r\n\t\t\t// Metadata before V4 included \"non-geographic entity\" calling codes\r\n\t\t\t// inside `country_calling_codes` (for example, `\"881\":[\"001\"]`).\r\n\t\t\t// Now the semantics of `country_calling_codes` has changed:\r\n\t\t\t// it's specifically for \"countries\" now.\r\n\t\t\t// Older versions of custom metadata will simply skip parsing\r\n\t\t\t// \"non-geographic entity\" phone numbers with new versions\r\n\t\t\t// of this library: it's not considered a bug,\r\n\t\t\t// because such numbers are extremely rare,\r\n\t\t\t// and developers extremely rarely use custom metadata.\r\n\t\t\tif (countryCodes.length === 1 && countryCodes[0].length === 3) {\r\n\t\t\t\treturn\r\n\t\t\t}\r\n\t\t\treturn countryCodes\r\n\t\t}\r\n\t}\r\n\r\n\tgetCountryCodeForCallingCode(callingCode) {\r\n\t\tconst countryCodes = this.getCountryCodesForCallingCode(callingCode)\r\n\t\tif (countryCodes) {\r\n\t\t\treturn countryCodes[0]\r\n\t\t}\r\n\t}\r\n\r\n\tgetNumberingPlanMetadata(callingCode) {\r\n\t\tconst countryCode = this.getCountryCodeForCallingCode(callingCode)\r\n\t\tif (countryCode) {\r\n\t\t\treturn this.getCountryMetadata(countryCode)\r\n\t\t}\r\n\t\tif (this.nonGeographic()) {\r\n\t\t\tconst metadata = this.nonGeographic()[callingCode]\r\n\t\t\tif (metadata) {\r\n\t\t\t\treturn metadata\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\t// A hacky workaround for old custom metadata (generated before V4).\r\n\t\t\t// In that metadata, there was no concept of \"non-geographic\" metadata\r\n\t\t\t// so metadata for `001` country code was stored along with other countries.\r\n\t\t\t// The test case can be found by searching for:\r\n\t\t\t// \"should work around `nonGeographic` metadata not existing\".\r\n\t\t\tconst countryCodes = this.countryCallingCodes()[callingCode]\r\n\t\t\tif (countryCodes && countryCodes.length === 1 && countryCodes[0] === '001') {\r\n\t\t\t\treturn this.metadata.countries['001']\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t// Deprecated.\r\n\tcountryCallingCode() {\r\n\t\treturn this.numberingPlan.callingCode()\r\n\t}\r\n\r\n\t// Deprecated.\r\n\tIDDPrefix() {\r\n\t\treturn this.numberingPlan.IDDPrefix()\r\n\t}\r\n\r\n\t// Deprecated.\r\n\tdefaultIDDPrefix() {\r\n\t\treturn this.numberingPlan.defaultIDDPrefix()\r\n\t}\r\n\r\n\t// Deprecated.\r\n\tnationalNumberPattern() {\r\n\t\treturn this.numberingPlan.nationalNumberPattern()\r\n\t}\r\n\r\n\t// Deprecated.\r\n\tpossibleLengths() {\r\n\t\treturn this.numberingPlan.possibleLengths()\r\n\t}\r\n\r\n\t// Deprecated.\r\n\tformats() {\r\n\t\treturn this.numberingPlan.formats()\r\n\t}\r\n\r\n\t// Deprecated.\r\n\tnationalPrefixForParsing() {\r\n\t\treturn this.numberingPlan.nationalPrefixForParsing()\r\n\t}\r\n\r\n\t// Deprecated.\r\n\tnationalPrefixTransformRule() {\r\n\t\treturn this.numberingPlan.nationalPrefixTransformRule()\r\n\t}\r\n\r\n\t// Deprecated.\r\n\tleadingDigits() {\r\n\t\treturn this.numberingPlan.leadingDigits()\r\n\t}\r\n\r\n\t// Deprecated.\r\n\thasTypes() {\r\n\t\treturn this.numberingPlan.hasTypes()\r\n\t}\r\n\r\n\t// Deprecated.\r\n\ttype(type) {\r\n\t\treturn this.numberingPlan.type(type)\r\n\t}\r\n\r\n\t// Deprecated.\r\n\text() {\r\n\t\treturn this.numberingPlan.ext()\r\n\t}\r\n\r\n\tcountryCallingCodes() {\r\n\t\tif (this.v1) return this.metadata.country_phone_code_to_countries\r\n\t\treturn this.metadata.country_calling_codes\r\n\t}\r\n\r\n\t// Deprecated.\r\n\tchooseCountryByCountryCallingCode(callingCode) {\r\n\t\treturn this.selectNumberingPlan(callingCode)\r\n\t}\r\n\r\n\thasSelectedNumberingPlan() {\r\n\t\treturn this.numberingPlan !== undefined\r\n\t}\r\n}\r\n\r\nclass NumberingPlan {\r\n\tconstructor(metadata, globalMetadataObject) {\r\n\t\tthis.globalMetadataObject = globalMetadataObject\r\n\t\tthis.metadata = metadata\r\n\t\tsetVersion.call(this, globalMetadataObject.metadata)\r\n\t}\r\n\r\n\tcallingCode() {\r\n\t\treturn this.metadata[0]\r\n\t}\r\n\r\n\t// Formatting information for regions which share\r\n\t// a country calling code is contained by only one region\r\n\t// for performance reasons. For example, for NANPA region\r\n\t// (\"North American Numbering Plan Administration\",\r\n\t// which includes USA, Canada, Cayman Islands, Bahamas, etc)\r\n\t// it will be contained in the metadata for `US`.\r\n\tgetDefaultCountryMetadataForRegion() {\r\n\t\treturn this.globalMetadataObject.getNumberingPlanMetadata(this.callingCode())\r\n\t}\r\n\r\n\t// Is always present.\r\n\tIDDPrefix() {\r\n\t\tif (this.v1 || this.v2) return\r\n\t\treturn this.metadata[1]\r\n\t}\r\n\r\n\t// Is only present when a country supports multiple IDD prefixes.\r\n\tdefaultIDDPrefix() {\r\n\t\tif (this.v1 || this.v2) return\r\n\t\treturn this.metadata[12]\r\n\t}\r\n\r\n\tnationalNumberPattern() {\r\n\t\tif (this.v1 || this.v2) return this.metadata[1]\r\n\t\treturn this.metadata[2]\r\n\t}\r\n\r\n\t// \"possible length\" data is always present in Google's metadata.\r\n\tpossibleLengths() {\r\n\t\tif (this.v1) return\r\n\t\treturn this.metadata[this.v2 ? 2 : 3]\r\n\t}\r\n\r\n\t_getFormats(metadata) {\r\n\t\treturn metadata[this.v1 ? 2 : this.v2 ? 3 : 4]\r\n\t}\r\n\r\n\t// For countries of the same region (e.g. NANPA)\r\n\t// formats are all stored in the \"main\" country for that region.\r\n\t// E.g. \"RU\" and \"KZ\", \"US\" and \"CA\".\r\n\tformats() {\r\n\t\tconst formats = this._getFormats(this.metadata) || this._getFormats(this.getDefaultCountryMetadataForRegion()) || []\r\n\t\treturn formats.map(_ => new Format(_, this))\r\n\t}\r\n\r\n\tnationalPrefix() {\r\n\t\treturn this.metadata[this.v1 ? 3 : this.v2 ? 4 : 5]\r\n\t}\r\n\r\n\t_getNationalPrefixFormattingRule(metadata) {\r\n\t\treturn metadata[this.v1 ? 4 : this.v2 ? 5 : 6]\r\n\t}\r\n\r\n\t// For countries of the same region (e.g. NANPA)\r\n\t// national prefix formatting rule is stored in the \"main\" country for that region.\r\n\t// E.g. \"RU\" and \"KZ\", \"US\" and \"CA\".\r\n\tnationalPrefixFormattingRule() {\r\n\t\treturn this._getNationalPrefixFormattingRule(this.metadata) || this._getNationalPrefixFormattingRule(this.getDefaultCountryMetadataForRegion())\r\n\t}\r\n\r\n\t_nationalPrefixForParsing() {\r\n\t\treturn this.metadata[this.v1 ? 5 : this.v2 ? 6 : 7]\r\n\t}\r\n\r\n\tnationalPrefixForParsing() {\r\n\t\t// If `national_prefix_for_parsing` is not set explicitly,\r\n\t\t// then infer it from `national_prefix` (if any)\r\n\t\treturn this._nationalPrefixForParsing() || this.nationalPrefix()\r\n\t}\r\n\r\n\tnationalPrefixTransformRule() {\r\n\t\treturn this.metadata[this.v1 ? 6 : this.v2 ? 7 : 8]\r\n\t}\r\n\r\n\t_getNationalPrefixIsOptionalWhenFormatting() {\r\n\t\treturn !!this.metadata[this.v1 ? 7 : this.v2 ? 8 : 9]\r\n\t}\r\n\r\n\t// For countries of the same region (e.g. NANPA)\r\n\t// \"national prefix is optional when formatting\" flag is\r\n\t// stored in the \"main\" country for that region.\r\n\t// E.g. \"RU\" and \"KZ\", \"US\" and \"CA\".\r\n\tnationalPrefixIsOptionalWhenFormattingInNationalFormat() {\r\n\t\treturn this._getNationalPrefixIsOptionalWhenFormatting(this.metadata) ||\r\n\t\t\tthis._getNationalPrefixIsOptionalWhenFormatting(this.getDefaultCountryMetadataForRegion())\r\n\t}\r\n\r\n\tleadingDigits() {\r\n\t\treturn this.metadata[this.v1 ? 8 : this.v2 ? 9 : 10]\r\n\t}\r\n\r\n\ttypes() {\r\n\t\treturn this.metadata[this.v1 ? 9 : this.v2 ? 10 : 11]\r\n\t}\r\n\r\n\thasTypes() {\r\n\t\t// Versions 1.2.0 - 1.2.4: can be `[]`.\r\n\t\t/* istanbul ignore next */\r\n\t\tif (this.types() && this.types().length === 0) {\r\n\t\t\treturn false\r\n\t\t}\r\n\t\t// Versions <= 1.2.4: can be `undefined`.\r\n\t\t// Version >= 1.2.5: can be `0`.\r\n\t\treturn !!this.types()\r\n\t}\r\n\r\n\ttype(type) {\r\n\t\tif (this.hasTypes() && getType(this.types(), type)) {\r\n\t\t\treturn new Type(getType(this.types(), type), this)\r\n\t\t}\r\n\t}\r\n\r\n\text() {\r\n\t\tif (this.v1 || this.v2) return DEFAULT_EXT_PREFIX\r\n\t\treturn this.metadata[13] || DEFAULT_EXT_PREFIX\r\n\t}\r\n}\r\n\r\nclass Format {\r\n\tconstructor(format, metadata) {\r\n\t\tthis._format = format\r\n\t\tthis.metadata = metadata\r\n\t}\r\n\r\n\tpattern() {\r\n\t\treturn this._format[0]\r\n\t}\r\n\r\n\tformat() {\r\n\t\treturn this._format[1]\r\n\t}\r\n\r\n\tleadingDigitsPatterns() {\r\n\t\treturn this._format[2] || []\r\n\t}\r\n\r\n\tnationalPrefixFormattingRule() {\r\n\t\treturn this._format[3] || this.metadata.nationalPrefixFormattingRule()\r\n\t}\r\n\r\n\tnationalPrefixIsOptionalWhenFormattingInNationalFormat() {\r\n\t\treturn !!this._format[4] || this.metadata.nationalPrefixIsOptionalWhenFormattingInNationalFormat()\r\n\t}\r\n\r\n\tnationalPrefixIsMandatoryWhenFormattingInNationalFormat() {\r\n\t\t// National prefix is omitted if there's no national prefix formatting rule\r\n\t\t// set for this country, or when the national prefix formatting rule\r\n\t\t// contains no national prefix itself, or when this rule is set but\r\n\t\t// national prefix is optional for this phone number format\r\n\t\t// (and it is not enforced explicitly)\r\n\t\treturn this.usesNationalPrefix() && !this.nationalPrefixIsOptionalWhenFormattingInNationalFormat()\r\n\t}\r\n\r\n\t// Checks whether national prefix formatting rule contains national prefix.\r\n\tusesNationalPrefix() {\r\n\t\treturn this.nationalPrefixFormattingRule() &&\r\n\t\t\t// Check that national prefix formatting rule is not a \"dummy\" one.\r\n\t\t\t!FIRST_GROUP_ONLY_PREFIX_PATTERN.test(this.nationalPrefixFormattingRule())\r\n\t\t\t// In compressed metadata, `this.nationalPrefixFormattingRule()` is `0`\r\n\t\t\t// when `national_prefix_formatting_rule` is not present.\r\n\t\t\t// So, `true` or `false` are returned explicitly here, so that\r\n\t\t\t// `0` number isn't returned.\r\n\t\t\t? true\r\n\t\t\t: false\r\n\t}\r\n\r\n\tinternationalFormat() {\r\n\t\treturn this._format[5] || this.format()\r\n\t}\r\n}\r\n\r\n/**\r\n * A pattern that is used to determine if the national prefix formatting rule\r\n * has the first group only, i.e., does not start with the national prefix.\r\n * Note that the pattern explicitly allows for unbalanced parentheses.\r\n */\r\nconst FIRST_GROUP_ONLY_PREFIX_PATTERN = /^\\(?\\$1\\)?$/\r\n\r\nclass Type {\r\n\tconstructor(type, metadata) {\r\n\t\tthis.type = type\r\n\t\tthis.metadata = metadata\r\n\t}\r\n\r\n\tpattern() {\r\n\t\tif (this.metadata.v1) return this.type\r\n\t\treturn this.type[0]\r\n\t}\r\n\r\n\tpossibleLengths() {\r\n\t\tif (this.metadata.v1) return\r\n\t\treturn this.type[1] || this.metadata.possibleLengths()\r\n\t}\r\n}\r\n\r\nfunction getType(types, type) {\r\n\tswitch (type) {\r\n\t\tcase 'FIXED_LINE':\r\n\t\t\treturn types[0]\r\n\t\tcase 'MOBILE':\r\n\t\t\treturn types[1]\r\n\t\tcase 'TOLL_FREE':\r\n\t\t\treturn types[2]\r\n\t\tcase 'PREMIUM_RATE':\r\n\t\t\treturn types[3]\r\n\t\tcase 'PERSONAL_NUMBER':\r\n\t\t\treturn types[4]\r\n\t\tcase 'VOICEMAIL':\r\n\t\t\treturn types[5]\r\n\t\tcase 'UAN':\r\n\t\t\treturn types[6]\r\n\t\tcase 'PAGER':\r\n\t\t\treturn types[7]\r\n\t\tcase 'VOIP':\r\n\t\t\treturn types[8]\r\n\t\tcase 'SHARED_COST':\r\n\t\t\treturn types[9]\r\n\t}\r\n}\r\n\r\nexport function validateMetadata(metadata) {\r\n\tif (!metadata) {\r\n\t\tthrow new Error('[libphonenumber-js] `metadata` argument not passed. Check your arguments.')\r\n\t}\r\n\r\n\t// `country_phone_code_to_countries` was renamed to\r\n\t// `country_calling_codes` in `1.0.18`.\r\n\tif (!is_object(metadata) || !is_object(metadata.countries)) {\r\n\t\tthrow new Error(`[libphonenumber-js] \\`metadata\\` argument was passed but it's not a valid metadata. Must be an object having \\`.countries\\` child object property. Got ${is_object(metadata) ? 'an object of shape: { ' + Object.keys(metadata).join(', ') + ' }' : 'a ' + type_of(metadata) + ': ' + metadata}.`)\r\n\t}\r\n}\r\n\r\n// Babel transforms `typeof` into some \"branches\"\r\n// so istanbul will show this as \"branch not covered\".\r\n/* istanbul ignore next */\r\nconst is_object = _ => typeof _ === 'object'\r\n\r\n// Babel transforms `typeof` into some \"branches\"\r\n// so istanbul will show this as \"branch not covered\".\r\n/* istanbul ignore next */\r\nconst type_of = _ => typeof _\r\n\r\n/**\r\n * Returns extension prefix for a country.\r\n * @param {string} country\r\n * @param {object} metadata\r\n * @return {string?}\r\n * @example\r\n * // Returns \" ext. \"\r\n * getExtPrefix(\"US\")\r\n */\r\nexport function getExtPrefix(country, metadata) {\r\n\tmetadata = new Metadata(metadata)\r\n\tif (metadata.hasCountry(country)) {\r\n\t\treturn metadata.country(country).ext()\r\n\t}\r\n\treturn DEFAULT_EXT_PREFIX\r\n}\r\n\r\n/**\r\n * Returns \"country calling code\" for a country.\r\n * Throws an error if the country doesn't exist or isn't supported by this library.\r\n * @param {string} country\r\n * @param {object} metadata\r\n * @return {string}\r\n * @example\r\n * // Returns \"44\"\r\n * getCountryCallingCode(\"GB\")\r\n */\r\nexport function getCountryCallingCode(country, metadata) {\r\n\tmetadata = new Metadata(metadata)\r\n\tif (metadata.hasCountry(country)) {\r\n\t\treturn metadata.country(country).countryCallingCode()\r\n\t}\r\n\tthrow new Error(`Unknown country: ${country}`)\r\n}\r\n\r\nexport function isSupportedCountry(country, metadata) {\r\n\t// metadata = new Metadata(metadata)\r\n\t// return metadata.hasCountry(country)\r\n\treturn metadata.countries.hasOwnProperty(country)\r\n}\r\n\r\nfunction setVersion(metadata) {\r\n\tconst { version } = metadata\r\n\tif (typeof version === 'number') {\r\n\t\tthis.v1 = version === 1\r\n\t\tthis.v2 = version === 2\r\n\t\tthis.v3 = version === 3\r\n\t\tthis.v4 = version === 4\r\n\t} else {\r\n\t\tif (!version) {\r\n\t\t\tthis.v1 = true\r\n\t\t} else if (compare(version, V3) === -1) {\r\n\t\t\tthis.v2 = true\r\n\t\t} else if (compare(version, V4) === -1) {\r\n\t\t\tthis.v3 = true\r\n\t\t} else {\r\n\t\t\tthis.v4 = true\r\n\t\t}\r\n\t}\r\n}\r\n\r\n// const ISO_COUNTRY_CODE = /^[A-Z]{2}$/\r\n// function isCountryCode(countryCode) {\r\n// \treturn ISO_COUNTRY_CODE.test(countryCodeOrCountryCallingCode)\r\n// }","import { VALID_DIGITS } from '../../constants.js'\r\n\r\n// The RFC 3966 format for extensions.\r\nconst RFC3966_EXTN_PREFIX = ';ext='\r\n\r\n/**\r\n * Helper method for constructing regular expressions for parsing. Creates\r\n * an expression that captures up to max_length digits.\r\n * @return {string} RegEx pattern to capture extension digits.\r\n */\r\nconst getExtensionDigitsPattern = (maxLength) => `([${VALID_DIGITS}]{1,${maxLength}})`\r\n\r\n/**\r\n * Helper initialiser method to create the regular-expression pattern to match\r\n * extensions.\r\n * Copy-pasted from Google's `libphonenumber`:\r\n * https://github.com/google/libphonenumber/blob/55b2646ec9393f4d3d6661b9c82ef9e258e8b829/javascript/i18n/phonenumbers/phonenumberutil.js#L759-L766\r\n * @return {string} RegEx pattern to capture extensions.\r\n */\r\nexport default function createExtensionPattern(purpose) {\r\n\t// We cap the maximum length of an extension based on the ambiguity of the way\r\n\t// the extension is prefixed. As per ITU, the officially allowed length for\r\n\t// extensions is actually 40, but we don't support this since we haven't seen real\r\n\t// examples and this introduces many false interpretations as the extension labels\r\n\t// are not standardized.\r\n\t/** @type {string} */\r\n\tvar extLimitAfterExplicitLabel = '20';\r\n\t/** @type {string} */\r\n\tvar extLimitAfterLikelyLabel = '15';\r\n\t/** @type {string} */\r\n\tvar extLimitAfterAmbiguousChar = '9';\r\n\t/** @type {string} */\r\n\tvar extLimitWhenNotSure = '6';\r\n\r\n\t/** @type {string} */\r\n\tvar possibleSeparatorsBetweenNumberAndExtLabel = \"[ \\u00A0\\\\t,]*\";\r\n\t// Optional full stop (.) or colon, followed by zero or more spaces/tabs/commas.\r\n\t/** @type {string} */\r\n\tvar possibleCharsAfterExtLabel = \"[:\\\\.\\uFF0E]?[ \\u00A0\\\\t,-]*\";\r\n\t/** @type {string} */\r\n\tvar optionalExtnSuffix = \"#?\";\r\n\r\n\t// Here the extension is called out in more explicit way, i.e mentioning it obvious\r\n\t// patterns like \"ext.\".\r\n\t/** @type {string} */\r\n\tvar explicitExtLabels =\r\n\t \"(?:e?xt(?:ensi(?:o\\u0301?|\\u00F3))?n?|\\uFF45?\\uFF58\\uFF54\\uFF4E?|\\u0434\\u043E\\u0431|anexo)\";\r\n\t// One-character symbols that can be used to indicate an extension, and less\r\n\t// commonly used or more ambiguous extension labels.\r\n\t/** @type {string} */\r\n\tvar ambiguousExtLabels = \"(?:[x\\uFF58#\\uFF03~\\uFF5E]|int|\\uFF49\\uFF4E\\uFF54)\";\r\n\t// When extension is not separated clearly.\r\n\t/** @type {string} */\r\n\tvar ambiguousSeparator = \"[- ]+\";\r\n\t// This is the same as possibleSeparatorsBetweenNumberAndExtLabel, but not matching\r\n\t// comma as extension label may have it.\r\n\t/** @type {string} */\r\n\tvar possibleSeparatorsNumberExtLabelNoComma = \"[ \\u00A0\\\\t]*\";\r\n\t// \",,\" is commonly used for auto dialling the extension when connected. First\r\n\t// comma is matched through possibleSeparatorsBetweenNumberAndExtLabel, so we do\r\n\t// not repeat it here. Semi-colon works in Iphone and Android also to pop up a\r\n\t// button with the extension number following.\r\n\t/** @type {string} */\r\n\tvar autoDiallingAndExtLabelsFound = \"(?:,{2}|;)\";\r\n\r\n\t/** @type {string} */\r\n\tvar rfcExtn = RFC3966_EXTN_PREFIX\r\n\t + getExtensionDigitsPattern(extLimitAfterExplicitLabel);\r\n\t/** @type {string} */\r\n\tvar explicitExtn = possibleSeparatorsBetweenNumberAndExtLabel + explicitExtLabels\r\n\t + possibleCharsAfterExtLabel\r\n\t + getExtensionDigitsPattern(extLimitAfterExplicitLabel)\r\n\t + optionalExtnSuffix;\r\n\t/** @type {string} */\r\n\tvar ambiguousExtn = possibleSeparatorsBetweenNumberAndExtLabel + ambiguousExtLabels\r\n\t + possibleCharsAfterExtLabel\r\n\t+ getExtensionDigitsPattern(extLimitAfterAmbiguousChar)\r\n\t+ optionalExtnSuffix;\r\n\t/** @type {string} */\r\n\tvar americanStyleExtnWithSuffix = ambiguousSeparator\r\n\t+ getExtensionDigitsPattern(extLimitWhenNotSure) + \"#\";\r\n\r\n\t/** @type {string} */\r\n\tvar autoDiallingExtn = possibleSeparatorsNumberExtLabelNoComma\r\n\t + autoDiallingAndExtLabelsFound + possibleCharsAfterExtLabel\r\n\t + getExtensionDigitsPattern(extLimitAfterLikelyLabel)\r\n\t+ optionalExtnSuffix;\r\n\t/** @type {string} */\r\n\tvar onlyCommasExtn = possibleSeparatorsNumberExtLabelNoComma\r\n\t + \"(?:,)+\" + possibleCharsAfterExtLabel\r\n\t + getExtensionDigitsPattern(extLimitAfterAmbiguousChar)\r\n\t + optionalExtnSuffix;\r\n\r\n\t// The first regular expression covers RFC 3966 format, where the extension is added\r\n\t// using \";ext=\". The second more generic where extension is mentioned with explicit\r\n\t// labels like \"ext:\". In both the above cases we allow more numbers in extension than\r\n\t// any other extension labels. The third one captures when single character extension\r\n\t// labels or less commonly used labels are used. In such cases we capture fewer\r\n\t// extension digits in order to reduce the chance of falsely interpreting two\r\n\t// numbers beside each other as a number + extension. The fourth one covers the\r\n\t// special case of American numbers where the extension is written with a hash\r\n\t// at the end, such as \"- 503#\". The fifth one is exclusively for extension\r\n\t// autodialling formats which are used when dialling and in this case we accept longer\r\n\t// extensions. The last one is more liberal on the number of commas that acts as\r\n\t// extension labels, so we have a strict cap on the number of digits in such extensions.\r\n\treturn rfcExtn + \"|\"\r\n\t + explicitExtn + \"|\"\r\n\t + ambiguousExtn + \"|\"\r\n\t + americanStyleExtnWithSuffix + \"|\"\r\n\t + autoDiallingExtn + \"|\"\r\n\t + onlyCommasExtn;\r\n}","import {\r\n\tMIN_LENGTH_FOR_NSN,\r\n\tVALID_DIGITS,\r\n\tVALID_PUNCTUATION,\r\n\tPLUS_CHARS\r\n} from '../constants.js'\r\n\r\nimport createExtensionPattern from './extension/createExtensionPattern.js'\r\n\r\n// Regular expression of viable phone numbers. This is location independent.\r\n// Checks we have at least three leading digits, and only valid punctuation,\r\n// alpha characters and digits in the phone number. Does not include extension\r\n// data. The symbol 'x' is allowed here as valid punctuation since it is often\r\n// used as a placeholder for carrier codes, for example in Brazilian phone\r\n// numbers. We also allow multiple '+' characters at the start.\r\n//\r\n// Corresponds to the following:\r\n// [digits]{minLengthNsn}|\r\n// plus_sign*\r\n// (([punctuation]|[star])*[digits]){3,}([punctuation]|[star]|[digits]|[alpha])*\r\n//\r\n// The first reg-ex is to allow short numbers (two digits long) to be parsed if\r\n// they are entered as \"15\" etc, but only if there is no punctuation in them.\r\n// The second expression restricts the number of digits to three or more, but\r\n// then allows them to be in international form, and to have alpha-characters\r\n// and punctuation. We split up the two reg-exes here and combine them when\r\n// creating the reg-ex VALID_PHONE_NUMBER_PATTERN itself so we can prefix it\r\n// with ^ and append $ to each branch.\r\n//\r\n// \"Note VALID_PUNCTUATION starts with a -,\r\n// so must be the first in the range\" (c) Google devs.\r\n// (wtf did they mean by saying that; probably nothing)\r\n//\r\nconst MIN_LENGTH_PHONE_NUMBER_PATTERN = '[' + VALID_DIGITS + ']{' + MIN_LENGTH_FOR_NSN + '}'\r\n//\r\n// And this is the second reg-exp:\r\n// (see MIN_LENGTH_PHONE_NUMBER_PATTERN for a full description of this reg-exp)\r\n//\r\nexport const VALID_PHONE_NUMBER =\r\n\t'[' + PLUS_CHARS + ']{0,1}' +\r\n\t'(?:' +\r\n\t\t'[' + VALID_PUNCTUATION + ']*' +\r\n\t\t'[' + VALID_DIGITS + ']' +\r\n\t'){3,}' +\r\n\t'[' +\r\n\t\tVALID_PUNCTUATION +\r\n\t\tVALID_DIGITS +\r\n\t']*'\r\n\r\n// This regular expression isn't present in Google's `libphonenumber`\r\n// and is only used to determine whether the phone number being input\r\n// is too short for it to even consider it a \"valid\" number.\r\n// This is just a way to differentiate between a really invalid phone\r\n// number like \"abcde\" and a valid phone number that a user has just\r\n// started inputting, like \"+1\" or \"1\": both these cases would be\r\n// considered `NOT_A_NUMBER` by Google's `libphonenumber`, but this\r\n// library can provide a more detailed error message — whether it's\r\n// really \"not a number\", or is it just a start of a valid phone number.\r\nconst VALID_PHONE_NUMBER_START_REG_EXP = new RegExp(\r\n\t'^' +\r\n\t'[' + PLUS_CHARS + ']{0,1}' +\r\n\t'(?:' +\r\n\t\t'[' + VALID_PUNCTUATION + ']*' +\r\n\t\t'[' + VALID_DIGITS + ']' +\r\n\t'){1,2}' +\r\n\t'$'\r\n, 'i')\r\n\r\nexport const VALID_PHONE_NUMBER_WITH_EXTENSION =\r\n\tVALID_PHONE_NUMBER +\r\n\t// Phone number extensions\r\n\t'(?:' + createExtensionPattern() + ')?'\r\n\r\n// The combined regular expression for valid phone numbers:\r\n//\r\nconst VALID_PHONE_NUMBER_PATTERN = new RegExp(\r\n\t// Either a short two-digit-only phone number\r\n\t'^' +\r\n\t\tMIN_LENGTH_PHONE_NUMBER_PATTERN +\r\n\t'$' +\r\n\t'|' +\r\n\t// Or a longer fully parsed phone number (min 3 characters)\r\n\t'^' +\r\n\t\tVALID_PHONE_NUMBER_WITH_EXTENSION +\r\n\t'$'\r\n, 'i')\r\n\r\n// Checks to see if the string of characters could possibly be a phone number at\r\n// all. At the moment, checks to see that the string begins with at least 2\r\n// digits, ignoring any punctuation commonly found in phone numbers. This method\r\n// does not require the number to be normalized in advance - but does assume\r\n// that leading non-number symbols have been removed, such as by the method\r\n// `extract_possible_number`.\r\n//\r\nexport default function isViablePhoneNumber(number) {\r\n\treturn number.length >= MIN_LENGTH_FOR_NSN &&\r\n\t\tVALID_PHONE_NUMBER_PATTERN.test(number)\r\n}\r\n\r\n// This is just a way to differentiate between a really invalid phone\r\n// number like \"abcde\" and a valid phone number that a user has just\r\n// started inputting, like \"+1\" or \"1\": both these cases would be\r\n// considered `NOT_A_NUMBER` by Google's `libphonenumber`, but this\r\n// library can provide a more detailed error message — whether it's\r\n// really \"not a number\", or is it just a start of a valid phone number.\r\nexport function isViablePhoneNumberStart(number) {\r\n\treturn VALID_PHONE_NUMBER_START_REG_EXP.test(number)\r\n}","import createExtensionPattern from './createExtensionPattern.js'\r\n\r\n// Regexp of all known extension prefixes used by different regions followed by\r\n// 1 or more valid digits, for use when parsing.\r\nconst EXTN_PATTERN = new RegExp('(?:' + createExtensionPattern() + ')$', 'i')\r\n\r\n// Strips any extension (as in, the part of the number dialled after the call is\r\n// connected, usually indicated with extn, ext, x or similar) from the end of\r\n// the number, and returns it.\r\nexport default function extractExtension(number) {\r\n\tconst start = number.search(EXTN_PATTERN)\r\n\tif (start < 0) {\r\n\t\treturn {}\r\n\t}\r\n\t// If we find a potential extension, and the number preceding this is a viable\r\n\t// number, we assume it is an extension.\r\n\tconst numberWithoutExtension = number.slice(0, start)\r\n\tconst matches = number.match(EXTN_PATTERN)\r\n\tlet i = 1\r\n\twhile (i < matches.length) {\r\n\t\tif (matches[i]) {\r\n\t\t\treturn {\r\n\t\t\t\tnumber: numberWithoutExtension,\r\n\t\t\t\text: matches[i]\r\n\t\t\t}\r\n\t\t}\r\n\t\ti++\r\n\t}\r\n}","// These mappings map a character (key) to a specific digit that should\r\n// replace it for normalization purposes. Non-European digits that\r\n// may be used in phone numbers are mapped to a European equivalent.\r\n//\r\n// E.g. in Iraq they don't write `+442323234` but rather `+٤٤٢٣٢٣٢٣٤`.\r\n//\r\nexport const DIGITS = {\r\n\t'0': '0',\r\n\t'1': '1',\r\n\t'2': '2',\r\n\t'3': '3',\r\n\t'4': '4',\r\n\t'5': '5',\r\n\t'6': '6',\r\n\t'7': '7',\r\n\t'8': '8',\r\n\t'9': '9',\r\n\t'\\uFF10': '0', // Fullwidth digit 0\r\n\t'\\uFF11': '1', // Fullwidth digit 1\r\n\t'\\uFF12': '2', // Fullwidth digit 2\r\n\t'\\uFF13': '3', // Fullwidth digit 3\r\n\t'\\uFF14': '4', // Fullwidth digit 4\r\n\t'\\uFF15': '5', // Fullwidth digit 5\r\n\t'\\uFF16': '6', // Fullwidth digit 6\r\n\t'\\uFF17': '7', // Fullwidth digit 7\r\n\t'\\uFF18': '8', // Fullwidth digit 8\r\n\t'\\uFF19': '9', // Fullwidth digit 9\r\n\t'\\u0660': '0', // Arabic-indic digit 0\r\n\t'\\u0661': '1', // Arabic-indic digit 1\r\n\t'\\u0662': '2', // Arabic-indic digit 2\r\n\t'\\u0663': '3', // Arabic-indic digit 3\r\n\t'\\u0664': '4', // Arabic-indic digit 4\r\n\t'\\u0665': '5', // Arabic-indic digit 5\r\n\t'\\u0666': '6', // Arabic-indic digit 6\r\n\t'\\u0667': '7', // Arabic-indic digit 7\r\n\t'\\u0668': '8', // Arabic-indic digit 8\r\n\t'\\u0669': '9', // Arabic-indic digit 9\r\n\t'\\u06F0': '0', // Eastern-Arabic digit 0\r\n\t'\\u06F1': '1', // Eastern-Arabic digit 1\r\n\t'\\u06F2': '2', // Eastern-Arabic digit 2\r\n\t'\\u06F3': '3', // Eastern-Arabic digit 3\r\n\t'\\u06F4': '4', // Eastern-Arabic digit 4\r\n\t'\\u06F5': '5', // Eastern-Arabic digit 5\r\n\t'\\u06F6': '6', // Eastern-Arabic digit 6\r\n\t'\\u06F7': '7', // Eastern-Arabic digit 7\r\n\t'\\u06F8': '8', // Eastern-Arabic digit 8\r\n\t'\\u06F9': '9' // Eastern-Arabic digit 9\r\n}\r\n\r\nexport function parseDigit(character) {\r\n\treturn DIGITS[character]\r\n}\r\n\r\n/**\r\n * Parses phone number digits from a string.\r\n * Drops all punctuation leaving only digits.\r\n * Also converts wide-ascii and arabic-indic numerals to conventional numerals.\r\n * E.g. in Iraq they don't write `+442323234` but rather `+٤٤٢٣٢٣٢٣٤`.\r\n * @param {string} string\r\n * @return {string}\r\n * @example\r\n * ```js\r\n * parseDigits('8 (800) 555')\r\n * // Outputs '8800555'.\r\n * ```\r\n */\r\nexport default function parseDigits(string) {\r\n\tlet result = ''\r\n\t// Using `.split('')` here instead of normal `for ... of`\r\n\t// because the importing application doesn't neccessarily include an ES6 polyfill.\r\n\t// The `.split('')` approach discards \"exotic\" UTF-8 characters\r\n\t// (the ones consisting of four bytes) but digits\r\n\t// (including non-European ones) don't fall into that range\r\n\t// so such \"exotic\" characters would be discarded anyway.\r\n\tfor (const character of string.split('')) {\r\n\t\tconst digit = parseDigit(character)\r\n\t\tif (digit) {\r\n\t\t\tresult += digit\r\n\t\t}\r\n\t}\r\n\treturn result\r\n}","import { parseDigit } from './helpers/parseDigits.js'\r\n\r\n/**\r\n * Parses phone number characters from a string.\r\n * Drops all punctuation leaving only digits and the leading `+` sign (if any).\r\n * Also converts wide-ascii and arabic-indic numerals to conventional numerals.\r\n * E.g. in Iraq they don't write `+442323234` but rather `+٤٤٢٣٢٣٢٣٤`.\r\n * @param {string} string\r\n * @return {string}\r\n * @example\r\n * ```js\r\n * // Outputs '8800555'.\r\n * parseIncompletePhoneNumber('8 (800) 555')\r\n * // Outputs '+7800555'.\r\n * parseIncompletePhoneNumber('+7 800 555')\r\n * ```\r\n */\r\nexport default function parseIncompletePhoneNumber(string) {\r\n\tlet result = ''\r\n\t// Using `.split('')` here instead of normal `for ... of`\r\n\t// because the importing application doesn't neccessarily include an ES6 polyfill.\r\n\t// The `.split('')` approach discards \"exotic\" UTF-8 characters\r\n\t// (the ones consisting of four bytes) but digits\r\n\t// (including non-European ones) don't fall into that range\r\n\t// so such \"exotic\" characters would be discarded anyway.\r\n\tfor (const character of string.split('')) {\r\n\t\tresult += parsePhoneNumberCharacter(character, result) || ''\r\n\t}\r\n\treturn result\r\n}\r\n\r\n/**\r\n * Parses next character while parsing phone number digits (including a `+`)\r\n * from text: discards everything except `+` and digits, and `+` is only allowed\r\n * at the start of a phone number.\r\n * For example, is used in `react-phone-number-input` where it uses\r\n * [`input-format`](https://gitlab.com/catamphetamine/input-format).\r\n * @param {string} character - Yet another character from raw input string.\r\n * @param {string?} prevParsedCharacters - Previous parsed characters.\r\n * @param {object} meta - Optional custom use-case-specific metadata.\r\n * @return {string?} The parsed character.\r\n */\r\nexport function parsePhoneNumberCharacter(character, prevParsedCharacters) {\r\n\t// Only allow a leading `+`.\r\n\tif (character === '+') {\r\n\t\t// If this `+` is not the first parsed character\r\n\t\t// then discard it.\r\n\t\tif (prevParsedCharacters) {\r\n\t\t\treturn\r\n\t\t}\r\n\t\treturn '+'\r\n\t}\r\n\t// Allow digits.\r\n\treturn parseDigit(character)\r\n}","import mergeArrays from './mergeArrays.js'\r\n\r\nexport default function checkNumberLength(nationalNumber, metadata) {\r\n\treturn checkNumberLengthForType(nationalNumber, undefined, metadata)\r\n}\r\n\r\n// Checks whether a number is possible for the country based on its length.\r\n// Should only be called for the \"new\" metadata which has \"possible lengths\".\r\nexport function checkNumberLengthForType(nationalNumber, type, metadata) {\r\n\tconst type_info = metadata.type(type)\r\n\r\n\t// There should always be \"\" set for every type element.\r\n\t// This is declared in the XML schema.\r\n\t// For size efficiency, where a sub-description (e.g. fixed-line)\r\n\t// has the same \"\" as the \"general description\", this is missing,\r\n\t// so we fall back to the \"general description\". Where no numbers of the type\r\n\t// exist at all, there is one possible length (-1) which is guaranteed\r\n\t// not to match the length of any real phone number.\r\n\tlet possible_lengths = type_info && type_info.possibleLengths() || metadata.possibleLengths()\r\n\t// let local_lengths = type_info && type.possibleLengthsLocal() || metadata.possibleLengthsLocal()\r\n\r\n\t// Metadata before version `1.0.18` didn't contain `possible_lengths`.\r\n\tif (!possible_lengths) {\r\n\t\treturn 'IS_POSSIBLE'\r\n\t}\r\n\r\n\tif (type === 'FIXED_LINE_OR_MOBILE') {\r\n\t\t// No such country in metadata.\r\n\t\t/* istanbul ignore next */\r\n\t\tif (!metadata.type('FIXED_LINE')) {\r\n\t\t\t// The rare case has been encountered where no fixedLine data is available\r\n\t\t\t// (true for some non-geographic entities), so we just check mobile.\r\n\t\t\treturn checkNumberLengthForType(nationalNumber, 'MOBILE', metadata)\r\n\t\t}\r\n\r\n\t\tconst mobile_type = metadata.type('MOBILE')\r\n\t\tif (mobile_type) {\r\n\t\t\t// Merge the mobile data in if there was any. \"Concat\" creates a new\r\n\t\t\t// array, it doesn't edit possible_lengths in place, so we don't need a copy.\r\n\t\t\t// Note that when adding the possible lengths from mobile, we have\r\n\t\t\t// to again check they aren't empty since if they are this indicates\r\n\t\t\t// they are the same as the general desc and should be obtained from there.\r\n\t\t\tpossible_lengths = mergeArrays(possible_lengths, mobile_type.possibleLengths())\r\n\t\t\t// The current list is sorted; we need to merge in the new list and\r\n\t\t\t// re-sort (duplicates are okay). Sorting isn't so expensive because\r\n\t\t\t// the lists are very small.\r\n\r\n\t\t\t// if (local_lengths) {\r\n\t\t\t// \tlocal_lengths = mergeArrays(local_lengths, mobile_type.possibleLengthsLocal())\r\n\t\t\t// } else {\r\n\t\t\t// \tlocal_lengths = mobile_type.possibleLengthsLocal()\r\n\t\t\t// }\r\n\t\t}\r\n\t}\r\n\t// If the type doesn't exist then return 'INVALID_LENGTH'.\r\n\telse if (type && !type_info) {\r\n\t\treturn 'INVALID_LENGTH'\r\n\t}\r\n\r\n\tconst actual_length = nationalNumber.length\r\n\r\n\t// In `libphonenumber-js` all \"local-only\" formats are dropped for simplicity.\r\n\t// // This is safe because there is never an overlap beween the possible lengths\r\n\t// // and the local-only lengths; this is checked at build time.\r\n\t// if (local_lengths && local_lengths.indexOf(nationalNumber.length) >= 0)\r\n\t// {\r\n\t// \treturn 'IS_POSSIBLE_LOCAL_ONLY'\r\n\t// }\r\n\r\n\tconst minimum_length = possible_lengths[0]\r\n\r\n\tif (minimum_length === actual_length) {\r\n\t\treturn 'IS_POSSIBLE'\r\n\t}\r\n\r\n\tif (minimum_length > actual_length) {\r\n\t\treturn 'TOO_SHORT'\r\n\t}\r\n\r\n\tif (possible_lengths[possible_lengths.length - 1] < actual_length) {\r\n\t\treturn 'TOO_LONG'\r\n\t}\r\n\r\n\t// We skip the first element since we've already checked it.\r\n\treturn possible_lengths.indexOf(actual_length, 1) >= 0 ? 'IS_POSSIBLE' : 'INVALID_LENGTH'\r\n}","/**\r\n * Merges two arrays.\r\n * @param {*} a\r\n * @param {*} b\r\n * @return {*}\r\n */\r\nexport default function mergeArrays(a, b) {\r\n\tconst merged = a.slice()\r\n\r\n\tfor (const element of b) {\r\n\t\tif (a.indexOf(element) < 0) {\r\n\t\t\tmerged.push(element)\r\n\t\t}\r\n\t}\r\n\r\n\treturn merged.sort((a, b) => a - b)\r\n\r\n\t// ES6 version, requires Set polyfill.\r\n\t// let merged = new Set(a)\r\n\t// for (const element of b) {\r\n\t// \tmerged.add(i)\r\n\t// }\r\n\t// return Array.from(merged).sort((a, b) => a - b)\r\n}","import Metadata from './metadata.js'\r\nimport checkNumberLength from './helpers/checkNumberLength.js'\r\n\r\n/**\r\n * Checks if a phone number is \"possible\" (basically just checks its length).\r\n *\r\n * isPossible(phoneNumberInstance, { ..., v2: true }, metadata)\r\n *\r\n * isPossible({ phone: '8005553535', country: 'RU' }, { ... }, metadata)\r\n * isPossible({ phone: '8005553535', country: 'RU' }, undefined, metadata)\r\n *\r\n * @param {object|PhoneNumber} input — If `options.v2: true` flag is passed, the `input` should be a `PhoneNumber` instance. Otherwise, it should be an object of shape `{ phone: '...', country: '...' }`.\r\n * @param {object} [options]\r\n * @param {object} metadata\r\n * @return {string}\r\n */\r\nexport default function isPossiblePhoneNumber(input, options, metadata) {\r\n\t/* istanbul ignore if */\r\n\tif (options === undefined) {\r\n\t\toptions = {}\r\n\t}\r\n\r\n\tmetadata = new Metadata(metadata)\r\n\r\n\tif (options.v2) {\r\n\t\tif (!input.countryCallingCode) {\r\n\t\t\tthrow new Error('Invalid phone number object passed')\r\n\t\t}\r\n\t\tmetadata.selectNumberingPlan(input.countryCallingCode)\r\n\t} else {\r\n\t\tif (!input.phone) {\r\n\t\t\treturn false\r\n\t\t}\r\n\t\tif (input.country) {\r\n\t\t\tif (!metadata.hasCountry(input.country)) {\r\n\t\t\t\tthrow new Error(`Unknown country: ${input.country}`)\r\n\t\t\t}\r\n\t\t\tmetadata.country(input.country)\r\n\t\t} else {\r\n\t\t\tif (!input.countryCallingCode) {\r\n\t\t\t\tthrow new Error('Invalid phone number object passed')\r\n\t\t\t}\r\n\t\t\tmetadata.selectNumberingPlan(input.countryCallingCode)\r\n\t\t}\r\n\t}\r\n\r\n\t// Old metadata (< 1.0.18) had no \"possible length\" data.\r\n\tif (metadata.possibleLengths()) {\r\n\t\treturn isPossibleNumber(input.phone || input.nationalNumber, metadata)\r\n\t} else {\r\n\t\t// There was a bug between `1.7.35` and `1.7.37` where \"possible_lengths\"\r\n\t\t// were missing for \"non-geographical\" numbering plans.\r\n\t\t// Just assume the number is possible in such cases:\r\n\t\t// it's unlikely that anyone generated their custom metadata\r\n\t\t// in that short period of time (one day).\r\n\t\t// This code can be removed in some future major version update.\r\n\t\tif (input.countryCallingCode && metadata.isNonGeographicCallingCode(input.countryCallingCode)) {\r\n\t\t\t// \"Non-geographic entities\" did't have `possibleLengths`\r\n\t\t\t// due to a bug in metadata generation process.\r\n\t\t\treturn true\r\n\t\t} else {\r\n\t\t\tthrow new Error('Missing \"possibleLengths\" in metadata. Perhaps the metadata has been generated before v1.0.18.');\r\n\t\t}\r\n\t}\r\n}\r\n\r\nexport function isPossibleNumber(nationalNumber, metadata) { //, isInternational) {\r\n\tswitch (checkNumberLength(nationalNumber, metadata)) {\r\n\t\tcase 'IS_POSSIBLE':\r\n\t\t\treturn true\r\n\t\t// This library ignores \"local-only\" phone numbers (for simplicity).\r\n\t\t// See the readme for more info on what are \"local-only\" phone numbers.\r\n\t\t// case 'IS_POSSIBLE_LOCAL_ONLY':\r\n\t\t// \treturn !isInternational\r\n\t\tdefault:\r\n\t\t\treturn false\r\n\t}\r\n}","/**\r\n * Checks whether the entire input sequence can be matched\r\n * against the regular expression.\r\n * @return {boolean}\r\n */\r\nexport default function matchesEntirely(text, regular_expression) {\r\n\t// If assigning the `''` default value is moved to the arguments above,\r\n\t// code coverage would decrease for some weird reason.\r\n\ttext = text || ''\r\n\treturn new RegExp('^(?:' + regular_expression + ')$').test(text)\r\n}","import Metadata from '../metadata.js'\r\nimport matchesEntirely from './matchesEntirely.js'\r\n\r\nconst NON_FIXED_LINE_PHONE_TYPES = [\r\n\t'MOBILE',\r\n\t'PREMIUM_RATE',\r\n\t'TOLL_FREE',\r\n\t'SHARED_COST',\r\n\t'VOIP',\r\n\t'PERSONAL_NUMBER',\r\n\t'PAGER',\r\n\t'UAN',\r\n\t'VOICEMAIL'\r\n]\r\n\r\n// Finds out national phone number type (fixed line, mobile, etc)\r\nexport default function getNumberType(input, options, metadata)\r\n{\r\n\t// If assigning the `{}` default value is moved to the arguments above,\r\n\t// code coverage would decrease for some weird reason.\r\n\toptions = options || {}\r\n\r\n\t// When `parse()` returned `{}`\r\n\t// meaning that the phone number is not a valid one.\r\n\tif (!input.country) {\r\n\t\treturn\r\n\t}\r\n\r\n\tmetadata = new Metadata(metadata)\r\n\r\n\tmetadata.selectNumberingPlan(input.country, input.countryCallingCode)\r\n\r\n\tconst nationalNumber = options.v2 ? input.nationalNumber : input.phone\r\n\r\n\t// The following is copy-pasted from the original function:\r\n\t// https://github.com/googlei18n/libphonenumber/blob/3ea547d4fbaa2d0b67588904dfa5d3f2557c27ff/javascript/i18n/phonenumbers/phonenumberutil.js#L2835\r\n\r\n\t// Is this national number even valid for this country\r\n\tif (!matchesEntirely(nationalNumber, metadata.nationalNumberPattern())) {\r\n\t\treturn\r\n\t}\r\n\r\n\t// Is it fixed line number\r\n\tif (isNumberTypeEqualTo(nationalNumber, 'FIXED_LINE', metadata)) {\r\n\t\t// Because duplicate regular expressions are removed\r\n\t\t// to reduce metadata size, if \"mobile\" pattern is \"\"\r\n\t\t// then it means it was removed due to being a duplicate of the fixed-line pattern.\r\n\t\t//\r\n\t\tif (metadata.type('MOBILE') && metadata.type('MOBILE').pattern() === '') {\r\n\t\t\treturn 'FIXED_LINE_OR_MOBILE'\r\n\t\t}\r\n\r\n\t\t// `MOBILE` type pattern isn't included if it matched `FIXED_LINE` one.\r\n\t\t// For example, for \"US\" country.\r\n\t\t// Old metadata (< `1.0.18`) had a specific \"types\" data structure\r\n\t\t// that happened to be `undefined` for `MOBILE` in that case.\r\n\t\t// Newer metadata (>= `1.0.18`) has another data structure that is\r\n\t\t// not `undefined` for `MOBILE` in that case (it's just an empty array).\r\n\t\t// So this `if` is just for backwards compatibility with old metadata.\r\n\t\tif (!metadata.type('MOBILE')) {\r\n\t\t\treturn 'FIXED_LINE_OR_MOBILE'\r\n\t\t}\r\n\r\n\t\t// Check if the number happens to qualify as both fixed line and mobile.\r\n\t\t// (no such country in the minimal metadata set)\r\n\t\t/* istanbul ignore if */\r\n\t\tif (isNumberTypeEqualTo(nationalNumber, 'MOBILE', metadata)) {\r\n\t\t\treturn 'FIXED_LINE_OR_MOBILE'\r\n\t\t}\r\n\r\n\t\treturn 'FIXED_LINE'\r\n\t}\r\n\r\n\tfor (const type of NON_FIXED_LINE_PHONE_TYPES) {\r\n\t\tif (isNumberTypeEqualTo(nationalNumber, type, metadata)) {\r\n\t\t\treturn type\r\n\t\t}\r\n\t}\r\n}\r\n\r\nexport function isNumberTypeEqualTo(nationalNumber, type, metadata) {\r\n\ttype = metadata.type(type)\r\n\tif (!type || !type.pattern()) {\r\n\t\treturn false\r\n\t}\r\n\t// Check if any possible number lengths are present;\r\n\t// if so, we use them to avoid checking\r\n\t// the validation pattern if they don't match.\r\n\t// If they are absent, this means they match\r\n\t// the general description, which we have\r\n\t// already checked before a specific number type.\r\n\tif (type.possibleLengths() &&\r\n\t\ttype.possibleLengths().indexOf(nationalNumber.length) < 0) {\r\n\t\treturn false\r\n\t}\r\n\treturn matchesEntirely(nationalNumber, type.pattern())\r\n}","import Metadata from '../metadata.js'\r\n\r\n/**\r\n * Returns a list of countries that the phone number could potentially belong to.\r\n * @param {string} callingCode — Calling code.\r\n * @param {string} nationalNumber — National (significant) number.\r\n * @param {object} metadata — Metadata.\r\n * @return {string[]} A list of possible countries.\r\n */\r\nexport default function getPossibleCountriesForNumber(callingCode, nationalNumber, metadata) {\r\n\tconst _metadata = new Metadata(metadata)\r\n\tlet possibleCountries = _metadata.getCountryCodesForCallingCode(callingCode)\r\n\tif (!possibleCountries) {\r\n\t\treturn []\r\n\t}\r\n\treturn possibleCountries.filter((country) => {\r\n\t\treturn couldNationalNumberBelongToCountry(nationalNumber, country, metadata)\r\n\t})\r\n}\r\n\r\nfunction couldNationalNumberBelongToCountry(nationalNumber, country, metadata) {\r\n\tconst _metadata = new Metadata(metadata)\r\n\t_metadata.selectNumberingPlan(country)\r\n\tif (_metadata.numberingPlan.possibleLengths().indexOf(nationalNumber.length) >= 0) {\r\n\t\treturn true\r\n\t}\r\n\treturn false\r\n}","import { VALID_PUNCTUATION } from '../constants.js'\r\n\r\n// Removes brackets and replaces dashes with spaces.\r\n//\r\n// E.g. \"(999) 111-22-33\" -> \"999 111 22 33\"\r\n//\r\n// For some reason Google's metadata contains ``s with brackets and dashes.\r\n// Meanwhile, there's no single opinion about using punctuation in international phone numbers.\r\n//\r\n// For example, Google's `` for USA is `+1 213-373-4253`.\r\n// And here's a quote from WikiPedia's \"North American Numbering Plan\" page:\r\n// https://en.wikipedia.org/wiki/North_American_Numbering_Plan\r\n//\r\n// \"The country calling code for all countries participating in the NANP is 1.\r\n// In international format, an NANP number should be listed as +1 301 555 01 00,\r\n// where 301 is an area code (Maryland).\"\r\n//\r\n// I personally prefer the international format without any punctuation.\r\n// For example, brackets are remnants of the old age, meaning that the\r\n// phone number part in brackets (so called \"area code\") can be omitted\r\n// if dialing within the same \"area\".\r\n// And hyphens were clearly introduced for splitting local numbers into memorizable groups.\r\n// For example, remembering \"5553535\" is difficult but \"555-35-35\" is much simpler.\r\n// Imagine a man taking a bus from home to work and seeing an ad with a phone number.\r\n// He has a couple of seconds to memorize that number until it passes by.\r\n// If it were spaces instead of hyphens the man wouldn't necessarily get it,\r\n// but with hyphens instead of spaces the grouping is more explicit.\r\n// I personally think that hyphens introduce visual clutter,\r\n// so I prefer replacing them with spaces in international numbers.\r\n// In the modern age all output is done on displays where spaces are clearly distinguishable\r\n// so hyphens can be safely replaced with spaces without losing any legibility.\r\n//\r\nexport default function applyInternationalSeparatorStyle(formattedNumber) {\r\n\treturn formattedNumber.replace(new RegExp(`[${VALID_PUNCTUATION}]+`, 'g'), ' ').trim()\r\n}","import applyInternationalSeparatorStyle from './applyInternationalSeparatorStyle.js'\r\n\r\n// This was originally set to $1 but there are some countries for which the\r\n// first group is not used in the national pattern (e.g. Argentina) so the $1\r\n// group does not match correctly. Therefore, we use `\\d`, so that the first\r\n// group actually used in the pattern will be matched.\r\nexport const FIRST_GROUP_PATTERN = /(\\$\\d)/\r\n\r\nexport default function formatNationalNumberUsingFormat(\r\n\tnumber,\r\n\tformat,\r\n\t{\r\n\t\tuseInternationalFormat,\r\n\t\twithNationalPrefix,\r\n\t\tcarrierCode,\r\n\t\tmetadata\r\n\t}\r\n) {\r\n\tconst formattedNumber = number.replace(\r\n\t\tnew RegExp(format.pattern()),\r\n\t\tuseInternationalFormat\r\n\t\t\t? format.internationalFormat()\r\n\t\t\t: (\r\n\t\t\t\t// This library doesn't use `domestic_carrier_code_formatting_rule`,\r\n\t\t\t\t// because that one is only used when formatting phone numbers\r\n\t\t\t\t// for dialing from a mobile phone, and this is not a dialing library.\r\n\t\t\t\t// carrierCode && format.domesticCarrierCodeFormattingRule()\r\n\t\t\t\t// \t// First, replace the $CC in the formatting rule with the desired carrier code.\r\n\t\t\t\t// \t// Then, replace the $FG in the formatting rule with the first group\r\n\t\t\t\t// \t// and the carrier code combined in the appropriate way.\r\n\t\t\t\t// \t? format.format().replace(FIRST_GROUP_PATTERN, format.domesticCarrierCodeFormattingRule().replace('$CC', carrierCode))\r\n\t\t\t\t// \t: (\r\n\t\t\t\t// \t\twithNationalPrefix && format.nationalPrefixFormattingRule()\r\n\t\t\t\t// \t\t\t? format.format().replace(FIRST_GROUP_PATTERN, format.nationalPrefixFormattingRule())\r\n\t\t\t\t// \t\t\t: format.format()\r\n\t\t\t\t// \t)\r\n\t\t\t\twithNationalPrefix && format.nationalPrefixFormattingRule()\r\n\t\t\t\t\t? format.format().replace(FIRST_GROUP_PATTERN, format.nationalPrefixFormattingRule())\r\n\t\t\t\t\t: format.format()\r\n\t\t\t)\r\n\t)\r\n\tif (useInternationalFormat) {\r\n\t\treturn applyInternationalSeparatorStyle(formattedNumber)\r\n\t}\r\n\treturn formattedNumber\r\n}","import Metadata from '../metadata.js'\r\n\r\n/**\r\n * Pattern that makes it easy to distinguish whether a region has a single\r\n * international dialing prefix or not. If a region has a single international\r\n * prefix (e.g. 011 in USA), it will be represented as a string that contains\r\n * a sequence of ASCII digits, and possibly a tilde, which signals waiting for\r\n * the tone. If there are multiple available international prefixes in a\r\n * region, they will be represented as a regex string that always contains one\r\n * or more characters that are not ASCII digits or a tilde.\r\n */\r\nconst SINGLE_IDD_PREFIX_REG_EXP = /^[\\d]+(?:[~\\u2053\\u223C\\uFF5E][\\d]+)?$/\r\n\r\n// For regions that have multiple IDD prefixes\r\n// a preferred IDD prefix is returned.\r\nexport default function getIddPrefix(country, callingCode, metadata) {\r\n\tconst countryMetadata = new Metadata(metadata)\r\n\tcountryMetadata.selectNumberingPlan(country, callingCode)\r\n\tif (countryMetadata.defaultIDDPrefix()) {\r\n\t\treturn countryMetadata.defaultIDDPrefix()\r\n\t}\r\n\tif (SINGLE_IDD_PREFIX_REG_EXP.test(countryMetadata.IDDPrefix())) {\r\n\t\treturn countryMetadata.IDDPrefix()\r\n\t}\r\n}\r\n","// This is a port of Google Android `libphonenumber`'s\r\n// `phonenumberutil.js` of December 31th, 2018.\r\n//\r\n// https://github.com/googlei18n/libphonenumber/commits/master/javascript/i18n/phonenumbers/phonenumberutil.js\r\n\r\nimport matchesEntirely from './helpers/matchesEntirely.js'\r\nimport formatNationalNumberUsingFormat from './helpers/formatNationalNumberUsingFormat.js'\r\nimport Metadata, { getCountryCallingCode } from './metadata.js'\r\nimport getIddPrefix from './helpers/getIddPrefix.js'\r\nimport { formatRFC3966 } from './helpers/RFC3966.js'\r\n\r\nconst DEFAULT_OPTIONS = {\r\n\tformatExtension: (formattedNumber, extension, metadata) => `${formattedNumber}${metadata.ext()}${extension}`\r\n}\r\n\r\n/**\r\n * Formats a phone number.\r\n *\r\n * format(phoneNumberInstance, 'INTERNATIONAL', { ..., v2: true }, metadata)\r\n * format(phoneNumberInstance, 'NATIONAL', { ..., v2: true }, metadata)\r\n *\r\n * format({ phone: '8005553535', country: 'RU' }, 'INTERNATIONAL', { ... }, metadata)\r\n * format({ phone: '8005553535', country: 'RU' }, 'NATIONAL', undefined, metadata)\r\n *\r\n * @param {object|PhoneNumber} input — If `options.v2: true` flag is passed, the `input` should be a `PhoneNumber` instance. Otherwise, it should be an object of shape `{ phone: '...', country: '...' }`.\r\n * @param {string} format\r\n * @param {object} [options]\r\n * @param {object} metadata\r\n * @return {string}\r\n */\r\nexport default function formatNumber(input, format, options, metadata) {\r\n\t// Apply default options.\r\n\tif (options) {\r\n\t\toptions = { ...DEFAULT_OPTIONS, ...options }\r\n\t} else {\r\n\t\toptions = DEFAULT_OPTIONS\r\n\t}\r\n\r\n\tmetadata = new Metadata(metadata)\r\n\r\n\tif (input.country && input.country !== '001') {\r\n\t\t// Validate `input.country`.\r\n\t\tif (!metadata.hasCountry(input.country)) {\r\n\t\t\tthrow new Error(`Unknown country: ${input.country}`)\r\n\t\t}\r\n\t\tmetadata.country(input.country)\r\n\t}\r\n\telse if (input.countryCallingCode) {\r\n\t\tmetadata.selectNumberingPlan(input.countryCallingCode)\r\n\t}\r\n\telse return input.phone || ''\r\n\r\n\tconst countryCallingCode = metadata.countryCallingCode()\r\n\r\n\tconst nationalNumber = options.v2 ? input.nationalNumber : input.phone\r\n\r\n\t// This variable should have been declared inside `case`s\r\n\t// but Babel has a bug and it says \"duplicate variable declaration\".\r\n\tlet number\r\n\r\n\tswitch (format) {\r\n\t\tcase 'NATIONAL':\r\n\t\t\t// Legacy argument support.\r\n\t\t\t// (`{ country: ..., phone: '' }`)\r\n\t\t\tif (!nationalNumber) {\r\n\t\t\t\treturn ''\r\n\t\t\t}\r\n\t\t\tnumber = formatNationalNumber(nationalNumber, input.carrierCode, 'NATIONAL', metadata, options)\r\n\t\t\treturn addExtension(number, input.ext, metadata, options.formatExtension)\r\n\r\n\t\tcase 'INTERNATIONAL':\r\n\t\t\t// Legacy argument support.\r\n\t\t\t// (`{ country: ..., phone: '' }`)\r\n\t\t\tif (!nationalNumber) {\r\n\t\t\t\treturn `+${countryCallingCode}`\r\n\t\t\t}\r\n\t\t\tnumber = formatNationalNumber(nationalNumber, null, 'INTERNATIONAL', metadata, options)\r\n\t\t\tnumber = `+${countryCallingCode} ${number}`\r\n\t\t\treturn addExtension(number, input.ext, metadata, options.formatExtension)\r\n\r\n\t\tcase 'E.164':\r\n\t\t\t// `E.164` doesn't define \"phone number extensions\".\r\n\t\t\treturn `+${countryCallingCode}${nationalNumber}`\r\n\r\n\t\tcase 'RFC3966':\r\n\t\t\treturn formatRFC3966({\r\n\t\t\t\tnumber: `+${countryCallingCode}${nationalNumber}`,\r\n\t\t\t\text: input.ext\r\n\t\t\t})\r\n\r\n\t\t// For reference, here's Google's IDD formatter:\r\n\t\t// https://github.com/google/libphonenumber/blob/32719cf74e68796788d1ca45abc85dcdc63ba5b9/java/libphonenumber/src/com/google/i18n/phonenumbers/PhoneNumberUtil.java#L1546\r\n\t\t// Not saying that this IDD formatter replicates it 1:1, but it seems to work.\r\n\t\t// Who would even need to format phone numbers in IDD format anyway?\r\n\t\tcase 'IDD':\r\n\t\t\tif (!options.fromCountry) {\r\n\t\t\t\treturn\r\n\t\t\t\t// throw new Error('`fromCountry` option not passed for IDD-prefixed formatting.')\r\n\t\t\t}\r\n\t\t\tconst formattedNumber = formatIDD(\r\n\t\t\t\tnationalNumber,\r\n\t\t\t\tinput.carrierCode,\r\n\t\t\t\tcountryCallingCode,\r\n\t\t\t\toptions.fromCountry,\r\n\t\t\t\tmetadata\r\n\t\t\t)\r\n\t\t\treturn addExtension(formattedNumber, input.ext, metadata, options.formatExtension)\r\n\r\n\t\tdefault:\r\n\t\t\tthrow new Error(`Unknown \"format\" argument passed to \"formatNumber()\": \"${format}\"`)\r\n\t}\r\n}\r\n\r\nfunction formatNationalNumber(number, carrierCode, formatAs, metadata, options) {\r\n\tconst format = chooseFormatForNumber(metadata.formats(), number)\r\n\tif (!format) {\r\n\t\treturn number\r\n\t}\r\n\treturn formatNationalNumberUsingFormat(\r\n\t\tnumber,\r\n\t\tformat,\r\n\t\t{\r\n\t\t\tuseInternationalFormat: formatAs === 'INTERNATIONAL',\r\n\t\t\twithNationalPrefix: format.nationalPrefixIsOptionalWhenFormattingInNationalFormat() && (options && options.nationalPrefix === false) ? false : true,\r\n\t\t\tcarrierCode,\r\n\t\t\tmetadata\r\n\t\t}\r\n\t)\r\n}\r\n\r\nexport function chooseFormatForNumber(availableFormats, nationalNnumber) {\r\n\tfor (const format of availableFormats) {\r\n\t\t// Validate leading digits.\r\n\t\t// The test case for \"else path\" could be found by searching for\r\n\t\t// \"format.leadingDigitsPatterns().length === 0\".\r\n\t\tif (format.leadingDigitsPatterns().length > 0) {\r\n\t\t\t// The last leading_digits_pattern is used here, as it is the most detailed\r\n\t\t\tconst lastLeadingDigitsPattern = format.leadingDigitsPatterns()[format.leadingDigitsPatterns().length - 1]\r\n\t\t\t// If leading digits don't match then move on to the next phone number format\r\n\t\t\tif (nationalNnumber.search(lastLeadingDigitsPattern) !== 0) {\r\n\t\t\t\tcontinue\r\n\t\t\t}\r\n\t\t}\r\n\t\t// Check that the national number matches the phone number format regular expression\r\n\t\tif (matchesEntirely(nationalNnumber, format.pattern())) {\r\n\t\t\treturn format\r\n\t\t}\r\n\t}\r\n}\r\n\r\nfunction addExtension(formattedNumber, ext, metadata, formatExtension) {\r\n\treturn ext ? formatExtension(formattedNumber, ext, metadata) : formattedNumber\r\n}\r\n\r\nfunction formatIDD(\r\n\tnationalNumber,\r\n\tcarrierCode,\r\n\tcountryCallingCode,\r\n\tfromCountry,\r\n\tmetadata\r\n) {\r\n\tconst fromCountryCallingCode = getCountryCallingCode(fromCountry, metadata.metadata)\r\n\t// When calling within the same country calling code.\r\n\tif (fromCountryCallingCode === countryCallingCode) {\r\n\t\tconst formattedNumber = formatNationalNumber(nationalNumber, carrierCode, 'NATIONAL', metadata)\r\n\t\t// For NANPA regions, return the national format for these regions\r\n\t\t// but prefix it with the country calling code.\r\n\t\tif (countryCallingCode === '1') {\r\n\t\t\treturn countryCallingCode + ' ' + formattedNumber\r\n\t\t}\r\n\t\t// If regions share a country calling code, the country calling code need\r\n\t\t// not be dialled. This also applies when dialling within a region, so this\r\n\t\t// if clause covers both these cases. Technically this is the case for\r\n\t\t// dialling from La Reunion to other overseas departments of France (French\r\n\t\t// Guiana, Martinique, Guadeloupe), but not vice versa - so we don't cover\r\n\t\t// this edge case for now and for those cases return the version including\r\n\t\t// country calling code. Details here:\r\n\t\t// http://www.petitfute.com/voyage/225-info-pratiques-reunion\r\n\t\t//\r\n\t\treturn formattedNumber\r\n\t}\r\n\tconst iddPrefix = getIddPrefix(fromCountry, undefined, metadata.metadata)\r\n\tif (iddPrefix) {\r\n\t\treturn `${iddPrefix} ${countryCallingCode} ${formatNationalNumber(nationalNumber, null, 'INTERNATIONAL', metadata)}`\r\n\t}\r\n}","import isViablePhoneNumber from './isViablePhoneNumber.js'\r\n\r\n// https://www.ietf.org/rfc/rfc3966.txt\r\n\r\n/**\r\n * @param {string} text - Phone URI (RFC 3966).\r\n * @return {object} `{ ?number, ?ext }`.\r\n */\r\nexport function parseRFC3966(text) {\r\n\tlet number\r\n\tlet ext\r\n\r\n\t// Replace \"tel:\" with \"tel=\" for parsing convenience.\r\n\ttext = text.replace(/^tel:/, 'tel=')\r\n\r\n\tfor (const part of text.split(';')) {\r\n\t\tconst [name, value] = part.split('=')\r\n\t\tswitch (name) {\r\n\t\t\tcase 'tel':\r\n\t\t\t\tnumber = value\r\n\t\t\t\tbreak\r\n\t\t\tcase 'ext':\r\n\t\t\t\text = value\r\n\t\t\t\tbreak\r\n\t\t\tcase 'phone-context':\r\n\t\t\t\t// Only \"country contexts\" are supported.\r\n\t\t\t\t// \"Domain contexts\" are ignored.\r\n\t\t\t\tif (value[0] === '+') {\r\n\t\t\t\t\tnumber = value + number\r\n\t\t\t\t}\r\n\t\t\t\tbreak\r\n\t\t}\r\n\t}\r\n\r\n\t// If the phone number is not viable, then abort.\r\n\tif (!isViablePhoneNumber(number)) {\r\n\t\treturn {}\r\n\t}\r\n\r\n\tconst result = { number }\r\n\tif (ext) {\r\n\t\tresult.ext = ext\r\n\t}\r\n\treturn result\r\n}\r\n\r\n/**\r\n * @param {object} - `{ ?number, ?extension }`.\r\n * @return {string} Phone URI (RFC 3966).\r\n */\r\nexport function formatRFC3966({ number, ext }) {\r\n\tif (!number) {\r\n\t\treturn ''\r\n\t}\r\n\tif (number[0] !== '+') {\r\n\t\tthrow new Error(`\"formatRFC3966()\" expects \"number\" to be in E.164 format.`)\r\n\t}\r\n\treturn `tel:${number}${ext ? ';ext=' + ext : ''}`\r\n}","import Metadata from './metadata.js'\r\nimport isPossibleNumber from './isPossible.js'\r\nimport isValidNumber from './isValid.js'\r\n// import checkNumberLength from './helpers/checkNumberLength.js'\r\nimport getNumberType from './helpers/getNumberType.js'\r\nimport getPossibleCountriesForNumber from './helpers/getPossibleCountriesForNumber.js'\r\nimport formatNumber from './format.js'\r\n\r\nconst USE_NON_GEOGRAPHIC_COUNTRY_CODE = false\r\n\r\nexport default class PhoneNumber {\r\n\t/**\r\n\t * @param {string} countryOrCountryCallingCode\r\n\t * @param {string} nationalNumber\r\n\t * @param {object} metadata — Metadata JSON\r\n\t * @return {PhoneNumber}\r\n\t */\r\n\tconstructor(countryOrCountryCallingCode, nationalNumber, metadata) {\r\n\t\tif (!countryOrCountryCallingCode) {\r\n\t\t\tthrow new TypeError('`country` or `countryCallingCode` not passed')\r\n\t\t}\r\n\t\tif (!nationalNumber) {\r\n\t\t\tthrow new TypeError('`nationalNumber` not passed')\r\n\t\t}\r\n\t\tif (!metadata) {\r\n\t\t\tthrow new TypeError('`metadata` not passed')\r\n\t\t}\r\n\t\tconst { country, countryCallingCode } = getCountryAndCountryCallingCode(\r\n\t\t\tcountryOrCountryCallingCode,\r\n\t\t\tmetadata\r\n\t\t)\r\n\t\tthis.country = country\r\n\t\tthis.countryCallingCode = countryCallingCode\r\n\t\tthis.nationalNumber = nationalNumber\r\n\t\tthis.number = '+' + this.countryCallingCode + this.nationalNumber\r\n\t\t// Exclude `metadata` property output from `PhoneNumber.toString()`\r\n\t\t// so that it doesn't clutter the console output of Node.js.\r\n\t\t// Previously, when Node.js did `console.log(new PhoneNumber(...))`,\r\n\t\t// it would output the whole internal structure of the `metadata` object.\r\n\t\tthis.getMetadata = () => metadata\r\n\t}\r\n\r\n\tsetExt(ext) {\r\n\t\tthis.ext = ext\r\n\t}\r\n\r\n\tgetPossibleCountries() {\r\n\t\tif (this.country) {\r\n\t\t\treturn [this.country]\r\n\t\t}\r\n\t\treturn getPossibleCountriesForNumber(\r\n\t\t\tthis.countryCallingCode,\r\n\t\t\tthis.nationalNumber,\r\n\t\t\tthis.getMetadata()\r\n\t\t)\r\n\t}\r\n\r\n\tisPossible() {\r\n\t\treturn isPossibleNumber(this, { v2: true }, this.getMetadata())\r\n\t}\r\n\r\n\tisValid() {\r\n\t\treturn isValidNumber(this, { v2: true }, this.getMetadata())\r\n\t}\r\n\r\n\tisNonGeographic() {\r\n\t\tconst metadata = new Metadata(this.getMetadata())\r\n\t\treturn metadata.isNonGeographicCallingCode(this.countryCallingCode)\r\n\t}\r\n\r\n\tisEqual(phoneNumber) {\r\n\t\treturn this.number === phoneNumber.number && this.ext === phoneNumber.ext\r\n\t}\r\n\r\n\t// This function was originally meant to be an equivalent for `validatePhoneNumberLength()`,\r\n\t// but later it was found out that it doesn't include the possible `TOO_SHORT` result\r\n\t// returned from `parsePhoneNumberWithError()` in the original `validatePhoneNumberLength()`,\r\n\t// so eventually I simply commented out this method from the `PhoneNumber` class\r\n\t// and just left the `validatePhoneNumberLength()` function, even though that one would require\r\n\t// and additional step to also validate the actual country / calling code of the phone number.\r\n\t// validateLength() {\r\n\t// \tconst metadata = new Metadata(this.getMetadata())\r\n\t// \tmetadata.selectNumberingPlan(this.countryCallingCode)\r\n\t// \tconst result = checkNumberLength(this.nationalNumber, metadata)\r\n\t// \tif (result !== 'IS_POSSIBLE') {\r\n\t// \t\treturn result\r\n\t// \t}\r\n\t// }\r\n\r\n\tgetType() {\r\n\t\treturn getNumberType(this, { v2: true }, this.getMetadata())\r\n\t}\r\n\r\n\tformat(format, options) {\r\n\t\treturn formatNumber(\r\n\t\t\tthis,\r\n\t\t\tformat,\r\n\t\t\toptions ? { ...options, v2: true } : { v2: true },\r\n\t\t\tthis.getMetadata()\r\n\t\t)\r\n\t}\r\n\r\n\tformatNational(options) {\r\n\t\treturn this.format('NATIONAL', options)\r\n\t}\r\n\r\n\tformatInternational(options) {\r\n\t\treturn this.format('INTERNATIONAL', options)\r\n\t}\r\n\r\n\tgetURI(options) {\r\n\t\treturn this.format('RFC3966', options)\r\n\t}\r\n}\r\n\r\nconst isCountryCode = (value) => /^[A-Z]{2}$/.test(value)\r\n\r\nfunction getCountryAndCountryCallingCode(countryOrCountryCallingCode, metadataJson) {\r\n\tlet country\r\n\tlet countryCallingCode\r\n\r\n\tconst metadata = new Metadata(metadataJson)\r\n\t// If country code is passed then derive `countryCallingCode` from it.\r\n\t// Also store the country code as `.country`.\r\n\tif (isCountryCode(countryOrCountryCallingCode)) {\r\n\t\tcountry = countryOrCountryCallingCode\r\n\t\tmetadata.selectNumberingPlan(country)\r\n\t\tcountryCallingCode = metadata.countryCallingCode()\r\n\t} else {\r\n\t\tcountryCallingCode = countryOrCountryCallingCode\r\n\t\t/* istanbul ignore if */\r\n\t\tif (USE_NON_GEOGRAPHIC_COUNTRY_CODE) {\r\n\t\t\tif (metadata.isNonGeographicCallingCode(countryCallingCode)) {\r\n\t\t\t\tcountry = '001'\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\treturn {\r\n\t\tcountry,\r\n\t\tcountryCallingCode\r\n\t}\r\n}","import Metadata from './metadata.js'\r\nimport matchesEntirely from './helpers/matchesEntirely.js'\r\nimport getNumberType from './helpers/getNumberType.js'\r\n\r\n/**\r\n * Checks if a given phone number is valid.\r\n *\r\n * isValid(phoneNumberInstance, { ..., v2: true }, metadata)\r\n *\r\n * isPossible({ phone: '8005553535', country: 'RU' }, { ... }, metadata)\r\n * isPossible({ phone: '8005553535', country: 'RU' }, undefined, metadata)\r\n *\r\n * If the `number` is a string, it will be parsed to an object,\r\n * but only if it contains only valid phone number characters (including punctuation).\r\n * If the `number` is an object, it is used as is.\r\n *\r\n * The optional `defaultCountry` argument is the default country.\r\n * I.e. it does not restrict to just that country,\r\n * e.g. in those cases where several countries share\r\n * the same phone numbering rules (NANPA, Britain, etc).\r\n * For example, even though the number `07624 369230`\r\n * belongs to the Isle of Man (\"IM\" country code)\r\n * calling `isValidNumber('07624369230', 'GB', metadata)`\r\n * still returns `true` because the country is not restricted to `GB`,\r\n * it's just that `GB` is the default one for the phone numbering rules.\r\n * For restricting the country see `isValidNumberForRegion()`\r\n * though restricting a country might not be a good idea.\r\n * https://github.com/googlei18n/libphonenumber/blob/master/FAQ.md#when-should-i-use-isvalidnumberforregion\r\n *\r\n * Examples:\r\n *\r\n * ```js\r\n * isValidNumber('+78005553535', metadata)\r\n * isValidNumber('8005553535', 'RU', metadata)\r\n * isValidNumber('88005553535', 'RU', metadata)\r\n * isValidNumber({ phone: '8005553535', country: 'RU' }, metadata)\r\n * ```\r\n */\r\nexport default function isValidNumber(input, options, metadata)\r\n{\r\n\t// If assigning the `{}` default value is moved to the arguments above,\r\n\t// code coverage would decrease for some weird reason.\r\n\toptions = options || {}\r\n\r\n\tmetadata = new Metadata(metadata)\r\n\r\n/**\r\n * Checks if a phone number is \"possible\" (basically just checks its length).\r\n *\r\n * @param {object|PhoneNumber} input — If `options.v2: true` flag is passed, the `input` should be a `PhoneNumber` instance. Otherwise, it should be an object of shape `{ phone: '...', country: '...' }`.\r\n * @param {object} [options]\r\n * @param {object} metadata\r\n * @return {string}\r\n */\r\n\r\n\tmetadata.selectNumberingPlan(input.country, input.countryCallingCode)\r\n\r\n\t// By default, countries only have type regexps when it's required for\r\n\t// distinguishing different countries having the same `countryCallingCode`.\r\n\tif (metadata.hasTypes()) {\r\n\t\treturn getNumberType(input, options, metadata.metadata) !== undefined\r\n\t}\r\n\r\n\t// If there are no type regexps for this country in metadata then use\r\n\t// `nationalNumberPattern` as a \"better than nothing\" replacement.\r\n\tconst nationalNumber = options.v2 ? input.nationalNumber : input.phone\r\n\treturn matchesEntirely(nationalNumber, metadata.nationalNumberPattern())\r\n}","import Metadata from '../metadata.js'\r\nimport { VALID_DIGITS } from '../constants.js'\r\n\r\nconst CAPTURING_DIGIT_PATTERN = new RegExp('([' + VALID_DIGITS + '])')\r\n\r\nexport default function stripIddPrefix(number, country, callingCode, metadata) {\r\n\tif (!country) {\r\n\t\treturn\r\n\t}\r\n\t// Check if the number is IDD-prefixed.\r\n\tconst countryMetadata = new Metadata(metadata)\r\n\tcountryMetadata.selectNumberingPlan(country, callingCode)\r\n\tconst IDDPrefixPattern = new RegExp(countryMetadata.IDDPrefix())\r\n\tif (number.search(IDDPrefixPattern) !== 0) {\r\n\t\treturn\r\n\t}\r\n\t// Strip IDD prefix.\r\n\tnumber = number.slice(number.match(IDDPrefixPattern)[0].length)\r\n\t// If there're any digits after an IDD prefix,\r\n\t// then those digits are a country calling code.\r\n\t// Since no country code starts with a `0`,\r\n\t// the code below validates that the next digit (if present) is not `0`.\r\n\tconst matchedGroups = number.match(CAPTURING_DIGIT_PATTERN)\r\n\tif (matchedGroups && matchedGroups[1] != null && matchedGroups[1].length > 0) {\r\n\t\tif (matchedGroups[1] === '0') {\r\n\t\t\treturn\r\n\t\t}\r\n\t}\r\n\treturn number\r\n}","/**\r\n * Strips any national prefix (such as 0, 1) present in a\r\n * (possibly incomplete) number provided.\r\n * \"Carrier codes\" are only used in Colombia and Brazil,\r\n * and only when dialing within those countries from a mobile phone to a fixed line number.\r\n * Sometimes it won't actually strip national prefix\r\n * and will instead prepend some digits to the `number`:\r\n * for example, when number `2345678` is passed with `VI` country selected,\r\n * it will return `{ number: \"3402345678\" }`, because `340` area code is prepended.\r\n * @param {string} number — National number digits.\r\n * @param {object} metadata — Metadata with country selected.\r\n * @return {object} `{ nationalNumber: string, nationalPrefix: string? carrierCode: string? }`. Even if a national prefix was extracted, it's not necessarily present in the returned object, so don't rely on its presence in the returned object in order to find out whether a national prefix has been extracted or not.\r\n */\r\nexport default function extractNationalNumberFromPossiblyIncompleteNumber(number, metadata) {\r\n\tif (number && metadata.numberingPlan.nationalPrefixForParsing()) {\r\n\t\t// See METADATA.md for the description of\r\n\t\t// `national_prefix_for_parsing` and `national_prefix_transform_rule`.\r\n\t\t// Attempt to parse the first digits as a national prefix.\r\n\t\tconst prefixPattern = new RegExp('^(?:' + metadata.numberingPlan.nationalPrefixForParsing() + ')')\r\n\t\tconst prefixMatch = prefixPattern.exec(number)\r\n\t\tif (prefixMatch) {\r\n\t\t\tlet nationalNumber\r\n\t\t\tlet carrierCode\r\n\t\t\t// https://gitlab.com/catamphetamine/libphonenumber-js/-/blob/master/METADATA.md#national_prefix_for_parsing--national_prefix_transform_rule\r\n\t\t\t// If a `national_prefix_for_parsing` has any \"capturing groups\"\r\n\t\t\t// then it means that the national (significant) number is equal to\r\n\t\t\t// those \"capturing groups\" transformed via `national_prefix_transform_rule`,\r\n\t\t\t// and nothing could be said about the actual national prefix:\r\n\t\t\t// what is it and was it even there.\r\n\t\t\t// If a `national_prefix_for_parsing` doesn't have any \"capturing groups\",\r\n\t\t\t// then everything it matches is a national prefix.\r\n\t\t\t// To determine whether `national_prefix_for_parsing` matched any\r\n\t\t\t// \"capturing groups\", the value of the result of calling `.exec()`\r\n\t\t\t// is looked at, and if it has non-undefined values where there're\r\n\t\t\t// \"capturing groups\" in the regular expression, then it means\r\n\t\t\t// that \"capturing groups\" have been matched.\r\n\t\t\t// It's not possible to tell whether there'll be any \"capturing gropus\"\r\n\t\t\t// before the matching process, because a `national_prefix_for_parsing`\r\n\t\t\t// could exhibit both behaviors.\r\n\t\t\tconst capturedGroupsCount = prefixMatch.length - 1\r\n\t\t\tconst hasCapturedGroups = capturedGroupsCount > 0 && prefixMatch[capturedGroupsCount]\r\n\t\t\tif (metadata.nationalPrefixTransformRule() && hasCapturedGroups) {\r\n\t\t\t\tnationalNumber = number.replace(\r\n\t\t\t\t\tprefixPattern,\r\n\t\t\t\t\tmetadata.nationalPrefixTransformRule()\r\n\t\t\t\t)\r\n\t\t\t\t// If there's more than one captured group,\r\n\t\t\t\t// then carrier code is the second one.\r\n\t\t\t\tif (capturedGroupsCount > 1) {\r\n\t\t\t\t\tcarrierCode = prefixMatch[1]\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t// If there're no \"capturing groups\",\r\n\t\t\t// or if there're \"capturing groups\" but no\r\n\t\t\t// `national_prefix_transform_rule`,\r\n\t\t\t// then just strip the national prefix from the number,\r\n\t\t\t// and possibly a carrier code.\r\n\t\t\t// Seems like there could be more.\r\n\t\t\telse {\r\n\t\t\t\t// `prefixBeforeNationalNumber` is the whole substring matched by\r\n\t\t\t\t// the `national_prefix_for_parsing` regular expression.\r\n\t\t\t\t// There seem to be no guarantees that it's just a national prefix.\r\n\t\t\t\t// For example, if there's a carrier code, it's gonna be a\r\n\t\t\t\t// part of `prefixBeforeNationalNumber` too.\r\n\t\t\t\tconst prefixBeforeNationalNumber = prefixMatch[0]\r\n\t\t\t\tnationalNumber = number.slice(prefixBeforeNationalNumber.length)\r\n\t\t\t\t// If there's at least one captured group,\r\n\t\t\t\t// then carrier code is the first one.\r\n\t\t\t\tif (hasCapturedGroups) {\r\n\t\t\t\t\tcarrierCode = prefixMatch[1]\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t// Tries to guess whether a national prefix was present in the input.\r\n\t\t\t// This is not something copy-pasted from Google's library:\r\n\t\t\t// they don't seem to have an equivalent for that.\r\n\t\t\t// So this isn't an \"officially approved\" way of doing something like that.\r\n\t\t\t// But since there seems no other existing method, this library uses it.\r\n\t\t\tlet nationalPrefix\r\n\t\t\tif (hasCapturedGroups) {\r\n\t\t\t\tconst possiblePositionOfTheFirstCapturedGroup = number.indexOf(prefixMatch[1])\r\n\t\t\t\tconst possibleNationalPrefix = number.slice(0, possiblePositionOfTheFirstCapturedGroup)\r\n\t\t\t\t// Example: an Argentinian (AR) phone number `0111523456789`.\r\n\t\t\t\t// `prefixMatch[0]` is `01115`, and `$1` is `11`,\r\n\t\t\t\t// and the rest of the phone number is `23456789`.\r\n\t\t\t\t// The national number is transformed via `9$1` to `91123456789`.\r\n\t\t\t\t// National prefix `0` is detected being present at the start.\r\n\t\t\t\t// if (possibleNationalPrefix.indexOf(metadata.numberingPlan.nationalPrefix()) === 0) {\r\n\t\t\t\tif (possibleNationalPrefix === metadata.numberingPlan.nationalPrefix()) {\r\n\t\t\t\t\tnationalPrefix = metadata.numberingPlan.nationalPrefix()\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tnationalPrefix = prefixMatch[0]\r\n\t\t\t}\r\n\t\t\treturn {\r\n\t\t\t\tnationalNumber,\r\n\t\t\t\tnationalPrefix,\r\n\t\t\t\tcarrierCode\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n return {\r\n \tnationalNumber: number\r\n }\r\n}","import extractNationalNumberFromPossiblyIncompleteNumber from './extractNationalNumberFromPossiblyIncompleteNumber.js'\r\nimport matchesEntirely from './matchesEntirely.js'\r\nimport checkNumberLength from './checkNumberLength.js'\r\n\r\n/**\r\n * Strips national prefix and carrier code from a complete phone number.\r\n * The difference from the non-\"FromCompleteNumber\" function is that\r\n * it won't extract national prefix if the resultant number is too short\r\n * to be a complete number for the selected phone numbering plan.\r\n * @param {string} number — Complete phone number digits.\r\n * @param {Metadata} metadata — Metadata with a phone numbering plan selected.\r\n * @return {object} `{ nationalNumber: string, carrierCode: string? }`.\r\n */\r\nexport default function extractNationalNumber(number, metadata) {\r\n\t// Parsing national prefixes and carrier codes\r\n\t// is only required for local phone numbers\r\n\t// but some people don't understand that\r\n\t// and sometimes write international phone numbers\r\n\t// with national prefixes (or maybe even carrier codes).\r\n\t// http://ucken.blogspot.ru/2016/03/trunk-prefixes-in-skype4b.html\r\n\t// Google's original library forgives such mistakes\r\n\t// and so does this library, because it has been requested:\r\n\t// https://github.com/catamphetamine/libphonenumber-js/issues/127\r\n\tconst {\r\n\t\tcarrierCode,\r\n\t\tnationalNumber\r\n\t} = extractNationalNumberFromPossiblyIncompleteNumber(\r\n\t\tnumber,\r\n\t\tmetadata\r\n\t)\r\n\r\n\tif (nationalNumber !== number) {\r\n\t\tif (!shouldHaveExtractedNationalPrefix(number, nationalNumber, metadata)) {\r\n\t\t\t// Don't strip the national prefix.\r\n\t\t\treturn { nationalNumber: number }\r\n\t\t}\r\n\t\t// Check the national (significant) number length after extracting national prefix and carrier code.\r\n\t\t// Legacy generated metadata (before `1.0.18`) didn't support the \"possible lengths\" feature.\r\n\t\tif (metadata.possibleLengths()) {\r\n\t\t\t// The number remaining after stripping the national prefix and carrier code\r\n\t\t\t// should be long enough to have a possible length for the country.\r\n\t\t\t// Otherwise, don't strip the national prefix and carrier code,\r\n\t\t\t// since the original number could be a valid number.\r\n\t\t\t// This check has been copy-pasted \"as is\" from Google's original library:\r\n\t\t\t// https://github.com/google/libphonenumber/blob/876268eb1ad6cdc1b7b5bef17fc5e43052702d57/java/libphonenumber/src/com/google/i18n/phonenumbers/PhoneNumberUtil.java#L3236-L3250\r\n\t\t\t// It doesn't check for the \"possibility\" of the original `number`.\r\n\t\t\t// I guess it's fine not checking that one. It works as is anyway.\r\n\t\t\tif (!isPossibleIncompleteNationalNumber(nationalNumber, metadata)) {\r\n\t\t\t\t// Don't strip the national prefix.\r\n\t\t\t\treturn { nationalNumber: number }\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\treturn { nationalNumber, carrierCode }\r\n}\r\n\r\n// In some countries, the same digit could be a national prefix\r\n// or a leading digit of a valid phone number.\r\n// For example, in Russia, national prefix is `8`,\r\n// and also `800 555 35 35` is a valid number\r\n// in which `8` is not a national prefix, but the first digit\r\n// of a national (significant) number.\r\n// Same's with Belarus:\r\n// `82004910060` is a valid national (significant) number,\r\n// but `2004910060` is not.\r\n// To support such cases (to prevent the code from always stripping\r\n// national prefix), a condition is imposed: a national prefix\r\n// is not extracted when the original number is \"viable\" and the\r\n// resultant number is not, a \"viable\" national number being the one\r\n// that matches `national_number_pattern`.\r\nfunction shouldHaveExtractedNationalPrefix(nationalNumberBefore, nationalNumberAfter, metadata) {\r\n\t// The equivalent in Google's code is:\r\n\t// https://github.com/google/libphonenumber/blob/e326fa1fc4283bb05eb35cb3c15c18f98a31af33/java/libphonenumber/src/com/google/i18n/phonenumbers/PhoneNumberUtil.java#L2969-L3004\r\n\tif (matchesEntirely(nationalNumberBefore, metadata.nationalNumberPattern()) &&\r\n\t\t!matchesEntirely(nationalNumberAfter, metadata.nationalNumberPattern())) {\r\n\t\treturn false\r\n\t}\r\n\t// This \"is possible\" national number (length) check has been commented out\r\n\t// because it's superceded by the (effectively) same check done in the\r\n\t// `extractNationalNumber()` function after it calls `shouldHaveExtractedNationalPrefix()`.\r\n\t// In other words, why run the same check twice if it could only be run once.\r\n\t// // Check the national (significant) number length after extracting national prefix and carrier code.\r\n\t// // Fixes a minor \"weird behavior\" bug: https://gitlab.com/catamphetamine/libphonenumber-js/-/issues/57\r\n\t// // (Legacy generated metadata (before `1.0.18`) didn't support the \"possible lengths\" feature).\r\n\t// if (metadata.possibleLengths()) {\r\n\t// \tif (isPossibleIncompleteNationalNumber(nationalNumberBefore, metadata) &&\r\n\t// \t\t!isPossibleIncompleteNationalNumber(nationalNumberAfter, metadata)) {\r\n\t// \t\treturn false\r\n\t// \t}\r\n\t// }\r\n\treturn true\r\n}\r\n\r\nfunction isPossibleIncompleteNationalNumber(nationalNumber, metadata) {\r\n\tswitch (checkNumberLength(nationalNumber, metadata)) {\r\n\t\tcase 'TOO_SHORT':\r\n\t\tcase 'INVALID_LENGTH':\r\n\t\t// This library ignores \"local-only\" phone numbers (for simplicity).\r\n\t\t// See the readme for more info on what are \"local-only\" phone numbers.\r\n\t\t// case 'IS_POSSIBLE_LOCAL_ONLY':\r\n\t\t\treturn false\r\n\t\tdefault:\r\n\t\t\treturn true\r\n\t}\r\n}","import Metadata from '../metadata.js'\r\nimport matchesEntirely from './matchesEntirely.js'\r\nimport extractNationalNumber from './extractNationalNumber.js'\r\nimport checkNumberLength from './checkNumberLength.js'\r\nimport getCountryCallingCode from '../getCountryCallingCode.js'\r\n\r\n/**\r\n * Sometimes some people incorrectly input international phone numbers\r\n * without the leading `+`. This function corrects such input.\r\n * @param {string} number — Phone number digits.\r\n * @param {string?} country\r\n * @param {string?} callingCode\r\n * @param {object} metadata\r\n * @return {object} `{ countryCallingCode: string?, number: string }`.\r\n */\r\nexport default function extractCountryCallingCodeFromInternationalNumberWithoutPlusSign(\r\n\tnumber,\r\n\tcountry,\r\n\tcallingCode,\r\n\tmetadata\r\n) {\r\n\tconst countryCallingCode = country ? getCountryCallingCode(country, metadata) : callingCode\r\n\tif (number.indexOf(countryCallingCode) === 0) {\r\n\t\tmetadata = new Metadata(metadata)\r\n\t\tmetadata.selectNumberingPlan(country, callingCode)\r\n\t\tconst possibleShorterNumber = number.slice(countryCallingCode.length)\r\n\t\tconst {\r\n\t\t\tnationalNumber: possibleShorterNationalNumber,\r\n\t\t} = extractNationalNumber(\r\n\t\t\tpossibleShorterNumber,\r\n\t\t\tmetadata\r\n\t\t)\r\n\t\tconst {\r\n\t\t\tnationalNumber\r\n\t\t} = extractNationalNumber(\r\n\t\t\tnumber,\r\n\t\t\tmetadata\r\n\t\t)\r\n\t\t// If the number was not valid before but is valid now,\r\n\t\t// or if it was too long before, we consider the number\r\n\t\t// with the country calling code stripped to be a better result\r\n\t\t// and keep that instead.\r\n\t\t// For example, in Germany (+49), `49` is a valid area code,\r\n\t\t// so if a number starts with `49`, it could be both a valid\r\n\t\t// national German number or an international number without\r\n\t\t// a leading `+`.\r\n\t\tif (\r\n\t\t\t(\r\n\t\t\t\t!matchesEntirely(nationalNumber, metadata.nationalNumberPattern())\r\n\t\t\t\t&&\r\n\t\t\t\tmatchesEntirely(possibleShorterNationalNumber, metadata.nationalNumberPattern())\r\n\t\t\t)\r\n\t\t\t||\r\n\t\t\tcheckNumberLength(nationalNumber, metadata) === 'TOO_LONG'\r\n\t\t) {\r\n\t\t\treturn {\r\n\t\t\t\tcountryCallingCode,\r\n\t\t\t\tnumber: possibleShorterNumber\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\treturn { number }\r\n}","import stripIddPrefix from './stripIddPrefix.js'\r\nimport extractCountryCallingCodeFromInternationalNumberWithoutPlusSign from './extractCountryCallingCodeFromInternationalNumberWithoutPlusSign.js'\r\nimport Metadata from '../metadata.js'\r\nimport { MAX_LENGTH_COUNTRY_CODE } from '../constants.js'\r\n\r\n/**\r\n * Converts a phone number digits (possibly with a `+`)\r\n * into a calling code and the rest phone number digits.\r\n * The \"rest phone number digits\" could include\r\n * a national prefix, carrier code, and national\r\n * (significant) number.\r\n * @param {string} number — Phone number digits (possibly with a `+`).\r\n * @param {string} [country] — Default country.\r\n * @param {string} [callingCode] — Default calling code (some phone numbering plans are non-geographic).\r\n * @param {object} metadata\r\n * @return {object} `{ countryCallingCodeSource: string?, countryCallingCode: string?, number: string }`\r\n * @example\r\n * // Returns `{ countryCallingCode: \"1\", number: \"2133734253\" }`.\r\n * extractCountryCallingCode('2133734253', 'US', null, metadata)\r\n * extractCountryCallingCode('2133734253', null, '1', metadata)\r\n * extractCountryCallingCode('+12133734253', null, null, metadata)\r\n * extractCountryCallingCode('+12133734253', 'RU', null, metadata)\r\n */\r\nexport default function extractCountryCallingCode(\r\n\tnumber,\r\n\tcountry,\r\n\tcallingCode,\r\n\tmetadata\r\n) {\r\n\tif (!number) {\r\n\t\treturn {}\r\n\t}\r\n\r\n\tlet isNumberWithIddPrefix\r\n\r\n\t// If this is not an international phone number,\r\n\t// then either extract an \"IDD\" prefix, or extract a\r\n\t// country calling code from a number by autocorrecting it\r\n\t// by prepending a leading `+` in cases when it starts\r\n\t// with the country calling code.\r\n\t// https://wikitravel.org/en/International_dialling_prefix\r\n\t// https://github.com/catamphetamine/libphonenumber-js/issues/376\r\n\tif (number[0] !== '+') {\r\n\t\t// Convert an \"out-of-country\" dialing phone number\r\n\t\t// to a proper international phone number.\r\n\t\tconst numberWithoutIDD = stripIddPrefix(number, country, callingCode, metadata)\r\n\t\t// If an IDD prefix was stripped then\r\n\t\t// convert the number to international one\r\n\t\t// for subsequent parsing.\r\n\t\tif (numberWithoutIDD && numberWithoutIDD !== number) {\r\n\t\t\tisNumberWithIddPrefix = true\r\n\t\t\tnumber = '+' + numberWithoutIDD\r\n\t\t} else {\r\n\t\t\t// Check to see if the number starts with the country calling code\r\n\t\t\t// for the default country. If so, we remove the country calling code,\r\n\t\t\t// and do some checks on the validity of the number before and after.\r\n\t\t\t// https://github.com/catamphetamine/libphonenumber-js/issues/376\r\n\t\t\tif (country || callingCode) {\r\n\t\t\t\tconst {\r\n\t\t\t\t\tcountryCallingCode,\r\n\t\t\t\t\tnumber: shorterNumber\r\n\t\t\t\t} = extractCountryCallingCodeFromInternationalNumberWithoutPlusSign(\r\n\t\t\t\t\tnumber,\r\n\t\t\t\t\tcountry,\r\n\t\t\t\t\tcallingCode,\r\n\t\t\t\t\tmetadata\r\n\t\t\t\t)\r\n\t\t\t\tif (countryCallingCode) {\r\n\t\t\t\t\treturn {\r\n\t\t\t\t\t\tcountryCallingCodeSource: 'FROM_NUMBER_WITHOUT_PLUS_SIGN',\r\n\t\t\t\t\t\tcountryCallingCode,\r\n\t\t\t\t\t\tnumber: shorterNumber\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\t// No need to set it to `UNSPECIFIED`. It can be just `undefined`.\r\n\t\t\t\t// countryCallingCodeSource: 'UNSPECIFIED',\r\n\t\t\t\tnumber\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t// Fast abortion: country codes do not begin with a '0'\r\n\tif (number[1] === '0') {\r\n\t\treturn {}\r\n\t}\r\n\r\n\tmetadata = new Metadata(metadata)\r\n\r\n\t// The thing with country phone codes\r\n\t// is that they are orthogonal to each other\r\n\t// i.e. there's no such country phone code A\r\n\t// for which country phone code B exists\r\n\t// where B starts with A.\r\n\t// Therefore, while scanning digits,\r\n\t// if a valid country code is found,\r\n\t// that means that it is the country code.\r\n\t//\r\n\tlet i = 2\r\n\twhile (i - 1 <= MAX_LENGTH_COUNTRY_CODE && i <= number.length) {\r\n\t\tconst countryCallingCode = number.slice(1, i)\r\n\t\tif (metadata.hasCallingCode(countryCallingCode)) {\r\n\t\t\tmetadata.selectNumberingPlan(countryCallingCode)\r\n\t\t\treturn {\r\n\t\t\t\tcountryCallingCodeSource: isNumberWithIddPrefix ? 'FROM_NUMBER_WITH_IDD' : 'FROM_NUMBER_WITH_PLUS_SIGN',\r\n\t\t\t\tcountryCallingCode,\r\n\t\t\t\tnumber: number.slice(i)\r\n\t\t\t}\r\n\t\t}\r\n\t\ti++\r\n\t}\r\n\r\n\treturn {}\r\n}\r\n\r\n// The possible values for the returned `countryCallingCodeSource` are:\r\n//\r\n// Copy-pasted from:\r\n// https://github.com/google/libphonenumber/blob/master/resources/phonenumber.proto\r\n//\r\n// // The source from which the country_code is derived. This is not set in the\r\n// // general parsing method, but in the method that parses and keeps raw_input.\r\n// // New fields could be added upon request.\r\n// enum CountryCodeSource {\r\n// // Default value returned if this is not set, because the phone number was\r\n// // created using parse, not parseAndKeepRawInput. hasCountryCodeSource will\r\n// // return false if this is the case.\r\n// UNSPECIFIED = 0;\r\n//\r\n// // The country_code is derived based on a phone number with a leading \"+\",\r\n// // e.g. the French number \"+33 1 42 68 53 00\".\r\n// FROM_NUMBER_WITH_PLUS_SIGN = 1;\r\n//\r\n// // The country_code is derived based on a phone number with a leading IDD,\r\n// // e.g. the French number \"011 33 1 42 68 53 00\", as it is dialled from US.\r\n// FROM_NUMBER_WITH_IDD = 5;\r\n//\r\n// // The country_code is derived based on a phone number without a leading\r\n// // \"+\", e.g. the French number \"33 1 42 68 53 00\" when defaultCountry is\r\n// // supplied as France.\r\n// FROM_NUMBER_WITHOUT_PLUS_SIGN = 10;\r\n//\r\n// // The country_code is derived NOT based on the phone number itself, but\r\n// // from the defaultCountry parameter provided in the parsing function by the\r\n// // clients. This happens mostly for numbers written in the national format\r\n// // (without country code). For example, this would be set when parsing the\r\n// // French number \"01 42 68 53 00\", when defaultCountry is supplied as\r\n// // France.\r\n// FROM_DEFAULT_COUNTRY = 20;\r\n// }","import Metadata from '../metadata.js'\r\nimport getNumberType from './getNumberType.js'\r\n\r\nexport default function getCountryByNationalNumber(nationalPhoneNumber, {\r\n\tcountries,\r\n\tdefaultCountry,\r\n\tmetadata\r\n}) {\r\n\t// Re-create `metadata` because it will be selecting a `country`.\r\n\tmetadata = new Metadata(metadata)\r\n\r\n\tconst matchingCountries = []\r\n\r\n\tfor (const country of countries) {\r\n\t\tmetadata.country(country)\r\n\t\t// \"Leading digits\" patterns are only defined for about 20% of all countries.\r\n\t\t// By definition, matching \"leading digits\" is a sufficient but not a necessary\r\n\t\t// condition for a phone number to belong to a country.\r\n\t\t// The point of \"leading digits\" check is that it's the fastest one to get a match.\r\n\t\t// https://gitlab.com/catamphetamine/libphonenumber-js/blob/master/METADATA.md#leading_digits\r\n\t\t// I'd suppose that \"leading digits\" patterns are mutually exclusive for different countries\r\n\t\t// because of the intended use of that feature.\r\n\t\tif (metadata.leadingDigits()) {\r\n\t\t\tif (nationalPhoneNumber &&\r\n\t\t\t\tnationalPhoneNumber.search(metadata.leadingDigits()) === 0) {\r\n\t\t\t\treturn country\r\n\t\t\t}\r\n\t\t}\r\n\t\t// Else perform full validation with all of those\r\n\t\t// fixed-line/mobile/etc regular expressions.\r\n\t\telse if (getNumberType({ phone: nationalPhoneNumber, country }, undefined, metadata.metadata)) {\r\n\t\t\t// If the `defaultCountry` is among the `matchingCountries` then return it.\r\n\t\t\tif (defaultCountry) {\r\n\t\t\t\tif (country === defaultCountry) {\r\n\t\t\t\t\treturn country\r\n\t\t\t\t}\r\n\t\t\t\tmatchingCountries.push(country)\r\n\t\t\t} else {\r\n\t\t\t\treturn country\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t// Return the first (\"main\") one of the `matchingCountries`.\r\n\tif (matchingCountries.length > 0) {\r\n\t\treturn matchingCountries[0]\r\n\t}\r\n}","import getCountryByNationalNumber from './getCountryByNationalNumber.js'\r\n\r\nconst USE_NON_GEOGRAPHIC_COUNTRY_CODE = false\r\n\r\nexport default function getCountryByCallingCode(callingCode, {\r\n\tnationalNumber: nationalPhoneNumber,\r\n\tdefaultCountry,\r\n\tmetadata\r\n}) {\r\n\t/* istanbul ignore if */\r\n\tif (USE_NON_GEOGRAPHIC_COUNTRY_CODE) {\r\n\t\tif (metadata.isNonGeographicCallingCode(callingCode)) {\r\n\t\t\treturn '001'\r\n\t\t}\r\n\t}\r\n\tconst possibleCountries = metadata.getCountryCodesForCallingCode(callingCode)\r\n\tif (!possibleCountries) {\r\n\t\treturn\r\n\t}\r\n\t// If there's just one country corresponding to the country code,\r\n\t// then just return it, without further phone number digits validation.\r\n\tif (possibleCountries.length === 1) {\r\n\t\treturn possibleCountries[0]\r\n\t}\r\n\treturn getCountryByNationalNumber(nationalPhoneNumber, {\r\n\t\tcountries: possibleCountries,\r\n\t\tdefaultCountry,\r\n\t\tmetadata: metadata.metadata\r\n\t})\r\n}","// When phone numbers are written in `RFC3966` format — `\"tel:+12133734253\"` —\r\n// they can have their \"calling code\" part written separately in a `phone-context` parameter.\r\n// Example: `\"tel:12133734253;phone-context=+1\"`.\r\n// This function parses the full phone number from the local number and the `phone-context`\r\n// when the `phone-context` contains a `+` sign.\r\n\r\nimport {\r\n VALID_DIGITS,\r\n // PLUS_CHARS\r\n} from '../constants.js'\r\n\r\nexport const PLUS_SIGN = '+'\r\n\r\nconst RFC3966_VISUAL_SEPARATOR_ = '[\\\\-\\\\.\\\\(\\\\)]?'\r\n\r\nconst RFC3966_PHONE_DIGIT_ = '(' + '[' + VALID_DIGITS + ']' + '|' + RFC3966_VISUAL_SEPARATOR_ + ')'\r\n\r\nconst RFC3966_GLOBAL_NUMBER_DIGITS_ =\r\n\t'^' +\r\n\t'\\\\' +\r\n\tPLUS_SIGN +\r\n\tRFC3966_PHONE_DIGIT_ +\r\n\t'*' +\r\n\t'[' + VALID_DIGITS + ']' +\r\n\tRFC3966_PHONE_DIGIT_ +\r\n\t'*' +\r\n\t'$'\r\n\r\n/**\r\n * Regular expression of valid global-number-digits for the phone-context\r\n * parameter, following the syntax defined in RFC3966.\r\n */\r\nconst RFC3966_GLOBAL_NUMBER_DIGITS_PATTERN_ = new RegExp(RFC3966_GLOBAL_NUMBER_DIGITS_, 'g')\r\n\r\n// In this port of Google's library, we don't accept alpha characters in phone numbers.\r\n// const ALPHANUM_ = VALID_ALPHA_ + VALID_DIGITS\r\nconst ALPHANUM_ = VALID_DIGITS\r\n\r\nconst RFC3966_DOMAINLABEL_ = '[' + ALPHANUM_ + ']+((\\\\-)*[' + ALPHANUM_ + '])*'\r\n\r\nconst VALID_ALPHA_ = 'a-zA-Z'\r\nconst RFC3966_TOPLABEL_ = '[' + VALID_ALPHA_ + ']+((\\\\-)*[' + ALPHANUM_ + '])*'\r\n\r\nconst RFC3966_DOMAINNAME_ = '^(' + RFC3966_DOMAINLABEL_ + '\\\\.)*' + RFC3966_TOPLABEL_ + '\\\\.?$'\r\n\r\n/**\r\n * Regular expression of valid domainname for the phone-context parameter,\r\n * following the syntax defined in RFC3966.\r\n */\r\nconst RFC3966_DOMAINNAME_PATTERN_ = new RegExp(RFC3966_DOMAINNAME_, 'g')\r\n\r\nexport const RFC3966_PREFIX_ = 'tel:'\r\nexport const RFC3966_PHONE_CONTEXT_ = ';phone-context='\r\nexport const RFC3966_ISDN_SUBADDRESS_ = ';isub='\r\n\r\n/**\r\n * Extracts the value of the phone-context parameter of `numberToExtractFrom`,\r\n * following the syntax defined in RFC3966.\r\n *\r\n * @param {string} numberToExtractFrom\r\n * @return {string|null} the extracted string (possibly empty), or `null` if no phone-context parameter is found.\r\n */\r\nexport default function extractPhoneContext(numberToExtractFrom) {\r\n\tconst indexOfPhoneContext = numberToExtractFrom.indexOf(RFC3966_PHONE_CONTEXT_)\r\n\t// If no phone-context parameter is present\r\n\tif (indexOfPhoneContext < 0) {\r\n\t\treturn null\r\n\t}\r\n\r\n\tconst phoneContextStart = indexOfPhoneContext + RFC3966_PHONE_CONTEXT_.length\r\n\t// If phone-context parameter is empty\r\n\tif (phoneContextStart >= numberToExtractFrom.length) {\r\n\t\treturn ''\r\n\t}\r\n\r\n\tconst phoneContextEnd = numberToExtractFrom.indexOf(';', phoneContextStart)\r\n\t// If phone-context is not the last parameter\r\n\tif (phoneContextEnd >= 0) {\r\n\t\treturn numberToExtractFrom.substring(phoneContextStart, phoneContextEnd)\r\n\t} else {\r\n\t\treturn numberToExtractFrom.substring(phoneContextStart)\r\n\t}\r\n}\r\n\r\n/**\r\n * Returns whether the value of phoneContext follows the syntax defined in RFC3966.\r\n *\r\n * @param {string|null} phoneContext\r\n * @return {boolean}\r\n */\r\nexport function isPhoneContextValid(phoneContext) {\r\n\tif (phoneContext === null) {\r\n\t\treturn true\r\n\t}\r\n\r\n\tif (phoneContext.length === 0) {\r\n\t\treturn false\r\n\t}\r\n\r\n\t// Does phone-context value match pattern of global-number-digits or domainname.\r\n\treturn RFC3966_GLOBAL_NUMBER_DIGITS_PATTERN_.test(phoneContext) ||\r\n\t\tRFC3966_DOMAINNAME_PATTERN_.test(phoneContext)\r\n}","import extractPhoneContext, {\r\n\tisPhoneContextValid,\r\n\tPLUS_SIGN,\r\n\tRFC3966_PREFIX_,\r\n\tRFC3966_PHONE_CONTEXT_,\r\n\tRFC3966_ISDN_SUBADDRESS_\r\n} from './extractPhoneContext.js'\r\n\r\nimport ParseError from '../ParseError.js'\r\n\r\n/**\r\n * @param {string} numberToParse\r\n * @param {string} nationalNumber\r\n * @return {}\r\n */\r\nexport default function extractFormattedPhoneNumberFromPossibleRfc3966NumberUri(numberToParse, {\r\n\textractFormattedPhoneNumber\r\n}) {\r\n\tconst phoneContext = extractPhoneContext(numberToParse)\r\n\tif (!isPhoneContextValid(phoneContext)) {\r\n\t\tthrow new ParseError('NOT_A_NUMBER')\r\n\t}\r\n\r\n\tlet phoneNumberString\r\n\r\n\tif (phoneContext === null) {\r\n\t\t// Extract a possible number from the string passed in.\r\n\t\t// (this strips leading characters that could not be the start of a phone number)\r\n\t\tphoneNumberString = extractFormattedPhoneNumber(numberToParse) || ''\r\n\t} else {\r\n\t\tphoneNumberString = ''\r\n\r\n\t\t// If the phone context contains a phone number prefix, we need to capture\r\n\t\t// it, whereas domains will be ignored.\r\n\t\tif (phoneContext.charAt(0) === PLUS_SIGN) {\r\n\t\t\tphoneNumberString += phoneContext\r\n\t\t}\r\n\r\n\t\t// Now append everything between the \"tel:\" prefix and the phone-context.\r\n\t\t// This should include the national number, an optional extension or\r\n\t\t// isdn-subaddress component. Note we also handle the case when \"tel:\" is\r\n\t\t// missing, as we have seen in some of the phone number inputs.\r\n\t\t// In that case, we append everything from the beginning.\r\n\t\tconst indexOfRfc3966Prefix = numberToParse.indexOf(RFC3966_PREFIX_)\r\n\t\tlet indexOfNationalNumber\r\n\t\t// RFC 3966 \"tel:\" prefix is preset at this stage because\r\n\t\t// `isPhoneContextValid()` requires it to be present.\r\n\t\t/* istanbul ignore else */\r\n\t\tif (indexOfRfc3966Prefix >= 0) {\r\n\t\t\tindexOfNationalNumber = indexOfRfc3966Prefix + RFC3966_PREFIX_.length\r\n\t\t} else {\r\n\t\t\tindexOfNationalNumber = 0\r\n\t\t}\r\n\t\tconst indexOfPhoneContext = numberToParse.indexOf(RFC3966_PHONE_CONTEXT_)\r\n\t\tphoneNumberString += numberToParse.substring(indexOfNationalNumber, indexOfPhoneContext)\r\n\t}\r\n\r\n\t// Delete the isdn-subaddress and everything after it if it is present.\r\n\t// Note extension won't appear at the same time with isdn-subaddress\r\n\t// according to paragraph 5.3 of the RFC3966 spec.\r\n\tconst indexOfIsdn = phoneNumberString.indexOf(RFC3966_ISDN_SUBADDRESS_)\r\n\tif (indexOfIsdn > 0) {\r\n\t\tphoneNumberString = phoneNumberString.substring(0, indexOfIsdn)\r\n\t}\r\n\t// If both phone context and isdn-subaddress are absent but other\r\n\t// parameters are present, the parameters are left in nationalNumber.\r\n\t// This is because we are concerned about deleting content from a potential\r\n\t// number string when there is no strong evidence that the number is\r\n\t// actually written in RFC3966.\r\n\r\n\tif (phoneNumberString !== '') {\r\n\t\treturn phoneNumberString\r\n\t}\r\n}","// This is a port of Google Android `libphonenumber`'s\r\n// `phonenumberutil.js` of December 31th, 2018.\r\n//\r\n// https://github.com/googlei18n/libphonenumber/commits/master/javascript/i18n/phonenumbers/phonenumberutil.js\r\n\r\nimport {\r\n\tVALID_DIGITS,\r\n\tPLUS_CHARS,\r\n\tMIN_LENGTH_FOR_NSN,\r\n\tMAX_LENGTH_FOR_NSN\r\n} from './constants.js'\r\n\r\nimport ParseError from './ParseError.js'\r\nimport Metadata from './metadata.js'\r\nimport isViablePhoneNumber, { isViablePhoneNumberStart } from './helpers/isViablePhoneNumber.js'\r\nimport extractExtension from './helpers/extension/extractExtension.js'\r\nimport parseIncompletePhoneNumber from './parseIncompletePhoneNumber.js'\r\nimport getCountryCallingCode from './getCountryCallingCode.js'\r\nimport { isPossibleNumber } from './isPossible.js'\r\n// import { parseRFC3966 } from './helpers/RFC3966.js'\r\nimport PhoneNumber from './PhoneNumber.js'\r\nimport matchesEntirely from './helpers/matchesEntirely.js'\r\nimport extractCountryCallingCode from './helpers/extractCountryCallingCode.js'\r\nimport extractNationalNumber from './helpers/extractNationalNumber.js'\r\nimport stripIddPrefix from './helpers/stripIddPrefix.js'\r\nimport getCountryByCallingCode from './helpers/getCountryByCallingCode.js'\r\nimport extractFormattedPhoneNumberFromPossibleRfc3966NumberUri from './helpers/extractFormattedPhoneNumberFromPossibleRfc3966NumberUri.js'\r\n\r\n// We don't allow input strings for parsing to be longer than 250 chars.\r\n// This prevents malicious input from consuming CPU.\r\nconst MAX_INPUT_STRING_LENGTH = 250\r\n\r\n// This consists of the plus symbol, digits, and arabic-indic digits.\r\nconst PHONE_NUMBER_START_PATTERN = new RegExp('[' + PLUS_CHARS + VALID_DIGITS + ']')\r\n\r\n// Regular expression of trailing characters that we want to remove.\r\n// A trailing `#` is sometimes used when writing phone numbers with extensions in US.\r\n// Example: \"+1 (645) 123 1234-910#\" number has extension \"910\".\r\nconst AFTER_PHONE_NUMBER_END_PATTERN = new RegExp('[^' + VALID_DIGITS + '#' + ']+$')\r\n\r\nconst USE_NON_GEOGRAPHIC_COUNTRY_CODE = false\r\n\r\n// Examples:\r\n//\r\n// ```js\r\n// parse('8 (800) 555-35-35', 'RU')\r\n// parse('8 (800) 555-35-35', 'RU', metadata)\r\n// parse('8 (800) 555-35-35', { country: { default: 'RU' } })\r\n// parse('8 (800) 555-35-35', { country: { default: 'RU' } }, metadata)\r\n// parse('+7 800 555 35 35')\r\n// parse('+7 800 555 35 35', metadata)\r\n// ```\r\n//\r\n\r\n/**\r\n * Parses a phone number.\r\n *\r\n * parse('123456789', { defaultCountry: 'RU', v2: true }, metadata)\r\n * parse('123456789', { defaultCountry: 'RU' }, metadata)\r\n * parse('123456789', undefined, metadata)\r\n *\r\n * @param {string} input\r\n * @param {object} [options]\r\n * @param {object} metadata\r\n * @return {object|PhoneNumber?} If `options.v2: true` flag is passed, it returns a `PhoneNumber?` instance. Otherwise, returns an object of shape `{ phone: '...', country: '...' }` (or just `{}` if no phone number was parsed).\r\n */\r\nexport default function parse(text, options, metadata) {\r\n\t// If assigning the `{}` default value is moved to the arguments above,\r\n\t// code coverage would decrease for some weird reason.\r\n\toptions = options || {}\r\n\r\n\tmetadata = new Metadata(metadata)\r\n\r\n\t// Validate `defaultCountry`.\r\n\tif (options.defaultCountry && !metadata.hasCountry(options.defaultCountry)) {\r\n\t\tif (options.v2) {\r\n\t\t\tthrow new ParseError('INVALID_COUNTRY')\r\n\t\t}\r\n\t\tthrow new Error(`Unknown country: ${options.defaultCountry}`)\r\n\t}\r\n\r\n\t// Parse the phone number.\r\n\tconst { number: formattedPhoneNumber, ext, error } = parseInput(text, options.v2, options.extract)\r\n\r\n\t// If the phone number is not viable then return nothing.\r\n\tif (!formattedPhoneNumber) {\r\n\t\tif (options.v2) {\r\n\t\t\tif (error === 'TOO_SHORT') {\r\n\t\t\t\tthrow new ParseError('TOO_SHORT')\r\n\t\t\t}\r\n\t\t\tthrow new ParseError('NOT_A_NUMBER')\r\n\t\t}\r\n\t\treturn {}\r\n\t}\r\n\r\n\tconst {\r\n\t\tcountry,\r\n\t\tnationalNumber,\r\n\t\tcountryCallingCode,\r\n\t\tcountryCallingCodeSource,\r\n\t\tcarrierCode\r\n\t} = parsePhoneNumber(\r\n\t\tformattedPhoneNumber,\r\n\t\toptions.defaultCountry,\r\n\t\toptions.defaultCallingCode,\r\n\t\tmetadata\r\n\t)\r\n\r\n\tif (!metadata.hasSelectedNumberingPlan()) {\r\n\t\tif (options.v2) {\r\n\t\t\tthrow new ParseError('INVALID_COUNTRY')\r\n\t\t}\r\n\t\treturn {}\r\n\t}\r\n\r\n\t// Validate national (significant) number length.\r\n\tif (!nationalNumber || nationalNumber.length < MIN_LENGTH_FOR_NSN) {\r\n\t\t// Won't throw here because the regexp already demands length > 1.\r\n\t\t/* istanbul ignore if */\r\n\t\tif (options.v2) {\r\n\t\t\tthrow new ParseError('TOO_SHORT')\r\n\t\t}\r\n\t\t// Google's demo just throws an error in this case.\r\n\t\treturn {}\r\n\t}\r\n\r\n\t// Validate national (significant) number length.\r\n\t//\r\n\t// A sidenote:\r\n\t//\r\n\t// They say that sometimes national (significant) numbers\r\n\t// can be longer than `MAX_LENGTH_FOR_NSN` (e.g. in Germany).\r\n\t// https://github.com/googlei18n/libphonenumber/blob/7e1748645552da39c4e1ba731e47969d97bdb539/resources/phonenumber.proto#L36\r\n\t// Such numbers will just be discarded.\r\n\t//\r\n\tif (nationalNumber.length > MAX_LENGTH_FOR_NSN) {\r\n\t\tif (options.v2) {\r\n\t\t\tthrow new ParseError('TOO_LONG')\r\n\t\t}\r\n\t\t// Google's demo just throws an error in this case.\r\n\t\treturn {}\r\n\t}\r\n\r\n\tif (options.v2) {\r\n\t\tconst phoneNumber = new PhoneNumber(\r\n\t\t\tcountryCallingCode,\r\n\t\t\tnationalNumber,\r\n\t\t\tmetadata.metadata\r\n\t\t)\r\n\t\tif (country) {\r\n\t\t\tphoneNumber.country = country\r\n\t\t}\r\n\t\tif (carrierCode) {\r\n\t\t\tphoneNumber.carrierCode = carrierCode\r\n\t\t}\r\n\t\tif (ext) {\r\n\t\t\tphoneNumber.ext = ext\r\n\t\t}\r\n\t\tphoneNumber.__countryCallingCodeSource = countryCallingCodeSource\r\n\t\treturn phoneNumber\r\n\t}\r\n\r\n\t// Check if national phone number pattern matches the number.\r\n\t// National number pattern is different for each country,\r\n\t// even for those ones which are part of the \"NANPA\" group.\r\n\tconst valid = (options.extended ? metadata.hasSelectedNumberingPlan() : country) ?\r\n\t\tmatchesEntirely(nationalNumber, metadata.nationalNumberPattern()) :\r\n\t\tfalse\r\n\r\n\tif (!options.extended) {\r\n\t\treturn valid ? result(country, nationalNumber, ext) : {}\r\n\t}\r\n\r\n\t// isInternational: countryCallingCode !== undefined\r\n\r\n\treturn {\r\n\t\tcountry,\r\n\t\tcountryCallingCode,\r\n\t\tcarrierCode,\r\n\t\tvalid,\r\n\t\tpossible: valid ? true : (\r\n\t\t\toptions.extended === true &&\r\n\t\t\tmetadata.possibleLengths() &&\r\n\t\t\tisPossibleNumber(nationalNumber, metadata) ? true : false\r\n\t\t),\r\n\t\tphone: nationalNumber,\r\n\t\text\r\n\t}\r\n}\r\n\r\n/**\r\n * Extracts a formatted phone number from text.\r\n * Doesn't guarantee that the extracted phone number\r\n * is a valid phone number (for example, doesn't validate its length).\r\n * @param {string} text\r\n * @param {boolean} [extract] — If `false`, then will parse the entire `text` as a phone number.\r\n * @param {boolean} [throwOnError] — By default, it won't throw if the text is too long.\r\n * @return {string}\r\n * @example\r\n * // Returns \"(213) 373-4253\".\r\n * extractFormattedPhoneNumber(\"Call (213) 373-4253 for assistance.\")\r\n */\r\nfunction extractFormattedPhoneNumber(text, extract, throwOnError) {\r\n\tif (!text) {\r\n\t\treturn\r\n\t}\r\n\tif (text.length > MAX_INPUT_STRING_LENGTH) {\r\n\t\tif (throwOnError) {\r\n\t\t\tthrow new ParseError('TOO_LONG')\r\n\t\t}\r\n\t\treturn\r\n\t}\r\n\tif (extract === false) {\r\n\t\treturn text\r\n\t}\r\n\t// Attempt to extract a possible number from the string passed in\r\n\tconst startsAt = text.search(PHONE_NUMBER_START_PATTERN)\r\n\tif (startsAt < 0) {\r\n\t\treturn\r\n\t}\r\n\treturn text\r\n\t\t// Trim everything to the left of the phone number\r\n\t\t.slice(startsAt)\r\n\t\t// Remove trailing non-numerical characters\r\n\t\t.replace(AFTER_PHONE_NUMBER_END_PATTERN, '')\r\n}\r\n\r\n/**\r\n * @param {string} text - Input.\r\n * @param {boolean} v2 - Legacy API functions don't pass `v2: true` flag.\r\n * @param {boolean} [extract] - Whether to extract a phone number from `text`, or attempt to parse the entire text as a phone number.\r\n * @return {object} `{ ?number, ?ext }`.\r\n */\r\nfunction parseInput(text, v2, extract) {\r\n\t// // Parse RFC 3966 phone number URI.\r\n\t// if (text && text.indexOf('tel:') === 0) {\r\n\t// \treturn parseRFC3966(text)\r\n\t// }\r\n\t// let number = extractFormattedPhoneNumber(text, extract, v2)\r\n\tlet number = extractFormattedPhoneNumberFromPossibleRfc3966NumberUri(text, {\r\n\t\textractFormattedPhoneNumber: (text) => extractFormattedPhoneNumber(text, extract, v2)\r\n\t})\r\n\t// If the phone number is not viable, then abort.\r\n\tif (!number) {\r\n\t\treturn {}\r\n\t}\r\n\tif (!isViablePhoneNumber(number)) {\r\n\t\tif (isViablePhoneNumberStart(number)) {\r\n\t\t\treturn { error: 'TOO_SHORT' }\r\n\t\t}\r\n\t\treturn {}\r\n\t}\r\n\t// Attempt to parse extension first, since it doesn't require region-specific\r\n\t// data and we want to have the non-normalised number here.\r\n\tconst withExtensionStripped = extractExtension(number)\r\n\tif (withExtensionStripped.ext) {\r\n\t\treturn withExtensionStripped\r\n\t}\r\n\treturn { number }\r\n}\r\n\r\n/**\r\n * Creates `parse()` result object.\r\n */\r\nfunction result(country, nationalNumber, ext) {\r\n\tconst result = {\r\n\t\tcountry,\r\n\t\tphone: nationalNumber\r\n\t}\r\n\tif (ext) {\r\n\t\tresult.ext = ext\r\n\t}\r\n\treturn result\r\n}\r\n\r\n/**\r\n * Parses a viable phone number.\r\n * @param {string} formattedPhoneNumber — Example: \"(213) 373-4253\".\r\n * @param {string} [defaultCountry]\r\n * @param {string} [defaultCallingCode]\r\n * @param {Metadata} metadata\r\n * @return {object} Returns `{ country: string?, countryCallingCode: string?, nationalNumber: string? }`.\r\n */\r\nfunction parsePhoneNumber(\r\n\tformattedPhoneNumber,\r\n\tdefaultCountry,\r\n\tdefaultCallingCode,\r\n\tmetadata\r\n) {\r\n\t// Extract calling code from phone number.\r\n\tlet { countryCallingCodeSource, countryCallingCode, number } = extractCountryCallingCode(\r\n\t\tparseIncompletePhoneNumber(formattedPhoneNumber),\r\n\t\tdefaultCountry,\r\n\t\tdefaultCallingCode,\r\n\t\tmetadata.metadata\r\n\t)\r\n\r\n\t// Choose a country by `countryCallingCode`.\r\n\tlet country\r\n\tif (countryCallingCode) {\r\n\t\tmetadata.selectNumberingPlan(countryCallingCode)\r\n\t}\r\n\t// If `formattedPhoneNumber` is passed in \"national\" format\r\n\t// then `number` is defined and `countryCallingCode` is `undefined`.\r\n\telse if (number && (defaultCountry || defaultCallingCode)) {\r\n\t\tmetadata.selectNumberingPlan(defaultCountry, defaultCallingCode)\r\n\t\tif (defaultCountry) {\r\n\t\t\tcountry = defaultCountry\r\n\t\t} else {\r\n\t\t\t/* istanbul ignore if */\r\n\t\t\tif (USE_NON_GEOGRAPHIC_COUNTRY_CODE) {\r\n\t\t\t\tif (metadata.isNonGeographicCallingCode(defaultCallingCode)) {\r\n\t\t\t\t\tcountry = '001'\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\tcountryCallingCode = defaultCallingCode || getCountryCallingCode(defaultCountry, metadata.metadata)\r\n\t}\r\n\telse return {}\r\n\r\n\tif (!number) {\r\n\t\treturn {\r\n\t\t\tcountryCallingCodeSource,\r\n\t\t\tcountryCallingCode\r\n\t\t}\r\n\t}\r\n\r\n\tconst {\r\n\t\tnationalNumber,\r\n\t\tcarrierCode\r\n\t} = extractNationalNumber(\r\n\t\tparseIncompletePhoneNumber(number),\r\n\t\tmetadata\r\n\t)\r\n\r\n\t// Sometimes there are several countries\r\n\t// corresponding to the same country phone code\r\n\t// (e.g. NANPA countries all having `1` country phone code).\r\n\t// Therefore, to reliably determine the exact country,\r\n\t// national (significant) number should have been parsed first.\r\n\t//\r\n\t// When `metadata.json` is generated, all \"ambiguous\" country phone codes\r\n\t// get their countries populated with the full set of\r\n\t// \"phone number type\" regular expressions.\r\n\t//\r\n\tconst exactCountry = getCountryByCallingCode(countryCallingCode, {\r\n\t\tnationalNumber,\r\n\t\tdefaultCountry,\r\n\t\tmetadata\r\n\t})\r\n\tif (exactCountry) {\r\n\t\tcountry = exactCountry\r\n\t\t/* istanbul ignore if */\r\n\t\tif (exactCountry === '001') {\r\n\t\t\t// Can't happen with `USE_NON_GEOGRAPHIC_COUNTRY_CODE` being `false`.\r\n\t\t\t// If `USE_NON_GEOGRAPHIC_COUNTRY_CODE` is set to `true` for some reason,\r\n\t\t\t// then remove the \"istanbul ignore if\".\r\n\t\t} else {\r\n\t\t\tmetadata.country(country)\r\n\t\t}\r\n\t}\r\n\r\n\treturn {\r\n\t\tcountry,\r\n\t\tcountryCallingCode,\r\n\t\tcountryCallingCodeSource,\r\n\t\tnationalNumber,\r\n\t\tcarrierCode\r\n\t}\r\n}","import parse from './parse.js'\r\n\r\nexport default function parsePhoneNumberWithError(text, options, metadata) {\r\n\treturn parse(text, { ...options, v2: true }, metadata)\r\n}","import normalizeArguments from './normalizeArguments.js'\r\nimport parsePhoneNumber from './parsePhoneNumber_.js'\r\n\r\nexport default function isValidPhoneNumber() {\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\tconst phoneNumber = parsePhoneNumber(text, options, metadata)\r\n\treturn phoneNumber && phoneNumber.isValid() || false\r\n}","import parsePhoneNumberWithError from './parsePhoneNumberWithError_.js'\r\nimport ParseError from './ParseError.js'\r\nimport { isSupportedCountry } from './metadata.js'\r\n\r\nexport default function parsePhoneNumber(text, options, metadata) {\r\n\t// Validate `defaultCountry`.\r\n\tif (options && options.defaultCountry && !isSupportedCountry(options.defaultCountry, metadata)) {\r\n\t\toptions = {\r\n\t\t\t...options,\r\n\t\t\tdefaultCountry: undefined\r\n\t\t}\r\n\t}\r\n\t// Parse phone number.\r\n\ttry {\r\n\t\treturn parsePhoneNumberWithError(text, options, metadata)\r\n\t} catch (error) {\r\n\t\t/* istanbul ignore else */\r\n\t\tif (error instanceof ParseError) {\r\n\t\t\t//\r\n\t\t} else {\r\n\t\t\tthrow error\r\n\t\t}\r\n\t}\r\n}\r\n","import withMetadataArgument from './withMetadataArgument.js'\r\nimport { isValidPhoneNumber as _isValidPhoneNumber } from '../../core/index.js'\r\n\r\nexport function isValidPhoneNumber() {\r\n\treturn withMetadataArgument(_isValidPhoneNumber, arguments)\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 { 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\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 (typeof optionsOrDefaultCountry === 'object') {\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, TextAppearance, TextColor, styled, TextAlignment } 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 { 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 if (selectedValue === null) {\n setSelectedValue([cta.value]);\n setSelectedLabel([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 }\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 }\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 React, { useState, useEffect, useRef } from 'react';\nimport { styled, Text, TextAppearance, Select } 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, 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 outputLabel?: boolean;\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 outputLabel = false\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_FIELDS', payload: { [name]: cta.value !== null ? cta.value : cta.label } });\n if(outputLabel) dispatch({ type: 'UPDATE_FIELDS', payload: { [name + 'Label']: cta.label } });\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 if(outputLabel) dispatch({ type: 'UPDATE_FIELDS', payload: { [name + 'Label']: '' } });\n }\n }}\n />\n ))}\n \n \n );\n}\n","import {\n Text,\n styled,\n TextAppearance,\n TextAlignment,\n Container,\n ContainerPadding,\n Breakpoints,\n BreakpointWrapper\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 isRequired?: 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 isRequired,\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 : 0);\n const dispatch = useDispatch();\n const { formData } = useSelector((state: OneFormState) => state);\n const numberOfStars = stars ? stars : 5;\n\n useEffect(() => {\n if (formData.fields[name]) {\n if (formData.fields[name] === 'Sin respuesta') {\n setTimeout(() => {\n setValue(name, 'Sin respuesta');\n }, 1000);\n setRateValue(0);\n } else {\n setRateValue(Number(formData.fields[name]));\n }\n }\n }, []);\n\n const handleClick = (i: number, e: any) => {\n const rateValue = i + 1;\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, numberOfStars: number) => {\n const auxArr = [];\n for (let i = 0; i < numberOfStars; i++) {\n if (i <= rateValue - 1) {\n auxArr.push(\n {\n e.preventDefault();\n if (isPrevStep) {\n return;\n } else {\n handleClick(i, e);\n }\n }}\n isPrevStep={isPrevStep}\n textUnderStars={textUnderStars}\n >\n \n {textUnderStars &&\n (\n renderStarsText(starsText, i)\n )\n }\n \n );\n } else {\n auxArr.push(\n {\n e.preventDefault();\n if (isPrevStep) {\n return;\n } else {\n handleClick(i, e);\n }\n }}\n isPrevStep={isPrevStep}\n textUnderStars={textUnderStars}\n >\n \n {textUnderStars &&\n (\n renderStarsText(starsText, i)\n )\n }\n \n );\n }\n }\n\n return auxArr;\n };\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] === 'Sin respuesta') {\n setTimeout(() => {\n setValue(name, 'Sin respuesta');\n }, 0);\n }\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
{renderStars(rateValue, numberOfStars)}
\n {isPrevStep ? null : (\n \n )}\n {CTASinRespuesta ? (\n
\n {\n handleNextStep(e);\n }}\n />\n
\n ) : null}\n
\n );\n};\n","import React, { useState } from 'react';\nimport { styled, Text, TextAppearance, TextAlignment } 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 ContainerHorizontalAlignment,\n ContainerWrap,\n CTA,\n styled,\n Text,\n TextAlignment,\n TextAppearance,\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, { useCallback, useEffect, useMemo, useState } from 'react';\nimport {\n Container,\n ContainerGutter,\n ContainerHorizontalAlignment,\n ContainerPadding,\n ContainerWrap,\n CTA,\n styled,\n Text,\n TextAlignment,\n TextAppearance,\n BreakpointWrapper,\n Breakpoints,\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 ContainerHorizontalAlignment,\n ContainerWrap,\n CTA,\n styled,\n Text,\n TextAlignment,\n TextAppearance,\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 oneFormService.initializeService(false); // 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 }\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 ContainerHorizontalAlignment,\n ContainerPadding,\n ContainerWrap,\n CTA,\n Layout,\n LayoutRowGap,\n Text,\n TextAlignment,\n TextAppearance,\n TextColor,\n ThemeProvider,\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 ContainerHorizontalAlignment,\n ContainerPadding,\n ContainerWrap,\n CTA,\n Text,\n TextAppearance,\n styled,\n TextAlignment,\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, { useState, useEffect } from 'react';\nimport {\n CTA,\n Container,\n Text,\n TextTag,\n ContainerGutter,\n ContainerWrap,\n TextAppearance,\n TextColor,\n TextAlignment,\n styled,\n} from '@volkswagen-onehub/components-core';\nimport { CalendarSlot, Slot } from 'src/types';\nimport { isNull } from 'src/feature-app';\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 { isNull } from 'src/feature-app';\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 \n \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}\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();\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: 'Teléfono',\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// LEM\n\nexport const CTAsTipoVisita = [\n {\n label: 'Una visita al punto de venta',\n value: 'si visita',\n },\n {\n label: 'Una llamada',\n value: 'si llamada'\n },\n {\n label: 'Una videollamada',\n value: 'si videollamada'\n },\n];\n\nexport const CTAsTipoVisitaNo = [\n {\n label: 'No ha hecho falta',\n value: 'no ha hecho falta',\n },\n {\n label: 'No, pero me hubiera gustado',\n value: 'no pero me hubiera gustado',\n },\n];\n\nexport const periodoContactoOptions = [\n {\n value: '8_horas',\n label: 'En las primeras 8 horas',\n },\n {\n value: '24_horas',\n label: 'En las primeras 24 horas',\n },\n {\n value: 'mas_24_horas',\n label: 'En más de 24 horas',\n },\n];\n\n//No compra\n\nexport const CTAsMotivoNoQuiero = [\n {\n label: 'Coche compartido (car sharing o moto sharing)',\n value: 'car-sharing',\n },\n {\n label: 'Transporte público',\n value: 'transporte-publico',\n },\n {\n label: 'Patinete - Moto - Bicicleta',\n value: 'patinete-moto-bicicleta',\n },\n {\n label: 'Más adelante, en coche',\n value: 'coche',\n },\n {\n label: 'Otros',\n value: 'otros',\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: 'TELF',\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];\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 Volkswagen', value: '1' },\n { label: 'Sí, un coche de otra marca diferente a Volkswagen', value: '2' },\n { label: 'Sí, otra alternativa (transporte público, taxi, shuttle, …)', value: '3' },\n { label: 'No me ofreció ninguna', 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í, he sido bien informado directamente junto al coche', value: '1'},\n {label: 'Sí, he sido bien informado directamente por vídeo', value: '2'},\n {label: 'No hubo recepción directamente junto al coche o por vídeo', value: '3'},\n {label: 'No, no me sentí bien informado', value: '4'},\n {label: 'No fue posible por ejemplo, debido a un accidente', value: '5'},\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\nexport const ctaEnviarRespuesta = [\n { label: 'Mis respuestas pueden ser enviadas junto a mi nombre', value: '1' },\n {\n label: 'Mis respuestas pueden ser enviadas pero sin mencionar mi nombre',\n extraInfo:\n 'Seleccionando esta opción, el concesionario 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:\n '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];\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 CTAsMotivoRenovadorYaTengo = [\n {\n label: 'Los plazos de entrega',\n value: 'plazos',\n },\n {\n label: 'El precio',\n value: 'precio',\n },\n {\n label: 'Las opciones de financiación',\n value: 'financiacion',\n },\n {\n label: 'El diseño del coche',\n value: 'diseño',\n },\n {\n label: 'El equipamiento del coche',\n value: 'equipamiento',\n },\n {\n label: 'Relación calidad/precio',\n value: 'relación calidad/precio',\n },\n {\n label: 'El consumo de combustible de los nuevos vehículos',\n value: 'consumo',\n },\n {\n label: 'La poca variedad de modelos y tecnologías disponibles',\n value: 'modelos',\n },\n {\n label: 'Mi experiencia con el concesionario de venta',\n value: 'experiencia venta',\n },\n {\n label: 'Mi experiencia previa con el servicio de posventa',\n value: 'experiencia posventa',\n },\n {\n label: 'Los costes de mantenimiento del vehículo anterior',\n value: 'costes mantenimiento',\n },\n {\n label: 'Las averías sufridas con el vehículo anterior',\n value: 'averías',\n },\n {\n label: 'Otras experiencias con la marca',\n value: 'marca',\n },\n {\n label: 'Otros motivos',\n value: 'otros motivos',\n },\n];\n\nexport const CTAsMotivoRenovadorNoTengo = [\n {\n label: 'Los plazos de entrega',\n value: 'plazos',\n },\n {\n label: 'El precio',\n value: 'precio',\n },\n {\n label: 'Las opciones de financiación',\n value: 'financiacion',\n },\n {\n label: 'El diseño del coche',\n value: 'diseño',\n },\n {\n label: 'El equipamiento del coche',\n value: 'equipamiento',\n },\n {\n label: 'Relación calidad/precio',\n value: 'relación calidad/precio',\n },\n {\n label: 'El consumo de combustible de los nuevos vehículos',\n value: 'consumo',\n },\n {\n label: 'La poca variedad de modelos y tecnologías disponibles',\n value: 'modelos',\n },\n {\n label: 'Mi experiencia con el concesionario de venta',\n value: 'experiencia venta',\n },\n {\n label: 'Mi experiencia previa con el servicio de posventa',\n value: 'experiencia posventa',\n },\n {\n label: 'Los costes de mantenimiento del vehículo anterior',\n value: 'costes mantenimiento',\n },\n {\n label: 'Las averías sufridas con el vehículo anterior',\n value: 'averías',\n },\n {\n label: 'Otras experiencias con la marca',\n value: 'marca',\n },\n {\n label: 'Otros motivos',\n value: 'otros motivos',\n },\n];\n\nexport const CTAsMotivoRenovadorNoTengoExclusivo = [\n {\n label: 'Nada',\n value: 'nada',\n },\n];\n\nexport const CTAsUsadoNuevo = [\n {\n label: 'Vehículo Nuevo',\n value: 'Vehículo Nuevo',\n },\n {\n label: 'Vehículo Usado',\n value: 'Vehículo Usado',\n },\n];\n\nexport const CTAsLugarCompra = [\n {\n label: 'Concesionario oficial',\n value: 'Concesionario oficial',\n },\n {\n label: 'Concesionario no oficial',\n value: 'Concesionario no oficial',\n },\n {\n label: 'Empresa de Renting/Leasing',\n value: 'Empresa de Renting/Leasing',\n },\n {\n label: 'Compra-venta privada',\n value: 'Compra-venta privada',\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 o moto sharing)',\n value: 'Car Sharing Moto Sharing',\n },\n {\n label: 'Transporte público',\n value: 'Transporte público',\n },\n {\n label: 'Patinete',\n value: 'Patinete',\n },\n {\n label: 'Moto',\n value: 'Moto',\n },\n {\n label: 'Bicicleta',\n value: 'Bicicleta',\n },\n {\n label: 'Otros',\n value: 'Otros',\n },\n];\nexport const CTAsFormasMovilidadExclusive = [\n {\n label: 'No tengo necesidad de utilizar ningún medio de transporte para desplazarme',\n value: 'No tengo necesidad',\n },\n];\nexport const CTAsRazones = [\n {\n label: 'Económicas',\n value: 'Económicas',\n },\n {\n label: 'Medioambientales',\n value: 'Medioambientales',\n },\n {\n label: 'Ahorro de tiempo',\n value: 'Ahorro de tiempo',\n },\n {\n label: 'Otras razones',\n value: 'Otros',\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 if (\n !isGooglePlace(userSuggestion) &&\n isDealerData(userSuggestion) &&\n cluster.properties.dealer.kvps === userSuggestion.kvps\n ) {\n return cluster;\n } else if (\n !isGooglePlace(userSuggestion) &&\n !isDealerData(userSuggestion) &&\n cluster.properties.dealer.kvps === (userSuggestion as Installation).TXT_V_KVPS_code__c\n ) {\n return cluster;\n }\n }\n });\n if (selectedCluster) {\n 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 && !userSuggestion.isGooglePlace && searchIsDealer && !param) {\n \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).TXT_V_KVPS_code__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 ContainerHorizontalAlignment,\n ContainerPadding,\n ContainerVerticalAlignment,\n ContainerWrap,\n CTA,\n Layout,\n styled,\n Text,\n TextAlignment,\n TextAppearance,\n TextColor,\n ThemeProvider\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 ContainerHorizontalAlignment,\n ContainerPadding,\n ContainerWrap,\n CTA,\n Layout,\n styled,\n Text,\n TextAlignment,\n TextAppearance,\n ThemeProvider,\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, TextAppearance, TextColor, ThemeProvider } 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';\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;\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.TXT_V_Installation_Data_Name__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).TXT_V_Installation_Data_Name__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).TXT_V_Installation_Data_Name__c;\n address = (suggestion as Installation).TXT_V_Address__c;\n zipCode = (suggestion as Installation).TXT_V_Postal_Code__c;\n city = (suggestion as Installation).TXT_V_Location__c;\n province = (suggestion as Installation).TXT_Code_Concession__c;\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).TXT_V_Installation_Data_Name__c}, ${\n (suggestion as Installation).TXT_V_Address__c\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","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 ContainerHorizontalAlignment,\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 ContainerHorizontalAlignment,\n ContainerPadding,\n ContainerWrap,\n ContainerGutter,\n CTA,\n Layout,\n styled,\n Text,\n TextAppearance,\n ThemeProvider,\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).Latitude__c);\n lng = Number((suggestion as Installation).Longitude__c);\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).Latitude__c);\n lng = Number((suggestion as Installation).Longitude__c);\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 : '';\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, TextAppearance, TextColor } from '@volkswagen-onehub/components-core';\n// // import store from './store';\nimport { CloseHandleV2, FocusLayerSizeV2 } 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, config } from 'rxjs';\nimport { useFeatureAppConfig, useFeatureAppEnvironment } from './hooks';\nimport { removeConfigurationHash } from './remove-configuration-hash';\nimport { GenericErrorLayer, AvisoIslasCanarias, renderAvisoIslasCanariasLayer } 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 TextAppearance,\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 TextAppearance,\n BreakpointWrapper,\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 NextBestActionButton,\n styled,\n Text,\n TextAppearance,\n TextColor,\n ThemeProvider,\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, useDispatch, 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 !== \"\"){\n setIsValid(true);\n setError(false);\n }\n },[fields.modelo])\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 {\n ctaDatosIncorrectos,\n ctaDatosIncorrectosPosventa,\n ctaAlternativaTransporte,\n ctaMotivoVisita,\n ctaTestDrive,\n CTAsMotivo,\n CTAsTipoVisita,\n CTAsTipoVisitaNo,\n CTAsMotivoNoQuiero,\n CTAsDudas,\n contactoOptionsSAC,\n CTAsNuevoOcasión,\n CTAsUsadoNuevo,\n CTAsMotivoRenovadorNoTengo,\n periodoContactoOptions,\n ctaEnviarRespuesta,\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\nconst 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 = (formName: string, selectedInstallation: any, formInfo: any) => {\n\n if (formName === 'no_compra-no_tengo') {\n const selInst = selectedInstallation;\n return `${selInst?.TXT_V_Installation_Data_Name__c}, ${selInst?.TXT_V_Address__c}`;\n }\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\n//SWITCH CASE PARA DETERMINAR EL OTUPUT DEL PREVIOUS STEP\n\nexport const getUpdatedField = (field: string, formData: any, dealersInfo: any, formInfo: any) => {\n\n const { fields } = formData;\n const { formName } = fields;\n const { selectedInstallation } = dealersInfo;\n\n switch(field) {\n case 'motivo':\n return changeValueForLabel(CTAsMotivo, fields, field);\n case 'periodoContacto':\n return changeValueForLabel(periodoContactoOptions, 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 'tipoVisita':\n let tipoVisita = CTAsTipoVisita.find((option) => option.value === fields[field]);\n if (!tipoVisita) {\n tipoVisita = CTAsTipoVisitaNo.find((option) => option.value === fields[field]);\n }\n return tipoVisita ? tipoVisita.label : fields[field];\n case 'slot.from':\n return getOutputSlotFrom(fields);\n case 'dealer.name':\n return fields.dealer.name;\n case 'installation':\n return selectedInstallation.TXT_V_Installation_Data_Name__c;\n case 'location':\n return getLocationOutput(formName, selectedInstallation, 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 'fecha':\n const aux = fields[field].split('/');\n const mes = meses.find((m) => m.number === aux[1]);\n return `${mes.name} / ${aux[2]}`;\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 'enviarConcesion':\n return fields[field] === '1'\n ? ctaEnviarRespuesta[0].label\n : fields[field] === '2'\n ? ctaEnviarRespuesta[1].label\n : ctaEnviarRespuesta[2].label;\n case 'dudas':\n return formatMultipleOptionText(CTAsDudas, fields, field);\n case 'multipleChoice':\n if (formName === 'no_compra-no_quiero') {\n return formatMultipleOptionText(CTAsMotivoNoQuiero, fields, field);\n } else {\n //formName === 'no-renovacion_no-tengo' || formName === 'no-renovacion_ya-tengo'\n return formatMultipleOptionText(CTAsMotivoRenovadorNoTengo, fields, field);\n }\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 fields[field];\n }\n \n};\n","import {\n Container,\n ContainerGutter,\n ContainerWrap,\n styled,\n Text,\n TextAlignment,\n TextAppearance,\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 { 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;\n }\n const previousStep = stepsToIterate.find((step) => step.screenIndex === screenIndexToGet);\n //console.log(previousStep);\n if (previousStep && 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);\n }\n });\n return text;\n })\n .join(' ');\n\n const title = previousStep.alternateTitle ? previousStep.alternateTitle : previousStep.title;\n setTitle(title);\n\n if (previousStep.outputsIsStars) {\n //ratingStars\n const output = getRatingStarsOutput(updatedOutputsTexts);\n setText(output);\n } else if (previousStep.trueOrFalseQuestion) {\n //Pregunta sí o no\n //console.log(updatedOutputsTexts);\n if (updatedOutputsTexts.includes('true')) {\n const aux = updatedOutputsTexts.replace('true', 'Sí');\n setText(aux);\n } else {\n const aux = updatedOutputsTexts.replace('false', 'No');\n setText(aux);\n }\n } else {\n setText(updatedOutputsTexts);\n }\n } else {\n setTitle(null);\n setOutputs(null);\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 ? (typeof text == 'string' ? text.replace(/\\,+/g, ', ') : text) : null}\n \n \n ) : (\n \n \n \n {text && !hideText && !triggerExitAnimation ? (typeof text == 'string' ? text.replace(/\\,+/g, ', ') : 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","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: '0010Y000014bFZOQA2',\n },\n {\n name: 'IsDeleted',\n value: 'null',\n },\n {\n name: 'MasterRecordId',\n value: 'null',\n },\n {\n name: 'Name',\n value: 'WAGEN GROUP RETAIL ESPAÑA, S.A.',\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: 'GERONA',\n },\n {\n name: 'TXT_NIF_CIF__c',\n value: 'null',\n },\n {\n name: 'TXT_Postal_Code__c',\n value: '17185',\n },\n {\n name: 'TXT_Province__c',\n value: 'GERONA',\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: '03812',\n },\n {\n name: 'TXT_Installation_Code__c',\n value: 'null',\n },\n {\n name: 'TXT_V_Code_Concession__c',\n value: 'null',\n },\n {\n name: 'TXT_V_Installation_Code__c',\n value: 'null',\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: 'null',\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: 'null',\n },\n {\n name: 'Longitude__c',\n value: 'null',\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: 'null',\n },\n {\n name: 'TXT_PV_Address__c',\n value: 'null',\n },\n {\n name: 'TXT_V_KVPS_code__c',\n value: 'null',\n },\n {\n name: 'TXT_V_Postal_Code__c',\n value: 'null',\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: 'Latitude_V__c',\n value: 'null',\n },\n {\n name: 'Longitude_V__c',\n value: 'null',\n },\n {\n name: 'TXT_V_Location__c',\n value: 'null',\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_V_Installation_Data_Name__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","import dayjs from 'dayjs';\nimport { PincodeData } from 'src';\nimport { getPersonAttributes, leadAttributes, getVehicleAttributes, dealerAttributes, orderAttributes } 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 if (pincode.includes('PERSON')) {\n content.push({\n attributes: [...getPersonAttributes(noPermite)]\n });\n }\n if (pincode.includes('LEAD')) {\n content.push({\n attributes: [...leadAttributes]\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","export const leadAttributes = [\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: '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","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) => {\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: '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","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';\n//import { testPincodeData } from './pincode-data/pincode-person';\n//import { IAuthServiceV1 } from '@volkswagen-onehub/authservice/dist/v1/AuthServiceV1';\nimport { ProfileServiceV1Impl } from '@volkswagen-onehub/myvw_services/dist/profileService/ProfileServiceV1';\nimport { VumClient } from '@volkswagen-onehub/myvw_services/dist/vum/VumClient';\nimport { ServiceConfigProviderV1 } from '@volkswagen-onehub/service-config-provider';\n//import { AuthServiceProviderV1 } from '@volkswagen-onehub/authservice/dist/v1/AuthServiceProviderV1';\nimport { getAuthService } from 'src/feature-app';\nimport parsePhoneNumber from 'libphonenumber-js';\nimport { isValidPhoneNumber } from 'libphonenumber-js';\nimport { checkIfIsTestPincode, getTestPincode } from './pincode-data';\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']: '1.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) {\n await this.checkData(useAuth);\n oneFormCoreDpsIsLoaded.complete();\n },\n\n async checkLogin() {\n /*\n\n // const authService: IAuthServiceV1 = (provider as AuthServiceProviderV1)?.register('market');\n const authService = getAuthService(serviceConfig, provider as AuthServiceProviderV1);\n const endpoint = serviceConfig.configs['customer-profile']?.urlOrigin;\n const profileService = new ProfileServiceV1Impl(authService, endpoint);\n const isAuthenticated = await authService.isAuthenticated();\n\n if (!isAuthenticated) {\n return;\n }\n const profile = await profileService.getUserProfile();\n const email = await profileService.getUserEmail();\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(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);\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 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 (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) {\n /*\n if (useAuth) {\n await this.checkLogin();\n }\n */\n await this.checkPincode();\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() {\n await this.checkPincode();\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 { ApiKeyProviderV1 } from '@volkswagen-onehub/api-key-provider';\nimport { AsyncSsrManagerV1 } from '@feature-hub/async-ssr-manager';\nimport { AuthServiceProviderV1 } from '@volkswagen-onehub/authservice/dist/v1/AuthServiceProviderV1';\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'?: AuthServiceProviderV1;\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']: '1.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 - 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 axios, { AxiosResponse } from 'axios';\nimport { 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 } from 'src/bff';\nimport { DealersData, DomainAttributesValues, Installation, InstallationResponse, Points } from 'src/types';\nimport { useIsComerciales } from './use-is-comerciales';\n\nexport function useGetInstalaciones(token: string): 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 = 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 let points: Points[] = [];\n let installations: Installation[] = [];\n\n installationsDomainAtt.forEach((installation) => {\n const newInstallation: Installation = {\n Id: '',\n TXT_V_Installation_Data_Name__c: '',\n FRML_TXT_codVentaProvincia__c: '',\n TXT_V_Location__c: '',\n TXT_V_Address__c: '',\n TXT_V_Postal_Code__c: '',\n TXT_V_Installation_Code__c: '',\n MPCK_Instalation_Type__c: '',\n TXT_V_KVPS_code__c: '',\n TXT_Code_Concession__c: '',\n Longitude__c: '',\n Latitude__c: '',\n };\n\n installation.forEach((property) => {\n const { name, value } = property;\n\n if (newInstallation.hasOwnProperty(name)) {\n newInstallation[name] = value;\n }\n });\n\n if (\n !newInstallation.Latitude__c ||\n !newInstallation.Latitude__c ||\n newInstallation.Latitude__c === '' ||\n newInstallation.Longitude__c === ''\n ) {\n return;\n }\n\n // Necesario para el correcto funcionamiento del mapa.\n const dealer: Partial = {\n kvps: newInstallation.TXT_V_KVPS_code__c,\n name: newInstallation.TXT_V_Installation_Data_Name__c,\n markerInfo: {\n dealerInfo: {\n name: newInstallation.TXT_V_Installation_Data_Name__c,\n address: newInstallation.TXT_V_Address__c,\n zipCode: newInstallation.TXT_V_Postal_Code__c,\n city: newInstallation.TXT_V_Location__c,\n 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.Longitude__c, newInstallation.Latitude__c],\n },\n };\n\n const isExcludedInstallation = (): boolean => {\n return excludedInstallationCodes.includes(newInstallation.TXT_V_Installation_Code__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 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","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","import { AuthServiceProviderV1 } from '@volkswagen-onehub/authservice/dist/v1/AuthServiceProviderV1';\nimport { IAuthServiceV1 } from '@volkswagen-onehub/authservice/dist/v1/AuthServiceV1';\nimport { ServiceConfigProviderV1 } from '@volkswagen-onehub/service-config-provider';\nimport { useFeatureServices } from './use-feature-services';\n\nexport const getAuthService = (serviceConfig: ServiceConfigProviderV1, authServiceProvider:AuthServiceProviderV1 ) => {\n const endpoint = serviceConfig.configs['customer-profile']?.urlOrigin; \n const authService: IAuthServiceV1 = authServiceProvider?.register('market');\n\n return authService;\n};\n\nexport const useGetAuthService = () => {\n const serviceConfig = useFeatureServices()['service-config-provider'];\n const authService = useFeatureServices()['vw:authService'];\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 ContainerWrap,\n CTA,\n styled,\n Text,\n TextAppearance,\n TextColor,\n ThemeProvider,\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","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_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 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 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 | HideLegalAction\n | SetFormInfoAction\n | SetFormResponseAction\n | SetFormSubmittedAction\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 { 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 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\nimport { formInfo } from './';\n\nexport function formInfoReducer(state: FormInfo = null, action: OneFormActionTypes | FormInfoActionTypes): any {\n switch (action.type) {\n case RESET_STATE:\n return { ...formInfo };\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 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 { DealersInfo, FormDataGroup, FormInfo, OneFormState } from 'src/types';\nimport { 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};\n\nexport const initialState: OneFormState = {\n formInfo: formInfoInitialState,\n formData,\n dealersInfo,\n};\n\nexport const oneFormReducer = combineReducers({\n formData: formDataReducer,\n formInfo: formInfoReducer,\n dealersInfo: dealersReducer,\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 getOneformBFFCdnServiceConfig = () => featureServicesMirror['service-config-provider'].configs['es-oneform-bff-cdn'];\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'];\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 TextAppearance,\n Text,\n ContainerGutter,\n InputAppearance,\n ContainerWrap,\n BreakpointWrapper,\n Breakpoints\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 ContainerHorizontalAlignment,\n ContainerWrap,\n CTA,\n Spinner,\n styled,\n Text,\n TextAlignment,\n TextAppearance,\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 ContainerWrap,\n ContainerPadding,\n ContainerGutter,\n ContainerHorizontalAlignment,\n styled,\n TextAppearance,\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 {\n Text,\n TextAppearance,\n styled,\n Container,\n ContainerGutter,\n ContainerWrap,\n CTA,\n} from '@volkswagen-onehub/components-core';\nimport React from 'react';\n\nconst PaddingWrapper = styled.div`\n padding-top: 32px;\n`;\n\nconst TextColor = styled.span`\n color: #6a767d;\n`;\ninterface CEMLegalProps {\n copy: string;\n}\n\nexport const CEMLegal = (props:CEMLegalProps) => {\n\n return (\n \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. Vamos a utilizar\n tus datos para realizar un control de calidad sobre los productos y servicios contratados, \n mediante la realización de la presente encuesta de satisfacción, y contactarte para resolución \n de incidencias, reclamaciones o quejas. Tus datos podrán ser comunicados a las empresas del \n grupo para las finalidades de controlar la calidad de los productos y servicios, así como \n contactarte para resolución de incidencias, reclamaciones o quejas y, en el caso que hayas \n consentido, para elaborar tu perfil como usuario para enviarte comunicaciones comerciales \n según lo indicado en el consentimiento. También en el supuesto de haber consentido, tus datos y las respuestas de la presente \n encuesta de satisfacción serán comunicadas al {props.copy}. \n \n \n \n \n Tienes derecho a oponerte \n al tratamiento, limitar el mismo, acceder, rectificar, suprimir los datos y ejercer tu \n derecho a portabilidad, 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 \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 { CemVenta, CemPosventa } from 'src/forms';\nimport { GenericErrorLayer } from 'src/components/layers';\nimport { createPincodeEntity } from 'src/forms/dps-utils';\nimport dayjs from 'dayjs';\nimport { getDealerKvps, getInstallations } from 'src/bff';\nimport { DomainAttributesValues } from 'src';\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 dealerName?: string;\n dealerGet?: 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 [dealerName, setDealerName] = useState(null);\n const [dealer, setDealer] = useState(null);\n const [installations, setInstallations] = useState(null);\n const [dealerCode, setDealerCode] = useState(null);\n const [caducado, setCaducado] = useState(false);\n const today = dayjs(new Date());\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 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 formDate = dayjs(dpsData.env);\n\n if (!dpsData.env) {\n setCaducado(true);\n } else {\n if (\n (faContent.cem === 'POSVENTA' || faContent.encuesta === 'CEM - POSVENTA') &&\n today.diff(formDate, 'day') < 8\n ) {\n if (dpsData.dealer) {\n getDealerKvps(dpsData.dealer).then((dealer) => {\n setDealerName(dealer.name);\n setDealer(dealer);\n setPosventa(true);\n });\n } else {\n handleError();\n }\n } else if (\n (faContent.cem === 'VENTA' || faContent.encuesta === 'CEM - VENTA') &&\n today.diff(formDate, 'day') < 8\n ) {\n setDealerCode(idDealer.Dealer_Code_Vaesa__c);\n getInstallations('VW_DDB_FRM_LEM_REC_LEM').then((dealers) => {\n const installationsDomainAtt = dealers.map((inst) => inst.attributes);\n setInstallations(installationsDomainAtt);\n setVenta(true);\n });\n } else {\n setCaducado(true);\n }\n }\n setLoading(false);\n }\n };\n\n useEffect(() => {\n if (installations) {\n let ok = false;\n let i = 0;\n let len = installations.length;\n while (i < len && ok === false) {\n const obj = installations[i].find((ele: DomainAttributesValues) => {\n if (ele.name === 'TXT_V_Installation_Code__c' && ele.value === dealerCode) {\n return ele;\n }\n });\n if (obj) {\n ok = true;\n const dealerName = installations[i].find((ele: DomainAttributesValues) => {\n if (ele.name === 'TXT_V_Installation_Data_Name__c') {\n return ele;\n }\n });\n setDealerName(dealerName.value);\n setDealer(installations[i]);\n }\n i++;\n }\n }\n }, [installations]);\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 {\n Breakpoints, Container,\n ContainerPadding, Layout, LayoutRowGap, Text,\n TextAppearance,\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 {\n ctaAlternativaTransporte, ctaDatosIncorrectosPosventa, ctaMotivoVisita, ctaTrabajosAdicionales\n} from 'src/feature-app/InputsValues/CTAsObjects';\nimport { ChecksEnvio } 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 trueOrFalseQuestion: true,\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 trueOrFalseQuestion: true,\n },\n {\n title: <>¿Te ofreció el Servicio Oficial alguna alternativa de transporte?,\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 satisfaccció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 Para terminar,{' '}nos gustaría saber si podemos enviar tus respuestas junto con tu nombre al Servicio Oficial [Concesionario]\n \n ),\n fields: (\n }\n />\n ),\n screenIndex: CemSteps.EnviarConcesion,\n name: 'EnviarConcesion',\n outputs: ['enviarConcesion'],\n outputsText: ['enviarConcesion'],\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 trueOrFalseQuestion: true,\n },\n {\n fields: ,\n screenIndex: CemSteps.Confirmacion,\n name: 'Confirmacion',\n outputs: ['confirmacion'],\n outputsText: ['confirmacion'],\n },\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\n\nexport const formatRatingField = (answer: string) => {\n if (!answer) return undefined;\n if (answer === 'Sin respuesta') return '9';\n return answer;\n};\n\nexport const formatBooleanField = (answer: string) => answer === 'true' ? '1' : answer === 'false' ? '2' : '9'\n\nexport const getDealerKvps = (dpsData: DpsData) => {\n if (!dpsData.kvps) return '';\n return dpsData.kvps;\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 { Layout, Breakpoints } from '@volkswagen-onehub/components-core';\nimport React from 'react';\nimport { LegalFullScreenSinConsentmientos } from 'src/components';\n\nexport const CustomLegalCem = () => {\n return (\n \n \n \n );\n};\n","import React, { useState } from 'react';\nimport { RadioButton, styled, Text, TextAppearance, TextColor } from '@volkswagen-onehub/components-core';\nimport { Info } from 'src/icons-core-imports';\nimport { useDispatch } from 'react-redux';\nimport { useFormContext } from 'react-hook-form';\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 ChecksEnvionProps {\n isVenta: boolean;\n isElectrico?: boolean;\n}\n\nexport const ChecksEnvio = (props: ChecksEnvionProps) => {\n\n const { isVenta, isElectrico } = props;\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 ' + (isVenta ? (isElectrico ? 'punto de venta' : 'concesionario') : 'Servicio Oficial') + ' 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 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 };\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 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';\n\n\n\nexport const ChecksPublicacion = () => {\n const dispatch = useDispatch();\n const [firstCta, secondCta] = ctaEnvioCEM;\n const { concesion } = useSelector((state: OneFormState) => state.formData.fields);\n\n const [checkedOne, setCheckedOne] = useState(false);\n const [checkedTwo, setCheckedTwo] = useState(false);\n\n const { handleNextStep } = useOneFormContext();\n const [value, setValue] = useState(null);\n const { register } = useFormContext();\n\n const handleOnClick = (e: any) => {\n dispatch({ type: 'UPDATE_FIELDS', payload: { publicarRespuestas: 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 { Breakpoints, styled, Text, TextAppearance, 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';\nimport { CEMLegal, CustomLegalCem } from '.';\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 ConfirmacionCem = () => {\n const dispatch = useDispatch();\n const { fields } = useSelector((state: OneFormState) => state.formData);\n const [lssiPincode, setLssiPincode] = useState(null);\n\n const [copy, setCopy] = useState(null);\n\n useEffect(() => {\n if (fields) {\n setLssiPincode(fields.lssiPincode);\n }\n }, [fields]);\n\n useEffect(() => {\n if (fields.formName === 'cem-venta') {\n setCopy('Concesionario');\n } else {\n setCopy('Servicio Oficial');\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 \n ) : (\n \n \n \n )}\n
\n );\n};\n","import {\n Breakpoints,\n BreakpointWrapper,\n Container,\n ContainerPadding,\n ContainerWrap,\n styled,\n Text,\n TextAppearance,\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 { getVilmaData } from 'src/bff';\nimport { useWindowHeight } from '@react-hook/window-size';\nimport { OneFormState } from 'src/types';\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 isVenta = (faContent.cem === 'VENTA' || faContent.encuesta === 'CEM - VENTA');\n const height = useWindowHeight();\n\n const dataVilmaRequest = async () => {\n const data = await getVilmaData(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\n return (\n dataVilma && imageSrc ? (\n \n {\n height <= 600 ? null : (\n \n \n \n )\n }\n\n \n \n \n {isVenta ?\n (\n <>\n Según nuestros registros compraste un nuevo {model} en nuestro {isElectrico ? 'punto de venta' : 'concesionario'} {concesion}\n \n )\n : (\n <>\n Según nuestros datos, visitaste el Servicio Oficial{' '}{concesion}{' '}con tu{' '}{model}.\n \n )}\n \n \n {isVenta ?\n (\n <>\n ¿Puedes confirmar que estos datos son correctos?\n \n )\n : (\n <>\n ¿Puedes confirmar que estos datos son correctos y que eres la persona que mejor nos puede informar sobre la última visita al taller?\n \n )}\n \n \n \n \n \n \n \n \n ) : (\n \n \n {isVenta ?\n (\n <>\n Según nuestros registros compraste un nuevo {model} en nuestro {isElectrico ? 'punto de venta' : 'concesionario'} {concesion}\n \n )\n : (\n <>\n Según nuestros datos, visitaste el Servicio Oficial{' '}{concesion}{' '}con tu{' '}{model}.\n \n )}\n \n \n {isVenta ?\n (\n <>\n ¿Puedes confirmar que estos datos son correctos?\n \n )\n : (\n <>\n ¿Puedes confirmar que estos datos son correctos y que eres la persona que mejor nos puede informar sobre la última visita al taller?\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 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 } from 'src/feature-app';\nimport { getParamsForm } from 'src/feature-app/get-params-form';\nimport { FormDataGroup, FormInfo, OneFormState, Steps } from 'src/types';\nimport {\n checkUndefinedsInData,\n formatBooleanField,\n formatRatingField,\n handleDescWrongData,\n} from './helpers';\nimport { CEMLegal } from './CEMLegal';\nimport { CustomLegalCem } from './CustomLegalCem';\nimport { CemFormProps } from './CemController';\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 } from './CemStepsPosventa';\nimport { ThankYouCEM } from './ThankYouCem';\n\nconst betweenOneAndThreeStars = (rating: string) => Number(rating) !== 0 && Number(rating) < 4;\nconst oneOrTwoStars = (rating: string) => Number(rating) !== 0 && Number(rating) < 3;\nconst fourOrFiveStars = (rating: string) => Number(rating) !== 0 && Number(rating) >= 4 && Number(rating) < 6;\nconst noRatingStars = (rating: string) => rating === 'Sin respuesta';\n\n// Customers that give 5 or 4 stars in Sc.7\n// and evaluated less than all 3 questions of Sc.5, Sc.6 and Sc.6 with dissatisfaction (codes 3,2,1)\nconst satisfaccionConcesionFirstRequisite = (\n satisfaccionConcesion: string,\n satisfaccionTrato: string,\n satisfaccionOrganizacion: string,\n satisfaccionTrabajoRealizado: string\n) =>\n fourOrFiveStars(satisfaccionConcesion) &&\n (!betweenOneAndThreeStars(satisfaccionTrato) ||\n !betweenOneAndThreeStars(satisfaccionOrganizacion) ||\n !betweenOneAndThreeStars(satisfaccionTrabajoRealizado));\n\n//Customers that give 3, 2 or 1 stars in Sc.7\n// and give 5 or 4 stars or chose “no answer” in Sc.4 to Sc.6\n\nconst satisfaccionConcesionSecondRequisite = (\n satisfaccionConcesion: string,\n satisfaccionTrato: string,\n satisfaccionOrganizacion: string,\n satisfaccionTrabajoRealizado: string\n) =>\n betweenOneAndThreeStars(satisfaccionConcesion) &&\n (fourOrFiveStars(satisfaccionTrato) || noRatingStars(satisfaccionTrato)) &&\n (fourOrFiveStars(satisfaccionOrganizacion) || noRatingStars(satisfaccionOrganizacion)) &&\n (fourOrFiveStars(satisfaccionTrabajoRealizado) || noRatingStars(satisfaccionTrabajoRealizado));\n\nconst showSatisfaccionConcesion = (\n satisfaccionConcesion: string,\n satisfaccionTrato: string,\n satisfaccionOrganizacion: string,\n satisfaccionTrabajoRealizado: string\n) =>\n satisfaccionConcesionFirstRequisite(\n satisfaccionConcesion,\n satisfaccionTrato,\n satisfaccionOrganizacion,\n satisfaccionTrabajoRealizado\n ) ||\n satisfaccionConcesionSecondRequisite(\n satisfaccionConcesion,\n satisfaccionTrato,\n satisfaccionOrganizacion,\n satisfaccionTrabajoRealizado\n );\n\n// Customers that give 3, 2 or 1 stars in Sc.7\nconst otroAspectoFirstRequisite = (satisfaccionConcesion: string) => betweenOneAndThreeStars(satisfaccionConcesion);\n\n//evaluated neither 0 nor 3 (i.e. 1 or 2) questions of Sc.4, Sc.5 and Sc.6 with dissatisfaction (codes 3,2,1)\nconst otroAspectoSecondRequisite = (\n satisfaccionTrato: string,\n satisfaccionOrganizacion: string,\n satisfaccionTrabajoRealizado: string\n) => {\n if (\n (betweenOneAndThreeStars(satisfaccionTrato) &&\n betweenOneAndThreeStars(satisfaccionOrganizacion) &&\n !betweenOneAndThreeStars(satisfaccionTrabajoRealizado)) ||\n (betweenOneAndThreeStars(satisfaccionTrato) &&\n !betweenOneAndThreeStars(satisfaccionOrganizacion) &&\n betweenOneAndThreeStars(satisfaccionTrabajoRealizado)) ||\n (!betweenOneAndThreeStars(satisfaccionTrato) &&\n betweenOneAndThreeStars(satisfaccionOrganizacion) &&\n betweenOneAndThreeStars(satisfaccionTrabajoRealizado))\n ) {\n return true;\n }\n return false;\n};\n\nconst showOtroAspecto = (\n satisfaccionConcesion: string,\n satisfaccionTrato: string,\n satisfaccionOrganizacion: string,\n satisfaccionTrabajoRealizado: string\n) =>\n otroAspectoFirstRequisite(satisfaccionConcesion) &&\n otroAspectoSecondRequisite(satisfaccionTrato, satisfaccionOrganizacion, satisfaccionTrabajoRealizado);\n\nexport function CemPosventa({ idPerson, idOrder, idVehicle, dpsData, dealerName, dealerGet }: CemFormProps) {\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 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_PV_2023',\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: dealerName,\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[DAT_REGISTRATION_DATE]': 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_ANONYMOUS]': fields.enviarConcesion,\n 'fields[DESC_AUXFIELD2]': fields.publicarRespuestas === '1' ? 'PERMITE' : 'NO PERMITE',\n 'fields[DESC_DEALER_CODE_KVPS]': dealerGet.kvps,\n 'fields[DESC_DEALER_CODE]': dpsData.dealer,\n 'fields[DESC_DEALER]': dealerName,\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]': formatRatingField(fields.satisfaccionTrato),\n 'fields[CEM_C01]': fields.satisfaccionTratoMotivo,\n 'fields[CEM_Q02]': formatRatingField(fields.satisfaccionOrganizacion),\n 'fields[CEM_C02]': fields.satisfaccionOrganizacionMotivo,\n 'fields[CEM_Q03]': formatRatingField(fields.satisfaccionTrabajoRealizado),\n 'fields[CEM_C03]': fields.satisfaccionTrabajoRealizadoMotivo,\n 'fields[CEM_Q04]': formatRatingField(fields.satisfaccionConcesion),\n 'fields[CEM_C04]': fields.satisfaccionConcesionMotivo,\n 'fields[CEM_C05]': fields.aspectoSatisfaccion,\n 'fields[CEM_Q06]': formatRatingField(fields.satisfaccionVehiculo),\n 'fields[CEM_C06]': fields.satisfaccionVehiculoMotivo,\n 'fields[CEM_Q07]': fields.motivoVisita?.split(',').sort((a, b) => a - b).join(''),\n 'fields[CEM_Q12]': formatRatingField(fields.tiempoSatisfaccion),\n 'fields[CEM_Q13]': fields.alternativaTransporte,\n 'fields[CEM_Q30]': formatBooleanField(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 const aux = idVehicle.DESC_Model__c ? idVehicle.DESC_Model__c : dpsData.model ? dpsData.model : 'Volkswagen';\n return string\n .replace('[Modelo]', aux)\n .replace('[Marca]', idVehicle.PKL_order_brand__c)\n .replace('[Concesionario]', dealerName);\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 const handleRatingStars = (value: string, nameOfMotivoStep: string) => {\n if (betweenOneAndThreeStars(value)) {\n addSteps([nameOfMotivoStep]);\n } else if (fourOrFiveStars(value) || noRatingStars(value)) {\n removeSteps([nameOfMotivoStep]);\n }\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 useEffect(() => {\n // Mostrar o no Sc. 4_1\n if (!satisfaccionTrato) {\n return;\n }\n handleRatingStars(satisfaccionTrato, 'SatisfaccionTratoMotivo');\n }, [satisfaccionTrato]);\n\n useEffect(() => {\n if (!satisfaccionOrganizacion) {\n return;\n }\n // Mostrar o no Sc. 5_1\n handleRatingStars(satisfaccionOrganizacion, 'SatisfaccionOrganizacionMotivo');\n }, [satisfaccionOrganizacion]);\n\n useEffect(() => {\n if (!satisfaccionTrabajoRealizado) {\n return;\n }\n // Mostrar o no Sc. 6_1\n handleRatingStars(satisfaccionTrabajoRealizado, 'SatisfaccionTrabajoRealizadoMotivo');\n }, [satisfaccionTrabajoRealizado]);\n\n useEffect(() => {\n if (!enviarConcesion) {\n return;\n }\n if (enviarConcesion === '2' || enviarConcesion === '0') {\n removeSteps(['DatosPersonales']);\n // dispatch({ type: 'UPDATE_FORM_ENDED', payload: true });\n // handleShowFinalScreen();\n } else if (enviarConcesion === '1') {\n addSteps(['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 useEffect(() => {\n if (!satisfaccionTrato || !satisfaccionOrganizacion || !satisfaccionTrabajoRealizado) {\n return;\n }\n\n let removeSatisfaccionConcesion = null;\n let removeAspectoSatisfaccion = null;\n // Mostrar o no Sc. 7_1\n removeSatisfaccionConcesion = !showSatisfaccionConcesion(\n satisfaccionConcesion,\n satisfaccionTrato,\n satisfaccionOrganizacion,\n satisfaccionTrabajoRealizado\n );\n // Mostrar o no Sc. 7_2\n removeAspectoSatisfaccion = !showOtroAspecto(\n satisfaccionConcesion,\n satisfaccionTrato,\n satisfaccionOrganizacion,\n satisfaccionTrabajoRealizado\n );\n\n if (!removeSatisfaccionConcesion && !removeAspectoSatisfaccion) {\n addSteps(['AspectoSatisfaccionMotivo', 'SatisfaccionConcesionMotivo']);\n }\n if (removeSatisfaccionConcesion && removeAspectoSatisfaccion) {\n removeSteps(['AspectoSatisfaccionMotivo', 'SatisfaccionConcesionMotivo']);\n }\n if (!removeSatisfaccionConcesion && removeAspectoSatisfaccion) {\n removeAndAddStepAtTheSameTime('AspectoSatisfaccionMotivo', 'SatisfaccionConcesionMotivo');\n }\n if (removeSatisfaccionConcesion && !removeAspectoSatisfaccion) {\n removeAndAddStepAtTheSameTime('SatisfaccionConcesionMotivo', 'AspectoSatisfaccionMotivo');\n }\n }, [satisfaccionConcesion]);\n\n useEffect(() => {\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 customLegal: idPerson.LSSI__c === 'PERMITE' ? : ,\n hideLegal: idPerson.LSSI__c === 'PERMITE' ? true : false,\n thankYouComponent: ,\n };\n\n initializeForm(NuevoFormInfo, NuevoFormData);\n }, []);\n\n return !loading ? : null;\n}\n","import {\n Breakpoints,\n Layout,\n LayoutRowGap,\n Text,\n TextAppearance,\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 } 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: isElectrico ? 'Punto de venta incorrecto' : 'Concesionario 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 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 [PuntoVentaConcesionario],\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 [PuntoVentaConcesion]?,\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: 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 />\n ),\n screenIndex: CemSteps.SatisfaccionVehiculoMotivo,\n name: 'SatisfaccionVehiculoMotivo',\n outputs: ['satisfaccionVehiculoMotivo'],\n outputsText: ['satisfaccionVehiculoMotivo'],\n },\n {\n title: (\n <>\n Para terminar,{' '}\n \n nos gustaría saber si podemos enviar tus respuestas junto con tu nombre al [PuntoVentaConcesionario] [Concesionario]\n \n \n ),\n fields: } />,\n screenIndex: CemSteps.EnviarConcesion,\n name: 'EnviarConcesion',\n outputs: ['enviarConcesion'],\n outputsText: ['enviarConcesion'],\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 React, { useEffect, useRef, useState } from 'react';\nimport { useDispatch, useSelector, useStore } from 'react-redux';\nimport { dpsSend } from 'src/bff';\nimport { FormController, useOneFormContext } from 'src/feature-app';\nimport { getParamsForm } from 'src/feature-app/get-params-form';\nimport { FormDataGroup, FormInfo, OneFormState, Steps } from 'src/types';\nimport {\n checkUndefinedsInData,\n handleDescWrongData,\n getDealerKvps,\n formatRatingField,\n} from 'src/forms/Cem/helpers';\nimport { CEMLegal } from 'src/forms/Cem/CEMLegal';\nimport { CustomLegalCem } from 'src/forms/Cem/CustomLegalCem';\nimport { CemFormProps } from 'src/forms/Cem/CemController';\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 } from 'src/forms/Cem/CemSteps';\nimport { ThankYouCEM } from 'src/forms/Cem/ThankYouCem';\n\nconst betweenOneAndThreeStars = (rating: string) => Number(rating) !== 0 && Number(rating) < 4;\nconst fourOrFiveStars = (rating: string) => Number(rating) !== 0 && (Number(rating) === 4 || Number(rating) === 5);\nconst noRatingStars = (rating: string) => rating === 'Sin respuesta';\n\n// Customers that give 5 or 4 stars in Sc.7\n// and evaluated less than all 3 questions of Sc.5, Sc.6 and Sc.6 with dissatisfaction (codes 3,2,1)\nconst satisfaccionConcesionFirstRequisite = (\n satisfaccionConcesion: string,\n satisfaccionTrato: string,\n satisfaccionOrganizacion: string,\n satisfaccionAsesor: string\n) =>\n fourOrFiveStars(satisfaccionConcesion) &&\n (!betweenOneAndThreeStars(satisfaccionTrato) ||\n !betweenOneAndThreeStars(satisfaccionOrganizacion) ||\n !betweenOneAndThreeStars(satisfaccionAsesor));\n\n//Customers that give 3, 2 or 1 stars in Sc.7\n// and give 5 or 4 stars or chose “no answer” in Sc.4 to Sc.6\n\nconst satisfaccionConcesionSecondRequisite = (\n satisfaccionConcesion: string,\n satisfaccionTrato: string,\n satisfaccionOrganizacion: string,\n satisfaccionAsesor: string\n) =>\n betweenOneAndThreeStars(satisfaccionConcesion) &&\n (fourOrFiveStars(satisfaccionTrato) || noRatingStars(satisfaccionTrato)) &&\n (fourOrFiveStars(satisfaccionOrganizacion) || noRatingStars(satisfaccionOrganizacion)) &&\n (fourOrFiveStars(satisfaccionAsesor) || noRatingStars(satisfaccionAsesor));\n\nconst showSatisfaccionConcesion = (\n satisfaccionConcesion: string,\n satisfaccionTrato: string,\n satisfaccionOrganizacion: string,\n satisfaccionAsesor: string\n) =>\n satisfaccionConcesionFirstRequisite(\n satisfaccionConcesion,\n satisfaccionTrato,\n satisfaccionOrganizacion,\n satisfaccionAsesor\n ) ||\n satisfaccionConcesionSecondRequisite(\n satisfaccionConcesion,\n satisfaccionTrato,\n satisfaccionOrganizacion,\n satisfaccionAsesor\n );\n\n// Customers that give 3, 2 or 1 stars in Sc.7\nconst otroAspectoFirstRequisite = (satisfaccionConcesion: string) => betweenOneAndThreeStars(satisfaccionConcesion);\n\n//evaluated neither 0 nor 3 (i.e. 1 or 2) questions of Sc.4, Sc.5 and Sc.6 with dissatisfaction (codes 3,2,1)\nconst otroAspectoSecondRequisite = (\n satisfaccionTrato: string,\n satisfaccionOrganizacion: string,\n satisfaccionAsesor: string\n) => {\n if (\n (betweenOneAndThreeStars(satisfaccionTrato) &&\n betweenOneAndThreeStars(satisfaccionOrganizacion) &&\n !betweenOneAndThreeStars(satisfaccionAsesor)) ||\n (betweenOneAndThreeStars(satisfaccionTrato) &&\n !betweenOneAndThreeStars(satisfaccionOrganizacion) &&\n betweenOneAndThreeStars(satisfaccionAsesor)) ||\n (!betweenOneAndThreeStars(satisfaccionTrato) &&\n betweenOneAndThreeStars(satisfaccionOrganizacion) &&\n betweenOneAndThreeStars(satisfaccionAsesor))\n ) {\n return true;\n }\n return false;\n};\n\nconst showOtroAspecto = (\n satisfaccionConcesion: string,\n satisfaccionTrato: string,\n satisfaccionOrganizacion: string,\n satisfaccionAsesor: string\n) =>\n otroAspectoFirstRequisite(satisfaccionConcesion) &&\n otroAspectoSecondRequisite(satisfaccionTrato, satisfaccionOrganizacion, satisfaccionAsesor);\n\nconst handleShowConfirmacion = () => { };\n\nexport function CemVenta({ idOrder, idPerson, idVehicle, idDealer, dpsData, dealerGet, dealerName }: CemFormProps) {\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 {\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_VN_2023',\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: dealerName ? dealerName : 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\n 'fields[DAT_REGISTRATION_DATE]': idOrder.DAT_delivery__c,\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_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 'fields[DESC_DEALER_CODE_KVPS]': getDealerKvps(dpsData),\n 'fields[DESC_DEALER_CODE]': idDealer.Dealer_Code_Vaesa__c,\n 'fields[DESC_DEALER]': idDealer.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]': 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]': formatRatingField(fields.satisfaccionTrato),\n 'fields[CEM_C01]': fields.satisfaccionTratoMotivo,\n 'fields[CEM_Q02]': formatRatingField(fields.satisfaccionOrganizacion),\n 'fields[CEM_C02]': fields.satisfaccionOrganizacionMotivo,\n 'fields[CEM_Q03]': formatRatingField(fields.satisfaccionAsesor),\n 'fields[CEM_C03]': fields.satisfaccionAsesorMotivo,\n 'fields[CEM_Q04]': formatRatingField(fields.satisfaccionConcesion),\n 'fields[CEM_C04]': fields.satisfaccionConcesionMotivo,\n 'fields[CEM_C05]': fields.aspectoSatisfaccionMotivo,\n 'fields[CEM_Q06]': formatRatingField(fields.satisfaccionVehiculo),\n 'fields[CEM_C06]': fields.satisfaccionVehiculoMotivo,\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 const isElectrico = idVehicle.DESC_Model__c.substring(0, 2) == 'ID';\n return string\n .replace('[Modelo]', idVehicle.DESC_Model__c)\n .replace('[Marca]', idVehicle.PKL_order_brand__c)\n .replace('[Concesionario]', dealerName ? dealerName : idDealer.Name)\n .replace('[PuntoVentaConcesionario]', isElectrico ? 'punto de venta' : 'concesionario')\n .replace('[PuntoVentaConcesion]', isElectrico ? 'punto de venta' : 'concesión');\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 const handleRatingStars = (value: string, nameOfMotivoStep: string) => {\n if (betweenOneAndThreeStars(value)) {\n addSteps([nameOfMotivoStep]);\n } else if (fourOrFiveStars(value) || noRatingStars(value)) {\n removeSteps([nameOfMotivoStep]);\n }\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 // Mostrar o no Sc. 4_1\n if (!satisfaccionTrato) {\n return;\n }\n handleRatingStars(satisfaccionTrato, 'SatisfaccionTratoMotivo');\n }, [satisfaccionTrato]);\n\n useEffect(() => {\n if (!satisfaccionOrganizacion) {\n return;\n }\n // Mostrar o no Sc. 5_1\n handleRatingStars(satisfaccionOrganizacion, 'SatisfaccionOrganizacionMotivo');\n }, [satisfaccionOrganizacion]);\n\n useEffect(() => {\n if (!satisfaccionAsesor) {\n return;\n }\n // Mostrar o no Sc. 6_1\n handleRatingStars(satisfaccionAsesor, 'SatisfaccionAsesorMotivo');\n }, [satisfaccionAsesor]);\n\n useEffect(() => {\n if (!enviarConcesion) {\n return;\n }\n if (enviarConcesion === '2' || enviarConcesion === '0') {\n removeSteps(['DatosPersonales']);\n // dispatch({ type: 'UPDATE_FORM_ENDED', payload: true });\n // handleShowFinalScreen();\n } else if (enviarConcesion === '1') {\n addSteps(['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 useEffect(() => {\n if (!satisfaccionTrato || !satisfaccionOrganizacion || !satisfaccionAsesor) {\n return;\n }\n let removeSatisfaccionConcesion = null;\n let removeAspectoSatisfaccion = null;\n // Mostrar o no Sc. 7_1\n removeSatisfaccionConcesion = !showSatisfaccionConcesion(\n satisfaccionConcesion,\n satisfaccionTrato,\n satisfaccionOrganizacion,\n satisfaccionAsesor\n );\n // Mostrar o no Sc. 7_2\n removeAspectoSatisfaccion = !showOtroAspecto(\n satisfaccionConcesion,\n satisfaccionTrato,\n satisfaccionOrganizacion,\n satisfaccionAsesor\n );\n\n if (!removeSatisfaccionConcesion && !removeAspectoSatisfaccion) {\n addSteps(['AspectoSatisfaccionMotivo', 'SatisfaccionConcesionMotivo']);\n }\n if (removeSatisfaccionConcesion && removeAspectoSatisfaccion) {\n removeSteps(['AspectoSatisfaccionMotivo', 'SatisfaccionConcesionMotivo']);\n }\n if (!removeSatisfaccionConcesion && removeAspectoSatisfaccion) {\n removeAndAddStepAtTheSameTime('AspectoSatisfaccionMotivo', 'SatisfaccionConcesionMotivo');\n }\n if (removeSatisfaccionConcesion && !removeAspectoSatisfaccion) {\n removeAndAddStepAtTheSameTime('SatisfaccionConcesionMotivo', 'AspectoSatisfaccionMotivo');\n }\n }, [satisfaccionConcesion]);\n\n useEffect(() => {\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 customLegal: idPerson.LSSI__c === 'PERMITE' ? : ,\n hideLegal: idPerson.LSSI__c === 'PERMITE' ? true : false,\n thankYouComponent: ,\n };\n\n initializeForm(NuevoFormInfo, NuevoFormData);\n }, []);\n\n return !loading ? : null;\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 { 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 { 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 { 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 ContainerHorizontalAlignment,\n ContainerPadding,\n ContainerWrap,\n CTA,\n Spinner,\n styled,\n Text,\n TextAlignment,\n TextAppearance,\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, DmsInfo, OneFormState, Slot, Horario, Points } from 'src/types';\nimport { config } from 'rxjs';\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 ContainerHorizontalAlignment,\n ContainerPadding,\n ContainerVerticalAlignment,\n ContainerWrap,\n CTA,\n Fieldset,\n Layout,\n LayoutRowGap,\n RadioButton,\n styled,\n Switch,\n Text,\n TextAlignment,\n TextAppearance,\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 const [currentDateJarama, startingDateJarama, finishingDateJarama] = [\n new Date(),\n new Date(2023, 2, 1),\n new Date(2023, 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","import {\n Breakpoints,\n Container,\n ContainerGutter,\n ContainerWrap,\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 ContainerPadding,\n ContainerWrap,\n CTA,\n Layout,\n Text,\n TextAlignment,\n TextAppearance,\n ContainerGutter,\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).TXT_V_Installation_Data_Name__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 TextAppearance,\n} from '@volkswagen-onehub/components-core';\nimport React, { useEffect, useState } from 'react';\nimport { useDispatch, useSelector, useStore } from 'react-redux';\nimport { appadapAppointmentCreate, getCarlinesCita } 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 getCarlinesCita(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 ContainerHorizontalAlignment,\n ContainerPadding,\n ContainerVerticalAlignment,\n ContainerWrap,\n CTA,\n Layout,\n styled,\n Text,\n TextAlignment,\n TextAppearance,\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 // console.log(formInfo, 'formInfo');\n const MOLECULAR_URL = getMolecularUrl();\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 ContainerHorizontalAlignment,\n ContainerPadding,\n ContainerWrap,\n CTA,\n Spinner,\n styled,\n Text,\n TextAlignment,\n TextAppearance,\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 ContainerHorizontalAlignment,\n Layout,\n styled,\n Tabs,\n Text,\n TextAlignment,\n TextAppearance,\n CTA,\n TextColor,\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 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 { dpsSend } 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, 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 DESC_BRAND: 'VW',\n DESC_VN_VO: 'VN',\n DESC_GDPR_ADAPTED: 'true',\n COD_FORM_ID: 'vw-oneform-empresas',\n DESC_CAMPAIGNBLOCK: '10. VW Empresas',\n DESC_FORMOBJECTIVE: 'Más Información',\n DESC_FORM_DETAIL: 'Empresas',\n DESC_ID_CAMPAIGN: '7010Y0000001rdOQAQ',\n DESC_WAID_LITERA: waid ? waid : 'B10C01_LDEMPR_WA1',\n DESC_TOKEN: 'VW_DDB_FRM_VWEMPRESAS',\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, headers } = formData;\n\n const { selectedInstallation, carlines } = 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 'headers[DESC_URLORIGIN]': url,\n 'headers[DESC_DEVICETYPE]': device,\n\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_BUSINESS_NAME]': fields.businessName,\n 'fields[DESC_CIF]': fields.CIF,\n 'fields[DESC_POSTAL_CODE]': fields.postalCode,\n 'fields[DESC_FLEET]': fields.fleet,\n 'fields[DESC_VEH_BRAND]': 'Volkswagen',\n 'fields[DESC_FORM_VERSION]': `vw-oneform-empresas-${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]': fields.carlineCode,\n 'fields[DESC_INTEREST_CARLINE]': fields.modelo,\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 ...getDpsFields(faContent),\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 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 } = 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 { 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 { 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 { 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 { 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 } from 'src/bff';\nimport { useIsComerciales } from 'src/feature-app/hooks';\nimport { TOKEN_LEADS_COMERCIALES, TOKEN_LEADS_TURISMOS } from 'src/globals';\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 fetchProvince(isComerciales ? TOKEN_LEADS_COMERCIALES : TOKEN_LEADS_TURISMOS).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 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 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, { useEffect, useState } from 'react';\nimport { ConfirmationPlanIdeal, ThankYouPlanIdeal, QuestionWithImage } from './';\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 TextAppearance,\n Layout,\n ContainerWrap,\n BreakpointWrapper,\n CTA,\n ContainerGutter,\n} from '@volkswagen-onehub/components-core';\nimport React, { useEffect, 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, { 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 ContainerWrap,\n styled,\n Text,\n TextAppearance\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 } 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 TextAppearance\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 TextAppearance,\n Container,\n CTA,\n ContainerGutter,\n styled,\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 ContainerHorizontalAlignment,\n ContainerPadding,\n CTA,\n styled,\n Text,\n TextAlignment,\n TextAppearance,\n Layout,\n ContainerGutter,\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, useEffect } from 'react';\nimport {\n Container,\n ContainerGutter,\n ContainerWrap,\n ContainerHorizontalAlignment,\n ContainerPadding,\n styled,\n TextAreaAppearance,\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 TextAppearance,\n ThemeProvider,\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 TextAppearance,\n ThemeProvider\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 TextAppearance,\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 Axios, { AxiosResponse } from 'axios';\nimport React, { useEffect, useState } from 'react';\nimport {\n Text,\n Container,\n ContainerPadding,\n TextAppearance,\n styled,\n WhiteSpace,\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 React from 'react';\nimport { \n Layout,\n Breakpoints,\n BreakpointWrapper,\n CTA,\n Text, \n Container, \n ContainerPadding, \n ContainerWrap,\n ContainerGutter,\n TextAppearance, \n ThemeProvider,\n styled, \n WhiteSpace\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 TextAppearance,\n ContainerWrap,\n TextAlignment,\n TextAreaAppearance,\n ContainerHorizontalAlignment,\n styled,\n InputAppearance\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 {\n Breakpoints,\n BreakpointWrapper,\n Container,\n ContainerPadding,\n Layout,\n Text,\n TextAlignment,\n TextAppearance,\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 ContainerHorizontalAlignment,\n ContainerPadding,\n CTA,\n styled,\n Text,\n TextAlignment,\n TextAppearance,\n Layout,\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 TextAppearance,\n TextColor,\n TextAlignment,\n ThemeProvider,\n Container,\n ContainerPadding,\n ContainerHorizontalAlignment,\n CTA,\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 { CTA, Text, TextAppearance, TextColor, TextAlignment } from '@volkswagen-onehub/components-core';\nimport { RatingStars} from 'src/components';\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 {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 Axios, { AxiosResponse } from 'axios';\nimport 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 ContainerWrap,\n ContainerHorizontalAlignment,\n ContainerPadding,\n ContainerGutter,\n InputAppearance,\n TextAppearance,\n Layout,\n Breakpoints\n} from '@volkswagen-onehub/components-core';\nimport { OneElementTemplateFullScreen } from 'src/feature-app/Screen';\nimport { FidelizacionLastScreenFields } from './FidelizacionLastScreenFields';\nimport { TextAreaExtended, MultipleCTASelection, MultipleOptionCTAs, RatingStars } from 'src/components';\nimport { getParamsForm } from 'src/feature-app/get-params-form';\nimport { FormDataGroup, FormInfo, OneFormState, Steps, MolecularResponse } 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';\nimport { addRemovedStep, getIndexInSteps, removeStep, resetStepsScreenIndex } from '../../helpers/add-remove-steps';\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 BreakpointWrapper,\n Container,\n ContainerPadding,\n Layout,\n Text,\n TextAlignment,\n TextAppearance,\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, { useEffect, useState } from 'react';\nimport { ConfirmationTestID, ThankYouTestID, QuestionWithImage } from './';\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 TextAppearance,\n Layout,\n ContainerWrap,\n BreakpointWrapper,\n CTA,\n ContainerGutter,\n} from '@volkswagen-onehub/components-core';\nimport React, { useEffect, 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 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 ContainerWrap,\n CTA,\n FixedWidthContainer,\n Layout,\n Text,\n TextAlignment,\n TextAppearance,\n TextColor,\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, { 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 ContainerWrap,\n styled,\n Text,\n TextAppearance,\n Image\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 } from 'react';\nimport { OneFormState, Steps } from 'src/types';\nimport { RenderController } from 'src/feature-app/Screen';\nimport { Text, TextAppearance } 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 TextAppearance,\n Layout,\n BreakpointWrapper,\n ContainerWrap,\n ContainerGutter,\n CTA,\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, TextAppearance } 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 {\n BreakpointWrapper,\n Breakpoints,\n styled,\n Text,\n TextAppearance,\n TextColor,\n TextAlignment,\n ThemeProvider,\n Container,\n ContainerPadding,\n ContainerHorizontalAlignment,\n CTA,\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 LastNavigationLEM = (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 } 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 { 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 { CarlineSelect, DetalleMotivo, MultipleCTASelection } from 'src/components';\nimport { PeriodoContacto } from 'src/components/PeriodoContacto';\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, MolecularResponse, OneFormState, Steps } from 'src/types';\nimport { formDataBuilder } from '../format-fields';\nimport { useInitializeLEMForm } from './';\nimport { LEMLastScreenFields, ThanKYouLEM } from 'src/forms/LEM';\nimport { LEMFormProps } from './LEMController';\nimport { checkIdLeadHasCarline } from './use-initialize-lem-form';\nimport { addRemovedStep, getIndexInSteps, removeStep, resetStepsScreenIndex } from '../helpers/add-remove-steps';\nimport { CTAsSiNo, CTAsTipoVisitaNo } from 'src/feature-app/InputsValues/CTAsObjects';\n\nexport enum LEMContactadoSteps {\n Modelo,\n PeriodoContacto,\n ProximoContacto,\n TipoVisita,\n MasInformacion,\n EnviarInformacion,\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, handleError, presubmit, trackFormLoad, showPantallaModelo } = props;\n const [loadingPresubmit, setLoadingPresubmit] = useState(true);\n const { initializeForm, handleNextStep } = useOneFormContext();\n const store = useStore();\n const { proximoContacto } = useSelector((state: OneFormState) => state.formData.fields);\n const dispatch = useDispatch();\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 outputs: ['modelo'],\n outputsText: ['modelo'],\n },\n {\n title: getPeriodoContactoTitle(showPantallaModelo),\n fields: } />,\n screenIndex: LEMContactadoSteps.PeriodoContacto,\n name: 'PeriodoContacto',\n outputs: ['periodoContacto'],\n outputsText: ['periodoContacto'],\n },\n {\n title: (\n <>\n ¿Habéis acordado un{' '}\n \n próximo{' '}\n \n contacto?*\n \n \n \n ),\n fields: (\n }\n />\n ),\n screenIndex: LEMContactadoSteps.ProximoContacto,\n name: 'ProximoContacto',\n outputs: ['proximoContacto'],\n outputsText: ['proximoContacto'],\n trueOrFalseQuestion: true,\n },\n {\n title: (\n <>\n ¿Por qué no{' '}\n \n exactamente?\n *\n \n \n ),\n fields: (\n }\n />\n ),\n screenIndex: LEMContactadoSteps.TipoVisita,\n name: 'TipoVisita',\n outputs: ['tipoVisita'],\n outputsText: ['tipoVisita'],\n },\n {\n title: (\n <>\n ¿Hay algo más que nos quieras{' '}\n \n contar?*\n \n \n ),\n fields: } />,\n screenIndex: LEMContactadoSteps.MasInformacion,\n name: 'MasInformacion',\n outputs: ['masInformacion'],\n outputsText: ['masInformacion'],\n },\n {\n title: (\n <>\n ¿Podemos compartir tu respuesta con el{' '}\n \n punto de venta?\n *\n \n \n ),\n fields: ,\n screenIndex: LEMContactadoSteps.EnviarInformacion,\n name: 'EnviarInformacion',\n outputs: ['enviarInformacion'],\n outputsText: ['enviarInformacion'],\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 const sendPresubmit = async () => {\n const result = await sendForm(true);\n\n if (!result) {\n handleError();\n }\n setLoadingPresubmit(false);\n };\n if (presubmit) {\n sendPresubmit();\n } else {\n setLoadingPresubmit(false);\n }\n }, []);\n\n useEffect(() => {\n if (proximoContacto) {\n modifyStepsNextContact(proximoContacto);\n }\n }, [proximoContacto]);\n\n const modifyStepsNextContact = (proximoContacto: 'true' | 'false') => {\n const { steps: actualSteps, screenIndex } = store.getState().formInfo;\n\t\tlet newSteps = [...actualSteps];\n if (proximoContacto === 'false') {\n const stepIndex = getIndexInSteps(newSteps, 'TipoVisita');\n\n\t\t\tif (stepIndex === -1) {\n\t\t\t\tnewSteps = addRemovedStep(steps, actualSteps, 'TipoVisita', 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, 'TipoVisita');\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 const getCarlineFields = (fields: any, idLead: IdLead) => {\n if (checkIdLeadHasCarline(idLead)) {\n return {\n 'fields[COD_INTEREST_CARLINE]': idLead.NUM_COD_INTEREST_CARLINE__c, // SOLO EN SUBMIT\n 'fields[DESC_INTEREST_CARLINE]': idLead.DESC_Model__c, // SOLO EN SUBMIT\n };\n } else {\n return {\n 'fields[COD_INTEREST_CARLINE]': fields.carlineCode, // SOLO EN SUBMIT\n 'fields[DESC_INTEREST_CARLINE]': fields.modelo, // SOLO EN SUBMIT\n };\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 'headers[TC]': tc,\n 'headers[PINCODE]': dpsData.pincode.pincodeResponse.params.pincode,\n 'headers[FECHA_INSERTION_DATE]': today,\n 'headers[DESC_VN_VO]': 'VN',\n\n 'headers[DESC_TOKEN]': 'VW_DDB_FRM_LEM_ENCUESTA_CONTESTADO', // CAMBIA PRESUMBIT/SUBMIT\n 'headers[DESC_ID_CLIMAPRO]': idLead.ID_Person_DIM_IMP__c,\n 'headers[DESC_ID_CAMPAIGN]': '7010Y0000001tAOQAY',\n 'headers[DESC_FORM_DETAIL]': 'LEM Contactado', // CAMBIA PRESUMBIT/SUBMIT\n 'headers[DESC_FORMOBJECTIVE]': 'Encuesta',\n 'headers[DESC_DEVICETYPE]': device,\n 'headers[DESC_CAMPAIGNBLOCK]': '9. VW LEM',\n 'headers[DESC_BRAND]': 'VW',\n 'headers[COD_FORM_ID]': fields.formName ? `vw-oneform-${fields.formName}` : `vw-oneform-${data.fields.formName}`,\n 'headers[DESC_URLORIGIN]': url,\n\n 'fields[NUM_CELLPHONE]': idPerson.NUM_Phone_mobile__c,\n 'fields[M_OBSERVATION]': fields.masInformacion, // SOLO EN SUBMIT\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_LOPD]': 'PERMITE', // SOLO EN SUBMIT\n 'fields[DESC_LEM_DEALER_PERFORMANCE]': dpsData.rating, // SOLO EN CONTACTADO\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_EMAIL_ADDRESS]': idPerson.TXT_Email__c,\n 'fields[DESC_DEALER_SHARE]': fields.enviarInformacion === 'Sí' ? 'True' : 'False', // SOLO EN SUBMIT\n 'fields[DESC_DEALER_CODE]': idLead.TXT_DESC_DEALER_CODE__c,\n 'fields[DESC_DEALER]': idLead.DESC_Dealer_Code__c,\n 'fields[DESC_AUXFIELD2]': fields.proximoContacto === 'true' ? 'True' : 'False',\n 'fields[DESC_AUXFIELD1]': fields.tipoVisita, // SOLO EN SUBMIT Y CONTACTADO\n 'fields[COD_LEM_CONTACT_TIME]': fields.periodoContacto, // SOLO EN SUBMIT\n 'fields[COD_LEAD_ID]': idLead.Id,\n ...getCarlineFields(fields, idLead),\n\n 'flags[FLAG_ISDATA_CHANGED]': 'false', // Solo puede ser true en grabación No Contactado\n 'flags[FLAG_CONTACTED]': dpsData.contactado,\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(LEMContactadoData);\n\n delete data['fields[COD_LEM_CONTACT_TIME]'];\n delete data['fields[DESC_AUXFIELD1]'];\n delete data['fields[DESC_AUXFIELD2]'];\n delete data['fields[M_OBSERVATION]'];\n delete data['fields[DESC_DEALER_SHARE]'];\n delete data['fields[DESC_NAME]'];\n delete data['fields[DESC_SURNAME_1]'];\n delete data['fields[DESC_SURNAME_2]'];\n delete data['fields[DESC_EMAIL_ADDRESS]'];\n delete data['fields[NUM_CELLPHONE]'];\n delete data['fields[COD_INTEREST_CARLINE]'];\n delete data['fields[DESC_LOPD]'];\n delete data['fields[DESC_INTEREST_CARLINE]'];\n delete data['headers[PINCODE]'];\n\n data['headers[DESC_FORM_DETAIL]'] = 'LEM Pregrabación';\n data['headers[DESC_TOKEN]'] = 'VW_DDB_FRM_LEM_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);\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 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, styled } from '@volkswagen-onehub/components-core';\nimport React, { useEffect, useState } from 'react';\nimport { useDispatch, useSelector, useStore } from 'react-redux';\nimport { dpsSend } from 'src/bff';\nimport { CarlineSelect, Email, PantallaNombreApellido, Telefono, ContactInfoWrapper } 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 { useInitializeLEMForm } from '.';\nimport { formDataBuilder } from '../format-fields';\nimport { LEMFormProps } from './LEMController';\nimport { checkIdLeadHasCarline } from './use-initialize-lem-form';\nimport { LEMLastScreenFields, ThanKYouLEM } from 'src/forms/LEM';\n\nexport enum LEMNoContactadoSteps {\n Modelo,\n NombreApellido,\n EmailTelefono,\n EnviarInformacion,\n}\n\nconst getEmailTelefonoTitle = (name: string) => {\n return (\n <>\n {name}, ¿nos podrías confirmar tus datos de contacto?\n \n );\n};\n\nexport function LEMNoContactadoForm(props: LEMFormProps) {\n const { dpsData, idLead, idPerson, handleError, presubmit, trackFormLoad } = props;\n const [loadingPresubmit, setLoadingPresubmit] = useState(true);\n const { initializeForm } = useOneFormContext();\n const store = useStore();\n const { name } = useSelector((state: OneFormState) => state.formData.fields);\n const dispatch = useDispatch();\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 outputs: ['modelo'],\n outputsText: ['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.NombreApellido,\n name: 'NombreApellido',\n outputs: ['name', 'surname', 'secondSurname'],\n outputsText: ['name', 'surname', 'secondSurname'],\n },\n {\n title: getEmailTelefonoTitle(idPerson.FirstName),\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 ¿Podemos compartir tu respuesta con el{' '}\n \n punto de venta?\n *\n \n \n ),\n fields: ,\n screenIndex: LEMNoContactadoSteps.EnviarInformacion,\n name: 'EnviarInformacion',\n outputs: ['enviarInformacion'],\n outputsText: ['enviarInformacion'],\n },\n ];\n\n const LEMNoContactadoData: Partial = {\n headers: {},\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 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 if (presubmit) {\n sendPresubmit();\n } else {\n setLoadingPresubmit(false);\n }\n }, []);\n\n useEffect(() => {\n if (name && name !== idPerson.FirstName) {\n const newSteps = [...steps];\n const indexOfEmailTelefono = newSteps.findIndex((step) => step.name === 'EmailTelefono');\n\n newSteps[indexOfEmailTelefono].title = getEmailTelefonoTitle(name);\n\n dispatch({ type: 'UPDATE_STEPS', payload: newSteps });\n }\n }, [name]);\n\n const getCarlineFields = (fields: any, idLead: IdLead) => {\n if (checkIdLeadHasCarline(idLead)) {\n return {\n 'fields[COD_INTEREST_CARLINE]': idLead.NUM_COD_INTEREST_CARLINE__c, // SOLO EN SUBMIT\n 'fields[DESC_INTEREST_CARLINE]': idLead.DESC_Model__c, // SOLO EN SUBMIT\n };\n } else {\n return {\n 'fields[COD_INTEREST_CARLINE]': fields.carlineCode, // SOLO EN SUBMIT\n 'fields[DESC_INTEREST_CARLINE]': fields.modelo, // SOLO EN SUBMIT\n };\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 'headers[TC]': tc,\n 'headers[PINCODE]': dpsData.pincode.pincodeResponse.params.pincode,\n 'headers[FECHA_INSERTION_DATE]': today,\n 'headers[DESC_VN_VO]': 'VN',\n\n 'headers[DESC_TOKEN]': 'VW_DDB_FRM_LEM_ENCUESTA_CONTESTADO', // CAMBIA PRESUMBIT/SUBMIT\n 'headers[DESC_ID_CLIMAPRO]': idLead.ID_Person_DIM_IMP__c,\n 'headers[DESC_ID_CAMPAIGN]': '7010Y0000001tAOQAY',\n 'headers[DESC_FORM_DETAIL]': 'LEM No Contactado', // CAMBIA PRESUMBIT/SUBMIT\n 'headers[DESC_FORMOBJECTIVE]': 'Encuesta',\n 'headers[DESC_DEVICETYPE]': device,\n 'headers[DESC_CAMPAIGNBLOCK]': '9. VW LEM',\n 'headers[DESC_BRAND]': 'VW',\n 'headers[COD_FORM_ID]': fields.formName ? `vw-oneform-${fields.formName}` : `vw-oneform-${data.fields.formName}`,\n 'headers[DESC_URLORIGIN]': url,\n\n 'fields[NUM_CELLPHONE]': idPerson.NUM_Phone_mobile__c,\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_LOPD]': 'PERMITE', // SOLO EN SUBMIT\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_EMAIL_ADDRESS]': idPerson.TXT_Email__c,\n 'fields[DESC_DEALER_SHARE]': fields.enviarInformacion === 'Sí' ? 'True' : 'False', // SOLO EN SUBMIT\n 'fields[DESC_DEALER_CODE]': idLead.TXT_DESC_DEALER_CODE__c,\n 'fields[DESC_DEALER]': idLead.DESC_Dealer_Code__c,\n 'fields[COD_LEAD_ID]': idLead.Id,\n ...getCarlineFields(fields, idLead),\n\n 'flags[FLAG_ISDATA_CHANGED]': checkIfDataChanged(fields, idPerson), // Hay que detectar si el usuario cambia algún dato\n 'flags[FLAG_CONTACTED]': dpsData.contactado,\n };\n };\n\n const checkIfDataChanged = (fields: any, idPerson: IdPerson) => {\n if (\n fields.name === idPerson.FirstName &&\n fields.surname === idPerson.LastName &&\n fields.secondSurname === idPerson.TXT_2_Surname__c &&\n fields.email === idPerson.TXT_Email__c &&\n fields.cellphone === idPerson.NUM_Phone_mobile__c\n ) {\n return 'false';\n }\n return 'true';\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(LEMNoContactadoData);\n\n delete data['fields[DESC_DEALER_SHARE]'];\n delete data['fields[DESC_NAME]'];\n delete data['fields[DESC_SURNAME_1]'];\n delete data['fields[DESC_SURNAME_2]'];\n delete data['fields[DESC_EMAIL_ADDRESS]'];\n delete data['fields[NUM_CELLPHONE]'];\n delete data['fields[COD_INTEREST_CARLINE]'];\n delete data['fields[DESC_LOPD]'];\n delete data['fields[DESC_INTEREST_CARLINE]'];\n delete data['headers[PINCODE]'];\n\n data['headers[DESC_FORM_DETAIL]'] = 'LEM Pregrabación';\n data['headers[DESC_TOKEN]'] = 'VW_DDB_FRM_LEM_ENCUESTA';\n data['flags[FLAG_ISDATA_CHANGED]'] = 'false';\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\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.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 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 { 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 { 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';\n\nexport interface LEMFormProps {\n idLead: IdLead;\n idPerson: IdPerson;\n dpsData: DpsData;\n handleError: () => void;\n presubmit: boolean;\n trackFormLoad: () => void;\n showPantallaModelo: boolean;\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 [showPantallaModelo, setShowPantallaModelo] = 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 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 //if (true) {\n if (dpsData.push !== 'true' && today.diff(leadCreatedDate, 'day') < 7) {\n setPresubmit(true);\n setContactado(dpsData.contactado === 'true');\n } else if (dpsData.push == 'true' && today.diff(leadCreatedDate, 'day') < 14) {\n setContactado(dpsData.contactado === 'true');\n } else {\n setCaducado(true);\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 (caducado) {\n return (\n <>\n \n \n );\n } else if (usado) {\n return (\n <>\n \n \n );\n } else {\n return (\n <>\n {contactado ? (\n \n ) : (\n \n )}\n \n );\n }\n}\n","import React, { useState, useEffect} from 'react';\nimport { CTA, Text, TextAppearance, TextColor, TextAlignment } 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 {LastNavigationLEM} 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 LEMLastScreenFields() {\n return (\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} from 'src/components';\nimport { OneElementTemplate, OneElementTemplateFullScreen } from 'src/feature-app/Screen';\nimport { MapaLeads } from 'src/forms/Leads';\nimport { Steps } from 'src/types';\nimport { ConfirmacionLeads } from '../ConfirmacionLeads';\nimport { Text } from '@volkswagen-onehub/components-core';\nimport { leadsCitaVentaData, leadsCitaVentaDealerData } from '.';\nimport { MapaLeadsInPage, partialDataCitaConfigurador, ConfirmacionLeadInPage } 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({ configRef, 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 citaVentaSteps: 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 <>\n {\n inPage ? : \n }\n \n ),\n screenIndex: CitaVentaSteps.Confirmacion,\n name: 'Confirmacion',\n isLastStep: true,\n hidePreviousStep: true,\n },\n ];\n const filteredSteps = citaVentaSteps.filter((step) => step !== null);\n const { loading, steps, firstStep, lastStep } = useInitializeLeadForm(filteredSteps, false, configRef, isConfigurador);\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: { DESC_FORMOBJECTIVE: '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',\n formType: 'contact',\n pageCategory: 'Cita',\n },\n};\n\nexport const leadsCitaVentaDealerData: Partial = {\n headers: { DESC_FORMOBJECTIVE: '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-dealer',\n formType: 'contact',\n pageCategory: 'Cita',\n },\n};\n","import {\n Breakpoints,\n Container,\n ContainerGutter,\n ContainerPadding,\n ContainerWrap,\n Layout,\n Text,\n TextAppearance,\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 ContainerHorizontalAlignment,\n ContainerPadding,\n ContainerWrap,\n Layout,\n Text,\n TextAlignment,\n TextAppearance,\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'); // 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 } from 'src/bff';\nimport { getOption, getModelFilter, getFeatures, getWheels } from 'src/bff/get-marketing-code';\nimport {\n FormController,\n removeWhiteSpace,\n useFaContent,\n useFeatureAppConfig,\n useGetInstalaciones,\n useGetWaidLitera,\n useOneFormContext,\n formatPrefix,\n} from 'src/feature-app';\nimport { getParamsForm } from 'src/feature-app/get-params-form';\nimport { CarlineBase, FormDataGroup, FormDataHeaders, FormInfo, Horario, OneFormState, Steps } 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 isLeadDealer?: boolean;\n configRef?: ConfigurationWithMandatoryBuildabilityV2;\n updatedFormData?: Partial;\n updatedFormInfo?: Partial;\n isOfertasOrMatch?: boolean;\n inPage?: boolean;\n isConfigurador?: boolean;\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.DESC_FORMOBJECTIVE;\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[CITA_PREVIA_PREFERRED_SCHEDULE]': horarioFormatted };\n }\n return horarioField;\n };\n\n const getConfiguradorData = async (isConfigurador: boolean) => {\n const { marketingCodeData, marketingCodeResponse } = store.getState().formData.fields;\n\n if (!marketingCodeResponse) return null;\n //const price = await getPriceDataWithMarketingCode(marketingCodeResponse);\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\n const equipmentLine = getModelFilter(\"EquipmentLine\",marketingCodeResponse?.content.consolidatedData.meta.modelFilter);\n\n return {\n 'fields[COD_INTEREST_CARLINE]': marketingCodeResponse?.content.consolidatedData.model_code.split(\"_\")[1],\n 'fields[DESC_INTEREST_CARLINE]': marketingCodeResponse?.content.consolidatedData.model_description,\n 'fields[COD_VEH_SALESGROUP]': salesgroup.option.code.replace('SALESGROUP:',''),\n 'fields[DESC_VEH_SALESGROUP]': salesgroup.option.description,\n 'fields[DESC_TRIM_LINE]': equipmentLine.modelFilter.text,\n 'fields[COD_VEH_TMAIMG]': baseType.option.code.replace('BASETYPE:',''),\n 'fields[DESC_VEH_TMAIMG]': type.option.description,\n 'fields[DESC_VEH_MARKETING_CODE]': marketingCodeData?.marketingCode\n //'fields[COD_VEH_COLOR]': marketingCodeResponse?.consolidatedData?.exterior?.code,\n //'fields[DESC_VEH_COLOR]': marketingCodeResponse?.consolidatedData?.exterior?.name,\n //'fields[COD_VEH_COLOR_INT]': marketingCodeResponse?.consolidatedData?.interior?.code,\n //'fields[DESC_VEH_COLOR_INT]': marketingCodeResponse?.consolidatedData?.interior?.name,\n /*\n 'fields[DESC_VEH_OFFER_PRICE]': price?.body?.amount\n ? `Precio final de la configuración: ${price?.body?.amount}Eur`\n : undefined,\n 'fields[COD_INTEREST_PR]': getFeatures(marketingCodeResponse?.consolidatedData?.features),\n ...getWheels(marketingCodeResponse?.expandedConfiguration?.features),\n */\n };\n\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 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 //resolve(true);\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 '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 : '7010Y0000001tAOQAY',\n\n 'headers[FECHA_INSERTION_DATE]': today,\n 'headers[TC]': tc,\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[COD_LEAD_ID]': 'VW_DDB_FRM_LEM_REC_LEM',\n 'fields[DESC_VEH_BRAND]': 'Volkswagen',\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[M_OBSERVATION]': fields.comments,\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,\n 'fields[DESC_DATA_ENRICHMENT]': 'NO INFORMADO',\n ...getSalesGroup(salesGroup),\n ...getHorario(fields.horario),\n ...getDpsFields(faContent),\n ...(await getOfertasData(formData, dealersInfo)),\n ...(await getMatchData(formData, dealersInfo, faContent)),\n ...(await getConfiguradorData(isConfigurador)),\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 leadGenericoData: Partial = {\n headers: {\n DESC_BRAND: 'VW', // OK\n DESC_CAMPAIGNBLOCK: '9. VW LEM', // OK\n DESC_WAID_LITERA: waid ? waid : 'B09C01_LEM_WA1',\n DESC_TOKEN: 'VW_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_MAILRECEPCIONLEAD: 'true',\n FLAG_ISQUALIFIED: 'false',\n REQUIERE_CONTACTO_DEALER: '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 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","\nimport React, { useEffect, useState } from 'react';\nimport { Text, TextAppearance } 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 { 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 } from 'src/bff';\nimport { TOKEN_LEADS_COMERCIALES, TOKEN_LEADS_TURISMOS } from 'src/globals';\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 fetchProvince(isComerciales ? TOKEN_LEADS_COMERCIALES : TOKEN_LEADS_TURISMOS).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 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","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 } from 'src/forms';\nimport {\n DetalleMotivo\n} from 'src/components';\nimport { FormInfo, Steps } from 'src/types';\nimport { ConfirmacionLeads } from '../ConfirmacionLeads';\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, ConfirmacionLeadInPage } 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({ configRef, 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 <>\n {\n inPage ? : \n }\n \n ),\n screenIndex: MasInformacionSteps.Confirmacion,\n name: 'Confirmacion',\n isLastStep: true,\n hidePreviousStep: true,\n },\n ];\n const filteredSteps = defaultSteps.filter((step) => step !== null);\n\n const { loading, steps, firstStep, lastStep } = useInitializeLeadForm(filteredSteps, false, configRef, isConfigurador);\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: { DESC_FORMOBJECTIVE: '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: { DESC_FORMOBJECTIVE: '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 { ConfirmacionLeadsNoQuestions, MapaLeads } 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\ninterface OfertasFormProps {\n isPilotoConsentimientos?: boolean;\n}\n\nexport function OfertaForm(props: OfertasFormProps) {\n const { dealersInfo } = useSelector((state: OneFormState) => state);\n const isComerciales = useIsComerciales();\n const brand = useGetBrand();\n const faContent = useFaContent();\n const [stepsOrder, setStepsOrder] = useState([]);\n const {\n isPilotoConsentimientos\n } = props;\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 prueba piloto con Golf y Polo\n let filteredStepsDefault = carlineCode === 30310 || carlineCode === 30205 ? defaultSteps : stepsNewOrder;\n\n // Solo para piloto de consentimientos en turismos vamos a añadir los steps (20% de las veces)\n if (!isComerciales && isPilotoConsentimientos) {\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: { DESC_FORMOBJECTIVE: isComerciales ? 'SF201903221335' : 'Presupuesto' },\n fields: {\n formFields: {},\n formularioFlag: 'Presupuesto',\n formName: 'lead-oferta',\n formType: 'quote',\n pageCategory: (!isComerciales && isPilotoConsentimientos) ? '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} from 'src/components';\nimport { OneElementTemplate, OneElementTemplateFullScreen } from 'src/feature-app/Screen';\nimport { MapaLeads } from 'src/forms';\nimport { FormInfo, Steps } from 'src/types';\nimport { ConfirmacionLeads } from '../ConfirmacionLeads';\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, ConfirmacionLeadInPage } 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({ configRef, 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 <>\n {\n inPage ? : \n }\n \n ),\n screenIndex: PresupuestoSteps.Confirmacion,\n name: 'Confirmacion',\n isLastStep: true,\n hidePreviousStep: true,\n },\n ];\n\n const filteredSteps = defaultSteps.filter((step) => step !== null);\n\n const { loading, steps, firstStep, lastStep } = useInitializeLeadForm(filteredSteps, isOfertasOrMatch, configRef, isConfigurador);\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: { DESC_FORMOBJECTIVE: '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: { DESC_FORMOBJECTIVE: '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: { DESC_FORMOBJECTIVE: 'Stock' },\n fields: {\n formFields: { M_OBSERVATION_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: { DESC_FORMOBJECTIVE: 'Stock' },\n fields: {\n ...leadsStockPartialData.fields,\n formFields: undefined\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} from 'src/components';\nimport { OneElementTemplate, OneElementTemplateFullScreen } from 'src/feature-app/Screen';\nimport { FormInfo, Steps } from 'src/types';\nimport { ConfirmacionLeads } from 'src/forms/Leads/ConfirmacionLeads';\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, ConfirmacionLeadInPage } 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({ configRef, inPage, isConfigurador, isLeadDealer }: LeadsFormsProps) {\n const isComerciales = useIsComerciales();\n const [partialData, setPartialData] = useState(null);\n\n useEffect(() => {\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 <>\n {\n inPage ? : \n }\n \n ),\n screenIndex: TestDriveSteps.Confirmacion,\n name: 'Confirmacion',\n isLastStep: true,\n hidePreviousStep: true,\n },\n ];\n\n const filteredSteps = defaultSteps.filter((step) => step !== null);\n\n const { loading, steps, firstStep, lastStep } = useInitializeLeadForm(filteredSteps, false, configRef, isConfigurador);\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: { DESC_FORMOBJECTIVE: '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: { DESC_FORMOBJECTIVE: '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.TXT_V_Installation_Data_Name__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 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 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\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[COD_VEH_SALESGROUP]': salesgroup.option.code.replace('SALESGROUP:',''),\n 'fields[DESC_VEH_SALESGROUP]': salesgroup.option.description,\n 'fields[DESC_TRIM_LINE]': equipmentLine.modelFilter.text,\n 'fields[COD_VEH_TMAIMG]': baseType.option.code.replace('BASETYPE:',''),\n 'fields[DESC_VEH_TMAIMG]': type.option.description,\n 'fields[DESC_FINANCIAL_PRODUCT]': oferta.financiacionText?.slice(4),\n 'fields[DESC_VEH_OFFER]': createOfferPrice(oferta),\n 'fields[M_OBSERVATION_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 'fields[COD_INTEREST_CARLINE]': match?.carline.code,\n 'fields[DESC_INTEREST_CARLINE]': match?.carline.title,\n 'fields[COD_VEH_SALESGROUP]': salesgroup.option.code.replace('SALESGROUP:',''),\n 'fields[DESC_VEH_SALESGROUP]': salesgroup.option.description,\n 'fields[DESC_TRIM_LINE]': equipmentLine.modelFilter.text,\n 'fields[COD_VEH_TMAIMG]': baseType.option.code.replace('BASETYPE:',''),\n 'fields[DESC_VEH_TMAIMG]': type.option.description,\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[DESC_AUXFIELD2]': getMatchHash(),\n 'fields[DESC_AUXFIELD3]': match?.affinity,\n 'fields[DESC_AUXFIELD4]': match?.precio,\n 'fields[DESC_AUXFIELD5]': match?.etiquetaDGT.toUpperCase(),\n 'fields[DESC_AUXFIELD6]': 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[DESC_PRF_BUDGET]': options.budget,\n 'fields[DESC_PRF_COMPANION]': appendJsonKey(getPassengers(options.passengers)),\n 'fields[DESC_PRF_TRIP]': appendJsonKey(getUsage(options.usage)),\n 'fields[DESC_PRF_BAGGAGE]': appendJsonKey(getLuggage(options.luggage)),\n 'fields[DESC_PRF_CAR_CHARACTERISTICS]': appendJsonKey(getHighlights(options.highlights)),\n 'fields[DESC_PRF_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, useState } from 'react';\nimport { useDispatch } from 'react-redux';\nimport { getCarlines, getDataUrl, getSalesgroups } from 'src/bff';\nimport { OneFormContent, useFaContent, useFeatureServices } from 'src/feature-app';\nimport { findCarlineFromSalesgroup, findCarline, isCarlineMode } from 'src/components';\nimport { CarlineBase, CarlinesWithSalesgroups, SalesGroupInfo, Steps } from 'src/types';\nimport { ConfigurationWithBuildabilityV2 } from '@volkswagen-onehub/car-configuration-feature-service';\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 isOfertasOrMatch?: boolean,\n configRef?: ConfigurationWithBuildabilityV2,\n isConfigurador?: 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 const requestCarlines = async () => {\n let carlines;\n\n if (faContent?.mode === 'Carline') {\n carlines = await getCarlines();\n } else {\n carlines = await getSalesgroups();\n }\n\n dispatch({ type: 'SET_CARLINES', payload: carlines });\n\n return carlines;\n };\n\n const getCarlineAndSalesgroup = (carlines: CarlineBase[]): { carline: CarlineBase; salesgroup: SalesGroupInfo } => {\n let carlineCode: string = carConfigurationService.get().carlineId;\n let salesgroupId = carConfigurationService.get().salesGroupId;\n\n if ((isOfertasOrMatch && faContent?.oferta)) {\n // Formulario de ofertas o match\n let offer = faContent.oferta;\n\n const carline = findCarline(carlines, offer.carline.code);\n const salesgroup = createSalesgroup(\n faContent.marketingCodeConfig?.SalesgroupId,\n faContent.marketingCodeConfig?.SalesgroupName\n ); // puede que no sea necesaria esta parte, también se hace la request del marketing code al momento del envío.\n\n dispatch({ type: 'SET_OFERTA', payload: offer });\n\n return { carline, salesgroup };\n }\n if ((isOfertasOrMatch && faContent?.match)) {\n // Formulario de ofertas o match\n let match = faContent.match;\n\n const carline = findCarline(carlines, match.carline.code);\n const salesgroup = createSalesgroup(\n faContent.marketingCodeConfig?.SalesgroupId,\n faContent.marketingCodeConfig?.SalesgroupName\n ); // puede que no sea necesaria esta parte, también se hace la request del marketing code al momento del envío.\n\n dispatch({ type: 'SET_MATCH', payload: match });\n\n return { carline, salesgroup };\n }\n else if (configRef) {\n // Formulario configurador\n const carline = findCarline(carlines, Number(configRef.carlineId));\n const salesgroup = createSalesgroup(configRef.salesGroupId, '');\n\n return { carline, salesgroup };\n } else if (carlineCode && salesgroupId) {\n // Showroom\n const carline = findCarline(carlines, Number(carlineCode), Number(salesgroupId));\n const salesgroupCarline = findSalesgroup(carline, salesgroupId);\n const salesgroup = createSalesgroup(salesgroupCarline?.code, salesgroupCarline?.name);\n\n return { carline, salesgroup };\n } else if (carlineInFaContent(faContent)) {\n let carline;\n carline = findCarline(carlines, (faContent.carlines[0]));\n\n return { carline, salesgroup: null };\n } else if (salesgroupInFaContent(faContent) && !isCarlineMode(faContent)) {\n const carline = findCarlineFromSalesgroup(carlines, Number(faContent.salesgroups[0]));\n const salesgroupCarline = findSalesgroup(carline, String(faContent.salesgroups[0]));\n const salesgroup = createSalesgroup(salesgroupCarline?.code, salesgroupCarline?.name);\n\n return { carline, salesgroup };\n }\n return { carline: null, salesgroup: null };\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 //inicio de leadInPage\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 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 } = getCarlineAndSalesgroup(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 dispatch({ type: 'SET_SELECTED_CARLINE', payload: carline });\n dispatch({\n type: 'SET_SALESGROUP',\n payload: salesgroup,\n });\n dispatch({\n type: 'UPDATE_FIELDS',\n payload: { modelo: carline.title },\n });\n }\n dispatchLead(updateSteps(finalSteps));\n });\n // console.log(err, 'error');\n });\n\n };\n\n const useLeadsWithModel = async (model: string, salesGroup?: string) => {\n await getModelInfo(model)\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 } = getCarlineAndSalesgroup(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 dispatch({ type: 'SET_SELECTED_CARLINE', payload: carline });\n dispatch({\n type: 'SET_SALESGROUP',\n payload: salesgroup,\n });\n dispatch({\n type: 'UPDATE_FIELDS',\n payload: { modelo: carline.title },\n });\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 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 ofertasUrl = () => {\n const path = window.location.pathname;\n return path.includes('ofertas')\n }\n\n useEffect(() => {\n const urlParams = new URLSearchParams(window.location.search);\n const marketingCode = urlParams.get('marketingCode');\n\n if (marketingCode) {\n useLeadsWithMarketingCode(marketingCode);\n\n } else {\n const [carline, salesGroup] = getModelFromUrl();\n if (carline && !isOfertasOrMatch) useLeadsWithModel(carline, salesGroup)\n else {\n requestCarlines().then((carlines) => {\n const { carline, salesgroup } = getCarlineAndSalesgroup(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 dispatch({ type: 'SET_SELECTED_CARLINE', payload: carline });\n dispatch({\n type: 'SET_SALESGROUP',\n payload: salesgroup,\n });\n dispatch({\n type: 'UPDATE_FIELDS',\n payload: { modelo: carline.title },\n });\n }\n dispatchLead(updateSteps(finalSteps));\n });\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: { DESC_FORMOBJECTIVE: '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 { ConfigurationWithMandatoryBuildabilityV2 } from '@volkswagen-onehub/car-configuration-feature-service';\nimport React, { useEffect, useState } from 'react';\nimport { useDispatch, useStore } from 'react-redux';\nimport { dpsSend, VicciData } from 'src/bff';\nimport { getEquipmentlineName, getFeatures, getWheels } from 'src/bff/get-marketing-code';\nimport {\n FormController,\n removeWhiteSpace,\n useFaContent,\n useFeatureAppConfig,\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 Horario,\n OneFormState,\n Steps,\n} from 'src/types';\nimport { ThankYouLeads, getCodInterestCarline, getDescInterestCarline, getMatchData, getSalesGroup, getOfertasData } from 'src/forms/Leads';\nimport { formatFields, formatFlags, formatHeaders, formDataBuilder, getDpsFields } from 'src/forms/format-fields';\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}\n\nexport interface LeadsFormsProps {\n configRef?: ConfigurationWithMandatoryBuildabilityV2;\n updatedFormData?: Partial;\n updatedFormInfo?: Partial;\n isOfertasOrMatch?: boolean;\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.DESC_FORMOBJECTIVE;\n\nexport function LeadInPageGenericoForm({ steps, leadData, leadInfo, firstStep, lastStep }: 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[CITA_PREVIA_PREFERRED_SCHEDULE]': horarioFormatted };\n }\n return horarioField;\n };\n\n const getConfiguradorData = async () => {\n if (config.trigger.includes('configure')) {\n const { vicciData }: { vicciData: VicciData } = store.getState().formData.fields;\n\n return {\n 'fields[COD_VEH_SALESGROUP]': vicciData?.consolidatedData?.vehicleConfiguration?.salesgroupKey,\n 'fields[DESC_VEH_SALESGROUP]': vicciData?.consolidatedData?.vehicleConfiguration?.salesgroupName,\n 'fields[DESC_TRIM_LINE]': getEquipmentlineName(vicciData?.consolidatedData?.vehicleConfiguration?.modelFilters),\n 'fields[COD_VEH_TMAIMG]': vicciData?.consolidatedData?.vehicleConfiguration?.modelKey.split('$')[0],\n 'fields[DESC_VEH_TMAIMG]': vicciData?.consolidatedData?.vehicleConfiguration?.modelName,\n 'fields[DESC_VEH_MARKETING_CODE]': vicciData?.marketingCode,\n 'fields[COD_VEH_COLOR]': vicciData?.consolidatedData?.vehicleConfiguration?.exterior?.code,\n 'fields[DESC_VEH_COLOR]': vicciData?.consolidatedData?.vehicleConfiguration?.exterior?.name,\n 'fields[COD_VEH_COLOR_INT]': vicciData?.consolidatedData?.vehicleConfiguration?.interior?.code,\n 'fields[DESC_VEH_COLOR_INT]': vicciData?.consolidatedData?.vehicleConfiguration?.interior?.name,\n 'fields[DESC_VEH_OFFER_PRICE]': vicciData?.priceData?.body?.amount\n ? `Precio final de la configuración: ${vicciData.priceData.body.amount}Eur`\n : undefined,\n 'fields[COD_INTEREST_PR]': getFeatures(vicciData?.consolidatedData?.vehicleConfiguration?.features),\n ...getWheels(vicciData?.featuresData?.vehicleCatalogue?.features),\n };\n }\n return null;\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 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 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 '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 : '7010Y0000001tAOQAY',\n\n 'headers[FECHA_INSERTION_DATE]': today,\n 'headers[TC]': tc,\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[COD_LEAD_ID]': 'VW_DDB_FRM_LEM_REC_LEM',\n 'fields[DESC_VEH_BRAND]': 'Volkswagen',\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_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_DATA_ENRICHMENT]': 'NO INFORMADO',\n ...getSalesGroup(salesGroup),\n ...getHorario(fields.horario),\n ...getDpsFields(faContent),\n ...(await getOfertasData(formData, dealersInfo)),\n ...(await getMatchData(formData, dealersInfo, faContent)),\n ...(await getConfiguradorData()),\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 leadGenericoData: Partial = {\n headers: {\n DESC_BRAND: 'VW', // OK\n DESC_CAMPAIGNBLOCK: '9. VW LEM', // OK\n DESC_WAID_LITERA: waid ? waid : 'B09C01_LEM_WA1',\n DESC_TOKEN: 'VW_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_MAILRECEPCIONLEAD: 'true',\n FLAG_ISQUALIFIED: 'false',\n REQUIERE_CONTACTO_DEALER: '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 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 {\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 { Text, TextAppearance } from '@volkswagen-onehub/components-core';\nimport React, { useEffect, useRef, useState } from 'react';\nimport { Provider, 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 {\n Breakpoints,\n BreakpointWrapper,\n Container,\n ContainerGutter,\n ContainerPadding,\n styled,\n Text,\n TextAppearance,\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 } from 'src/bff';\nimport { TOKEN_LEADS_COMERCIALES, TOKEN_LEADS_TURISMOS } from 'src/globals';\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 fetchProvince(isComerciales ? TOKEN_LEADS_COMERCIALES : TOKEN_LEADS_TURISMOS).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 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 { FormDataGroup } from 'src/types';\n\nexport const PartialDataMasInformacionConfigurador: Partial = {\n headers: { DESC_FORMOBJECTIVE: '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: { DESC_FORMOBJECTIVE: '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: { DESC_FORMOBJECTIVE: '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 TextAppearance,\n TextColor,\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, ContainerWrap, CTA, Image, 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 ContainerWrap,\n CTA,\n styled,\n Text,\n TextAppearance,\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 { Text, TextAppearance } from '@volkswagen-onehub/components-core';\nimport Axios, { AxiosResponse } from 'axios';\nimport 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 ContainerWrap,\n CTA,\n styled,\n ContainerPadding,\n Layout,\n Breakpoints,\n Text,\n TextAppearance,\n BreakpointWrapper,\n TextColor,\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, ContainerWrap, 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","import { Text, TextAppearance } from '@volkswagen-onehub/components-core';\nimport 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 { FormController, useOneFormContext, formatPrefix } 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 { 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 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 { dpsSend } 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 { formatHeaders, 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 ...formatHeaders(headers), // Headers comunes a todos los formularios de leads\n 'headers[COD_FORM_ID]': 'vw-oneform-newsletter',\n 'headers[DESC_URLORIGIN]': url,\n 'headers[DESC_BRAND]': 'VW',\n 'headers[DESC_CAMPAIGNBLOCK]': '4. VW Newsletter',\n 'headers[DESC_DEVICETYPE]': device,\n 'headers[DESC_FORMOBJECTIVE]': 'Suscripción Newsletter',\n 'headers[DESC_FORM_DETAIL]': 'ID', //Este debería pasarse a variable, aunque actualmente siempre sea ID\n 'headers[DESC_ID_CAMPAIGN]': '7011n000000APfGAAW',\n 'headers[DESC_TOKEN]': 'VW_DDB_FRM_ID_NEWSLETTER', //CONSULTAR\n\n 'headers[FECHA_INSERTION_DATE]': today,\n 'headers[TC]': tc,\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-newsletter-${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 notALayer: false,\n formType: 'layer',\n thankYouComponent: ,\n };\n\n initializeForm(NuevoFormInfo, NuevoFormData);\n }, []);\n\n return ;\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 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_FORM_NOCOMPRA'); // 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 Axios, { AxiosResponse } from 'axios';\nimport React, { useEffect, useState } from 'react';\nimport { useDispatch, useStore, useSelector } from 'react-redux';\nimport { FormController, useOneFormContext } from 'src/feature-app';\nimport { FormDataGroup, FormInfo, OneFormState, Steps, MolecularResponse } from 'src/types';\nimport { OneElementTemplateFullScreen } from 'src/feature-app/Screen';\nimport { Text } from '@volkswagen-onehub/components-core';\nimport { RatingStars, FechaCompra, SuggestModelo, PantallaIntroduccionStars } from 'src/components';\nimport { ConfirmacionNoCompra, ThankYouNoCompra } from '.';\nimport { formatHeaders, formDataBuilder } from '../format-fields';\nimport { dpsSend } from 'src/bff';\nimport { getParamsForm } from 'src/feature-app/get-params-form';\nimport { NoCompraFormProps } from './NoCompraController';\nimport { useInitializeNoCompraForm } from './use-initialize-no-compra-form';\nimport { useTrackingManager } from 'src/feature-app/hooks/use-tracking-manager';\nimport { getVehiculosModelo } from 'src/bff';\n\nexport enum NewCarFormSteps {\n FechaCompra,\n Modelo,\n Valoracion,\n Plazos,\n Visita,\n Precio,\n Equipamiento,\n Consumo,\n Garantia,\n Financiacion,\n Confirmacion,\n}\n\nconst getModeloInteresOutputs = (modelo: string, list: any) => {\n const aux = list.find((mod: any) => mod.name === 'modelo');\n return [aux.title];\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 const { modelo } = formData;\n\n //out modelo\n const [list, setList] = useState(null);\n\n useEffect(() => {\n getVehiculosModelo().then((modelos) => {\n setList(modelos);\n });\n }, []);\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 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: NewCarFormSteps.FechaCompra,\n name: 'FechaCompra',\n outputs: ['fecha'],\n outputsText: ['fecha'],\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 />\n ),\n screenIndex: NewCarFormSteps.Modelo,\n name: 'Modelo',\n outputs: ['modelo'],\n outputsText: ['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: NewCarFormSteps.Valoracion,\n name: 'Valoracion',\n },\n {\n title: Los plazos de entrega,\n alternateTitle: Los plazos de entrega,\n fields: (\n \n }\n />\n ),\n screenIndex: NewCarFormSteps.Plazos,\n name: 'Plazos',\n outputs: ['plazos'],\n outputsText: ['plazos'],\n outputsIsStars: true,\n },\n {\n title: Tu visita al punto de venta,\n fields: (\n }\n />\n ),\n screenIndex: NewCarFormSteps.Visita,\n name: 'Visita',\n outputs: ['visita'],\n outputsText: ['visita'],\n outputsIsStars: true,\n },\n {\n title: El precio del modelo,\n fields: (\n }\n />\n ),\n screenIndex: NewCarFormSteps.Precio,\n name: 'Precio',\n outputs: ['precio'],\n outputsText: ['precio'],\n outputsIsStars: true,\n },\n {\n title: El equipamiento y los asistentes adicionales,\n fields: (\n \n }\n />\n ),\n screenIndex: NewCarFormSteps.Equipamiento,\n name: 'Equipamiento',\n outputs: ['equipamiento'],\n outputsText: ['equipamiento'],\n outputsIsStars: true,\n },\n {\n title: El consumo del modelo,\n fields: (\n }\n />\n ),\n screenIndex: NewCarFormSteps.Consumo,\n name: 'Consumo',\n outputs: ['consumo'],\n outputsText: ['consumo'],\n outputsIsStars: true,\n },\n {\n title: La garantía del modelo,\n fields: (\n \n }\n />\n ),\n screenIndex: NewCarFormSteps.Garantia,\n name: 'Garantia',\n outputs: ['garantia'],\n outputsText: ['garantia'],\n outputsIsStars: true,\n },\n {\n title: Las condiciones de financiación,\n fields: (\n \n }\n />\n ),\n screenIndex: NewCarFormSteps.Financiacion,\n name: 'Financiacion',\n outputs: ['financiacion'],\n outputsText: ['financiacion'],\n outputsIsStars: true,\n },\n {\n fields: ,\n screenIndex: NewCarFormSteps.Confirmacion,\n name: 'Confirmacion',\n outputs: ['confirmacion'],\n outputsText: ['confirmacion'],\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: 'no_compra-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 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 'headers[TC]': tc,\n 'headers[PINCODE]': dpsData.pincode.pincodeResponse.params.pincode,\n 'headers[FECHA_INSERTION_DATE]': today,\n 'headers[DESC_VN_VO]': 'VN',\n\n 'headers[DESC_TOKEN]': 'VW_DDB_FORM_NOCOMPRA', // CAMBIA PRESUMBIT/SUBMIT\n 'headers[DESC_ID_CAMPAIGN]': '7011n000000Aj7uAAC',\n 'headers[DESC_FORM_DETAIL]': 'NoCompra Grabación', // CAMBIA PRESUMBIT/SUBMIT\n 'headers[DESC_FORMOBJECTIVE]': fields.quieroContacto === 'true' ? 'Más Información' : 'Encuesta',\n 'headers[DESC_DEVICETYPE]': device,\n 'headers[DESC_CAMPAIGNBLOCK]': '9. VW LEM',\n 'headers[DESC_BRAND]': 'VW',\n 'headers[COD_FORM_ID]': fields.formName ? `vw-oneform-${fields.formName}` : `vw-oneform-${data.fields.formName}`,\n 'headers[DESC_URLORIGIN]': url,\n\n //'fields[NUM_CELLPHONE]': idPerson.NUM_Phone_mobile__c,\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_LOPD]': 'PERMITE', // SOLO EN SUBMIT\n 'fields[DESC_TRANF_DATA_THIRD]': 'NO INFORMADO', // SOLO EN SUBMIT\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_FORM_VERSION]': fields.formName\n ? `vw-oneform-${fields.formName}-${process.env.VERSION}`\n : `vw-oneform-${data.fields.formName}-${process.env.VERSION}`,\n //'fields[DESC_EMAIL_ADDRESS]': idPerson.TXT_Email__c,\n //'fields[DESC_DEALER_SHARE]': fields.enviarInformacion === 'Sí' ? 'True' : 'False', // SOLO EN SUBMIT\n 'fields[DESC_DEALER_CODE]': idLead.TXT_DESC_DEALER_CODE__c,\n 'fields[DESC_DEALER]': idLead.DESC_Dealer_Code__c,\n 'fields[DESC_AUXFIELD20]': idLead.External_Id_Climapro__c,\n 'fields[DESC_AUXFIELD1]': 'Ya tengo',\n 'fields[DESC_AUXFIELD2]': fields.fecha,\n 'fields[DESC_AUXFIELD3]': fields.modelo,\n 'fields[DESC_AUXFIELD7]': fields.plazos,\n 'fields[DESC_AUXFIELD8]': fields.visita,\n 'fields[DESC_AUXFIELD9]': fields.precio,\n 'fields[DESC_AUXFIELD10]': fields.equipamiento,\n 'fields[DESC_AUXFIELD11]': fields.consumo,\n 'fields[DESC_AUXFIELD12]': fields.garantia,\n 'fields[DESC_AUXFIELD13]': fields.financiacion,\n 'fields[COD_LEAD_ID]': idLead.Id,\n 'fields[DESC_DATA_ENRICHMENT]': 'NO INFORMADO',\n // ...getCarlineFields(fields, idLead),\n\n 'flags[FLAG_ISLEAD]': 'false',\n 'flags[FLAG_ISPROSPECT]': 'false',\n 'flags[FLAG_GENERATELEM]': 'false',\n };\n };\n\n const generateSubmitData = () => generateData();\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(NuevoFormData);\n\n //\n delete data['headers[DESC_VN_VO]'];\n delete data['fields[DESC_TRANF_DATA_THIRD]'];\n //\n\n delete data['headers[PINCODE]'];\n delete data['flags[FLAG_ISLEAD]'];\n delete data['flags[FLAG_ISPROSPECT]'];\n delete data['flags[FLAG_GENERATELEM]'];\n delete data['fields[DESC_AUXFIELD3]'];\n delete data['fields[DESC_AUXFIELD2]'];\n //delete data['fields[DESC_DEALER_SHARE]'];\n //delete data['fields[DESC_NAME]'];\n //delete data['fields[DESC_SURNAME_1]'];\n ////delete data['fields[DESC_SURNAME_2]'];\n //delete data['fields[DESC_EMAIL_ADDRESS]'];\n //delete data['fields[NUM_CELLPHONE]'];\n delete data['fields[DESC_LOPD]'];\n delete data['fields[DESC_LSSI]'];\n delete data['fields[DESC_LOPD_GDPR_PERFILADO]'];\n delete data['fields[DESC_DATA_ENRICHMENT]'];\n\n data['fields[DESC_AUXFIELD1]'] = 'Ya tengo';\n data['headers[DESC_FORM_DETAIL]'] = 'NoCompra Pregrabación';\n data['headers[DESC_TOKEN]'] = 'VW_DDB_FORM_NOCOMPRA_PRE';\n\n return data;\n };\n\n const sendForm = async (isPresubmit?: boolean): Promise => {\n return new Promise(async (resolve, reject) => {\n const data = isPresubmit ? generatePresubmitData() : 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 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 useEffect(() => {\n if (modelo) updateModelo(modelo);\n }, [modelo]);\n\n return loading || loadingPresubmit || !steps ? null : ;\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 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 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 {\n Breakpoints,\n Container,\n ContainerPadding,\n styled,\n Text,\n TextAppearance,\n Layout,\n ContainerWrap,\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 ConfirmacionNoCompraProps {\n idPerson: IdPerson;\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 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_compra-no_tengo' && lssiPermited ? (\n
\n \n ¿Listo para enviar?\n \n
\n ) : (\n < Text appearance={TextAppearance.headline0350}>\n {generateLastQuestionTitle()}\n \n )}\n\n {formData.fields.formName === 'no_compra-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';\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 } from 'src/bff';\nimport { TOKEN_LEADS_COMERCIALES, TOKEN_LEADS_TURISMOS } from 'src/globals';\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 \n // Necesitamos el nombre de la provincia, y éste no está disponible en la request de instalaciones.\n fetchProvince(isComerciales ? TOKEN_LEADS_COMERCIALES : TOKEN_LEADS_TURISMOS).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 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 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 } from '@volkswagen-onehub/components-core';\nimport { CarlineSelect, MultipleCTASelection } from 'src/components';\nimport { ConfirmacionNoCompra, ThankYouNoCompra, MapaNoCompra, PantallaOtrosModelos } from '.';\nimport { NoCompraFormProps } from './NoCompraController';\nimport { formDataBuilder } from '../format-fields';\nimport { dpsSend } from 'src/bff';\nimport { useInitializeNoCompraForm } from './use-initialize-no-compra-form';\nimport { addRemovedStep, getIndexInSteps, removeStep, resetStepsScreenIndex } from '../helpers/add-remove-steps';\nimport { CTAsSiNo } from 'src/feature-app/InputsValues/CTAsObjects';\n\nconst getModeloInteresTitle = (quieroVolkswagen: string) => {\n if (quieroVolkswagen === 'true') {\n return (\n <>\n ¿Qué modelo en{' '}\n \n concreto?\n *\n \n \n );\n } else {\n return (\n <>\n ¿Qué otros modelos te interesan?\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\nconst getModeloInteresOutputs = (quieroVolkswagen: string) => {\n if (quieroVolkswagen === 'true') {\n return ['modelo'];\n } else {\n return ['modeloUno', 'modeloDos'];\n }\n};\nconst getModeloInteresOutputsText = (quieroVolkswagen: string) => {\n if (quieroVolkswagen === 'true') {\n return ['modelo'];\n } else {\n return ['modeloUno', ' / ', 'modeloDos'];\n }\n};\n\nexport enum SigueBuscandoFormSteps {\n QuieroVolkswagen,\n Modelo,\n MasInformacion,\n Mapa,\n Confirmacion,\n}\n\nexport function NoCompraNoTengo({ dpsData, idLead, idPerson, trackFormLoad, estado }: NoCompraFormProps) {\n const { initializeForm, handleNextStep } = useOneFormContext();\n const { formData, formInfo } = useSelector((state: OneFormState) => state);\n const { quieroVolkswagen, quieroContacto } = formData.fields;\n const { screenIndex } = formInfo;\n const dispatch = useDispatch();\n const [loadingPresubmit, setLoadingPresubmit] = useState(true);\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 = () => {\n const { quieroVolkswagen } = store.getState().formData.fields;\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 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 steps: Steps[] = [\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: SigueBuscandoFormSteps.QuieroVolkswagen,\n name: 'quieroVolkswagen',\n outputs: ['quieroVolkswagen'],\n outputsText: ['quieroVolkswagen'],\n trueOrFalseQuestion: true,\n },\n {\n title: <>, // Se actualiza en updateModeloInteresStep\n fields: <>, // Se actualiza en updateModeloInteresStep\n screenIndex: SigueBuscandoFormSteps.Modelo,\n name: 'Modelo',\n showOverflow: true,\n },\n {\n screenIndex: SigueBuscandoFormSteps.Mapa,\n name: 'Mapa',\n multiStep: true,\n component: ,\n },\n {\n fields: ,\n screenIndex: SigueBuscandoFormSteps.Confirmacion,\n name: 'Confirmacion',\n outputs: ['confirmacion'],\n outputsText: ['confirmacion'],\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: 'no_compra-no_tengo', formType: 'otherform', pageCategory: 'Encuesta' }, // Analítica\n };\n\n const generateData = (data?: Partial) => {\n const { formData, dealersInfo }: OneFormState = store.getState();\n const { fields, headers } = formData;\n const { selectedInstallation } = dealersInfo;\n\n let TXT_V_KVPS_code__c, FRML_TXT_codVentaProvincia__c;\n if (selectedInstallation) {\n TXT_V_KVPS_code__c = selectedInstallation.TXT_V_KVPS_code__c;\n FRML_TXT_codVentaProvincia__c = selectedInstallation.FRML_TXT_codVentaProvincia__c;\n }\n // let {\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 const { tc, today, url, device } = getParamsForm();\n return {\n 'headers[TC]': tc,\n 'headers[PINCODE]': dpsData.pincode.pincodeResponse.params.pincode,\n 'headers[FECHA_INSERTION_DATE]': today,\n 'headers[DESC_VN_VO]': 'VN',\n\n 'headers[DESC_TOKEN]': 'VW_DDB_FORM_NOCOMPRA', // CAMBIA PRESUMBIT/SUBMIT\n 'headers[DESC_ID_CAMPAIGN]': '7011n000000Aj7uAAC',\n 'headers[DESC_FORM_DETAIL]': 'NoCompra Grabación', // CAMBIA PRESUMBIT/SUBMIT\n 'headers[DESC_FORMOBJECTIVE]': fields.quieroContacto === 'true' ? 'Más Información' : 'Encuesta',\n 'headers[DESC_DEVICETYPE]': device,\n 'headers[DESC_CAMPAIGNBLOCK]': '9. VW LEM',\n 'headers[DESC_BRAND]': 'VW',\n 'headers[COD_FORM_ID]': fields.formName ? `vw-oneform-${fields.formName}` : `vw-oneform-${data.fields.formName}`,\n 'headers[DESC_URLORIGIN]': url,\n\n 'fields[NUM_CELLPHONE]': fields.quieroContacto === 'true' ? idPerson.NUM_Phone_mobile__c : null,\n 'fields[DESC_SURNAME_2]': fields.quieroContacto === 'true' ? idPerson.TXT_2_Surname__c : null,\n 'fields[DESC_SURNAME_1]': fields.quieroContacto === 'true' ? idPerson.LastName : null,\n 'fields[DESC_NAME]': fields.quieroContacto === 'true' ? idPerson.FirstName : null,\n 'fields[DESC_LOPD]': 'PERMITE', // SOLO EN SUBMIT\n 'fields[DESC_TRANF_DATA_THIRD]': 'NO INFORMADO', // SOLO EN SUBMIT\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_FORM_VERSION]': fields.formName\n ? `vw-oneform-${fields.formName}-${process.env.VERSION}`\n : `vw-oneform-${data.fields.formName}-${process.env.VERSION}`,\n 'fields[DESC_EMAIL_ADDRESS]': fields.quieroContacto === 'true' ? idPerson.TXT_Email__c : null,\n 'fields[DESC_DEALER_SHARE]': fields.compartir, // SOLO EN SUBMIT\n 'fields[DESC_DEALER_CODE]': idLead.TXT_DESC_DEALER_CODE__c,\n 'fields[DESC_DEALER]': idLead.DESC_Dealer_Code__c,\n 'fields[DESC_AUXFIELD1]': 'No tengo',\n 'fields[DESC_AUXFIELD4]': fields.quieroVolkswagen === 'true' ? null : fields.modeloUno ? fields.modeloUno : null,\n 'fields[DESC_AUXFIELD5]': fields.quieroVolkswagen === 'true' ? null : fields.modeloDos ? fields.modeloDos : null,\n 'fields[COD_INTEREST_CARLINE]': fields.carlineCode,\n 'fields[DESC_INTEREST_CARLINE]': fields.modelo,\n 'fields[DESC_AUXFIELD20]': idLead.External_Id_Climapro__c,\n 'fields[DESC_DEALER_PROVINCE]': fields.provinceName,\n 'fields[COD_DEALER_PROVINCE]': FRML_TXT_codVentaProvincia__c,\n 'fields[DESC_DEALER_CODE_KVPS]': TXT_V_KVPS_code__c,\n 'fields[COD_LEAD_ID]': idLead.Id,\n 'fields[DESC_DATA_ENRICHMENT]': 'NO INFORMADO',\n\n 'flags[FLAG_ISLEAD]': fields.quieroVolkswagen === 'false' ? 'false' : fields.quieroContacto,\n 'flags[FLAG_ISPROSPECT]':\n fields.quieroVolkswagen === 'true' && fields.quieroContacto === 'false' ? 'true' : 'false',\n 'flags[FLAG_GENERATELEM]': fields.quieroVolkswagen === 'false' ? 'false' : fields.quieroContacto,\n };\n };\n\n const generateSubmitData = () => generateData();\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(NuevoFormData);\n\n delete data['headers[PINCODE]'];\n\n //\n delete data['headers[DESC_VN_VO]'];\n delete data['fields[DESC_TRANF_DATA_THIRD]'];\n //\n\n delete data['flags[FLAG_ISLEAD]'];\n delete data['flags[FLAG_ISPROSPECT]'];\n delete data['flags[FLAG_GENERATELEM]'];\n delete data['fields[DESC_DEALER_SHARE]'];\n delete data['fields[DESC_NAME]'];\n delete data['fields[DESC_SURNAME_1]'];\n delete data['fields[DESC_SURNAME_2]'];\n delete data['fields[DESC_EMAIL_ADDRESS]'];\n delete data['fields[DESC_AUXFIELD4]'];\n delete data['fields[DESC_AUXFIELD5]'];\n delete data['fields[DESC_AUXFIELD18]'];\n delete data['fields[DESC_AUXFIELD20]'];\n delete data['fields[NUM_CELLPHONE]'];\n delete data['fields[DESC_LOPD]'];\n delete data['fields[DESC_LSSI]'];\n delete data['fields[DESC_LOPD_GDPR_PERFILADO]'];\n delete data['fields[M_OBSERVATION]'];\n delete data['fields[DESC_DATA_ENRICHMENT]'];\n\n data['fields[DESC_AUXFIELD1]'] = 'No tengo';\n data['headers[DESC_FORM_DETAIL]'] = 'NoCompra Pregrabación';\n data['headers[DESC_TOKEN]'] = 'VW_DDB_FORM_NOCOMPRA_PRE';\n\n return data;\n };\n\n const sendForm = async (isPresubmit?: boolean): Promise => {\n return new Promise(async (resolve, reject) => {\n const data = isPresubmit ? generatePresubmitData() : 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 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 //activación de lógica para la gestion de steps\n\n useEffect(() => {\n if (quieroVolkswagen) updateModeloInteresStep();\n }, [quieroVolkswagen]);\n\n\n return loading || loadingPresubmit || !steps ? null : ;\n}\n","import React, { useState } from 'react';\nimport { \n Text, \n styled, \n Container, \n ContainerGutter, \n ContainerWrap, \n TextAppearance \n} from '@volkswagen-onehub/components-core';\nimport { SuggestModelo } from 'src/components';\n\n\ninterface FechaCompraProps {\n notALayer: boolean;\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 const [inputValueOne, setInputValueOne] = useState('');\n const [inputValueTwo, setInputValueTwo] = useState('');\n\n const handleChangeOne = (e: any) => {\n setInputValueOne(e.target.value);\n };\n const handleChangeTwo = (e: any) => {\n setInputValueTwo(e.target.value);\n };\n\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 Axios, { AxiosResponse } from 'axios';\nimport React, { useEffect, useState } from 'react';\nimport { OneElementTemplateFullScreen } from 'src/feature-app/Screen';\nimport { Text } from '@volkswagen-onehub/components-core';\nimport { MultipleCTASelection, DetalleMotivo, MultipleOptionCTAs } from 'src/components';\nimport { ConfirmacionNoCompra, ThankYouNoCompra } from '.';\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 { FormController, useOneFormContext } from 'src/feature-app';\nimport { formatHeaders, formDataBuilder } from '../format-fields';\nimport { NoCompraFormProps } from './NoCompraController';\nimport { useInitializeNoCompraForm } from './use-initialize-no-compra-form';\nimport { addRemovedStep, getIndexInSteps, removeStep, resetStepsScreenIndex } from '../helpers/add-remove-steps';\nimport { CTAsMotivoNoQuiero } from 'src/feature-app/InputsValues/CTAsObjects';\n\nexport enum NoCompraNoBuscaSteps {\n Motivo,\n MasInformacion,\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 { multipleChoice } = formData.fields;\n\n const handleDetalleMotivo = (multipleChoice: Array) => {\n const { steps: actualSteps, screenIndex } = store.getState().formInfo;\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 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.{' '}\n \n ¿Cómo vas a moverte de ahora en{' '}\n \n adelante?*\n \n \n \n ),\n fields: (\n \n }\n />\n ),\n screenIndex: NoCompraNoBuscaSteps.Motivo,\n name: 'multipleChoice',\n outputs: ['multipleChoice'],\n outputsText: ['multipleChoice'],\n },\n {\n title: (\n <>\n ¿Nos lo podrías concretar un poco más?\n \n ),\n fields: (\n }\n />\n ),\n screenIndex: NoCompraNoBuscaSteps.MasInformacion,\n name: 'masInformacion',\n outputs: ['masInformacion'],\n outputsText: ['masInformacion'],\n },\n {\n fields: ,\n screenIndex: NoCompraNoBuscaSteps.Confirmacion,\n name: 'Confirmacion',\n outputs: ['confirmacion'],\n outputsText: ['confirmacion'],\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: 'no_compra-no_quiero', 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 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 'headers[TC]': tc,\n 'headers[PINCODE]': dpsData.pincode.pincodeResponse.params.pincode,\n 'headers[FECHA_INSERTION_DATE]': today,\n 'headers[DESC_VN_VO]': 'VN',\n\n 'headers[DESC_TOKEN]': 'VW_DDB_FORM_NOCOMPRA', // CAMBIA PRESUMBIT/SUBMIT\n 'headers[DESC_ID_CAMPAIGN]': '7011n000000Aj7uAAC',\n 'headers[DESC_FORM_DETAIL]': 'NoCompra Grabación', // CAMBIA PRESUMBIT/SUBMIT\n 'headers[DESC_FORMOBJECTIVE]': fields.quieroContacto === 'true' ? 'Más Información' : 'Encuesta',\n 'headers[DESC_DEVICETYPE]': device,\n 'headers[DESC_CAMPAIGNBLOCK]': '9. VW LEM',\n 'headers[DESC_BRAND]': 'VW',\n 'headers[COD_FORM_ID]': fields.formName ? `vw-oneform-${fields.formName}` : `vw-oneform-${data.fields.formName}`,\n 'headers[DESC_URLORIGIN]': url,\n\n 'fields[DESC_LOPD]': 'PERMITE', // SOLO EN SUBMIT\n 'fields[DESC_TRANF_DATA_THIRD]': 'NO INFORMADO', // SOLO EN SUBMIT\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_FORM_VERSION]': fields.formName\n ? `vw-oneform-${fields.formName}-${process.env.VERSION}`\n : `vw-oneform-${data.fields.formName}-${process.env.VERSION}`,\n 'fields[DESC_DEALER_CODE]': idLead.TXT_DESC_DEALER_CODE__c,\n 'fields[DESC_DEALER]': idLead.DESC_Dealer_Code__c,\n 'fields[DESC_AUXFIELD20]': idLead.External_Id_Climapro__c,\n 'fields[DESC_AUXFIELD1]': 'No quiero',\n 'fields[DESC_AUXFIELD12]': fields.multipleChoice,\n 'fields[DESC_AUXFIELD19]': fields.masInformacion ? fields.masInformacion : null,\n 'fields[COD_LEAD_ID]': idLead.Id,\n 'fields[DESC_DATA_ENRICHMENT]': 'NO INFORMADO',\n\n 'flags[FLAG_ISLEAD]': 'false',\n 'flags[FLAG_ISPROSPECT]': 'false',\n 'flags[FLAG_GENERATELEM]': 'false',\n };\n };\n\n const generateSubmitData = () => generateData();\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(NuevoFormData);\n\n //\n delete data['headers[DESC_VN_VO]'];\n delete data['fields[DESC_TRANF_DATA_THIRD]'];\n //\n\n delete data['headers[PINCODE]'];\n delete data['flags[FLAG_ISLEAD]'];\n delete data['flags[FLAG_ISPROSPECT]'];\n delete data['flags[FLAG_GENERATELEM]'];\n delete data['fields[DESC_LOPD]'];\n delete data['fields[DESC_LSSI]'];\n delete data['fields[DESC_LOPD_GDPR_PERFILADO]'];\n delete data['fields[DESC_AUXFIELD19]'];\n delete data['fields[DESC_DATA_ENRICHMENT]'];\n\n data['fields[DESC_AUXFIELD1]'] = 'No quiero';\n data['headers[DESC_FORM_DETAIL]'] = 'NoCompra Pregrabación';\n data['headers[DESC_TOKEN]'] = 'VW_DDB_FORM_NOCOMPRA_PRE';\n\n return data;\n };\n\n const sendForm = async (isPresubmit?: boolean): Promise => {\n return new Promise(async (resolve, reject) => {\n //resolve(true);\n const data = isPresubmit ? generatePresubmitData() : generateSubmitData();\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.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 { 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 useEffect(() => {\n if (multipleChoice) handleDetalleMotivo(multipleChoice);\n }, [multipleChoice]);\n\n return loading || loadingPresubmit || !steps ? null : ;\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 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_NOCOMPRA'); // 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","import Axios, { AxiosResponse } from 'axios';\nimport React, { useEffect, useState } from 'react';\nimport { useDispatch, useStore, useSelector } from 'react-redux';\nimport { FormController, useOneFormContext } from 'src/feature-app';\nimport { FormDataGroup, FormInfo, OneFormState, Steps, MolecularResponse } from 'src/types';\nimport { OneElementTemplateFullScreen } from 'src/feature-app/Screen';\nimport { Container, ContainerPadding, Text, TextAppearance } from '@volkswagen-onehub/components-core';\nimport { MultipleCTASelection, MultipleOptionCTAs, DetalleMotivo, SuggestModelo } from 'src/components';\nimport { ConfirmacionNoRenovacion, ThankYouNoRenovacion, FakeTriggerCTA } from '.';\nimport { formatHeaders, formDataBuilder } from 'src/forms/format-fields';\nimport { dpsSend } from 'src/bff';\nimport { getParamsForm } from 'src/feature-app/get-params-form';\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, removeMultipleSteps } from '../helpers/add-remove-steps';\nimport { CTAsMotivoRenovadorYaTengo, CTAsUsadoNuevo, CTAsLugarCompra } from 'src/feature-app/InputsValues';\n\nexport enum NoRenovacionNewCar {\n Introduccion,\n Modelo,\n UsadoNuevo,\n LugarCompra,\n Motivo,\n MasInformacion,\n Confirmacion,\n}\n\nexport function NoRenovacionYaTengo({\n dpsData,\n idVehicle,\n idPerson,\n handleError,\n trackFormLoad,\n estado,\n}: NoRenovacionFormProps) {\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 [loadingPresubmit, setLoadingPresubmit] = useState(false);\n const { multipleChoice, brand } = formData.fields;\n\n const handleMotivo = (brand: string) => {\n const { steps: actualSteps, screenIndex } = store.getState().formInfo;\n let newSteps = [...actualSteps];\n\n if (brand !== 'Volkswagen') {\n const multipleChoide = getIndexInSteps(newSteps, 'multipleChoice');\n const masInformacion = getIndexInSteps(newSteps, 'masInformacion');\n\n if (multipleChoide === -1) {\n newSteps = addRemovedStep(steps, actualSteps, 'masInformacion', screenIndex);\n setTimeout(() => {\n handleNextStep();\n }, 0);\n }\n if (masInformacion === -1) {\n newSteps = addRemovedStep(steps, actualSteps, 'masInformacion', screenIndex);\n setTimeout(() => {\n handleNextStep();\n }, 0);\n }\n\n newSteps = removeStep(newSteps, 'lugarCompra');\n } else {\n const lugarCompra = getIndexInSteps(newSteps, 'lugarCompra');\n\n if (lugarCompra === -1) {\n newSteps = addRemovedStep(steps, actualSteps, 'lugarCompra', screenIndex);\n setTimeout(() => {\n handleNextStep();\n }, 0);\n }\n newSteps = removeMultipleSteps(newSteps, ['multipleChoice', '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 handleDetalleMotivo = (multipleChoice: Array) => {\n const { steps: actualSteps, screenIndex } = store.getState().formInfo;\n let newSteps = [...actualSteps];\n\n if (multipleChoice.includes('otros motivos')) {\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 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 />\n ),\n screenIndex: NoRenovacionNewCar.Modelo,\n name: 'Modelo',\n outputs: ['brand', 'model'],\n outputsText: ['brand', 'model'],\n showOverflow: true,\n },\n {\n title: (\n \n ¿Qué opción has{' '}\n \n escogido?*\n \n \n ),\n fields: (\n }\n />\n ),\n screenIndex: NoRenovacionNewCar.UsadoNuevo,\n name: 'usadoNuevo',\n outputs: ['usadoNuevo'],\n outputsText: ['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 outputs: ['lugarCompra'],\n outputsText: ['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 fields: (\n \n }\n />\n ),\n screenIndex: NoRenovacionNewCar.Motivo,\n name: 'multipleChoice',\n outputs: ['multipleChoice'],\n outputsText: ['multipleChoice'],\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 outputs: ['masInformacion'],\n outputsText: ['masInformacion'],\n },\n {\n fields: ,\n screenIndex: NoRenovacionNewCar.Confirmacion,\n name: 'Confirmacion',\n outputs: ['confirmacion'],\n outputsText: ['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 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 'headers[TC]': tc,\n 'headers[PINCODE]': dpsData.pincode.pincodeResponse.params.pincode,\n 'headers[FECHA_INSERTION_DATE]': today,\n 'headers[DESC_BRAND]': 'VW',\n 'headers[DESC_GDPR_ADAPTED]': 'true',\n 'headers[DESC_ID_CAMPAIGN]': '7011n000000JvhCAAS',\n 'headers[DESC_CAMPAIGNBLOCK]': 'B19 - Renovadores',\n 'headers[DETALLE_TIPO_PETICION_SIM]': 'Encuesta Renovación',\n 'headers[DESC_FORMOBJECTIVE]': 'Encuesta',\n\n 'headers[DESC_TOKEN]': 'VW_DDB_FORM_NORENUEVA', // CAMBIA PRESUMBIT/SUBMIT\n 'headers[DESC_FORM_DETAIL]': 'NoRenovación Grabación', // CAMBIA PRESUMBIT/SUBMIT\n 'headers[DESC_DEVICETYPE]': device,\n 'headers[COD_FORM_ID]': fields.formName ? `vw-oneform-${fields.formName}` : `vw-oneform-${data.fields.formName}`,\n 'headers[DESC_URLORIGIN]': url,\n 'headers[DESC_ID_CLIMAPRO]': idPerson.ID_Person_DIM_IMP__c,\n 'headers[DESC_ID_VEHICLE_CLIMAPRO]': idVehicle.IDClimapro__c,\n\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[NUM_CELLPHONE]': idPerson.NUM_Phone_mobile__c,\n 'fields[DESC_EMAIL_ADDRESS]': idPerson.TXT_Email__c,\n\n 'fields[DESC_LOPD]': 'PERMITE', // SOLO EN SUBMIT\n 'fields[DESC_TRANF_DATA_THIRD]': 'NO INFORMADO', // SOLO EN SUBMIT\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_FORM_VERSION]': fields.formName\n ? `vw-oneform-${fields.formName}-${process.env.VERSION}`\n : `vw-oneform-${data.fields.formName}-${process.env.VERSION}`,\n 'fields[DESC_AUXFIELD1]': 'Ya tengo',\n\n 'fields[DESC_ACTUAL_VEHICLE_BRAND]': fields.brand,\n 'fields[DESC_ACTUAL_VEHICLE_MODEL]': fields.model,\n 'fields[DESC_AUXFIELD2]': fields.usadoNuevo,\n 'fields[DESC_AUXFIELD3]': fields.multipleChoice,\n 'fields[DESC_AUXFIELD4]': fields.masInformacion,\n 'fields[DESC_AUXFIELD16]': fields.lugarCompra,\n 'fields[DESC_DATA_ENRICHMENT]': 'NO INFORMADO',\n\n 'flags[FLAG_ISLEAD]': 'false',\n 'flags[FLAG_ISPROSPECT]': 'false',\n 'flags[FLAG_GENERATELEM]': 'false',\n };\n };\n\n const generateSubmitData = () => generateData();\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(NuevoFormData);\n\n //\n delete data['fields[DESC_TRANF_DATA_THIRD]'];\n //\n delete data['headers[DETALLE_TIPO_PETICION_SIM]'];\n delete data['headers[PINCODE]'];\n delete data['flags[FLAG_ISLEAD]'];\n delete data['flags[FLAG_ISPROSPECT]'];\n delete data['flags[FLAG_GENERATELEM]'];\n delete data['fields[DESC_AUXFIELD2]'];\n delete data['fields[DESC_AUXFIELD3]'];\n delete data['fields[DESC_AUXFIELD4]'];\n delete data['fields[DESC_AUXFIELD16]'];\n\n delete data['fields[DESC_ACTUAL_VEHICLE_BRAND]'];\n delete data['fields[DESC_ACTUAL_VEHICLE_MODEL]'];\n\n delete data['fields[DESC_LOPD]'];\n delete data['fields[DESC_LSSI]'];\n delete data['fields[DESC_LOPD_GDPR_PERFILADO]'];\n delete data['fields[DESC_DATA_ENRICHMENT]'];\n\n data['fields[DESC_AUXFIELD1]'] = 'Ya tengo';\n data['headers[DESC_FORM_DETAIL]'] = 'NoRenovación Pregrabación';\n data['headers[DESC_TOKEN]'] = 'VW_DDB_FORM_NORENUEVA_PRE';\n\n return data;\n };\n\n const sendForm = async (isPresubmit?: boolean): Promise => {\n return new Promise(async (resolve, reject) => {\n const data = isPresubmit ? generatePresubmitData() : 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 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 useEffect(() => {\n if (brand) handleMotivo(brand);\n }, [brand]);\n\n useEffect(() => {\n if (multipleChoice) handleDetalleMotivo(multipleChoice);\n }, [multipleChoice]);\n\n\n return loading || loadingPresubmit || !steps ? null : ;\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 {\n Breakpoints,\n Container,\n ContainerPadding,\n styled,\n Text,\n TextAppearance,\n Layout,\n ContainerWrap,\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={TextAppearance.headline0350}>\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 } from 'src/bff';\nimport { TOKEN_LEADS_COMERCIALES, TOKEN_LEADS_TURISMOS } from 'src/globals';\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 fetchProvince(isComerciales ? TOKEN_LEADS_COMERCIALES : TOKEN_LEADS_TURISMOS).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 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 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, TextAppearance, styled, CTA } from '@volkswagen-onehub/components-core';\nimport { CarlineSelect, MultipleCTASelection, DetalleMotivo, MultipleOptionCTAs, SuggestModelo, LocateUserFullScreen } from 'src/components';\nimport { ConfirmacionNoRenovacion, ThankYouNoRenovacion, MapaNoRenovacion, FakeTriggerCTA } from '.';\nimport { NoRenovacionFormProps } from './NoRenovacionController';\nimport { formDataBuilder } from 'src/forms/format-fields';\nimport { dpsSend } from 'src/bff';\nimport { useInitializeNoRenovacionForm } from './use-initialize-no-renovacion-form';\nimport { addRemovedStep, getIndexInSteps, removeStep, resetStepsScreenIndex } from '../helpers/add-remove-steps';\nimport {\n CTAsSiNo,\n CTAsNuevoOcasión,\n CTAsMotivoRenovadorNoTengo,\n CTAsMotivoRenovadorYaTengo,\n CTAsMotivoRenovadorNoTengoExclusivo\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 }\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 } 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é motivos \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 // 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, multipleChoice } = 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 outputs: ['quieroVolkswagen'],\n outputsText: ['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 outputs: ['tipoCoche'],\n outputsText: ['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 outputs: ['brand', 'model'],\n outputsText: ['brand', 'model'],\n showOverflow: true,\n },\n {\n title: getDudasTitle(quieroVolkswagen),\n alternateTitle: getDudasAlternatTitle(quieroVolkswagen),\n fields: getDudasFields(quieroVolkswagen),\n screenIndex: NoRenovacionSigueBuscando.Motivo,\n name: 'Dudas',\n outputs: ['multipleChoice'],\n outputsText: ['multipleChoice'],\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 outputs: ['masInformacion'],\n outputsText: ['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 outputs: ['confirmacion'],\n outputsText: ['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 handleMasInformacion = (multipleChoice: string[]) => {\n const { steps: actualSteps } = store.getState().formInfo;\n\n let newSteps = [...actualSteps];\n\n if (multipleChoice.includes('otros motivos')) {\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\n const generateData = (data?: Partial) => {\n const { formData, dealersInfo }: OneFormState = store.getState();\n const { fields, headers } = formData;\n const { selectedInstallation } = dealersInfo;\n\n let TXT_V_KVPS_code__c, FRML_TXT_codVentaProvincia__c, TXT_V_Installation_Data_Name__c, TXT_V_Installation_Code__c;\n if (selectedInstallation) {\n TXT_V_KVPS_code__c = selectedInstallation.TXT_V_KVPS_code__c;\n FRML_TXT_codVentaProvincia__c = selectedInstallation.FRML_TXT_codVentaProvincia__c;\n TXT_V_Installation_Data_Name__c = selectedInstallation.TXT_V_Installation_Data_Name__c;\n TXT_V_Installation_Code__c = selectedInstallation.TXT_V_Installation_Code__c;\n }\n\n const { tc, today, url, device } = getParamsForm();\n return {\n 'headers[TC]': tc,\n 'headers[PINCODE]': dpsData.pincode.pincodeResponse.params.pincode,\n 'headers[FECHA_INSERTION_DATE]': today,\n 'headers[DESC_FORMOBJECTIVE]': fields.quieroContacto === 'true' ? 'Más Información' : 'Encuesta',\n 'headers[DESC_TOKEN]': 'VW_DDB_FORM_NORENUEVA',\n 'headers[DESC_FORM_DETAIL]': 'NoRenovación Grabación',\n 'headers[DESC_DEVICETYPE]': device,\n 'headers[COD_FORM_ID]': fields.formName ? `vw-oneform-${fields.formName}` : `vw-oneform-${data.fields.formName}`,\n 'headers[DESC_URLORIGIN]': url,\n 'headers[DESC_VN_VO]': fields.tipoCoche === 'nuevo' ? 'VN' : 'VO',\n 'headers[DESC_ID_CLIMAPRO]': idPerson.ID_Person_DIM_IMP__c,\n 'headers[DESC_ID_VEHICLE_CLIMAPRO]': idVehicle.IDClimapro__c,\n 'headers[DESC_BRAND]': 'VW',\n 'headers[DESC_GDPR_ADAPTED]': 'true',\n 'headers[DESC_ID_CAMPAIGN]': '7011n000000JvhCAAS',\n 'headers[DESC_CAMPAIGNBLOCK]': 'B19 - Renovadores',\n 'headers[DETALLE_TIPO_PETICION_SIM]': 'Encuesta Renovación',\n\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[NUM_CELLPHONE]': idPerson.NUM_Phone_mobile__c,\n 'fields[DESC_EMAIL_ADDRESS]': idPerson.TXT_Email__c,\n\n 'fields[DESC_AUXFIELD1]': 'No tengo',\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_AUXFIELD9]': fields.quieroVolkswagen,\n 'fields[COD_INTEREST_CARLINE]': fields.quieroVolkswagen === 'true' ? fields.carlineCode : null,\n 'fields[DESC_INTEREST_CARLINE]': fields.quieroVolkswagen === 'true' ? fields.modelo : null,\n 'fields[DESC_AUXFIELD10]': fields.quieroVolkswagen === 'true' ? fields.multipleChoice : null,\n 'fields[DESC_AUXFIELD11]': fields.quieroVolkswagen === 'true' ? fields.masInformacion : null,\n\n 'fields[DESC_DEALER]': fields.quieroContacto === 'true' ? TXT_V_Installation_Data_Name__c : null,\n 'fields[DESC_DEALER_CODE]': fields.quieroContacto === 'true' ? TXT_V_Installation_Code__c : null,\n 'fields[DESC_DEALER_CODE_KVPS]': fields.quieroContacto === 'true' ? TXT_V_KVPS_code__c : null,\n 'fields[COD_DEALER_PROVINCE]': fields.quieroContacto === 'true' ? FRML_TXT_codVentaProvincia__c : null,\n 'fields[DESC_DEALER_PROVINCE]': fields.quieroContacto === 'true' ? fields.provinceName : null,\n 'fields[DESC_DEALER_SHARE]': fields.compartir,\n\n 'fields[DESC_AUXFIELD14]': fields.brand === 'false' ? null : fields.brand,\n 'fields[DESC_AUXFIELD15]': fields.model === 'false' ? null : fields.model,\n 'fields[DESC_AUXFIELD12]': fields.quieroVolkswagen === 'true' ? null : fields.multipleChoice,\n 'fields[DESC_AUXFIELD13]': fields.quieroVolkswagen === 'true' ? null : fields.masInformacion,\n 'fields[M_OBSERVATION_BRAND]': fields.masInformacion\n ? `Motivos de duda indicados por el cliente en la encuesta: ${fields.multipleChoice}. ${fields.masInformacion}`\n : `Motivos de duda indicados por el cliente en la encuesta: ${fields.multipleChoice}.`,\n 'fields[DESC_LOPD]': 'PERMITE', // SOLO EN SUBMIT\n 'fields[DESC_TRANF_DATA_THIRD]': 'NO INFORMADO', // SOLO EN SUBMIT\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_DATA_ENRICHMENT]': 'NO INFORMADO',\n\n 'flags[FLAG_ISLEAD]': fields.quieroVolkswagen === 'false' ? 'false' : fields.quieroContacto,\n 'flags[FLAG_ISPROSPECT]':\n fields.quieroVolkswagen === 'true' && fields.quieroContacto === 'false' ? 'true' : 'false',\n 'flags[FLAG_GENERATELEM]': fields.quieroVolkswagen === 'false' ? 'false' : fields.quieroContacto,\n };\n };\n\n const generateSubmitData = () => generateData();\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(NuevoFormData);\n\n delete data['headers[PINCODE]'];\n delete data['headers[DESC_VN_VO]'];\n delete data['headers[DETALLE_TIPO_PETICION_SIM]'];\n\n delete data['fields[DESC_TRANF_DATA_THIRD]'];\n delete data['fields[DESC_AUXFIELD9]'];\n delete data['fields[COD_INTEREST_CARLINE]'];\n delete data['fields[DESC_INTEREST_CARLINE]'];\n delete data['fields[DESC_AUXFIELD10]'];\n delete data['fields[DESC_AUXFIELD11]'];\n delete data['fields[DESC_AUXFIELD12]'];\n delete data['fields[DESC_AUXFIELD13]'];\n delete data['fields[DESC_DEALER]'];\n delete data['fields[DESC_DEALER_CODE]'];\n delete data['fields[DESC_DEALER_CODE_KVPS]'];\n delete data['fields[COD_DEALER_PROVINCE]'];\n delete data['fields[DESC_DEALER_PROVINCE]'];\n delete data['fields[DESC_DEALER_SHARE]'];\n delete data['fields[DESC_AUXFIELD14]'];\n delete data['fields[DESC_AUXFIELD15]'];\n delete data['fields[M_OBSERVATION_BRAND]'];\n\n delete data['flags[FLAG_ISLEAD]'];\n delete data['flags[FLAG_ISPROSPECT]'];\n delete data['flags[FLAG_GENERATELEM]'];\n delete data['fields[DESC_LOPD]'];\n delete data['fields[DESC_LSSI]'];\n delete data['fields[DESC_LOPD_GDPR_PERFILADO]'];\n delete data['fields[DESC_DATA_ENRICHMENT]'];\n\n data['fields[DESC_AUXFIELD1]'] = 'No tengo';\n data['headers[DESC_FORM_DETAIL]'] = 'NoRenovación Pregrabación';\n data['headers[DESC_TOKEN]'] = 'VW_DDB_FORM_NORENUEVA_PRE';\n\n return data;\n };\n\n const sendForm = async (isPresubmit?: boolean): Promise => {\n return new Promise(async (resolve, reject) => {\n const data = isPresubmit ? generatePresubmitData() : 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 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\n }, [quieroVolkswagen]);\n\n useEffect(() => {\n if (multipleChoice) {\n handleMasInformacion(multipleChoice);\n }\n }, [multipleChoice]);\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, TextAppearance } from '@volkswagen-onehub/components-core';\nimport { DetalleMotivo, MultipleOptionCTAs, LegalFullScreenSinConsentmientos } from 'src/components';\nimport { ConfirmacionNoRenovacion, ThankYouNoRenovacion, FakeTriggerCTA } from '.';\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 } 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('No tengo necesidad')) {\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('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 handleDetalleRazones = (razones: Array) => {\n const { steps: actualSteps, screenIndex } = store.getState().formInfo;\n let newSteps = [...actualSteps];\n\n if (razones.includes('Otros')) {\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 = (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 'headers[TC]': tc,\n 'headers[PINCODE]': dpsData.pincode.pincodeResponse.params.pincode,\n 'headers[FECHA_INSERTION_DATE]': today,\n 'headers[DESC_TOKEN]': 'VW_DDB_FORM_NORENUEVA',\n 'headers[DESC_FORM_DETAIL]': 'NoRenovación Grabación',\n 'headers[DESC_DEVICETYPE]': device,\n 'headers[COD_FORM_ID]': fields.formName ? `vw-oneform-${fields.formName}` : `vw-oneform-${data.fields.formName}`,\n 'headers[DESC_URLORIGIN]': url,\n 'headers[DESC_ID_CLIMAPRO]': idPerson.ID_Person_DIM_IMP__c,\n 'headers[DESC_ID_VEHICLE_CLIMAPRO]': idVehicle.IDClimapro__c,\n 'headers[DESC_BRAND]': 'VW',\n 'headers[DESC_GDPR_ADAPTED]': 'true',\n 'headers[DESC_ID_CAMPAIGN]': '7011n000000JvhCAAS',\n 'headers[DESC_CAMPAIGNBLOCK]': 'B19 - Renovadores',\n 'headers[DETALLE_TIPO_PETICION_SIM]': 'Encuesta Renovación',\n 'headers[DESC_FORMOBJECTIVE]': 'Encuesta',\n\n 'fields[DESC_LOPD]': 'PERMITE', // SOLO EN SUBMIT\n 'fields[DESC_TRANF_DATA_THIRD]': 'NO INFORMADO', // SOLO EN SUBMIT\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_FORM_VERSION]': fields.formName\n ? `vw-oneform-${fields.formName}-${process.env.VERSION}`\n : `vw-oneform-${data.fields.formName}-${process.env.VERSION}`,\n\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[NUM_CELLPHONE]': idPerson.NUM_Phone_mobile__c,\n 'fields[DESC_EMAIL_ADDRESS]': idPerson.TXT_Email__c,\n\n 'fields[DESC_AUXFIELD1]': 'No quiero',\n 'fields[DESC_AUXFIELD5]': fields.formasMovilidad,\n 'fields[DESC_AUXFIELD6]': fields.masInformacion,\n 'fields[DESC_AUXFIELD7]': fields.razones,\n 'fields[DESC_AUXFIELD8]': fields.masInformacionRazones,\n 'fields[DESC_DATA_ENRICHMENT]': 'NO INFORMADO',\n\n 'flags[FLAG_ISLEAD]': 'false',\n 'flags[FLAG_ISPROSPECT]': 'false',\n 'flags[FLAG_GENERATELEM]': 'false',\n };\n };\n\n const generateSubmitData = () => generateData();\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(NuevoFormData);\n\n //\n delete data['fields[DESC_TRANF_DATA_THIRD]'];\n //\n delete data['headers[DETALLE_TIPO_PETICION_SIM]'];\n delete data['headers[PINCODE]'];\n delete data['flags[FLAG_ISLEAD]'];\n delete data['flags[FLAG_ISPROSPECT]'];\n delete data['flags[FLAG_GENERATELEM]'];\n delete data['fields[DESC_AUXFIELD5]'];\n delete data['fields[DESC_AUXFIELD6]'];\n delete data['fields[DESC_AUXFIELD7]'];\n delete data['fields[DESC_AUXFIELD8]'];\n delete data['fields[DESC_LOPD]'];\n delete data['fields[DESC_LSSI]'];\n delete data['fields[DESC_LOPD_GDPR_PERFILADO]'];\n delete data['fields[DESC_DATA_ENRICHMENT]'];\n\n data['fields[DESC_AUXFIELD1]'] = 'No quiero';\n data['headers[DESC_FORM_DETAIL]'] = 'NoRenovación Pregrabación';\n data['headers[DESC_TOKEN]'] = 'VW_DDB_FORM_NORENUEVA_PRE';\n\n return data;\n };\n\n const sendForm = async (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\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 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();\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();\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 TextAppearance,\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/api/race-send';\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 React, { useEffect, useState } from 'react';\nimport { useDispatch, useStore } from 'react-redux';\nimport { dpsSend } 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 { 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 const { tc, today, referalUrl, url, device } = getParamsForm();\n\n //resolve(true);\n const data = {\n ...formatHeaders(headers),\n 'headers[FECHA_INSERTION_DATE]': today,\n 'headers[TC]': tc,\n 'headers[DESC_URLORIGIN]': url,\n 'headers[DESC_DEVICETYPE]': device,\n\n 'fields[DESC_NAME]': fields.name,\n 'fields[DESC_SURNAME_1]': fields.surname,\n 'fields[DESC_SURNAME_2]': idPerson && idPerson.TXT_2_Surname__c ? idPerson.TXT_2_Surname__c : null,\n 'fields[DESC_EMAIL_ADDRESS]': removeWhiteSpace(fields.email),\n\n 'fields[DESC_PREFERRED_CONTACT_CHANNEL]': 'TELF',\n 'fields[NUM_CELLPHONE]': `${formatPrefix(fields.prefix)}${fields.cellphone}`,\n 'fields[DESC_FORM_VERSION]': `vw-oneform-sac-oneshop-${process.env.VERSION}`,\n 'fields[DESC_REQUEST_TYPE]': 'ONESHOP',\n 'fields[DESC_LOPD]': 'PERMITE',\n 'fields[DESC_TRANF_DATA_THIRD]': 'NO INFORMADO',\n 'fields[DESC_LSSI]': 'NO INFORMADO',\n 'fields[DESC_LOPD_GDPR_PERFILADO]': 'NO INFORMADO',\n };\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 dpsSend(formData);\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 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 TextAppearance,\n Text,\n ContainerGutter,\n ContainerWrap,\n TextAlignment,\n ContainerHorizontalAlignment,\n ThemeProvider,\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 { useStore, useDispatch } 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 {\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: 'requestType',\n outputs: ['requestType'],\n outputsText: ['requestType'],\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 const { tc, today, url, device } = getParamsForm();\n\n const data = {\n 'headers[COD_FORM_ID]': 'vw-oneform-sac',\n 'headers[DESC_URLORIGIN]': url,\n 'headers[DESC_BRAND]': 'VW',\n 'headers[DESC_CAMPAIGNBLOCK]': '18 - VW Customer Care',\n 'headers[DESC_DEVICETYPE]': device,\n 'headers[DESC_FORMOBJECTIVE]': 'Atención al cliente',\n 'headers[DESC_FORM_DETAIL]': 'ID', //Este debería pasarse a variable, aunque actualmente siempre sea ID\n 'headers[DESC_ID_CAMPAIGN]': '7011n000000AglrAAC',\n 'headers[DESC_TOKEN]': 'VW_DDB_FRM_SAC',\n\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_FORM_VERSION]': `vw-oneform-sac-${process.env.VERSION}`,\n 'fields[DESC_PREFERRED_CONTACT_CHANNEL]': fields.contactoSAC,\n 'fields[DESC_REQUEST_TYPE]': fields.requestType,\n 'fields[M_OBSERVATION]': fields.masInformacion,\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 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 } 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, key: null, name: null },\n {\n code: 'VE',\n key: 'VE',\n name: 'Venta',\n },\n {\n code: 'PV',\n key: 'PV',\n name: 'Posventa',\n },\n {\n code: 'GDP',\n key: 'GDP',\n name: 'Gestión de datos personales y privacidad',\n },\n {\n code: 'OT',\n key: 'OT',\n name: 'Otras consultas',\n },\n];\n\nexport const PantallaMotivoSAC = () => {\n const { register, watch } = useFormContext();\n const [requestType, setRequestType] = useState('');\n const { fields } = useSelector((state: OneFormState) => state.formData);\n\n useEffect(() => {\n if (fields.requestType) {\n setRequestType(fields.requestType);\n }\n }, []);\n\n function handleChangeMotivo(event: any) {\n const newMotivo = event.currentTarget.value;\n setRequestType(newMotivo);\n }\n\n return (\n <>\n \n {}}\n setOption={setRequestType}\n handleChange={handleChangeMotivo}\n innerRef={register('requestTypeInput', {\n validate: () => {\n if (!requestType) {\n return false;\n }\n return true;\n },\n })}\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\nexport const TOKEN_LEADS_COMERCIALES = 'LCV_DDB_FRM_LEM_REC_LEM';\nexport const TOKEN_LEADS_TURISMOS = 'VW_DDB_FRM_LEM_REC_LEM';\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 Checkbox,\n Container,\n ContainerHorizontalAlignment,\n ContainerPadding,\n CTA,\n TextAlignment,\n TextAppearance,\n Text\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 TextAppearance,\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\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 Axios, { AxiosResponse } from 'axios';\nimport React, { useEffect } from 'react';\nimport { Text, styled, Container, ContainerPadding, TextAppearance } 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 TextAppearance,\n ThemeProvider,\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 TextAppearance,\n ThemeProvider,\n CTA,\n Container,\n ContainerPadding\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 TextAppearance,\n TextAlignment,\n ContainerWrap,\n ContainerHorizontalAlignment,\n ContainerVerticalAlignment,\n ThemeProvider,\n Breakpoints,\n BreakpointWrapper\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, useEffect } from 'react';\nimport { MobileCard, ProgressBar } from '.';\nimport {\n styled,\n Text,\n TextAppearance,\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, { useState, useEffect } from 'react';\nimport {\n styled,\n Text,\n TextAppearance,\n ThemeProvider,\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 axios from 'axios';\nimport { reportErrorSentry } from './report-error-sentry';\nimport { CarlineBase, CarlineWithOffers } from 'src/types';\nimport { getDataUrl } from './get-data-url';\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 React, { useEffect, useState } from 'react';\nimport { AcordionHorizontal, Tabs } from './Suvperheroes';\nimport { getOfertasSUV } from 'src/bff/get-ofertas-suv';\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 ContainerWrap,\n CTA,\n Layout,\n Text,\n TextAlignment,\n TextAppearance,\n ThemeProvider,\n Spinner,\n Divider,\n ContainerHorizontalAlignment,\n LayoutRowGap,\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 ContainerWrap,\n CTA,\n Layout,\n styled,\n Text,\n TextAppearance,\n TextColor,\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 ContainerWrap,\n CTA,\n Layout,\n styled,\n Text,\n TextAlignment,\n TextAppearance,\n ThemeProvider,\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 ContainerHorizontalAlignment,\n ContainerPadding,\n ContainerWrap,\n CTA,\n Image,\n Layout,\n styled,\n Text,\n TextAlignment,\n TextAppearance,\n ThemeProvider,\n} from '@volkswagen-onehub/components-core';\nimport React, { useState } from 'react';\nimport { useFaContent, useGetDealers } 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, TextAppearance, 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 ContainerWrap,\n CTA,\n Layout,\n styled,\n Text,\n TextAlignment,\n TextAppearance,\n ThemeProvider,\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 TextAppearance,\n TextColor,\n TextAlignment,\n ThemeProvider,\n Container,\n ContainerPadding,\n ContainerHorizontalAlignment,\n CTA,\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, TextAppearance } from '@volkswagen-onehub/components-core';\nimport React, { useEffect, useState } from 'react';\nimport { useDispatch, useSelector, 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, IdLead, MolecularResponse, 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);\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, TextAppearance, TextColor, TextAlignment } 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, TextAppearance, Layout } 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 { Text, TextAppearance } from '@volkswagen-onehub/components-core';\nimport React, { useEffect, useState } from 'react';\nimport { useDispatch, useSelector, useStore } from 'react-redux';\nimport { yumiwiSend } from 'src/bff';\nimport dayjs from 'dayjs';\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 { 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 el 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: ['tipoContactoLabel'],\n\t\t\toutputsText: ['tipoContactoLabel'],\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: ['seleccionDealerLabel'],\n\t\t\toutputsText: ['seleccionDealerLabel'],\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: ['fechaCitaLabel', 'horaCita'],\n\t\t\toutputsText: ['fechaCitaLabel', '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: 'vw-oneform-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_V_Installation_Code__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_V_Installation_Code__c;\n\t\t\t\t\t\tsendData['fields[DESC_DEALER_CODE_KVPS]'] = 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, true);\n\t}, [dealers]);\n\n\treturn steps ? : null;\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 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 { getInstallations } from 'src/bff';\nimport { DomainAttributesValues } from 'src';\nimport { LoadingEncuestas } from 'src/components';\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\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 oneFormService = useFeatureServices()['es:oneform-core'] as EsOneformCoreServiceV1;\n\n\tconst urlParams = new URLSearchParams(window.location.search);\n\tconst [installationCode, setInstallationCode] = useState(urlParams.get('dealer'));\n\tconst [dealer, setDealer] = useState(null);\n\tconst [dealers, setDealers] = useState(null);\n\tconst [allDealers, setAllDealers] = useState(null);\n\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 (installationCode) {\n\t\t\t\t// Obtenemos todas las instalaciones\n\t\t\t\tgetInstallations('VW_DDB_FRM_LEM_REC_LEM').then((dealers) => {\n\t\t\t\t\tconst allDealers = dealers.map((inst) => inst.attributes);\n\t\t\t\t\tsetAllDealers(allDealers);\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\thandleError();\n\t\t\t}\n\n\t\t\tsetLoading(false);\n\t\t}\n\t};\n\n\t// Guardamos la instalacion por codigo de instalacion\n\tuseEffect(() => {\n\t\tif (allDealers) {\n\t\t\tfor (const d of allDealers) {\n\t\t\t\td.find((ele: DomainAttributesValues) => {\n\t\t\t\t\tif (ele.name === 'TXT_V_Installation_Code__c' && ele.value === installationCode) {\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 las instalaciones con el mismo codigo de concesion\n\tuseEffect(() => {\n\t\tif (dealer) {\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 (ele.name === 'TXT_Code_Concession__c' && ele.value === dealer.TXT_Code_Concession__c) {\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\n\tconst arrayToObject = (array) => {\n\t\tconst obj = {};\n\t\tfor(const i in array) {\n\t\t\tobj[array[i].name] = array[i].value;\n\t\t}\n\t\treturn obj;\n\t}\n\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 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';\n\ninterface DealerCEMSegundaEntregaProps {\n\tname: string;\n\tchecked: string;\n\toutputLabel?: boolean;\n\tdealers?: [IdDealer];\n}\n\nexport const DealerCEMSegundaEntrega = (props: DealerCEMSegundaEntregaProps) => {\n\tconst {\n\t\tname,\n\t\tdealers,\n\t\toutputLabel = false,\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) => {\n\t\tdispatch({ type: 'UPDATE_FIELDS', payload: { [name]: e.currentTarget.value } });\n\t\thandleNextStep(e);\n\t};\n\tconst setOutput = (text: string) => {\n\t\tif (outputLabel) dispatch({ type: 'UPDATE_FIELDS', payload: { [name + 'Label']: text } });\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 = dealer.TXT_V_Installation_Code__c;\n\t\t\t\t\t\tconst label = <>\n\t\t\t\t\t\t\t{dealer.TXT_V_Installation_Data_Name__c}{' '}\n\t\t\t\t\t\t\t{dealer.TXT_V_Address__c}\n\t\t\t\t\t\t\t{dealer.TXT_V_Postal_Code__c} {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);\n\t\t\t\t\t\t\t\tsetOutput(dealer.TXT_V_Installation_Data_Name__c + ' ' + dealer.TXT_V_Address__c + ' ' + dealer.TXT_V_Postal_Code__c + ' ' + dealer.TXT_V_Location__c);\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\tTextAppearance,\n\tTextColor\n} from '@volkswagen-onehub/components-core';\nimport dayjs, { Dayjs } from 'dayjs';\nimport React, { useEffect, useRef, useState } from 'react';\nimport { OneFormState } from 'src/types';\nimport { useStore, 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\tdispatch({ type: 'UPDATE_FIELDS', payload: { [name + 'Label']: selectedDay.format('DD/MM/YYYY') } });\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, { useEffect } from 'react';\nimport dayjs from 'dayjs';\nimport { Breakpoints, styled, Text, TextAppearance, TextAlignment, Layout, Tabs } 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 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 : '',\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 ? getDealer.TXT_V_KVPS_code__c : '',\n\t\t'fields[DESC_DEALER_CODE]': getDealer ? getDealer.TXT_V_Installation_Code__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, TextAppearance, Layout } 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 { Text, TextAppearance } from '@volkswagen-onehub/components-core';\nimport React, { useEffect, useState } from 'react';\nimport { useDispatch, useSelector, useStore } from 'react-redux';\nimport { dpsSend } from 'src/bff';\nimport dayjs from 'dayjs';\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 { 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\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: 'vw-oneform-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 ? idOrder.DAT_delivery__c : '',\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 ? getDealer.TXT_V_KVPS_code__c : '',\n\t\t\t\t'fields[DESC_DEALER_CODE]': getDealer ? getDealer.TXT_V_Installation_Code__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\n\t\t\t\t'fields[DESC_AUXFIELD1]': rating\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\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\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, true);\n\t}, [getDealer]);\n\n\treturn steps && !loadingPresubmit ? : null;\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 { getInstallations } from 'src/bff';\nimport { DomainAttributesValues } from 'src';\nimport { LoadingEncuestas } from 'src/components';\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 [installations, setInstallations] = useState(null);\n\tconst [caducado, setCaducado] = useState(false);\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\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 urlParams = new URLSearchParams(window.location.search);\n\tconst [installationCode, setInstallationCode] = useState(urlParams.get('dealer'));\n\tconst [dealer, setDealer] = useState(null);\n\tconst [allDealers, setAllDealers] = useState(null);\n\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 (installationCode) {\n\t\t\t\t// Obtenemos todas las instalaciones\n\t\t\t\tgetInstallations('VW_DDB_FRM_LEM_REC_LEM').then((dealers) => {\n\t\t\t\t\tconst allDealers = dealers.map((inst) => inst.attributes);\n\t\t\t\t\tsetAllDealers(allDealers);\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\thandleError();\n\t\t\t}\n\t\t\tsetLoading(false);\n\t\t}\n\t};\n\n\t// Guardamos la instalacion por codigo de instalacion\n\tuseEffect(() => {\n\t\tif (allDealers) {\n\t\t\tfor (const d of allDealers) {\n\t\t\t\td.find((ele: DomainAttributesValues) => {\n\t\t\t\t\tif (ele.name === 'TXT_V_Installation_Code__c' && ele.value === installationCode) {\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\n\tconst arrayToObject = (array) => {\n\t\tconst obj = {};\n\t\tfor (const i in array) {\n\t\t\tobj[array[i].name] = array[i].value;\n\t\t}\n\t\treturn obj;\n\t}\n\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 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 { 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 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: { DESC_FORMOBJECTIVE: '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 ContainerHorizontalAlignment,\n ContainerPadding,\n ContainerWrap,\n CTA,\n Layout,\n LayoutRowGap,\n Spinner,\n Text,\n TextAlignment,\n TextAppearance,\n ThemeProvider,\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 { DealersData, 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: DealersData) => {\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.TXT_V_Installation_Data_Name__c}\n \n \n \n \n {renderPidePresupuestoCta()}\n {renderMasInformacionCta()}\n {renderTestDriveCta()}\n {renderPideCitaCta()}\n \n \n \n Dirección\n \n \n {dealerInfo.TXT_V_Address__c}, {dealerInfo.TXT_V_Postal_Code__c} {dealerInfo.TXT_V_Location__c}\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.TXT_V_KVPS_code__c == dealer\n });\n if (filteredInstallation === undefined) {\n filteredInstallation = installations.find((installation) => {\n return installation.TXT_V_Installation_Code__c == dealer\n });\n }\n if (filteredInstallation === undefined) {\n filteredInstallation = installations.find((installation) => {\n return installation.TXT_Code_Concession__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 }, [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: { DESC_FORMOBJECTIVE: '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 // para prueba piloto de consentimientos añadimos nuevos steps un 20% de las veces\n let isPilotoConsentimientos = true;\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 ContainerWrap,\n CTA,\n Layout,\n styled,\n Text,\n TextAppearance,\n TextAlignment,\n ThemeProvider,\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 ContainerWrap,\n CTA,\n Layout,\n styled,\n Text,\n TextAlignment,\n TextAppearance,\n ThemeProvider,\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('%cLoading 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 ContainerWrap,\n CTA,\n Layout,\n LayoutRowGap,\n styled,\n Text,\n TextAppearance,\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 ContainerWrap,\n CTA,\n Layout,\n styled,\n Text,\n TextAlignment,\n TextAppearance,\n ThemeProvider,\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 ContainerHorizontalAlignment,\n ContainerPadding,\n ContainerWrap,\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 ContainerHorizontalAlignment,\n ContainerPadding,\n ContainerVerticalAlignment,\n ContainerWrap,\n CTA,\n Layout,\n styled,\n Text,\n TextAlignment,\n TextAppearance,\n TextColor,\n} from '@volkswagen-onehub/components-core';\nimport { Calendar, 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 { Horario, 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 ContainerWrap,\n CTA,\n styled,\n Text,\n TextAlignment,\n TextAppearance\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 ContainerHorizontalAlignment,\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 ContainerHorizontalAlignment,\n ContainerPadding,\n ContainerWrap,\n CTA,\n styled,\n Text,\n TextAppearance,\n ThemeProvider,\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}\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 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 /**\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 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 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 | 'TXT_V_Installation_Data_Name__c'\n | 'FRML_TXT_codVentaProvincia__c'\n | 'TXT_V_Location__c'\n | 'TXT_V_Address__c'\n | 'TXT_V_Postal_Code__c'\n | 'TXT_V_Installation_Code__c'\n | 'MPCK_Instalation_Type__c'\n | 'TXT_V_KVPS_code__c'\n | 'TXT_Code_Concession__c'\n | 'Longitude__c'\n | 'Latitude__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 TXT_V_Installation_Data_Name__c: string;\n FRML_TXT_codVentaProvincia__c: string;\n TXT_V_Location__c: string;\n TXT_V_Address__c: string;\n TXT_V_Postal_Code__c: string;\n TXT_V_Installation_Code__c: string;\n MPCK_Instalation_Type__c: string;\n TXT_V_KVPS_code__c: string;\n TXT_Code_Concession__c: string;\n Longitude__c: string;\n Latitude__c: 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\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}\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}\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}\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 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 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 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';\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 if (!isRenderedInClient && !breakpointMatchesForSsr) {\n return null;\n }\n if (isRenderedInClient && notHydrating && !breakpointMatchesForSsr) {\n return null;\n }\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 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 React.useEffect(() => {\n if (!isRenderedInClient) {\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, TextAppearance, TextColor } from '../text';\nimport { createStylesForBreakpoints, isBreakpointConfig, } from '../helpers/breakpoint';\nconst isLink = (props) => Boolean(props.tag === 'a');\nconst colorStyle = css `${(props) => {\n const textRecipe = props.theme.interaction[props.emphasis === 'primary'\n ? 'recipe750'\n : props.emphasis === 'tertiary'\n ? 'recipe400'\n : 'recipe450'];\n const transparentRecipe = {\n default: 'transparent',\n disabled: 'transparent',\n hover: 'transparent',\n active: 'transparent',\n };\n const backgroundRecipe = props.emphasis === 'primary'\n ? props.theme.interaction.recipe450\n : transparentRecipe;\n const borderRecipe = props.theme.interaction.recipe450;\n return props.disabled\n ? css `background:${backgroundRecipe.disabled};border-color:${borderRecipe.disabled};color:${textRecipe.disabled};` : css `background:${backgroundRecipe.default};border-color:${borderRecipe.default};color:${textRecipe.default};`;\n}};`;\nconst focusStyle = css `outline:none;background-color:${({ theme }) => theme.focus.background};color:${({ theme }) => theme.focus.foreground};`;\nconst focusStyleBoxShadow = css `box-shadow:0 0 0 1px inset ${({ theme }) => theme.interaction.recipe450.default};`;\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' && css `display:flex;justify-content:center;align-items:center;width:44px;height:44px;border-radius:50%;border:2px solid currentColor;margin-bottom:${theme.size.static100};`}`;\nconst StyledButtonIcon = styled.span.withConfig({ displayName: \"StyledButtonIcon\", componentId: \"sc-bk7es1\" }) `line-height:0;order:${(props) => (props.iconPosition === 'end' ? 1 : 'initial')};`;\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 `pointer-events:none;cursor:not-allowed;` : css `cursor:pointer;`}`;\nconst StyledButtonWrapper = styled.div.withConfig({ displayName: \"StyledButtonWrapper\", componentId: \"sc-grwi6b\" }) `align-items:center;${StyledButtonIcon}{line-height:initial;}${(props) => {\n if (props.iconPosition === 'top') {\n return css `display:flex;flex-direction:column;`;\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 `display:inline-grid;grid-template-columns:${templateColumns};grid-column-gap:${props.theme.size.static150};`;\n}}`;\nconst StyledLinkWrapper = styled.div.withConfig({ displayName: \"StyledLinkWrapper\", componentId: \"sc-x60dy3\" }) `align-items:center;${(props) => {\n if (props.iconPosition === 'top') {\n return css `display:flex;flex-direction:column;`;\n }\n return css `display:inline-grid;grid-template-columns:max-content auto;grid-column-gap:${(props) => props.theme.size.static150};align-items:center;`;\n}}`;\nconst createStretchContentForBreakpoints = (props) => {\n if (!props.stretchContent) {\n return '';\n }\n if (isBreakpointConfig(props.stretchContent)) {\n return createStylesForBreakpoints(props.stretchContent, (stretchContent) => (stretchContent ? 'width: 100%;' : 'width: initial;'));\n }\n return props.stretchContent && 'width: 100%;';\n};\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 `min-height:${width};min-width:${width};${props.circular\n ? css `width:${width};padding:0;` : css `padding:${padding};`} border:${border} solid;${!props.disabled && css `:hover,:active{::before{content:'';border-radius:500px;position:absolute;top:0;right:0;left:0;bottom:0;margin:-${border};}}:hover{::before{background-color:${props.emphasis === 'primary'\n ? props.theme.hoverIndicatorColor.filledElement.default\n : props.theme.hoverIndicatorColor.outlinedElement.default};}}:active{::before{background-color:${props.emphasis === 'primary'\n ? props.theme.hoverIndicatorColor.filledElement.active\n : props.theme.hoverIndicatorColor.outlinedElement.active};}}:focus{${focusStyle};${focusStyleBoxShadow};}`}`;\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;${colorStyle}`;\nconst iconBoxShadowSpreadRadius = '9px';\nconst StyledLink = styled.a.withConfig({ displayName: \"StyledLink\", componentId: \"sc-afbv6g\" }) `font-weight:inherit;display:inline;${createStretchContentForBreakpoints} border:none;position:relative;text-decoration:none;cursor:${(props) => (props.disabled ? 'not-allowed' : 'pointer')};padding:0;${colorStyle} ${(props) => !props.disabled && css `:hover,:active{${props.circular\n ? css `::before{content:'';border-radius:50%;width:100%;height:100%;position:absolute;top:0;}` : css `${StyledLinkIcon}{::before{content:'';border-radius:50%;width:100%;height:100%;position:absolute;top:0;}}`}}:hover:not(:focus){${StyledLinkText}{background-color:${props.theme.hoverIndicatorColor.outlinedElement\n .default};}${StyledLinkWrapper} ${StyledLinkText}{background-color:inherit;}${props.circular\n ? css `::before{background-color:${props.theme.hoverIndicatorColor\n .outlinedElement.default};}` : css `${StyledLinkIcon}{::before{background-color:${props.theme.hoverIndicatorColor\n .outlinedElement.default};box-shadow:${props.iconPosition !== 'top' &&\n `0 0 0 ${iconBoxShadowSpreadRadius}\n\t\t\t\t\t\t\t\t\t${props.theme.hoverIndicatorColor.outlinedElement.default}`};}}`}}:active ${StyledLinkText}::before{content:'';position:absolute;top:0;right:0;bottom:0;left:0;background-color:${props.theme.hoverIndicatorColor.outlinedElement\n .active};}:focus{outline:none;${props.circular && css `${focusStyle} ${focusStyleBoxShadow} border-color:${props.theme.interaction.recipe450.default};`} ${StyledLinkText}{${focusStyle} text-underline-offset:0.2em;text-decoration-thickness:2px;text-decoration-skip-ink:none;text-decoration-color:${props.theme.interaction.recipe450.default};}}`} text-align:inherit;${(props) => props.circular && css `display:inline-flex;align-items:center;text-align:center;justify-content:center;width:${props.size === 'small' ? props.theme.size.static400 : '44px'};height:${props.size === 'small' ? props.theme.size.static400 : '44px'};border:${props.size === 'small'\n ? props.theme.size.border.light\n : props.theme.size.border.heavy} solid transparent;border-radius:50%;`} -webkit-tap-highlight-color:transparent;`;\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 const additionalProps = isLink(props) && !disabled ? { href: props.href } : {};\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, 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 icon && !hasChildren && React.createElement(StyledLinkIcon, null, icon),\n hasChildren && !icon && (React.createElement(StyledLinkText, { emphasis: emphasis, disabled: disabled }, children))));\n};\nconst CTAButton = (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 const additionalProps = isLink(props) && !disabled ? { href: props.href } : {};\n const ref = forwardRef;\n return (React.createElement(StyledButton, Object.assign({ as: tag, \"aria-label\": ariaLabel, disabled: disabled }, rest, additionalProps, { ref: ref, emphasis: emphasis, circular: icon && !hasChildren, size: size, onClick: onClick }),\n icon && !hasChildren && React.createElement(StyledButtonIcon, null, icon),\n icon && hasChildren && (React.createElement(StyledButtonWrapper, { iconPosition: iconPosition },\n React.createElement(StyledButtonIcon, { iconPosition: iconPosition }, icon),\n React.createElement(Text, { appearance: size === 'small'\n ? TextAppearance.label0150\n : TextAppearance.label0200, color: TextColor.inherit, staticSize: true }, children))),\n hasChildren && !icon && (React.createElement(Text, { appearance: size === 'small'\n ? TextAppearance.label0150\n : TextAppearance.label0200, color: TextColor.inherit, staticSize: true }, children))));\n};\nexport const CTA = React.forwardRef((props, forwardRef) => {\n const { emphasis = 'primary', size = 'large' } = props, rest = __rest(props, [\"emphasis\", \"size\"]);\n if (emphasis === 'tertiary' || emphasis === 'none') {\n return (React.createElement(CTALink, Object.assign({}, rest, { forwardRef: forwardRef, emphasis: emphasis, size: size })));\n }\n else {\n return (React.createElement(CTAButton, Object.assign({}, rest, { forwardRef: forwardRef, emphasis: emphasis, size: size })));\n }\n});\nCTA.displayName = 'CTA';\n","import * as React from 'react';\nimport { styled } from '../theme-provider';\nimport { Text, TextAppearance, TextColor, 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.interaction.recipe600.default};`;\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: TextColor.inherit, appearance: TextAppearance.copy100, 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 === \"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.67 1.33v21.34H1.33V1.33zM24 0H0v24h24z\" }));\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, 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 return null;\n}, { displayName: 'CheckboxBorder' }));\n","import * as React from 'react';\nimport { CheckboxBorder, CheckboxCheckmark } from '@volkswagen-onehub/icons-core';\nimport { Text, TextAppearance, TextColor, TextTag } from '../text';\nimport { styled } from '../theme-provider';\nimport { InputAppearance } from '../helpers/input';\nimport { getCommonProps } from '../helpers/common-props';\nconst noop = () => undefined;\nconst StyledLabel = styled.label.withConfig({ displayName: \"StyledLabel\", componentId: \"sc-tap8jg\" }) `position:relative;color:${(props) => props.theme.interaction.recipe450.default};cursor:pointer;`;\nconst StyledCheckboxWrapper = styled.span.withConfig({ displayName: \"StyledCheckboxWrapper\", componentId: \"sc-1gajbzj\" }) `position:relative;display:flex;align-items:center;transform:translateY(\n\t\t${({ textAppearance, theme }) => {\n const { lineHeight } = theme.textAppearances[textAppearance];\n return `calc((${lineHeight} - ${theme.size.static350}) / 2)`;\n}}\n\t);`;\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:${(props) => props.theme.size.static200};grid-template-columns:max-content auto;align-items:flex-start;&:hover{${StyledCheckboxWrapper}{&::before{content:'';position:absolute;top:-${(props) => props.theme.size.static150};left:-${(props) => props.theme.size.static150};height:${(props) => `calc(100% + ${props.theme.size.static250})`};width:${(props) => `calc(100% + ${props.theme.size.static250})`};background-color:${(props) => props.theme.hoverIndicatorColor.outlinedElement.default};transition:${(props) => props.theme.animation.duration.duration400};border-radius:50%;}}}`;\nconst StyledErrorText = styled.span.withConfig({ displayName: \"StyledErrorText\", componentId: \"sc-uiyaus\" }) `display:block;color:${(props) => props.theme.interaction.recipe360.default};font-size:${(props) => props.theme.textAppearances.copy0100.fontSize};`;\nconst StyledInput = styled.input.withConfig({ displayName: \"StyledInput\", componentId: \"sc-h9lzej\" }) `position:absolute;opacity:0;outline:0;user-select:none;pointer-events:none;:checked{+ ${StyledFocusWrapper}{color:${(props) => props.theme.interaction.recipe450.checked};${StyledCheckboxWrapper}{${StyledCheckboxCheckmark}{opacity:1;}}}}:focus-visible{+ ${StyledFocusWrapper}{${StyledCheckboxWrapper}{background-color:${({ theme }) => theme.focus.background};box-shadow:0 0 0 2.66px inset ${({ theme }) => theme.interaction.recipe450.default};}${StyledCheckboxCheckmark}{color:${({ theme }) => theme.focus.foreground};}}}&&&:disabled{+ ${StyledFocusWrapper}{color:${(props) => props.theme.interaction.recipe450.disabled};cursor:not-allowed;}}`;\nconst CheckboxInner = (props) => {\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 { checked, defaultChecked, disabled, label = '', name, value, required, appearance, message, tabIndex, textAppearance = TextAppearance.copy0200, onLabelMouseDown, innerRef, } = props;\n const sharedProps = getCommonProps(props);\n return (React.createElement(StyledLabel, Object.assign({ onMouseDown: onLabelMouseDown }, 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, null,\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, { tag: TextTag.span, color: TextColor.inherit, appearance: textAppearance }, label)) : (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';\nimport { ContainerWrap } from './definitions';\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}\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 if (isBreakpointConfig(horizontalAlign)) {\n return createStylesForBreakpoints(horizontalAlign, (breakpointHorizontalAlign) => `justify-content: ${breakpointHorizontalAlign};`);\n }\n return `justify-content: ${horizontalAlign};`;\n}\nfunction wrapStyles(wrap, theme, gutter) {\n const spacing = (gutter && createSpacing(gutter, theme)) || '0px';\n switch (wrap) {\n case ContainerWrap.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 ContainerWrap.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(wrap = ContainerWrap.auto, theme, gutter) {\n if (isBreakpointConfig(wrap)) {\n return css `${createStylesForBreakpoints(wrap, (breakpointWrap) => wrapStyles(breakpointWrap, theme, gutter))}`;\n }\n return wrapStyles(wrap, theme, gutter);\n}\nfunction spacingBetweenElementsStyles(wrap, theme, gutter, direction) {\n const spacing = (gutter && createSpacing(gutter, theme)) || '0px';\n switch (wrap) {\n case ContainerWrap.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 ContainerWrap.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 if (isBreakpointConfig(props.wrapped)) {\n return css `${createStylesForBreakpoints(props.wrapped, (wrap) => spacingBetweenElementsStyles(wrap, props.theme, props.gutter, props.direction))}`;\n }\n return spacingBetweenElementsStyles(props.wrapped || ContainerWrap.auto, props.theme, props.gutter, props.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, isBreakpointConfig, } from '../helpers/breakpoint';\nimport { getCommonProps } from '../helpers/common-props';\nconst createStretchContentForBreakpoints = (props) => {\n if (!props.stretchContent) {\n return '';\n }\n if (isBreakpointConfig(props.stretchContent)) {\n return createStylesForBreakpoints(props.stretchContent, (stretchContent) => stretchContent ? 'flex-grow: 1;' : 'flex-grow: initial;');\n }\n return props.stretchContent && 'flex-grow: 1;';\n};\nconst createShrinkContentForBreakpoints = (props) => {\n if (!props.shrinkContent) {\n return '';\n }\n if (isBreakpointConfig(props.shrinkContent)) {\n return createStylesForBreakpoints(props.shrinkContent, (shrinkContent) => shrinkContent ? 'flex-shrink: 1;' : 'flex-shrink: initial;');\n }\n return props.shrinkContent && 'flex-shrink: 1;';\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';\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.wrapChildren, props.theme, props.gutter)} 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';\nclass ContainerInner extends React.Component {\n constructor(props) {\n super(props);\n }\n render() {\n const { children, gutter, padding, wrap, stretchContent, shrinkContent, verticalAlign, horizontalAlign, animateChange, innerRef, } = this.props;\n const commonProps = getCommonProps(this.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 }\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 };\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 };\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 = {}));\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 === \"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 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 === \"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 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 === \"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.36zm-1.11-6.42-1.52 1.51a2.32 2.32 0 1 1-2-1.16 2.37 2.37 0 0 1 1 .25l1.53-1.53a4.62 4.62 0 0 0-5.49 0 2.29 2.29 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.62zm-3.52 1.68a1 1 0 1 0 1 1 1 1 0 0 0-1-1z\" }));\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.81 3.81 0 0 0 2.64 1 3.79 3.79 0 0 0 2.32-.78 9.43 9.43 0 0 1 11.33 0l-3.73 3.78a3.82 3.82 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.87zm-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 === \"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.335c1.127 0 1.505.29 1.594.38.586.585.395 2.755.128 3.603l-5.286 5.287L1.39 6.871l5.262-5.261a8.113 8.113 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 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 === \"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 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.727.004A3.561 3.561 0 0 1 38 7.512zm-14-9.723 12 6.391V7.512a1.56 1.56 0 0 0-1.605-1.508L13.668 6A1.622 1.622 0 0 0 12 7.568v33.766z\" }));\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, 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.232 1.232 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 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 === \"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.616.616 0 0 1 .318.465.61.61 0 0 1-.175.523l-5.509 5.505a4.282 4.282 0 0 1 .253-5.777zm-.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.874zm-.267 9.13c-.81.801-1.902 1.25-3.04 1.25a4.272 4.272 0 0 1-2.073-.534.618.618 0 0 1-.318-.464.61.61 0 0 1 .175-.524l5.509-5.507a4.29 4.29 0 0 1-.253 5.78zm.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.616.616 0 0 1-.464.318.61.61 0 0 1-.524-.175l-5.505-5.509a4.282 4.282 0 0 1 5.777.253zm-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.322 4.322 0 0 1-1.25-3.04c-.001-.725.183-1.439.534-2.073a.618.618 0 0 1 .464-.318.61.61 0 0 1 .524.175l5.507 5.509a4.29 4.29 0 0 1-5.78-.253zm7.67.267L4.811 5.538a1.958 1.958 0 0 0-3.09.436 5.614 5.614 0 0 0 8.873 6.7z\" }));\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, 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.886 1.886 0 0 1 .367-2.159zM6 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.158zm.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.793zM10.24 6.443a1.91 1.91 0 0 1 .367 2.159L8.081 6.076a1.886 1.886 0 0 1 2.158.367zM6.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.907 1.907 0 0 1-.367-2.155l2.525 2.526a1.894 1.894 0 0 1-2.158-.37zM5.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 return null;\n}, { displayName: 'AirConditioning' }));\n","import * as React from 'react';\nimport { css, styled, ThemeProvider } from '../theme-provider';\nimport { Text, TextAppearance, TextTag, TextColor } from '../text';\nimport { AirConditioning, StarOutline, Offers, Bookmark, Checkmark, Alert, } from '@volkswagen-onehub/icons-core';\nconst getBackgroundColorByAppearance = css `${({ theme, appearance }) => {\n switch (appearance) {\n case 'new':\n return theme.global.eyeCatcherColor;\n case 'offer':\n return theme.interaction.recipe380.default;\n case 'bookmark':\n return theme.global.pinkEyeCatcherColor;\n case 'success':\n return theme.interaction.recipe350.default;\n case 'error':\n return theme.interaction.recipe360.default;\n case 'alert':\n return theme.interaction.recipe370.default;\n default:\n return theme.interaction.recipe700.default;\n }\n}}`;\nconst getColorByAppearance = css `${({ theme, appearance }) => {\n switch (appearance) {\n case 'success':\n case 'error':\n case 'alert':\n return theme.interaction.recipe750.default;\n case 'new':\n case 'offer':\n case 'bookmark':\n return theme.interaction.recipe925.default;\n default:\n return theme.interaction.recipe600.default;\n }\n}}`;\nconst getIconByAppearance = (appearance) => {\n switch (appearance) {\n case 'new':\n return React.createElement(StarOutline, { variant: \"small\" });\n case 'offer':\n return React.createElement(Offers, { variant: \"small\" });\n case 'bookmark':\n return React.createElement(Bookmark, { variant: \"small\" });\n case 'success':\n return React.createElement(Checkmark, { variant: \"small\" });\n case 'error':\n case 'alert':\n return React.createElement(Alert, { variant: \"small\" });\n default:\n return React.createElement(AirConditioning, { variant: \"small\" });\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;font-size:${({ theme }) => theme.textAppearances.copy150.fontSize};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 = ({ appearance, id, text, hideIcon = false, className }) => (React.createElement(ThemeProvider, { theme: \"main\" },\n React.createElement(StyledDisplayTag, { appearance: appearance, className: className, id: id },\n !hideIcon && getIconByAppearance(appearance),\n React.createElement(Text, { tag: TextTag.p, appearance: TextAppearance.copy150, color: TextColor.inherit }, text))));\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.separatorColor};`;\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, TextAppearance, TextTag } 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: TextAppearance.copy0200, 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","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}\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 return Object.keys(config)\n .sort(compareBreakpoints)\n .map((breakpoint) => mediaQueryTemplate(breakpoint, fn(config[breakpoint])))\n .join('');\n}\nexport function getValueByScreenSize(screenSize, config) {\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 return `${Math.floor((100 / basis) * count * 100) / 100}vw`;\n}\nexport function getColumnsWidthForBreakpoint(columns, breakpoint) {\n assertCountGridColumn(columns);\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 = {}));\nexport const getMainColor = css `${({ theme, appearance }) => {\n switch (appearance) {\n case InputAppearance.ReadOnly:\n return theme.interaction.recipe100.default;\n case InputAppearance.Disabled:\n return theme.interaction.recipe500.disabled;\n default:\n return theme.interaction.recipe500.default;\n }\n}}`;\nexport const getLabelColor = css `${({ theme, appearance }) => {\n switch (appearance) {\n case InputAppearance.ReadOnly:\n return theme.interaction.recipe100.default;\n case InputAppearance.Disabled:\n return theme.interaction.recipe500.disabled;\n default:\n return theme.interaction.recipe450.default;\n }\n}}`;\nexport const getAuxillaryColor = css `${({ theme, appearance }) => {\n switch (appearance) {\n case InputAppearance.Error:\n return theme.interaction.recipe360.default;\n case InputAppearance.Success:\n return theme.interaction.recipe350.default;\n case InputAppearance.Information:\n return theme.interaction.recipe370.default;\n case InputAppearance.Disabled:\n return theme.interaction.recipe200.disabled;\n default:\n return theme.interaction.recipe700.default;\n }\n}}`;\nexport const getAuxillaryTextColor = css `${({ theme, appearance }) => {\n switch (appearance) {\n case InputAppearance.Disabled:\n return theme.interaction.recipe200.disabled;\n case InputAppearance.Error:\n case InputAppearance.Success:\n default:\n return theme.interaction.recipe200.default;\n }\n}}`;\nexport const getNotificationColor = css `${({ theme, appearance }) => {\n switch (appearance) {\n case InputAppearance.Error:\n return theme.interaction.recipe360.default;\n case InputAppearance.Success:\n return theme.interaction.recipe350.default;\n default:\n return theme.interaction.recipe370.default;\n }\n}}`;\nconst appearancesMap = {\n Error: 'error',\n Information: 'alert',\n Success: 'success',\n};\nconst StyledDisplayTag = styled(DisplayTag).withConfig({ displayName: \"StyledDisplayTag\", componentId: \"sc-1p6dz7j\" }) `gap:${({ text }) => !text && 0};${({ isFocused, text }) => !isFocused &&\n !text &&\n `\n\t\t&:dir(rtl) {\n\t\t\tleft:0;\n\t\t\tright:intial;\n\t\t}\n\t\t`}`;\nexport const DisplayNotification = ({ appearance, notificationMessage, isFocused, id }) => {\n const appearanceValue = InputAppearance[appearance];\n return Object.keys(appearancesMap).includes(appearanceValue) ? (React.createElement(StyledDisplayTag, { appearance: appearancesMap[appearanceValue], text: notificationMessage, hideIcon: appearanceValue === 'Information', isFocused: !!isFocused, id: id })) : null;\n};\n","export 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 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 const { alt } = props, others = __rest(props, [\"alt\"]);\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, Object.assign({ className: `lazyload ${className || ''}`, 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 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 { styled } from '../theme-provider';\nimport { getCommonProps } from '../helpers/common-props';\nimport { ChevronDown } from '@volkswagen-onehub/icons-core';\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:${(props) => props.disabled\n ? props.theme.interaction.recipe450.disabled\n : props.theme.interaction.recipe450.default};transition:transform ${ANIMATION_FUNCTION};transform:${(props) => (props.isOpen ? 'rotateX(180deg)' : 'rotateX(0)')};line-height:0;`;\nconst StyledIconWrapper = styled.span.withConfig({ displayName: \"StyledIconWrapper\", componentId: \"sc-1e2gapx\" }) `position:relative;display:flex;align-items:center;justify-content:center;height:${(props) => props.theme.size.static350};margin-top:${(props) => `calc((${props.theme.textAppearances.headline0300.lineHeight} - ${props.theme.size.static350}) / 2)`};&::before{content:'';display:block;width:42px;height:42px;position:absolute;top:50%;left:50%;transform:translateX(-50%)translateY(-50%);border-radius:50%;}`;\nconst StyledAccordion = styled.div.withConfig({ displayName: \"StyledAccordion\", componentId: \"sc-1b6176y\" }) `border-bottom:${({ theme }) => theme.size.line.default} solid ${(props) => props.theme.border.color.secondary};`;\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:${(props) => props.theme.size.dynamic0100};padding-bottom:${(props) => props.isOpen ? props.theme.size.dynamic0040 : props.theme.size.dynamic0100};@media (min-width: ${Breakpoints.b1600}px){padding-bottom:${(props) => props.theme.size.dynamic0050};}cursor:${(props) => (props.disabled ? 'default' : 'pointer')};user-select:none;&:focus{outline:none;${StyledIconWrapper}::before{background-color:${({ theme }) => theme.focus.background};content:'';position:absolute;width:42px;height:42px;border-radius:999px;transform:translate(-50%, -50%);box-shadow:0 0 0 3px inset ${({ theme }) => theme.interaction.recipe450.default};}${StyledIcon}{color:${({ theme }) => theme.focus.foreground};}}&:hover:not(:focus){${StyledIconWrapper}::before{background-color:${(props) => !props.disabled &&\n props.theme.hoverIndicatorColor.outlinedElement.default};}}`;\nconst StyledAccordionBody = styled.div.withConfig({ displayName: \"StyledAccordionBody\", componentId: \"sc-1asd5wy\" }) `display:${(props) => props.isOpen ? (props.fullWidthBody ? 'block' : 'grid') : 'none'};grid-template-columns:${(props) => !props.fullWidthBody && `auto ${props.theme.size.grid001}`};padding-bottom:${(props) => props.theme.size.dynamic0100};`;\nconst StyledHeadWrapper = styled.div.withConfig({ displayName: \"StyledHeadWrapper\", componentId: \"sc-zc5tmo\" }) `display:grid;grid-column-gap:${(props) => props.theme.size.dynamic0100};grid-template-columns:auto max-content;color:${(props) => props.disabled && props.theme.interaction.recipe450.disabled};`;\nexport const Accordion = (props) => {\n const { id, isOpen, disabled, fullWidthBody, 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),\n React.createElement(StyledAccordionHead, { id: headId, tabIndex: 0, isOpen: isOpen, disabled: disabled, onClick: onClick, \"aria-expanded\": isOpen, \"aria-controls\": bodyId },\n React.createElement(StyledHeadWrapper, { disabled: disabled },\n headline,\n React.createElement(StyledIconWrapper, null,\n React.createElement(StyledIcon, { isOpen: isOpen, disabled: disabled, variant: \"default\", ariaHidden: true })))),\n React.createElement(StyledAccordionBody, { id: bodyId, isOpen: isOpen, fullWidthBody: fullWidthBody, \"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:${(props) => props.theme.interaction.recipe370.default};@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.shadows.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\": active }, commonProps),\n React.createElement(ThemeProvider, { theme: \"inverted\" }, children))));\n};\nexport const AlertLayer = withTheme(InternalAlertLayer);\n","import * as React from 'react';\nimport { isBreakpointConfig, createStylesForBreakpoints, } from '../helpers/breakpoint';\nimport { styled } from '../theme-provider';\nimport { getCommonProps } from '../helpers/common-props';\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 if (isBreakpointConfig(props.ratio)) {\n return createStylesForBreakpoints(props.ratio, (ratio) => `padding-bottom: ${calcAspectRatio(ratio) * 100}%;`);\n }\n return `padding-bottom: ${calcAspectRatio(props.ratio) * 100}%;`;\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;","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, TextAppearance, TextColor } 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-1pt9oer\" }) `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) => `${parseInt(props.theme.size.static350, 10) +\n parseInt(props.theme.size.static300, 10) * 2}px`;\nconst StyledTextWrapper = styled.div.withConfig({ displayName: \"StyledTextWrapper\", componentId: \"sc-bublms\" }) `${(props) => props.expanded\n ? css `animation:${props.theme.animation.duration.nba} ${keyframesExpand} 1 ${props.theme.animation.timingFunction.cubicOut};` : css `animation:${props.theme.animation.duration.nba} ${keyframesCollapse} 1 ${props.theme.animation.timingFunction.cubicOut};`} 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 `padding-left:${parseInt(props.theme.size.static350, 10) +\n parseInt(props.theme.size.static200, 10) +\n parseInt(props.theme.size.static300, 10)}px;padding-right:${props.theme.size.static300};` : css `padding-right:${parseInt(props.theme.size.static350, 10) +\n parseInt(props.theme.size.static200, 10) +\n parseInt(props.theme.size.static300, 10)}px;padding-left:${props.theme.size.static300};`} border-radius:${(props) => parseInt(props.theme.size.static350, 10) / 2 +\n parseInt(props.theme.size.static300, 10)}px;background-color:${(props) => props.theme.interaction.recipe250.default};flex:auto 0 0;display:flex;align-items:center;`;\nconst StyledIconWrapper = styled.div.withConfig({ displayName: \"StyledIconWrapper\", componentId: \"sc-1rs67cr\" }) `align-items:center;display:flex;flex:auto 0 0;height:${height};justify-content:center;position:absolute;${({ theme }) => `\n\t\tborder: ${theme.size.static300} solid;\n\t\tborder-color: ${theme.direction === 'rtl'\n ? `transparent transparent transparent ${theme.interaction.recipe250.default}`\n : `transparent ${theme.interaction.recipe250.default} transparent transparent`};\n\t\tborder-radius: ${parseInt(theme.size.static350, 10) / 2 +\n parseInt(theme.size.static300, 10)}px; /* 1/2 height */\n\t\tleft: ${theme.direction === 'rtl' ? 0 : 'unset'};\n\t\tright: ${theme.direction === 'rtl' ? 'unset' : 0};\n\t\ttransition: border-color ${theme.animation.duration.nba} ${theme.animation.timingFunction.cubicOut};\n\t\twidth: ${parseInt(theme.size.static350, 10) +\n parseInt(theme.size.static300, 10) * 2}px; /* same as height */\n\t`}`;\nconst backgroundColor = css `${(props) => props.transitionState === 'entering'\n ? props.theme.nextBestAction.transition.backgroundColor\n : props.theme.interaction.recipe250.default}`;\nconst StyledDecorativeIconWrapper = styled.div.withConfig({ displayName: \"StyledDecorativeIconWrapper\", componentId: \"sc-us2qe\" }) `${({ theme }) => `background-color: ${theme.interaction.recipe250.default};`} height:100%;width:100%;`;\nconst StyledInnerIconWrapper = styled.div.withConfig({ displayName: \"StyledInnerIconWrapper\", componentId: \"sc-uaxbjg\" }) `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:${backgroundColor};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:${backgroundColor};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) => props.transitionState === 'entering'\n ? 'rotate(-90deg)'\n : props.transitionState === 'entered'\n ? 'rotate(0deg)'\n : 'rotate(90deg)'};`;\nconst StyledSubActionWrapper = styled.div.withConfig({ displayName: \"StyledSubActionWrapper\", componentId: \"sc-rs1g3c\" }) `position:absolute;bottom:${height};`;\nconst StyledButton = styled.button.withConfig({ displayName: \"StyledButton\", componentId: \"sc-kcb83x\" }) `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 `animation:${theme.animation.duration.nba} ${keyframesInitializing} 1 step-end;color:${theme.interaction.recipe300.default};border-radius:${parseInt(theme.size.static350, 10) / 2 +\n parseInt(theme.size.static300, 10)}px;${theme.direction === 'rtl'\n ? 'margin-right: auto;'\n : 'margin-left: auto;'}`} ${({ fullWidth }) => fullWidth && 'width: 100%;'} ${({ expanded, theme }) => expanded\n ? css `max-width:calc(100vw - (2 * ${theme.size.dynamic0200}));transition:none;` : css `max-width:${height};transition:max-width 0s ease-in-out ${theme.animation.duration.nba};`}::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.hoverIndicatorColor.filledElement.default};}}:hover,:focus{${({ theme, expanded }) => css `transition:visibility ${theme.animation.duration.nba},max-width ${theme.animation.duration.nba} ${theme.animation.timingFunction.cubicOut};${StyledTextWrapper}{${expanded === undefined && css `animation:${theme.animation.duration.nba} ${keyframesExpand} 1 ${theme.animation.timingFunction.cubicOut};`}}`};${({ show, expanded, theme }) => show &&\n expanded === undefined && css `max-width:calc(100vw - (2 * ${theme.size.dynamic0200}));`};}:active{::before{background:${({ theme }) => theme.hoverIndicatorColor.filledElement.active};}}:focus{color:${({ theme }) => theme.interaction.recipe300.hover};outline:none;box-shadow:0 0 0 2px ${({ theme }) => theme.interaction.recipe450.default};${StyledTextWrapper}{background-color:${({ theme }) => theme.interaction.recipe250.hover};}${StyledIconWrapper}{${({ theme }) => theme.direction === 'rtl'\n ? `border-left-color: ${theme.interaction.recipe250.hover};\n\t\t\t\t\tborder-right-color: transparent;`\n : `border-left-color: transparent;\n\t\t\t\t\tborder-right-color: ${theme.interaction.recipe250.hover};`}}${StyledInnerIconWrapper}{background-color:${({ theme }) => theme.interaction.recipe250.hover};border-color:${({ theme }) => theme.interaction.recipe250.hover};}}`;\nconst StyledCloseButton = styled.button.withConfig({ displayName: \"StyledCloseButton\", componentId: \"sc-4088qd\" }) `${({ theme }) => `\n\t\t${theme.direction === 'rtl' ? 'left: 0;' : 'right: 0;'}\n\t\tbackground-color: ${theme.interaction.recipe200.disabled};\n\t\tborder-radius: ${parseInt(theme.size.static350, 10) / 2 +\n parseInt(theme.size.static300, 10)}px; /* 1/2 height */\n\t\tcolor: ${theme.interaction.recipe200.checked};\n\n\t\t&::before {\n\t\t\tcontent: '';\n\t\t\tposition: absolute;\n\t\t\t${theme.direction === 'rtl' ? 'left: 0;' : 'right: 0;'}\n\t\t\tz-index: 1;\n\t\t\twidth: ${height};\n\t\t\theight: 100%;\n\t\t\tborder-radius: ${parseInt(theme.size.static350, 10) / 2 +\n parseInt(theme.size.static300, 10)}px; /* 1/2 height */\n\t\t\tpointer-events: none;\n\t\t}\n\n\t\t&:hover {\n\t\t\t&::before {\n\t\t\t\twidth: 100%;\n\t\t\t\tbackground: ${theme.hoverIndicatorColor.filledElement.default};\n\t\t\t}\n\t\t}\n\n\t\t&:active {\n\t\t\t&::before {\n\t\t\t\tbackground: ${theme.hoverIndicatorColor.filledElement.active};\n\t\t\t}\n\t\t}\n\n\t\t&:focus {\n\t\t\toutline: none;\n\t\t\tbox-shadow: 0 0 0 2px ${theme.interaction.recipe450.default};\n\t\t}\n\t`} ${({ show }) => `\n\t\tvisibility: ${show ? 'visible' : 'hidden'};\n\t\topacity: ${show ? '1' : '0'};\n\t`} 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-pae19e\" }) `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 `animation:${keyframesSubActionsShow(endIndex * 100, Number(theme.size.static100.replace('px', '') || 0) * endIndex * 2)} ${theme.animation.duration.collapsible} ${theme.animation.timingFunction.cubicOut};` : css `animation:${keyframesSubActionsHide(endIndex * 100, Number(theme.size.static100.replace('px', '') || 0) * endIndex * 2)} ${theme.animation.duration.collapsible} ${theme.animation.timingFunction.cubicOut};`}`;\nconst StyledNextBestActionButtonWrapper = styled.div.withConfig({ displayName: \"StyledNextBestActionButtonWrapper\", componentId: \"sc-1xku9lu\" }) `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-ssvxgj\" }) `${({ theme }) => css `background-color:${theme.interaction.recipe750.default};border-color:${theme.interaction.recipe450.default};border:${theme.size.border.heavy} solid;min-height:${theme.size.static300};min-width:${theme.size.static300};${theme.direction === 'rtl' ? 'left: 0' : 'right: 0'};`} border-radius:50%;display:flex;justify-content:center;position:absolute;z-index:1;`;\nconst StyledBadgeText = styled.div.withConfig({ displayName: \"StyledBadgeText\", componentId: \"sc-vo1kgm\" }) `${({ theme }) => css `color:${theme.interaction.recipe450.default};font-size:${theme.size.static200};line-height:${theme.size.static200};`} 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 setTimeout(() => {\n var _a;\n (_a = CloseButtonRef.current) === null || _a === void 0 ? void 0 : _a.focus();\n }, timeout);\n }\n }, [internalDisplaySubActions, timeout]);\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: TextAppearance.label0200, staticSize: true, color: TextColor.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 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 === \"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.125A88.136 88.136 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-.99a80.595 80.595 0 0 1-4.782-4.635h17.895z\" }));\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, 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.136a48.545 48.545 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.17 44.17 0 0 1-1.979-1.886h7.865z\" }));\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 === \"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.99a80.64 80.64 0 0 1 4.782 4.635H1.991v1.33h17.877a88.117 88.117 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.289z\" }));\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, 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.878a48.711 48.711 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.553z\" }));\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","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 CardContext = React.createContext({\n type: 'default',\n emphasis: 'large',\n});\nexport const useCardContext = () => React.useContext(CardContext);\nexport const Card = React.forwardRef((props, ref) => {\n const { children, emphasis, type, 'data-testid': dataTestId } = props;\n const [ariaControlsIds, setAriaControlsIds] = React.useState('');\n const isActive = isExtendedCardProps(props) ? props.isActive : false;\n const onToggle = isExtendedCardProps(props) ? props.onToggle : undefined;\n return (React.createElement(CardContext.Provider, { value: {\n setAriaControlsIds,\n type,\n emphasis,\n dataTestId,\n isActive,\n onToggle,\n } },\n React.createElement(CardInner, Object.assign({}, props, { ref: ref, ariaControlsIds: ariaControlsIds }), children)));\n});\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.interaction.recipe450.active}`\n : `1px ${theme.interaction.recipe550.default}`};&:hover:not(:disabled){box-shadow:0px 0px 0px ${({ theme, isChecked }) => isChecked\n ? `2px ${theme.interaction.recipe450.active}`\n : `2px ${theme.interaction.recipe550.default}`};}img,.img{padding:0;border:0;}&:focus-visible,&:active:not(:disabled){outline:solid 2px ${({ theme }) => theme.decoratorColor};}&: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.interaction.recipe100.default};`;\nconst isExtendedCardProps = (props) => props.type === 'collapsible' ||\n props.type === 'selectable';\nconst CardInner = React.forwardRef((props, ref) => {\n const { children, 'data-testid': dataTestId, uniqueAriaId = undefined, ariaControlsIds = undefined, role, ariaLabel = undefined, type } = props, other = __rest(props, [\"children\", 'data-testid', \"uniqueAriaId\", \"ariaControlsIds\", \"role\", \"ariaLabel\", \"type\"]);\n const defaultRoleAttribute = type === 'collapsible'\n ? 'button'\n : type === 'selectable'\n ? 'option'\n : undefined;\n if (isExtendedCardProps(props)) {\n const isChecked = type === 'selectable' ? props.isActive : undefined;\n const isSelected = type === 'selectable' ? props.isActive : undefined;\n const isExpanded = type === 'collapsible' ? props.isActive : undefined;\n return (React.createElement(CardWrapper, Object.assign({}, other, { id: uniqueAriaId, \"aria-label\": ariaLabel, role: role || defaultRoleAttribute, \"aria-controls\": type === 'collapsible' ? ariaControlsIds : undefined, tabIndex: 0, \"aria-selected\": isSelected, \"aria-expanded\": isExpanded, isChecked: isChecked, \"data-testid\": dataTestId, ref: ref }), children));\n }\n return (React.createElement(CardWrapper, Object.assign({}, other, { id: uniqueAriaId, \"aria-label\": ariaLabel, role: role || defaultRoleAttribute, tabIndex: 0, \"data-testid\": dataTestId, ref: ref }), children));\n});\nCardInner.displayName = 'Card';\n","import * 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((link) => React.createElement(CTA, Object.assign({}, link), link.text))),\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.interaction.recipe550.default};padding-top:${({ theme, emphasis }) => emphasis === 'small' ? theme.size.static150 : theme.size.static200};display:flex;gap:${({ theme }) => theme.size.static250};`;\nexport const CardSection = ({ children, ariaLabel, ariaUniqueId, isCollapsed = true, }) => {\n const context = useCardContext();\n const { emphasis, type = 'default', setAriaControlsIds, isActive } = context;\n React.useEffect(() => {\n isCollapsed &&\n ariaUniqueId &&\n setAriaControlsIds &&\n setAriaControlsIds((prev) => `${prev !== ' ' ? prev.substring(1) : prev} ${ariaUniqueId}`);\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 '../../theme-provider';\nimport { ChevronDown } from '@volkswagen-onehub/icons-core';\nconst ANIMATION_FUNCTION = '0.3s cubic-bezier(0.14, 1.12, 0.67, 0.99)';\nconst StyledIconWrapper = styled.span.withConfig({ displayName: \"StyledIconWrapper\", componentId: \"sc-1ol7hgi\" }) `position:relative;display:flex;align-items:center;justify-content:center;height:${({ theme }) => theme.size.static350};margin-top:${({ theme }) => `calc((${theme.textAppearances.headline0300.lineHeight} - ${theme.size.static350}) / 2)`};&::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%;}`;\nconst StyledIcon = styled(ChevronDown).withConfig({ displayName: \"StyledIcon\", componentId: \"sc-np89i1\" }) `color:${({ disabled, theme }) => disabled\n ? theme.interaction.recipe450.disabled\n : theme.interaction.recipe450.default};transition:transform ${ANIMATION_FUNCTION};transform:${({ isOpen }) => (isOpen ? 'rotateX(180deg)' : 'rotateX(0)')};line-height:0;`;\nexport const CardHeaderChevron = ({ isOpen, disabled, onCollapsedToggle, dataTestId }) => {\n const handleClick = React.useCallback((e) => {\n e.stopPropagation();\n e.preventDefault();\n onCollapsedToggle && onCollapsedToggle();\n }, [onCollapsedToggle]);\n return (React.createElement(StyledIconWrapper, { onClick: handleClick, \"data-testid\": `${dataTestId}-header-chevron` },\n React.createElement(StyledIcon, { isOpen: isOpen, disabled: disabled, variant: \"default\", ariaHidden: true })));\n};\n","import * as React from 'react';\nimport { CheckboxCheckmark } from '@volkswagen-onehub/icons-core';\nimport { styled } from '../../theme-provider';\nconst StyledCheckmarkWrapper = styled.div.withConfig({ displayName: \"StyledCheckmarkWrapper\", componentId: \"sc-r5mg0v\" }) `color:${({ theme }) => theme.interaction.recipe950.checked};position:relative;display:flex;align-items:center;justify-content:center;height:${({ theme }) => theme.size.static350};width:${({ theme }) => theme.size.static350};margin-top:${({ theme }) => `calc((${theme.textAppearances.headline0300.lineHeight} - ${theme.size.static350}) / 2)`};background:${({ theme, isSelected }) => isSelected\n ? theme.interaction.recipe450.active\n : theme.interaction.recipe950.checked};border-radius:50%;border:1px solid ${({ theme, isSelected }) => isSelected\n ? theme.interaction.recipe450.active\n : theme.interaction.recipe550.default};&::before{content:'';display:block;width:${({ theme }) => theme.size.static370};height:${({ theme }) => theme.size.static370};position:absolute;top:50%;left:50%;border-radius:50%;}`;\nexport const CardHeaderCheckbox = ({ isSelected, onToggle, dataTestId }) => {\n const handleClick = React.useCallback((e) => {\n e.stopPropagation();\n e.preventDefault();\n onToggle && onToggle();\n }, [onToggle]);\n return (React.createElement(StyledCheckmarkWrapper, { isSelected: isSelected, onClick: handleClick, \"data-testid\": `${dataTestId}-header-checkbox` },\n React.createElement(CheckboxCheckmark, { variant: \"small\", ariaHidden: true })));\n};\n","import * as React from 'react';\nimport { Text, TextAppearance } from '../../text';\nexport const CardTitle = ({ title, emphasis, }) => {\n const { headline0200, headline0250 } = TextAppearance;\n return (React.createElement(Text, { appearance: emphasis === 'small' ? headline0200 : headline0250, bold: true }, title));\n};\n","import * as React from 'react';\nimport { 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';\nconst CardHeaderWrapper = styled.div.withConfig({ displayName: \"CardHeaderWrapper\", componentId: \"sc-1mpflw3\" }) `display:flex;justify-content:space-between;cursor:pointer;`;\nconst StyledIconWrapper = styled.div.withConfig({ displayName: \"StyledIconWrapper\", componentId: \"sc-cqjig3\" }) `cursor:pointer;`;\nexport const CardHeader = ({ title, children, }) => {\n const { emphasis, type, dataTestId, isActive = false, onToggle, } = useCardContext();\n return (React.createElement(CardHeaderWrapper, null,\n React.createElement(CardTitle, { emphasis: emphasis, title: title }),\n type === 'collapsible' ? (React.createElement(StyledIconWrapper, null,\n React.createElement(CardHeaderChevron, { isOpen: isActive, onCollapsedToggle: onToggle, dataTestId: dataTestId }))) : type === 'selectable' ? (React.createElement(StyledIconWrapper, null,\n React.createElement(CardHeaderCheckbox, { isSelected: isActive, onToggle: onToggle, dataTestId: dataTestId }))) : undefined,\n children && React.createElement(React.Fragment, null, children)));\n};\n","import * as React from 'react';\nimport { warnWithTrace } from '../helpers/logger';\nconst NO_NAME = 'Component';\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);\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 try {\n Object.defineProperty(targetComponent, key, descriptor);\n }\n catch (e) {\n }\n }\n }\n });\n return targetComponent;\n}\nfunction getDisplayName(WrappedComponent) {\n return WrappedComponent.displayName || WrappedComponent.name || NO_NAME;\n}\nfunction createComponentMessage(component, value) {\n return [\n typeof value !== 'string'\n ? `The component \"${getDisplayName(component)}\" is deprecated.`\n : value,\n ];\n}\nfunction getBaseMessage(prop, name) {\n return `The prop \"${prop}\" on component \"${name || NO_NAME}\" is deprecated.`;\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}\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}\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}\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}\nexport function deprecated(value, config) {\n if (typeof value === 'function') {\n return createDeprecatedFunction(value, config);\n }\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 { CSSTransition } from 'react-transition-group';\nimport { getColumnsWidthForBreakpoint, getGridColumn } from '../helpers/grid';\nimport { Breakpoints } from '../helpers/breakpoint';\nimport { styled, useTheme } from '../theme-provider';\nimport { deprecated } from '../deprecated';\nimport { getCommonProps } from '../helpers/common-props';\nconst animationClassName = 'animation';\nconst StyledScrollWrapper = styled.div.withConfig({ displayName: \"StyledScrollWrapper\", componentId: \"sc-10pydn7\" }) `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-17grtnp\" }) `height:auto;width:${getGridColumn(22)};max-width:${getColumnsWidthForBreakpoint(22, Breakpoints.b1920)};margin-top:${(props) => props.theme.size.dynamic0350};margin-bottom:${(props) => props.theme.size.dynamic0350};margin-right:auto;margin-left:auto;background-color:${(props) => props.theme.global.backgroundColor};pointer-events:auto;`;\nfunction isHTMLElement(element) {\n return element.click !== undefined;\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, } = props;\n const commonProps = getCommonProps(props);\n const theme = useTheme();\n return (React.createElement(CSSTransition, { classNames: animationClassName, onExited: onExited, in: visible, timeout: parseInt(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, onClick: (event) => event.stopPropagation() }, children))));\n}\nexport const ContentLayer = deprecated(InternalContentLayer, 'The ContentLayer component will be removed. Please use the new ContentLayerV2 instead. For more details see #1368');\n","import * as React from 'react';\nimport { CSSTransition } from 'react-transition-group';\nimport { withTheme } from 'styled-components';\nimport { Close } from '@volkswagen-onehub/icons-core';\nimport { getColumnsWidthForBreakpoint, getGridColumn } from '../helpers/grid';\nimport { Breakpoints } from '../helpers/breakpoint';\nimport { styled } from '../theme-provider';\nimport { CTA } from '../call-to-action';\nimport { Text, TextAppearance, TextTag } from '../text';\nimport { getCommonProps } from '../helpers/common-props';\nconst CLOSE_BTN_ALIGNMENT_CALC = (44 - 24) / 2;\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:${getGridColumn(24)};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:${(props) => props.theme.global.backgroundColor};pointer-events:auto;`;\nconst StyledContentContainer = styled.div.withConfig({ displayName: \"StyledContentContainer\", componentId: \"sc-1t57351\" }) `${(props) => !props.disableDefaultPadding &&\n `\n\t\t\tpadding: ${props.theme.size.dynamic0300} 0;\n\t\t`};`;\nconst StyledHeaderContainer = styled.header.withConfig({ displayName: \"StyledHeaderContainer\", componentId: \"sc-1twf875\" }) `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.border.color.secondary};background:${(props) => props.theme.navigation.backgroundTransparency};z-index:1;`;\nconst StyledTitleContainer = styled.h3.withConfig({ displayName: \"StyledTitleContainer\", componentId: \"sc-jcps5z\" }) `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-3jtqpl\" }) `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)};}`;\nfunction isHTMLElement(element) {\n return element.click !== undefined;\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, onClose, scrollElementRef, closeButtonLabel, contentHeadline, disableDefaultPadding, } = 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, onClick: (event) => event.stopPropagation() },\n React.createElement(StyledHeaderContainer, null,\n React.createElement(StyledTitleContainer, null,\n React.createElement(Text, { tag: TextTag.span, appearance: TextAppearance.headline0200, bold: true }, 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}\nexport const ContentLayerV2 = withTheme(InternalContentLayer);\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 class Language extends React.Component {\n constructor(props) {\n super(props);\n }\n render() {\n const { children, direction, language, tag } = this.props;\n const commonProps = getCommonProps(this.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}\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.global.backgroundColor};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%,rgba(255, 194, 244, 0.1)${100 / 24}%,rgba(255, 194, 244, 0.3)${100 / 24}%,rgba(255, 191, 244, 0.3)${(100 / 24) * 2}%,rgba(255, 194, 244, 0.1)${(100 / 24) * 2}% );max-width:2560px;margin:auto;`;\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 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.shadows.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', } = 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), children))));\n}\nexport const DisclaimerLayer = withTheme(InternalDisclaimerLayer);\n","import * as React from 'react';\nimport { Text, TextAppearance, TextColor } 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;`;\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\" }) `display:grid;grid-template-columns:2em auto;grid-column-gap:${(props) => props.theme.size.static150};outline:0;position:relative;&: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.interaction.recipe400.hover};border-radius:2px;pointer-events:none;opacity:0;transition:opacity ${ANIMATION_FUNCTION};}&:focus{&:before{opacity:1;}}`;\nconst StyledDD = styled.dd.withConfig({ displayName: \"StyledDD\", componentId: \"sc-1h15w9g\" }) `margin:0;padding:0;`;\nconst StyledDT = styled.dt.withConfig({ displayName: \"StyledDT\", componentId: \"sc-1ak8yl8\" }) `margin:0;padding:0;`;\nconst StyledUL = styled.ul.withConfig({ displayName: \"StyledUL\", componentId: \"sc-10nbf71\" }) `display:grid;grid-row-gap:${(props) => props.theme.size.static200};list-style:none;margin:0;padding:0;`;\nconst StyledLI = styled.li.withConfig({ displayName: \"StyledLI\", componentId: \"sc-5dyo7o\" }) `margin:0;padding:0;`;\nconst hasReferences = (disclaimers) => Boolean(disclaimers.find((disclaimer) => Boolean(disclaimer.reference)));\nconst getIndexWithPrefix = (index) => {\n return `disclaimerRef-${index}`;\n};\nconst getMappedDisclaimers = (disclaimerArray) => disclaimerArray.reduce((accumulatedDisclaimers, currentDisclaimer, index) => (Object.assign(Object.assign({}, accumulatedDisclaimers), { [currentDisclaimer.key || getIndexWithPrefix(index)]: Object.assign(Object.assign({}, currentDisclaimer), { disclaimerWrapperRef: React.createRef() }) })), {});\nexport class Disclaimers extends React.PureComponent {\n constructor(props) {\n super(props);\n this.state = {\n mappedDisclaimers: getMappedDisclaimers(props.disclaimers),\n };\n }\n focusDisclaimer(disclaimerKey) {\n var _a;\n (_a = this.state.mappedDisclaimers[disclaimerKey].disclaimerWrapperRef.current) === null || _a === void 0 ? void 0 : _a.focus();\n }\n getDisclaimerDimensions(disclaimerKey) {\n var _a;\n return (_a = this.state.mappedDisclaimers[disclaimerKey].disclaimerWrapperRef.current) === null || _a === void 0 ? void 0 : _a.getBoundingClientRect();\n }\n componentDidUpdate(prevProps) {\n if (this.props.disclaimers !== prevProps.disclaimers) {\n this.setState({\n mappedDisclaimers: getMappedDisclaimers(this.props.disclaimers),\n });\n }\n }\n render() {\n const { disclaimers } = this.props;\n const commonProps = getCommonProps(this.props);\n return (React.createElement(Text, Object.assign({ appearance: TextAppearance.copy0150, color: TextColor.secondary }, commonProps), hasReferences(disclaimers) ? (React.createElement(StyledDL, { \"data-component\": Disclaimers.componentName }, disclaimers.map((disclaimer, index) => {\n var _a;\n return (React.createElement(StyledDisclaimerFocusWrapper, { key: disclaimer.key, ref: (_a = this.state.mappedDisclaimers[disclaimer.key || getIndexWithPrefix(index)]) === null || _a === void 0 ? void 0 : _a.disclaimerWrapperRef, tabIndex: -1 },\n React.createElement(StyledDT, null, disclaimer.reference),\n React.createElement(StyledDD, null, disclaimer.text)));\n }))) : (React.createElement(StyledUL, { \"data-component\": Disclaimers.componentName }, disclaimers.map((disclaimer) => (React.createElement(StyledLI, { key: disclaimer.key }, disclaimer.text)))))));\n }\n}\nDisclaimers.componentName = 'disclaimer';\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.908Z\" }),\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 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 === \"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 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 === \"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 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:${({ isSelected, iconPosition }) => isSelected && iconPosition === 'end' ? 'rotate(45deg)' : 'rotate(0)'};`;\nexport const Icon = ({ isSelected, iconPosition, }) => {\n return iconPosition === 'start' && !isSelected ? (React.createElement(Add, { variant: \"small\" })) : iconPosition === 'end' ? (React.createElement(StyledAddIcon, { variant: \"small\", iconPosition: iconPosition, isSelected: isSelected })) : (React.createElement(Checkmark, { variant: \"small\" }));\n};\n","import * as React from 'react';\nimport { css, styled } from '../theme-provider';\nimport { Icon } from './icon';\nimport { Text, TextAppearance, TextTag, TextColor } from '../text';\nconst styles = {\n primary: {\n selected: css `background:${({ theme }) => theme.interaction.recipe400.active};color:${({ theme }) => theme.interaction.recipe750.default};`,\n notSelected: css `color:${({ theme }) => theme.interaction.recipe300.default};background:${({ theme }) => theme.interaction.recipe700.default};&:hover:not(:disabled){background:${({ theme }) => theme.interaction.recipe550.default};`,\n },\n secondary: {\n selected: css `background:${({ theme }) => theme.interaction.recipe950.default};color:${({ theme }) => theme.interaction.recipe450.active};border:${({ theme }) => theme.size.border.heavy} solid ${({ theme }) => theme.interaction.recipe450.active};&:hover:not(:disabled){color:${({ theme }) => theme.interaction.recipe950.default};background:${({ theme }) => theme.interaction.recipe450.active};border:${({ theme }) => theme.size.border.heavy} solid ${({ theme }) => theme.interaction.recipe450.active};}`,\n notSelected: css `color:${({ theme }) => theme.interaction.recipe300.default};background:${({ theme }) => theme.interaction.recipe950.default};border:${({ theme }) => theme.size.border.light} solid ${({ theme }) => theme.interaction.recipe550.default};&:hover:not(:disabled){box-shadow:inset 0 0 0 ${({ theme }) => theme.size.line.default} ${({ theme }) => theme.interaction.recipe550.default};}&:not(:hover){transition:box-shadow ${({ theme }) => theme.animation.duration.layer} ease;-webkit-transition:box-shadow ${({ theme }) => theme.animation.duration.layer} ease;}`,\n },\n};\nconst outLineStyleFocus = css `&:focus-visible{outline:${({ theme }) => theme.size.line.active} solid ${({ theme }) => theme.decoratorColor};}&:focus:not(:focus-visible){outline:none;outline-offset:0;}`;\nconst StyledFilterTag = styled.button.withConfig({ displayName: \"StyledFilterTag\", componentId: \"sc-1tm4pjq\" }) `display:flex;flex-direction:${({ iconPosition }) => iconPosition === 'end' && 'row-reverse'};gap:${({ theme }) => theme.size.static150};font-size:${({ theme }) => theme.textAppearances.copy150.fontSize};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{opacity:0.4;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, isSelected }) => emphasis && styles[emphasis][isSelected ? 'selected' : 'notSelected']};`;\nexport const FilterTag = ({ iconPosition = 'start', emphasis = 'primary', disabled = false, disabledReason, active = false, onClick, text, ariaPressed, 'data-testid': dataTestId = 'filterTag', }) => {\n const handleClick = (evt) => {\n onClick && onClick(evt);\n };\n return (React.createElement(StyledFilterTag, { \"aria-pressed\": ariaPressed, active: active, onClick: handleClick, emphasis: emphasis, iconPosition: iconPosition, isSelected: active, disabled: disabled, \"aria-describedby\": disabled ? 'disabledReason' : '', \"data-testid\": dataTestId },\n disabled && disabledReason && (React.createElement(\"span\", { id: \"disabledReason\", hidden: true }, disabledReason)),\n React.createElement(Icon, { iconPosition: iconPosition, isSelected: active }),\n React.createElement(Text, { tag: TextTag.span, appearance: TextAppearance.copy150, color: TextColor.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';\nexport var FocusLayerSize;\n(function (FocusLayerSize) {\n FocusLayerSize[\"A\"] = \"A\";\n FocusLayerSize[\"B\"] = \"B\";\n FocusLayerSize[\"C\"] = \"C\";\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 `max-height:${calcLayerHeight(props.theme.size.static200)};@media (min-width: ${Breakpoints.b560}px){max-height:${calcLayerHeight(props.theme.size.static300)};}@media (min-width: ${Breakpoints.b1600}px){max-height:${calcLayerHeight(props.theme.size.static400)};}@media (min-width: ${Breakpoints.b2560}px){max-height:${calcLayerHeight(props.theme.size.static510)};}${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}`} ${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}`} ${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}`}`} background-color:${(props) => props.theme.global.backgroundColor};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';\nconst StyledFullscreenLayer = styled.div.withConfig({ displayName: \"StyledFullscreenLayer\", componentId: \"sc-1x1y0wp\" }) `position:fixed;top:0;right:0;bottom:0;left:0;opacity:1;background-color:white;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 if (allFocusableElements) {\n allFocusableElements.forEach((item) => {\n const itemTabindex = item.getAttribute('tabindex');\n const originalItemTabindex = item.getAttribute(TABINDEX_ORIGINAL);\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 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) => (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 (entry.type === 'attributes' &&\n entry.attributeName !== 'tabindex' &&\n entry.attributeName !== TABINDEX_ORIGINAL) ||\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:${(props) => (props.withScrollSnap ? 'start' : 'none')};outline:none;padding-inline-end:${(props) => props.gutter ? props.theme.size[props.gutter] : '0px'};:first-child{margin-inline-start:calc(\n\t\t\tvar(--gallery-fadingEdges)* var(--gallery-hasFadingEdges)/ 2 );}:last-child{padding-inline-end:0;margin-inline-end:calc(\n\t\t\tvar(--gallery-fadingEdges)* var(--gallery-hasFadingEdges)/ 2 );}opacity:${(props) => props.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, gutter, accessibleExtendedIndices, visibleIndices, snappableExtendedIndices, } = React.useContext(GalleryContext);\n const { index: slideIndex, id = NaN } = React.useContext(GallerySlideContext);\n const slideId = id || slideIndex;\n const isCopyOfASlide = !Number.isNaN(id);\n const ariaHidden = isCopyOfASlide\n ? !accessibleExtendedIndices.includes(slideId)\n : visibleIndices.includes(slideIndex) &&\n !accessibleExtendedIndices.includes(slideIndex);\n return (React.createElement(StyledSlide, { id: getSlideId(slideId), slidesPerPage: slidesPerPage, fadingEdges: fadingEdges, gutter: gutter, 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 { css, DesignTokenSizeEnum, styled, useTheme, } from '../theme-provider';\nimport { getCommonProps } from '../helpers/common-props';\nimport { createStylesForBreakpoints, getValueByScreenSize, isBreakpointConfig, } from '../helpers/breakpoint';\nimport { ChildContainerTabIndexManager } from './tabindex-manager';\nimport { StyledSlide, GallerySlideContext } from './slide';\nconst StyledCarousel = styled.section.withConfig({ displayName: \"StyledCarousel\", componentId: \"sc-1lwge8c\" }) `overflow:none;width:100%;position:relative;:focus{outline:none;}`;\nconst getSlideWidth = (theme, gutter, lastChild = false) => {\n const slidesPerPage = 'var(--gallery-slidesPerPage)';\n const fadingEdgesSize = 'var(--gallery-fadingEdges)';\n const hasFadingEdges = 'var(--gallery-hasFadingEdges)';\n const gutterSize = gutter ? theme.size[gutter] : '0px';\n const stageWidth = '100%';\n return `calc((${stageWidth} - ${fadingEdgesSize} * ${hasFadingEdges} + ${gutterSize}) / ${slidesPerPage} - ${lastChild ? gutterSize : '0px'})`;\n};\nconst getSlidesPerPageCSSVariable = (slidesPerPage) => {\n if (isBreakpointConfig(slidesPerPage)) {\n return createStylesForBreakpoints(slidesPerPage, (slidesPerPage) => `\n\t\t\t\t--gallery-slidesPerPage: ${slidesPerPage};\n\t\t\t`);\n }\n return `\n\t\t--gallery-slidesPerPage: ${slidesPerPage};\n\t`;\n};\nconst getFadingEdgesCSSVariable = (fadingEdges, theme) => {\n if (isBreakpointConfig(fadingEdges)) {\n return createStylesForBreakpoints(fadingEdges, (fadingEdges) => {\n return `--gallery-fadingEdges: ${fadingEdges ? theme.size.grid004 : '0px'};`;\n });\n }\n return `\n\t\t--gallery-fadingEdges: ${fadingEdges ? theme.size.grid004 : '0px'};\n\t`;\n};\nconst getHasFadingEdgesCSSVariable = (childrenLength, slidesPerPage) => {\n if (isBreakpointConfig(slidesPerPage)) {\n return createStylesForBreakpoints(slidesPerPage, (slidesPerPage) => {\n return `--gallery-hasFadingEdges: ${childrenLength > slidesPerPage ? '1' : '0'};`;\n });\n }\n return `--gallery-hasFadingEdges: ${childrenLength > slidesPerPage ? '1' : '0'};`;\n};\nconst getScrollPadding = (fadingEdges, theme) => {\n if (isBreakpointConfig(fadingEdges)) {\n return createStylesForBreakpoints(fadingEdges, (fadingEdges) => {\n return `scroll-padding: 0 calc(${fadingEdges ? theme.size.grid002 : '0px'});`;\n });\n }\n return `scroll-padding: 0 calc(${fadingEdges ? theme.size.grid002 : '0px'});`;\n};\nconst getScrollPaddingReset = (childrenLength, slidesPerPage) => {\n if (isBreakpointConfig(slidesPerPage)) {\n return createStylesForBreakpoints(slidesPerPage, (slidesPerPage) => {\n return childrenLength <= slidesPerPage ? 'scroll-padding: 0;' : '';\n });\n }\n return childrenLength <= slidesPerPage ? 'scroll-padding: 0;' : '';\n};\nconst StyledSlides = styled.div.withConfig({ displayName: \"StyledSlides\", componentId: \"sc-17msnuv\" }) `display:flex;${(props) => !props.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 2px ${({ theme }) => theme.interaction.recipe450.default};}${(props) => getSlidesPerPageCSSVariable(props.slidesPerPage)} ${(props) => getFadingEdgesCSSVariable(props.fadingEdges, props.theme)} ${(props) => getHasFadingEdgesCSSVariable(props.childrenLength, props.slidesPerPage)} ${(props) => getScrollPadding(props.fadingEdges, props.theme)} ${(props) => getScrollPaddingReset(props.childrenLength, props.slidesPerPage)}::after{content:'';padding-right:0.02px;}${StyledSlide}{${(props) => css `flex-basis:${getSlideWidth(props.theme, props.gutter)};max-width:${getSlideWidth(props.theme, props.gutter)};`};${(props) => css `:last-child{flex-basis:${getSlideWidth(props.theme, props.gutter, true)};max-width:${getSlideWidth(props.theme, props.gutter, true)};}`};}`;\nconst noop = () => {\n};\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 gutter: undefined,\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 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 = isBreakpointConfig(slidesPerPage)\n ? getValueByScreenSize(width, slidesPerPage)\n : slidesPerPage;\n setCurrentSlidesPerPage(newCurrentSlidesPerPage);\n }, [slidesPerPage]);\n const updateFadingEdges = React.useCallback(() => {\n const width = typeof window !== 'undefined' ? window.innerWidth || 0 : 0;\n const newCurrentFadingEdges = isBreakpointConfig(fadingEdges)\n ? getValueByScreenSize(width, fadingEdges)\n : 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 if (!slidesElement.scrollTo) {\n return;\n }\n const firstSlideElement = slidesElement.querySelector(':first-child');\n if (!firstSlideElement) {\n return;\n }\n const slideWidth = firstSlideElement.getBoundingClientRect().width;\n const targetPosition = (endlessScrolling\n ? nextIndex + currentSlidesPerPage + 1\n : (nextIndex + childrenLength) % childrenLength) * slideWidth;\n const left = theme.direction === 'rtl' ? -1 * targetPosition : targetPosition;\n slidesElement.scrollTo({\n left,\n behavior: animate ? 'smooth' : 'auto',\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 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 const shouldOverscroll = endlessScrolling;\n if (extendedIndex > childrenLength - 1) {\n return;\n }\n if (!shouldOverscroll &&\n extendedIndex === childrenLength - currentSlidesPerPage) {\n changeSlide(0);\n }\n else {\n const snappableTargetIndex = snappableExtendedIndices.find((value) => value > extendedIndex) || 0;\n changeSlide(snappableTargetIndex);\n }\n }, [\n changeSlide,\n childrenLength,\n currentSlidesPerPage,\n endlessScrolling,\n extendedIndex,\n snappableExtendedIndices,\n ]);\n const slideToPreviousSlide = React.useCallback(() => {\n const shouldOverscroll = endlessScrolling;\n if (extendedIndex < 1 - currentSlidesPerPage) {\n return;\n }\n if (!shouldOverscroll && extendedIndex === 0) {\n changeSlide(childrenLength - currentSlidesPerPage);\n }\n else {\n const snappableArrayIndex = (snappableExtendedIndices.findIndex((value) => value === extendedIndex) -\n 1 +\n childrenLength) %\n childrenLength;\n const snappableTargetIndex = snappableExtendedIndices[snappableArrayIndex] || 0;\n changeSlide(snappableTargetIndex);\n }\n }, [\n changeSlide,\n childrenLength,\n currentSlidesPerPage,\n endlessScrolling,\n extendedIndex,\n snappableExtendedIndices,\n ]);\n const handleScroll = React.useCallback((e) => {\n const slidesElement = e.currentTarget;\n const scrollPosition = theme.direction === 'rtl'\n ? -1 * slidesElement.scrollLeft\n : slidesElement.scrollLeft;\n const firstSlideElement = slidesElement.querySelector(':first-child');\n if (!firstSlideElement) {\n return;\n }\n const slideWidth = firstSlideElement.getBoundingClientRect().width;\n if (endlessScrolling) {\n if (scrollPosition <= Math.ceil(slideWidth)) {\n changeSlide(childrenLength - currentSlidesPerPage, false);\n return;\n }\n if (scrollPosition >=\n Math.floor((childrenLength + currentSlidesPerPage + 1) * slideWidth)) {\n changeSlide(0, false);\n return;\n }\n }\n const scrollIndex = Math.round(scrollPosition / Math.floor(slideWidth)) -\n (endlessScrolling ? currentSlidesPerPage + 1 : 0);\n if (scrollIndex !== extendedIndex) {\n setExtendedIndex(scrollIndex);\n extendedIndexRef.current = scrollIndex;\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 const handleChange = React.useCallback((nextIndex, animate) => {\n const snappableArrayIndex = snappableExtendedIndices.findIndex((value) => value > nextIndex) - 1;\n const snappableTargetIndex = snappableExtendedIndices[snappableArrayIndex] || 0;\n changeSlide(snappableTargetIndex, animate);\n }, [changeSlide, snappableExtendedIndices]);\n React.useEffect(() => {\n const slidesElement = slides.current;\n if (!slidesElement) {\n return;\n }\n changeSlide(extendedIndex, false);\n }, [changeSlide, childrenLength, currentSlidesPerPage, endlessScrolling]);\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 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 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 gutter: currentGutter,\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 currentGutter,\n handleChange,\n id,\n index,\n slideToNextSlide,\n slideToPreviousSlide,\n snappableExtendedIndices,\n visibleIndices,\n slides,\n ]);\n const slideChildren = 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(React.createElement(GallerySlideContext.Provider, { key: child.key, value: {\n index,\n } }, child));\n if (endlessScrolling && childrenLength > currentSlidesPerPage) {\n if (index < currentSlidesPerPage + 1) {\n const id = childrenLength + index;\n trailingSlides.push(React.createElement(GallerySlideContext.Provider, { key: `${child.key}-${id}`, value: {\n index: index,\n id: id,\n } }, child));\n }\n if (index > childrenLength - currentSlidesPerPage - 2) {\n const id = index - childrenLength;\n leadingSlides.push(React.createElement(GallerySlideContext.Provider, { key: `${child.key}-${id}`, value: {\n index: index,\n id: id,\n } }, child));\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, \"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: slidesPerPage || 1, fadingEdges: fadingEdges || false, gutter: currentGutter, tabIndex: 0, childrenLength: childrenLength, disableSnap: disableSnap },\n slideChildren.leadingSlides,\n slideChildren.slides,\n slideChildren.trailingSlides)),\n bottomElements)));\n};\n","import * as React from 'react';\nimport { styled } from '../theme-provider';\nimport { GalleryContext } from '.';\nimport { ButtonPrevious } from '../button-previous';\nimport { ButtonNext } from '../button-next';\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(ButtonPrevious, { tag: \"button\", emphasis: \"primary\", onClick: triggerPrevious, ariaLabel: buttonPreviousAriaLabel, tabIndex: ariaHidden ? -1 : 0, disabled: index === 0 && !endlessScrolling }),\n React.createElement(ButtonNext, { tag: \"button\", emphasis: \"primary\", onClick: triggerNext, ariaLabel: buttonNextAriaLabel, tabIndex: ariaHidden ? -1 : 0, disabled: index + slidesPerPage === length && !endlessScrolling })));\n};\n","import * as React from 'react';\nimport { styled } from '../theme-provider';\nimport { Container, ContainerWrap, ContainerGutter } from '../container';\nimport { GalleryContext } from './index';\nimport { withTheme } from 'styled-components';\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};`;\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:${(props) => props.theme.size.static150};height:${(props) => props.theme.size.static150};border:0;padding:0;border-radius:50%;background:${(props) => props.theme.interaction.recipe750.default};cursor:${(props) => (props.isActive ? 'unset' : 'pointer')};outline:none;transform:scale(${(props) => (props.isActive ? 2 : 1)});transition:${(props) => {\n const duration = props.theme.animation.duration.layer;\n const timingFunction = props.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:${(props) => props.theme.interaction.recipe450.default};}:hover{::before{background:${(props) => props.theme.interaction.recipe450.hover};}}:focus{outline:none;::before{background-color:${({ theme }) => theme.focus.background};box-shadow:0 0 0 1px ${({ theme }) => theme.interaction.recipe450.default};}}`;\nclass InternalNavigationBullets extends React.PureComponent {\n constructor() {\n super(...arguments);\n this.carouselRefs = {};\n this.focusElement = (el) => {\n const element = this.carouselRefs[el].current;\n if (element) {\n element.focus();\n }\n };\n this.createKeyHandler = (triggerChange, index) => (event) => {\n const { children, theme } = this.props;\n const length = React.Children.count(children);\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 this.focusElement(`bullet-${newIndex}`);\n triggerChange(newIndex);\n }\n };\n this.createClickHandler = (handleChange, index) => (e) => {\n e.preventDefault();\n e.stopPropagation();\n handleChange(index);\n };\n }\n createCarouselRef(elementId) {\n if (Object.prototype.hasOwnProperty.call(this.carouselRefs, elementId)) {\n return;\n }\n this.carouselRefs[elementId] = React.createRef();\n return this.carouselRefs[elementId];\n }\n render() {\n const { children, ariaLabel, ariaLabelledby } = this.props;\n return (React.createElement(GalleryContext.Consumer, null, ({ index, triggerChange, id: galleryID }) => (React.createElement(StyledBullets, { \"aria-label\": ariaLabel, \"aria-labelledby\": ariaLabelledby },\n React.createElement(Container, { wrap: ContainerWrap.never, gutter: ContainerGutter.static150 }, React.Children.map(children, (child, bulletIndex) => {\n this.createCarouselRef(`bullet-${bulletIndex}`);\n return (React.createElement(StyledBullet, { isActive: index === bulletIndex, onClick: this.createClickHandler(triggerChange, bulletIndex), onKeyDown: this.createKeyHandler(triggerChange, bulletIndex), key: `carousel-bullet-${bulletIndex}`, ref: this.carouselRefs[`bullet-${bulletIndex}`], tabIndex: index === bulletIndex ? 0 : -1, \"aria-selected\": index === bulletIndex, \"aria-controls\": galleryID },\n React.createElement(VisuallyHidden, null, child)));\n }))))));\n }\n}\nexport const NavigationBullets = withTheme(InternalNavigationBullets);\n","import * as React from 'react';\nimport { styled } from '../theme-provider';\nimport { Container, ContainerWrap, ContainerGutter } from '../container';\nimport { GalleryContext } from '.';\nimport { withTheme } from 'styled-components';\nconst StyledImages = styled.div.withConfig({ displayName: \"StyledImages\", componentId: \"sc-nqsjk9\" }) `display:flex;justify-content:center;`;\nconst StyledImage = styled.button.withConfig({ displayName: \"StyledImage\", componentId: \"sc-11mt7t2\" }) `position:relative;border:0;padding:0;background:${({ theme }) => theme.interaction.recipe750.default};cursor:${({ isActive }) => (isActive ? 'unset' : 'pointer')};z-index:${({ isActive }) => (isActive ? '1' : 'unset')};outline:none;transform:scale(${({ isActive }) => (isActive ? 1.2 : 1)});transition:${({ theme }) => {\n const duration = theme.animation.duration.layer;\n const timingFunction = theme.animation.timingFunction.in;\n return `all ${duration} ${timingFunction}`;\n}};:focus{outline:1px solid ${({ theme }) => theme.interaction.recipe400.active};outline-offset:2px;}:focus,:hover{::before{background:${({ theme }) => theme.interaction.recipe400.hover};}}`;\nclass InternalNavigationImages extends React.PureComponent {\n constructor() {\n super(...arguments);\n this.carouselRefs = {};\n this.focusElement = (el) => {\n const element = this.carouselRefs[el].current;\n if (element) {\n element.focus();\n }\n };\n this.createKeyHandler = (triggerChange, index) => (event) => {\n const { children, theme } = this.props;\n const length = React.Children.count(children);\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 this.focusElement(`bullet-${newIndex}`);\n triggerChange(newIndex);\n }\n };\n this.createClickHandler = (triggerChange, index) => (e) => {\n e.preventDefault();\n e.stopPropagation();\n triggerChange(index);\n };\n }\n createCarouselRef(elementId) {\n if (Object.prototype.hasOwnProperty.call(this.carouselRefs, elementId)) {\n return;\n }\n this.carouselRefs[elementId] = React.createRef();\n return this.carouselRefs[elementId];\n }\n render() {\n const { children } = this.props;\n return (React.createElement(GalleryContext.Consumer, null, ({ triggerChange, index }) => (React.createElement(StyledImages, null,\n React.createElement(Container, { wrap: ContainerWrap.never, gutter: ContainerGutter.static150 }, React.Children.map(children, (child, bulletIndex) => {\n this.createCarouselRef(`bullet-${bulletIndex}`);\n const key = child.key;\n return (React.createElement(StyledImage, { isActive: index === bulletIndex, onClick: this.createClickHandler(triggerChange, bulletIndex), onKeyDown: this.createKeyHandler(triggerChange, bulletIndex), key: key, ref: this.carouselRefs[`bullet-${bulletIndex}`], tabIndex: index === bulletIndex ? 0 : -1 }, child));\n }))))));\n }\n}\nexport const NavigationImages = withTheme(InternalNavigationImages);\n","import * as React from 'react';\nimport { styled, useTheme, designTokens } 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:${designTokens.color['grey-200']};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:${designTokens.color['blue-600']};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:${designTokens.color['grey-100-transparent-40']};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 ${designTokens.color['blue-200']};}}`;\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 = (value) => {\n if (value <= 0) {\n return 0;\n }\n if (value > maxScrollbarPosition) {\n return maxScrollbarPosition;\n }\n return roundToNearest(value);\n };\n const handleScrollbarPositionByGalleryPosition = () => {\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 };\n const getActuallScrollPercentage = (scrollbarPosition, maxScrollbarPosition) => {\n const value = scrollbarPosition / (maxScrollbarPosition / 100);\n if (value <= 0) {\n return 0;\n }\n if (value > 100) {\n return 100;\n }\n return value;\n };\n const setScrollbarSize = () => {\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 };\n React.useEffect(() => {\n !isDragging[galleryID] &&\n setScrollbarPosition(handleScrollbarPositionByGalleryPosition());\n }, [\n index,\n length,\n scrollbarAreaWidth,\n scrollbarWidth,\n handleScrollbarPositionByGalleryPosition,\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';\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 gallerySlides === null || gallerySlides === void 0 ? void 0 : gallerySlides.scrollWidth,\n index,\n slidesPerPage,\n scrollbarPosition,\n maxScrollbarPosition,\n disableScrollSnap,\n handleScrollbarPosition,\n handleScrollbarPositionByGalleryPosition,\n triggerChange,\n ]);\n const handleResize = React.useCallback(() => {\n setScrollbarSize();\n }, []);\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 let newIndex;\n switch (event.key) {\n case 'ArrowLeft':\n newIndex =\n index + (theme.direction === 'rtl' ? 1 : index === 0 ? 0 : -1);\n break;\n case 'ArrowRight':\n newIndex =\n index + (theme.direction === 'rtl' ? (index === 0 ? 0 : -1) : 1);\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","export function createA11yOutlineStyles(props) {\n return `\n\t\toutline: 1px solid ${props.theme.interaction.recipe100.active};\n\t\toutline-offset: ${props.theme.size.static100};\n\t`;\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}\nexport function getRGBfromHexColor(color) {\n if (!color.startsWith('#')) {\n return undefined;\n }\n const parts = color\n .substr(1)\n .split('')\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}\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 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 if (isHexColorToRgbaOptions(alphaOrOptions) && alphaOrOptions.rgbFallback) {\n return `rgba(${alphaOrOptions.rgbFallback.r},${alphaOrOptions.rgbFallback.g},${alphaOrOptions.rgbFallback.b},${alphaFallback})`;\n }\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;","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","/*\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 * only tabbable ones\n * (but with guards which would be ignored)\n */\nexport var getTabbableNodes = function (topNodes, visibilityCache, withGuards) {\n return orderByTabIndex(filterFocusable(getFocusables(topNodes, withGuards), visibilityCache), true, withGuards);\n};\n/**\n * actually anything \"focusable\", not only tabbable\n * (without guards, as long as they are not expected to be focused)\n */\nexport var getAllTabbableNodes = 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';\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\n * @returns {T}\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 */\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 { getAllTabbableNodes, 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 * given top node(s) and the last active element return the element to be focused next\n * @param topNode\n * @param lastNode\n */\nexport var getFocusMerge = 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 = getAllTabbableNodes(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 = getAllTabbableNodes([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 { getFocusMerge } from './focusMerge';\nexport 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};\nvar guardCount = 0;\nvar lockDisabled = false;\n/**\n * Sets focus at a given node. The last focused element will help to determine which element(first or last) should be focused.\n * HTML markers (see {@link import('./constants').FOCUS_AUTO} constants) can control autofocus\n * @param topNode\n * @param lastNode\n * @param options\n */\nexport var setFocus = function (topNode, lastNode, options) {\n if (options === void 0) { options = {}; }\n var focusable = getFocusMerge(topNode, lastNode);\n if (lockDisabled) {\n return;\n }\n if (focusable) {\n if (guardCount > 2) {\n // tslint:disable-next-line:no-console\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","import * as constants from './constants';\nimport { focusInside } from './focusInside';\nimport { focusIsHidden } from './focusIsHidden';\nimport { getFocusMerge as focusMerge } from './focusMerge';\nimport { getFocusabledIn, getFocusableIn } from './focusables';\nimport { setFocus } from './setFocus';\nimport { focusNextElement, focusPrevElement } from './sibling';\nimport tabHook from './tabHook';\nimport { getAllAffectedNodes } from './utils/all-affected';\nimport { getActiveElement } from './utils/getActiveElement';\nexport { tabHook, focusInside, focusIsHidden, focusMerge, getFocusableIn, getFocusabledIn, constants, getAllAffectedNodes, focusNextElement, focusPrevElement, getActiveElement, };\nexport default setFocus;\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 * return list of focusable elements inside a given top node\n * @deprecated use {@link getFocusableIn}. Yep, there is typo in the function name\n */\nexport var getFocusabledIn = 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/**\n * return list of focusable elements inside a given top node\n */\nexport var getFocusableIn = getFocusabledIn;\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, getFocusabledIn } 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 = getFocusabledIn(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 * focus is hidden FROM the focus-lock\n * ie contained inside a node focus-lock shall ignore\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 _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';\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, { 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 { css, styled, ThemeProvider } from '../theme-provider';\nimport { getCommonProps } from '../helpers/common-props';\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 getBackgroundColor = css `${({ theme, appearance }) => {\n switch (appearance) {\n case InfoboxAppearance.Error:\n return theme.interaction.recipe360.default;\n case InfoboxAppearance.Success:\n return theme.interaction.recipe350.default;\n case InfoboxAppearance.Default:\n default:\n return theme.interaction.recipe370.default;\n }\n}}`;\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:${getBackgroundColor};color:${(props) => props.theme.text.color.primary};`;\nconst StyledIcon = styled(Alert).withConfig({ displayName: \"StyledIcon\", componentId: \"sc-145nlbo\" }) `display:block;height:${(props) => props.theme.textAppearances.copy0200.lineHeight};`;\nexport const Infobox = (props) => {\n const { ariaLabel, ariaLive, children, fullWidth, hideIcon, appearance } = props;\n const commonProps = getCommonProps(props);\n return (React.createElement(ThemeProvider, { theme: \"image\" },\n React.createElement(StyledInfobox, Object.assign({ \"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 class ApplicationRoot extends React.Component {\n render() {\n return (React.createElement(ThemeProvider, { theme: \"main\" },\n React.createElement(StyledApplicationRoot, null, this.props.children)));\n }\n}\n","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 { CSSTransition } from 'react-transition-group';\nimport { withTheme } from 'styled-components';\nimport { useThrottle } from '@react-hook/throttle';\nimport { getColumnsWidthForBreakpoint, getGridColumn } from '../helpers/grid';\nimport { isBreakpointConfig, 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 if (isBreakpointConfig(heights)) {\n return createStylesForBreakpoints(heights, (height) => `height: ${height};`);\n }\n return `height: ${heights};`;\n}\nfunction createDirectionForBreakpoint(size) {\n const direction = directionMap[size];\n if (isBreakpointConfig(direction)) {\n const width = typeof window !== 'undefined' ? window.innerWidth || 0 : 0;\n return getValueByScreenSize(width, direction);\n }\n return direction;\n}\nfunction createPositionAndTransforms(props) {\n const { animationDirection, direction } = props;\n const directionValueX = animationDirection === 'horizontal'\n ? direction === 'rtl'\n ? '-100%'\n : direction === 'ltr'\n ? '100%'\n : '0'\n : '0';\n const directionValueY = animationDirection === 'vertical' ? '100%' : '0';\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:translate(${directionValueX}, ${directionValueY});}&-enter-active,&-exit{transform:translate(0);}&-exit-active{transform:translate(${directionValueX}, ${directionValueY});}}`;\n}\nconst StyledLayer = styled.div.withConfig({ displayName: \"StyledLayer\", componentId: \"sc-1wno2sw\" }) `background-color:${({ theme }) => theme.global.backgroundColor};position:fixed;box-shadow:${({ theme }) => theme.shadows.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 } = 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 },\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, \"aria-describedby\": ariaDescribedBy, \"aria-label\": ariaLabel, \"aria-labelledby\": 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, TextAppearance, TextColor, TextTag } from '../text';\nimport { Breakpoints } from '../helpers/breakpoint';\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:${(props) => props.theme.size.border.heavy} solid ${(props) => props.theme.decoratorColor};border-bottom:${(props) => props.theme.size.border.heavy} solid ${(props) => props.theme.decoratorColor};margin-top:0.85em;::before,::after{content:'';position:absolute;border:${(props) => props.theme.size.border.heavy} solid ${(props) => props.theme.decoratorColor};height:100%;top:0;}::before{border-right:none;transform:translate(\n\t\t\tcalc(-1 * ${(props) => props.theme.size.border.heavy}),-${(props) => props.theme.size.border.heavy} );}::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.global.backgroundColor};transform:translateY(\n\t\tcalc(\n\t\t\t-${(props) => props.theme.size.static250} - ${(props) => props.theme.size.dynamic0200}\n\t\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.interaction.recipe300.default};`;\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: TextAppearance.copy0150, tag: TextTag.span, color: TextColor.secondary }, text)),\n text && link && linkText && (React.createElement(Text, { appearance: TextAppearance.copy0150, tag: TextTag.span }, ' | ')),\n linkText && link && (React.createElement(StyledLink, { href: link },\n React.createElement(Text, { appearance: TextAppearance.copy0150, 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 { TextAppearance, TextContext } from '../text';\nimport { css, styled, useTheme } from '../theme-provider';\nfunction createFontStyles(props) {\n const { appearance, theme, textColor } = props;\n const textAppearance = theme.textAppearances[appearance || TextAppearance.copy0200];\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};`;\n}\nconst StyledListItem = styled.li.withConfig({ displayName: \"StyledListItem\", componentId: \"sc-112v5tu\" }) `display:flex;align-items:baseline;${(props) => createFontStyles(props)};&::before{font-weight:bold;margin-inline-end:min(1em, ${({ theme }) => theme.size.static350});}ul > &::before{content:'\\\\2014';transform:translateY(-0.05em);}ol > &{counter-increment:items;::before{content:${({ markerSize }) => `\"${'0'.repeat(markerSize)}\" counter(items)`};}}`;\nexport const ListItem = ({ children, markerSize = 2, appearance, }) => {\n const theme = useTheme();\n const textColor = React.useContext(TextContext).textColor || theme.text.color.primary;\n return (React.createElement(StyledListItem, { markerSize: markerSize, appearance: appearance, textColor: textColor }, children));\n};\n","export 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 * as React from 'react';\nexport var Logo = 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: \"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.386c.043-.086.086-.129.129-.129.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.586Zm0-13.329c-.086 0-.086-.086-.129-.128l-3.3-7.115a10.117 10.117 0 0 1 6.858 0l-3.3 7.115c-.043.042-.043.128-.129.128Zm-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.843c-.043.086-.086.128-.129.128-.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.128ZM12 24c6.643 0 12-5.357 12-12S18.643 0 12 0 0 5.357 0 12s5.357 12 12 12Z\" }));\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: \"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.318 21.318 0 0 1 45.84 24C45.744 35.952 35.952 45.792 24 45.792Zm0-26.736c-.144 0-.192-.144-.288-.288l-6.816-15.36A20.473 20.473 0 0 1 24 2.16c2.496 0 4.896.432 7.104 1.248l-6.816 15.36c-.096.192-.144.288-.288.288Zm-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.496 22.496 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.288ZM24 48c13.296 0 24-10.704 24-24S37.296 0 24 0 0 10.704 0 24s10.704 24 24 24Z\" }));\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.interaction.recipe450.default};}svg{fill:${(props) => props.theme.interaction.recipe450.default};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 }),\n claim));\n};\n","import * as React from 'react';\nimport { ChevronDown } from '@volkswagen-onehub/icons-core';\nimport { Text, TextTag, TextColor, TextAppearance } 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:${(props) => props.theme.size.static250};background:${(props) => props.theme.global.backgroundColor};box-shadow:${({ theme }) => theme.shadows.variant4};margin-top:${(props) => props.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 StyledButton = styled.div.withConfig({ displayName: \"StyledButton\", componentId: \"sc-1vhoabn\" }) `display:flex;cursor:${(props) => props.internalDisabledProp ? 'not-allowed' : 'pointer'};`;\nconst StyledIcon = styled.span.withConfig({ displayName: \"StyledIcon\", componentId: \"sc-17f61o9\" }) `flex:0 0 auto;overflow:visible;text-align:center;transition:${(props) => `transform ${ANIMATION_FUNCTION}, color ${props.theme.animation.timingFunction.cubicOut} ${props.theme.animation.duration.color}`};line-height:0;`;\nconst StyledCountAndIconWrapper = styled.span.withConfig({ displayName: \"StyledCountAndIconWrapper\", componentId: \"sc-12d9n7j\" }) `display:flex;align-items:center;`;\nconst StyledLabelText = styled.span.withConfig({ displayName: \"StyledLabelText\", componentId: \"sc-gs306v\" }) `font-size:${({ theme }) => theme.textAppearances.copy0100.fontSize};width:100%;display:block;margin:0;padding:0;color:transparent;`;\nconst StyledLabelTextWithFloating = styled(StyledLabelText).withConfig({ displayName: \"StyledLabelTextWithFloating\", componentId: \"sc-1p225xq\" }) `transition:0.3s ease;position:absolute;top:0;color:inherit;${({ theme, isFloating, hasValue, labelHeight }) => isFloating && !hasValue\n ? css `font-size:${theme.textAppearances.copy0200.fontSize};white-space:nowrap;text-overflow:ellipsis;overflow-x:hidden;padding-right:${'50px'};transition:all 0.25s ease-in-out;transform:translateY(${labelHeight}px)translateY(${theme.size.static100})translateY(${parseInt(theme.size.static300) / 2}px)translateY(-50%);` : undefined}}`;\nconst StyledIconWrapper = styled.span.withConfig({ displayName: \"StyledIconWrapper\", componentId: \"sc-2eaqg0\" }) `position:relative;display:flex;align-items:center;justify-content:center;height:${(props) => props.theme.size.static350};&::before{content:'';display:block;width:42px;height:42px;position:absolute;top:50%;left:50%;transform:translateX(-50%)translateY(-50%);border-radius:50%;}`;\nconst StyledInteractionWrapper = styled.div.withConfig({ displayName: \"StyledInteractionWrapper\", componentId: \"sc-rebite\" }) `display:grid;grid-column-gap:${(props) => props.theme.size.static150};grid-template-columns:auto max-content;align-items:center;width:100%;padding-bottom:${(props) => props.theme.size.static150};cursor:${(props) => props.internalDisabledProps ? 'not-allowed' : 'pointer'};color:${(props) => props.internalDisabledProps\n ? props.theme.interaction.recipe450.disabled\n : props.theme.interaction.recipe450.default};border-bottom:${({ theme }) => theme.size.line.default} solid ${(props) => props.internalDisabledProps\n ? props.theme.interaction.recipe200.disabled\n : props.theme.interaction.recipe200.default};${(props) => !props.internalDisabledProps && css `&:hover{${StyledIconWrapper}::before{background-color:${(props) => props.theme.hoverIndicatorColor.outlinedElement.default};}}`}`;\nconst StyledCount = styled.span.withConfig({ displayName: \"StyledCount\", componentId: \"sc-qcfvmh\" }) `box-sizing:content-box;margin-inline-start:${(props) => props.theme.size.static200};min-width:1em;line-height:1em;padding:${(props) => props.theme.size.static100};border-radius:100px;font-size:${(props) => props.theme.textAppearances.copy0100.fontSize};text-align:center;color:#fff;background:${(props) => props.theme.interaction.recipe370.default};`;\nconst StyledMultiSelect = styled.fieldset.withConfig({ displayName: \"StyledMultiSelect\", componentId: \"sc-1gbzo02\" }) `margin:0;border:none;position:relative;padding:2px 0;border-top:${({ theme }) => theme.size.line.default} solid transparent;border-bottom:${({ theme }) => theme.size.line.default} solid transparent;:focus-within{${StyledIcon}{transform:rotateX(180deg);}${StyledLabelTextWithFloating}{transform:translateY(0);font-size:${(props) => props.theme.textAppearances.copy100.fontSize};}}`;\nconst StyledSingleOption = styled.div.withConfig({ displayName: \"StyledSingleOption\", componentId: \"sc-k52n5t\" }) `color:${({ theme }) => theme.interaction.recipe300.active};font-weight:${({ isActive }) => (isActive ? 'bold' : 'normal')};cursor:pointer;&:hover{color:${({ theme }) => theme.global.optionBlueHover};}`;\nconst StyledResults = styled.span.withConfig({ displayName: \"StyledResults\", componentId: \"sc-vvuie0\" }) `color:${({ theme }) => theme.interaction.recipe200.default};margin-left:${({ theme }) => theme.size.static150};`;\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 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 (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 }, 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, internalDisabledProps: disabled },\n React.createElement(StyledButton, { internalDisabledProp: disabled },\n React.createElement(Text, { tag: TextTag.span, color: TextColor.inherit, appearance: TextAppearance.label0200, staticSize: true }, singleOptionMode ? selectedOption : label),\n count > 0 && 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, TextAppearance, TextColor } 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.interaction.recipe400.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.interaction.recipe400.checked};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:${(props) => props.theme.interaction.recipe100.hover};${StyledIcon}{color:${(props) => props.theme.interaction.recipe100.hover};}}}:focus{outline:0;color:${(props) => props.theme.interaction.recipe100.hover};${StyledIcon}{color:${(props) => props.theme.interaction.recipe100.hover};}}${(props) => props.isOpen && css `@media (hover: hover){color:${props.theme.interaction.recipe100.checked};${StyledIcon}{color:${props.theme.interaction.recipe100.checked};}&:hover,&:focus{color:${props.theme.interaction.recipe100.checked};${StyledIcon}{color:${props.theme.interaction.recipe100.checked};}}}`};`;\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 && css `padding:0 ${props.theme.size.grid001} ${props.theme.size.dynamic0100};`};${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\": 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: TextColor.inherit, appearance: TextAppearance.headline0250 }, name)),\n React.createElement(StyledIcon, { isOpen: isOpen, variant: \"small\", ariaHidden: true })))) : (React.createElement(StyledLink, { href: url },\n React.createElement(Text, { color: TextColor.inherit, appearance: TextAppearance.headline0250 }, name)))),\n React.createElement(\"div\", null,\n React.createElement(StyledSecondLevelList, { id: secondLevelId, isOpen: isOpen, \"aria-hidden\": !isOpen, \"aria-labelledby\": firstLevelId }, 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: TextColor.inherit, appearance: TextAppearance.headline0250 }, 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';\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.interaction.recipe370.default};`;\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.interaction.recipe950.default};${(props) => props.iconBackgroundColor &&\n `\n\t\t\tbackground-color: ${props.iconBackgroundColor};\n\t\t\tcolor: ${props.theme.interaction.recipe370.default};\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: \"image\" },\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:${(props) => props.theme.interaction.recipe370.default};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:${(props) => props.theme.interaction.recipe370.disabled};}::-moz-progress-bar{background-color:${(props) => props.theme.interaction.recipe370.default};transition:width 0.3s;}::-webkit-progress-value{background-color:${(props) => props.theme.interaction.recipe370.default};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';\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' && css `min-width:1.25em;padding:0.125em 0.35em;font-size:${theme.textAppearances.label0100.static.fontSize};`} ${({ theme, variant }) => variant === 'large' && css `min-width:1.5em;padding:0.25em 0.45em;font-size:${theme.textAppearances.label0150.static.fontSize};`} color:${({ theme }) => theme.referenceBadge.textColor.default};background:${({ theme }) => theme.referenceBadge.backgroundColor.default};box-shadow:inset 0 0 0 1px ${({ theme }) => theme.referenceBadge.outlineColor};&:hover,&:active{color:${({ theme }) => theme.referenceBadge.textColor.active};background:${({ theme }) => theme.referenceBadge.backgroundColor.active};outline:0;}&:focus{box-shadow:inset 0 0 0 1px ${({ theme }) => theme.interaction.recipe450.default};background:${({ theme }) => theme.focus.background};color:${({ theme }) => theme.focus.foreground};outline:none;}`;\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